Unable to obtain the SDEG variable for cohesive elements using GETVRM

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Unable to obtain the SDEG variable for cohesive elements using GETVRM

W.Luo
Dear all,

I am a student and learning to use Abaqus for my study. However i met a
problem in Subroutines recently, All of the SDEG variable for cohesive
elements are read to be 0 via GETVRM in USDFLD while there are values in odb
file.
How can i fix this problem?
The input and fortran texts are adhered below.
Thank you in advance.

*Input:*
*Heading
** Job name: CCZM_6_5_1 Model name: Model-1
** Generated by: Abaqus/CAE 2016
*Preprint, echo=NO, model=NO, history=NO, contact=NO
** ----------------------------------------------------------------
**
** PART INSTANCE: Part-1-1
**
*Node
      1,           1.,           0.,           1.
      2,           0.,           0.,           1.
      3,           0.,           0.,           0.
      4,           1.,           0.,           0.
      5,           0.,           1.,           1.
      6,           0.,           1.,           0.
      7,           1.,           1.,           0.
      8,           1.,           1.,           1.
      9,           1.,           0.,           2.
     10,           0.,           0.,           2.
     11,           1.,           1.,           2.
     12,           0.,           1.,           2.
     13,           1.,           1.,           1.
     14,           0.,           1.,           1.
     15,           0.,           0.,           1.
     16,           1.,           0.,           1.
     17,           0.,           0.,           1.
     18,           1.,           0.,           1.
     19,           0.,           1.,           1.
     20,           1.,           1.,           1.
*Element, type=C3D8R
1, 13, 14,  6,  7, 16, 15,  3,  4
2,  5,  8, 11, 12,  2,  1,  9, 10
*Element, type=COH3D8
3,  1,  2,  5,  8, 16, 15, 14, 13, 18, 17, 19, 20
*Nset, nset=Part-1-1_PlaMatSec, generate
  1,  16,   1
*Elset, elset=Part-1-1_PlaMatSec
 1, 2
*Elset, elset=Part-1-1_CohesiveSeam-1-Elements
 3,
*Nset, nset=Part-1-1_CohesiveSeam-1-TopNodes, generate
 13,  16,   1
*Nset, nset=Part-1-1_CohesiveSeam-1-BottomNodes
 1, 2, 5, 8
*Nset, nset=Part-1-1_CohesiveSeam-1-MidNodes, generate
 17,  20,   1
*Elset, elset=Part-1-1_CohMatSec
 3,
*Elset, elset=_Part-1-1__PickedSurf6_S2
 3,
*Surface, type=ELEMENT, name=Part-1-1__PickedSurf6
_Part-1-1__PickedSurf6_S2, S2
*Elset, elset=_Part-1-1_CohesiveSeam-1-TopSurf_S2
 3,
*Surface, type=ELEMENT, name=Part-1-1_CohesiveSeam-1-TopSurf
_Part-1-1_CohesiveSeam-1-TopSurf_S2, S2
*Elset, elset=_Part-1-1_CohesiveSeam-1-BottomSurf_S1
 3,
*Surface, type=ELEMENT, name=Part-1-1_CohesiveSeam-1-BottomSurf
_Part-1-1_CohesiveSeam-1-BottomSurf_S1, S1
** Section: Plate
*Solid Section, elset=Part-1-1_PlaMatSec, material=Plate
,
** Section: Cohes
*Cohesive Section, elset=Part-1-1_CohMatSec, material=Cohes,
response=TRACTION SEPARATION
,
*System
*Nset, nset=FixBotSet
 3, 4, 6, 7
*Elset, elset=FixBotSet
 1,
*Nset, nset=MovSet, generate
  9,  12,   1
*Elset, elset=MovSet
 2,
