Notifications
Clear all

[Solved] Urgent HELP! USDFLD problem  


rent_boy
Posts: 2
(@rent_boy)
New Member
Joined: 13 years ago

Hey everyone...so i am a novice when it comes to finite element modeling...i am using ABAQUS

so i am facing a bit of a problem and i need help urgently to get my work going!!

i am using USDFLD to use GETVRM and store the EE (Elastic Strains) as STATEV (That i will use within umat later), the .inp and .for are posted below

1. When i output the STATEV (using SDV under *output) and i observe the output in ABAQUS, it always zero!! GETVRM isnt getting the EE and storing it?!

2. how do i use both user subroutines (USDFLD and UMAT) within the same job!?

i thank whoever would take the time to read through this...and any reply is highly appreciated...its really reallly frustrating me!!

*HEADING

MONOTONIC UNIAXIAL FORCE LOADING. AXISYMMETRIC MODEL

*NODE

1, 0.0, 0.0

2, 1.0, 0.0

3, 1.0, 1.0

4, 0.0, 1.0

**

*NSET,NSET=ALL, GENERATE

1,4

*NSET,NSET=TOP

3, 4

*NSET, NSET=LEFT

1, 4

*NSET, NSET=BOT

1, 2

*ELEMENT, TYPE=CAX4, ELSET=ALLE

1, 1, 2, 3, 4

*SOLID SECTION, ELSET=ALLE, MATERIAL=MAT

*MATERIAL, NAME=MAT

*DEPVAR

3

*USER DEFINED FIELD

**

*BOUNDARY

LEFT, 1, 1, 0.0

BOT, 2, 2, 0.0

**

*RESTART, WRITE, FREQ=0

**

**

**

*STEP, AMPLITUDE=RAMP, NLGEOM, INC=20000

**

*STATIC

1.0E-3, 1.0, 1.E-10 , 1.0E-3

**

*BOUNDARY

*DLOAD

1, P3, -50.

**

*OUTPUT, FIELD, FREQ=10

*ELEMENT OUTPUT, ELSET=ALLE

LE, S, SDV

*NODE FILE, GLOBAL=YES, FREQ=10

U

**NT

*EL PRINT, FREQ=0

*NODE PRINT, GLOBAL=YES, FREQ=0

**

*OUTPUT, HISTORY

*ELEMENT OUTPUT, ELSET=ALLE

LE, S, SDV

*END STEP

**

**

SUBROUTINE USDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,

1 TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,

2 KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)

INCLUDE ABA_PARAM.INC

C

CHARACTER*80 CMNAME,ORNAME

CHARACTER*3 FLGRAY(15)

DIMENSION FIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),

1 T(3,3),TIME(2)

DIMENSION ARRAY(3),JARRAY(3),JMAC(*),JMATYP(*),COORD(*)

CALL GETVRM(EE,ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,

1 LACCFLA)

EE1=ARRAY(1)

EE2=ARRAY(2)

EE3=ARRAY(3)

STATEV(1)=EE1

STATEV(2)=EE2

STATEV(3)=EE3

RETURN

END

Topic Tags
4 Replies
Jorgen
Posts: 3874
Moderator
(@jorgen)
Member
Joined: 11 months ago

Writing a user-subroutine is never easy 🙁

1) I recommend that you add a bunch of print statements in your fortran code
2) You can use multiple subroutine at once by adding them all to the same fortran source file

- Jorgen

Topic Tags
4 Replies
rent_boy
Posts: 2
(@rent_boy)
New Member
Joined: 13 years ago

Figured it!

Thanks Jorgan 🙂 , i figured it out...i had to add a *INITIAL CONDITIONS, type=field, however there was another one that i could have used *Field, the former is entered in the model level, while the latter in the output level within the input file. I tried to understand the difference between them from the manuals but i couldnt?!

gsunshine
Posts: 2
(@gsunshine)
New Member
Joined: 1 year ago

Dear Mikester
How can we use both USDFLD and UMAT in a single subroutine?
Thanks

Jorgen
Posts: 3874
Moderator
(@jorgen)
Member
Joined: 11 months ago

That is easy. Just combine both subroutines in one file, and use that as your user-subroutine file.

-Jorgen

Share: