thiagopessoa
Geotechnical
- Dec 9, 2010
- 2
Hi Folks,
First I’m sorry for my bad English.
I am simulating a uniaxial compression test (elastic only). I was trying to vary E (Young’s modulus) with pressure.
So I did a subroutine but for some reason my final deformation is the same as without the subroutine (the path until the final deformation is different). Is that possible?
I added an excel for you to visualize.
The yellow line is what I expected. The blue one is the test with the subroutine and the pink one is without the subroutine.
For some reason Abaqus strain isn’t adding the increment.
My subroutine and my inp. are below.
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,
3 LACCFLA)
C
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(15),JARRAY(15),JMAC(*),JMATYP(*),
1 COORD(*)
C
CALL GETVRM('SINV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
1 MATLAYO,LACCFLA)
SIGEF = ARRAY(3)
C Use mises stress as a field variable
FIELD(1) = SIGEF
C Store the mises stress as a solution dependent state
C variable
STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
IF(JRCD.NE.0)THEN
WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
1 NOEL,'INTEGRATION POINT NUMBER ',NPT
ENDIF
C
RETURN
END
*HEADING
CREEP, ENSAIO TRIAXIAL, ELEM AXISSIM
*NODE,NSET=ALLN
1,0.,0.
2,1.,0.
3,1.,1.
4,0.,1.
*ELEMENT,TYPE=CAX4,ELSET=ALLE
1,1,2,3,4
*SOLID SECTION,ELSET=ALLE,MATERIAL=mat
*MATERIAL,NAME=mat
*ELASTIC, dependencies=1
0.5E3,0.33, , 0.
1.0E3,0.33, , 1.
1.5E3,0.33, , 2.
2.0E3,0.33, , 3.
2.5E3,0.33, , 4.
3.0E3,0.33, , 5.
3.5E3,0.33, , 6.
4.0E3,0.33, , 7.
4.5E3,0.33, , 8.
5.0E3,0.33, , 9.
5.5E3,0.33, , 10.
*USER DEFINED FIELD
*DEPVAR
1
*BOUNDARY
1,PINNED
2,2
4,1
*STEP, amplitude=ramp
*STATIC
0.1,1.,0.01,0.1
*DLOAD
1,P3,10
*Output, field, variable=PRESELECT
*Output, history, variable=PRESELECT
*END STEP
First I’m sorry for my bad English.
I am simulating a uniaxial compression test (elastic only). I was trying to vary E (Young’s modulus) with pressure.
So I did a subroutine but for some reason my final deformation is the same as without the subroutine (the path until the final deformation is different). Is that possible?
I added an excel for you to visualize.
The yellow line is what I expected. The blue one is the test with the subroutine and the pink one is without the subroutine.
For some reason Abaqus strain isn’t adding the increment.
My subroutine and my inp. are below.
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,
3 LACCFLA)
C
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(15),JARRAY(15),JMAC(*),JMATYP(*),
1 COORD(*)
C
CALL GETVRM('SINV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
1 MATLAYO,LACCFLA)
SIGEF = ARRAY(3)
C Use mises stress as a field variable
FIELD(1) = SIGEF
C Store the mises stress as a solution dependent state
C variable
STATEV(1) = FIELD(1)
C If error, write comment to .DAT file:
IF(JRCD.NE.0)THEN
WRITE(6,*) 'REQUEST ERROR IN USDFLD FOR ELEMENT NUMBER ',
1 NOEL,'INTEGRATION POINT NUMBER ',NPT
ENDIF
C
RETURN
END
*HEADING
CREEP, ENSAIO TRIAXIAL, ELEM AXISSIM
*NODE,NSET=ALLN
1,0.,0.
2,1.,0.
3,1.,1.
4,0.,1.
*ELEMENT,TYPE=CAX4,ELSET=ALLE
1,1,2,3,4
*SOLID SECTION,ELSET=ALLE,MATERIAL=mat
*MATERIAL,NAME=mat
*ELASTIC, dependencies=1
0.5E3,0.33, , 0.
1.0E3,0.33, , 1.
1.5E3,0.33, , 2.
2.0E3,0.33, , 3.
2.5E3,0.33, , 4.
3.0E3,0.33, , 5.
3.5E3,0.33, , 6.
4.0E3,0.33, , 7.
4.5E3,0.33, , 8.
5.0E3,0.33, , 9.
5.5E3,0.33, , 10.
*USER DEFINED FIELD
*DEPVAR
1
*BOUNDARY
1,PINNED
2,2
4,1
*STEP, amplitude=ramp
*STATIC
0.1,1.,0.01,0.1
*DLOAD
1,P3,10
*Output, field, variable=PRESELECT
*Output, history, variable=PRESELECT
*END STEP