ProductsAbaqus/Standard Accessing material point dataYou are provided with access to the values of the material point quantities through the utility routine GETVRM described in Obtaining material point information in an Abaqus/Standard analysis. In a nonlinear analysis values returned will correspond to the current solution iteration, representing a converged solution only at the final iteration for each increment. The values of the material point data are recovered in the arrays ARRAY, JARRAY, and FLGRAY for floating point, integer, and character data, respectively. Floating point data are recovered as double-precision data. Using user-defined output variablesThe output identifier for the user-defined output quantities is UVARM. Individual components are accessed with UVARMn, where , NUVARM. You must specify the number of user-defined output variables, NUVARM, for a given material to allocate space at each material calculation point for each variable. The user-defined output variables are available for both printed and results file output and are written to the output database and restart files for contouring, printing, and X–Y plotting in Abaqus/CAE. Any number of user-defined output variables can be used. Output precisionThe data are provided in double precision for output to the data (.dat) and results (.fil) files and are written to the output database (.odb) file in single precision. Because the user provides UVARM output variables in double precision, numeric overflow errors related to output to the output database file may occur in cases where the output results exceed the capacity for single-precision representation even when no overflow errors occur in UVARM. User subroutine interface SUBROUTINE UVARM(UVAR,DIRECT,T,TIME,DTIME,CMNAME,ORNAME,
1 NUVARM,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD,
2 JMAC,JMATYP,MATLAYO,LACCFLA)
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME,ORNAME
CHARACTER*3 FLGRAY(15)
DIMENSION UVAR(NUVARM),DIRECT(3,3),T(3,3),TIME(2)
DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*)
C The dimensions of the variables FLGRAY, ARRAY and JARRAY
C must be set equal to or greater than 15.
user coding to define UVAR
RETURN
END Variables to be defined
Variables passed in for information
Example: Calculation of stress relative to shift tensorBelow is an example of user subroutine UVARM. The subroutine calculates the position of the current state of stress relative to the center of the yield surface for the kinematic hardening plasticity model by subtracting the kinematic shift tensor, , from the stress tensor, . See About metal plasticity models for additional details. SUBROUTINE UVARM(UVAR,DIRECT,T,TIME,DTIME,CMNAME,ORNAME, 1 NUVARM,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD, 2 JMAC,JMATYP,MATLAYO,LACCFLA) C INCLUDE 'ABA_PARAM.INC' C CHARACTER*80 CMNAME,ORNAME CHARACTER*3 FLGRAY(15) DIMENSION UVAR(NUVARM),DIRECT(3,3),T(3,3),TIME(2) DIMENSION ARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),COORD(*) C C Error counter: JERROR = 0 C Stress tensor: CALL GETVRM('S',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA) JERROR = JERROR + JRCD UVAR(1) = ARRAY(1) UVAR(2) = ARRAY(2) UVAR(3) = ARRAY(3) UVAR(4) = ARRAY(4) UVAR(5) = ARRAY(5) UVAR(6) = ARRAY(6) C Kinematic shift tensor: CALL GETVRM('ALPHA',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP, 1 MATLAYO,LACCFLA) JERROR = JERROR + JRCD C Calculate the position relative to the center of the C yield surface: UVAR(1) = UVAR(1) - ARRAY(1) UVAR(2) = UVAR(2) - ARRAY(2) UVAR(3) = UVAR(3) - ARRAY(3) UVAR(4) = UVAR(4) - ARRAY(4) UVAR(5) = UVAR(5) - ARRAY(5) UVAR(6) = UVAR(6) - ARRAY(6) C If error, write comment to .DAT file: IF(JERROR.NE.0)THEN WRITE(6,*) 'REQUEST ERROR IN UVARM FOR ELEMENT NUMBER ', 1 NOEL,'INTEGRATION POINT NUMBER ',NPT ENDIF RETURN END |