Skip to main content

Two UMATS in one Subroutine

Submitted by ABAqirl on

Dear All,

I have the problem. i created very simple example with two elements. To one element i prescribed the behaviour Mat1, to another element Mat2. I tried to use two different UMATS for this two elements.

I created Subroutine Myname.f, in which i use CMNAME if (CNMAME.EQ.'MAT1) THEN

CALl UMAT_1()

ELSE IF (CMNAME.EQ.'MAT2) THEN

CALL UMAT_2()

END IF

Then i put two UMATS in the same SUBROUTINES ,

But as a result the program gives MISTAKE , it says that The UMAT doesn't exist

What is the mistake?

IN MYNAME.f and in ALL UMATS i put the lists of arguments as in USUAL UMAT.

Could someone help me?

Best regards

ABAgirl

First of all, does your implementation work for one UMAT case?  If it does, are you defining two separate user materials in the input file with the specific name, "MAT1" and "MAT2"?

Tue, 02/28/2012 - 23:57 Permalink

Thank you all for the kind reply,

I did everything correct, the problem was that i work with file in Windows and when i transfer UMAT into Unix mashine, there were strange symbols and of course abaqus didn't understand what it is saying thet umat doesn't exist,

best regards

ABAgirl

Fri, 03/02/2012 - 14:06 Permalink

Dear ABAqirl,

Instead of Testing a Character String which is not easy to match in Fortran you may use a Logical Variable

for example :

             LOGICAL RESP

             RESP=.FALSE.

             .....

             IF (RESP)  --------------> your first case

             ..

             ELSE

                            --------------> the second one

             ENDIF

 

Regards

 

Mohammed lamine Moussaoui

Wed, 07/04/2012 - 20:38 Permalink