**
** MATERIALS
**
*Material, name=Cohes
*Damage Initiation, criterion=QUADS
300.,300.,300.
*Damage Evolution, type=ENERGY, mixed mode behavior=BK, power=2.
75.,75.,75.
*Damage Stabilization
1e-05
*Elastic, type=TRACTION, DEPENDENCIES=1
45000.,45000.,45000., 0
10000.,10000.,10000., 1
*USER DEFINED FIELD
*DEPVAR
1
*Material, name=Plate
*Elastic
45000., 0.3
**
** BOUNDARY CONDITIONS
**
** Name: FixBot Type: Symmetry/Antisymmetry/Encastre
*Boundary
FixBotSet, ENCASTRE
** ----------------------------------------------------------------
**
** STEP: Step-1
**
*Step, name=Step-1, nlgeom=NO
*Static
1, 1., 1e-05, 1
**
** BOUNDARY CONDITIONS
**
** Name: Mov Type: Displacement/Rotation
*Boundary
MovSet, 3, 3, 0.02
**
** OUTPUT REQUESTS
**
*Restart, write, frequency=0
**
** FIELD OUTPUT: F-Output-2
**
*Output, field
*Element Output, directions=YES
DAMAGET, DMICRT, SDEG, STATUS
*Contact Output
CSDMG,
**
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
*End Step
** ----------------------------------------------------------------
**
** STEP: Step-2
**
*Step, name=Step-2, nlgeom=NO, inc=10000
*Static
0.003, 1., 1e-05, 0.003
**
** BOUNDARY CONDITIONS
**
** Name: Mov Type: Displacement/Rotation
*Boundary
MovSet, 3, 3, 0.05
**
** OUTPUT REQUESTS
**
*Restart, write, frequency=0
**
** FIELD OUTPUT: F-Output-2
**
*Output, field
*Element Output, directions=YES
DAMAGET, DMICRT, SDEG, STATUS
*Contact Output
CSDMG,
**
** FIELD OUTPUT: F-Output-1
**
*Output, field, variable=PRESELECT
**
** HISTORY OUTPUT: H-Output-1
**
*Output, history, variable=PRESELECT
*End Step

*Fortran:*
          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
C Absolute value of current strain:
      CALL GETVRM('SDEG',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)
          DAM=ABS(ARRAY(1))
          WRITE(*,*)
'CHECK1-SDEG:','ARRAY',ARRAY,'JARRAY',JARRAY,'FLGRAY',FLGRAY,'JRCD',JRCD,NOEL,KSTEP,KINC
      CALL GETVRM('SINV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
     1 MATLAYO,LACCFLA)
C  WRITE(*,*)
'CHECK2-SINV:','ARRAY',ARRAY,'JARRAY',JARRAY,'FLGRAY',FLGRAY,'JRCD',JRCD,NOEL,KSTEP,KINC
C      CALL GETVRM('DMICRT',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,
C     1 MATLAYO,LACCFLA)
C  WRITE(*,*)
'CHECK3-DMICRT:','ARRAY',ARRAY,'JARRAY',JARRAY,'FLGRAY',FLGRAY,'JRCD',JRCD,NOEL,KSTEP,KINC
C  FIELD(1)=DAM
C  STATEV(1)=FIELD(1)
      RETURN
      END




--
Sent from: http://abaqus-users.1086179.n5.nabble.com/
Reply | Threaded
Open this post in threaded view
|

Re: Unable to obtain the SDEG variable for cohesive elements using GETVRM

phil
When using USDFLD, be aware of 2 things. First, that the results returned from GETVRM will be the results at the beginning of the increment, and are not affected by the loading during the increment. Therefore when you print the value of the array you will initially have zero values, since the result is zero at the start of the analysis.
 Second, the subroutine is called for each material point (integration point and layer, if applicable), so in each increment you will have multiple sets of results. Moreover, the subroutine is called twice per material point in the first iteration of each increment (and then once per material point for subsequent iterations in the same increment).
 

 So while it may look like you only get zeros, you may just be looking at multiple sets of values from the start of the analysis.
 

 Phil Williams
 simutech.com.tw