Engine Subroutine LUSERnnC for Shell Elements
This subroutine calculates the stress tensor versus the strain tensor, strain rate tensor, or user variables.
Arguments
C
SUBROUTINE LUSERnnC(
1 NEL,NUPARAM,NUVAR,NFUNC,IFUNC,
2 NPF,NGL,TF,TIME,TIMESTEP,
3 UPARAM,RHO0,AREA,EINT,SHF,
4 SOUNDSP,VISCMAX,PLA,UVAR,OFF,
5 SIGY,USERBUF)
C
The user’s material law can be used in isotropic mode with PID 1 or in orthotropic mode with PID 9, 10, or 11. The directions XX, YY, ... are the shell local reference frame axis. Stresses are computed at each integration point.
FINTER
to get the value Y of
the function for the abscissa
X.Y=FINTER(IFUNC(I),X,NPF,TF,DYDX)
 Variable
 Description
 Y
 Interpolated value
 X
 Abscissa value of the function
 I
 The i^{th} user’s function
 DYDX
 Slope
 NPF, TF
 Private function parameters
The SOUNDSP
array should always be set by you. It is used to
calculate the stability time step and the hourglass forces. The sound speed value
should be equal to the plane wave speed.
Use VISCMAX
to calculate the time step stability when the material
law formulation is viscous.
Definitions
Argument  Format  Description 

NEL 
Integer read only scalar  Number of elements per group. In Radioss Engine subroutines, the element data are treated by groups for vectorization. This argument is machinedependent and set by Radioss. 
NUPARAM 
Integer read only scalar  Size of the user parameter array. 
NUVAR 
Integer read only scalar  Number of user element variables. 
NFUNC 
Integer read only scalar  Number of functions used for material law. 
IFUNC 
Integer array read only  Array of size NFUNC with function
indexes. 
NPF 
Integer array private data  Array used by FINTER (float external
function). 
TF 
Integer array private data  Array used by FINTER (float external
function). 
IPT 
Integer read only scalar  Current layer or interrogation point. 
TIME 
Float read only  Current time. 
TIMESTEP 
Float read only  Current time step. 
UPARAM 
Float array read only  User material parameter array of size
NUPARAM . 
RHO0 
Float array read only  Array of size NEL with initial
densities. 
AREA 
Float array read only  Array of size NEL with current element
surfaces. 
EINT 
Float array read only  Array of size 2*NEL with internal membrane and
bending energy. 
SOUNDSP 
Float array write only  Array of size NEL containing sound
speed. 
VISCMAX 
Float array write only  Array of size NEL containing the maximum
damping modulus. 
PLA 
Float array read write  Array of size NEL containing plastic
strain. 
UVAR 
Float array read write  Array of size NEL *NUVAR
containing user element variables. 
OFF 
Float array read write  Array of size NEL containing deleted element
flags.

NGL 
Integer array read only  Array of size NEL containing the external
element number. 
SIGY 
Float array read write  Array of size NEL containing yield
stress. 
USERBUF 
Data structure read writer  Defined in LAW_USERSH.mod. This module
should be used to relink the executable inside
LUSERnnC . 
USERBUF
module contains:
Argument  Format  Description 

NCYCLE 
Integer read only scalar  Current cycle. 
ID 
Integer read only scalar  User material ID. 
ILAYER 
Integer read only scalar  Current cycle. 
IPG 
Integer read only scalar  GAUSS Integration point (surface). 
NPTA 
Integer read only scalar  Number of layers or integration points. 
IFLAG 
Integer array read only scalar  Array of size NEL containing geometric
flags. 
FPSXX , FPSYY ,
FPSZZ , FPSXY ,
FPSYX 
Float array read only  Array of size NEL containing the deformation
gradient tensor. 
R11 , R12 ,
R13 , R21 ,
R22 , R23 ,
R31 , R32 ,
R33 
Float arrays read only  Array of size NEL containing rotation
matrices from the global skew system to an element skew
system. 
THKLYL 
Float array read only  Array of size NEL containing the layer
thickness at each integration point. 
THKN 
Float array read write  Array of size NEL containing total
thickness. 
EPSPXX , EPSPYY ,
EPSPXY , EPSPYZ ,
EPSPZX 
Float array read only  Arrays of size NEL containing
$\text{\epsilon}$ strain rates in directions XX and YY
and $\gamma $ strains in directions XY, YZ, and ZX.

DEPSXX , DEPSYY ,
DEPSXY , DEPSYZ ,
DEPSZX 
Float array read only  Arrays of size NEL containing
$\text{\epsilon}$ strain increments in directions XX and
YY and $\gamma $ strain increments in directions XY, YZ,
and ZX. 
EPSXX , EPSYY ,
EPSXY , EPSYZ ,
EPSZX 
Float array read only  Array of size NEL containing
$\text{\epsilon}$ strains in directions XX and YY and
$\gamma $ strains in directions XY, YZ, and
ZX. 
SIGOXX , SIGOYY ,
SIGOZZ , SIGOXY ,
SIGOYZ , SIGOZX 
Float array read only  Array of size NEL containing old (previous
time step) elastoplastic stresses in directions XX, YY, ZZ, XY,
YZ, and ZX. 
SIGNXX , SIGNYY ,
SIGNXY , SIGNYZ ,
SIGNZX 
Float array write only  Array of size NEL containing new computed
elastoplastic stresses in directions XX, YY, XY, YZ, and ZX.

SIGVXX , SIGVYY ,
SIGVZZ , SIGVXY ,
SIGVYZ , SIGVZX 
Float array write only  Array of size NEL containing viscous
stresses in directions XX, YY, XY, YZ, and ZX. 
DPLA 
Float array write only  Array of size NEL containing the plastic
strain. 
ETSE 
Float array write only  Array of size NEL containing Et/E (tangent
modulus divided by Young’s modulus). 
TEMP 
Float array read only  Array of size NEL containing the
temperature. 
Shell Element Law Output
Unlike solid elements, shell elements do not have any variables specific to user’s law that are saved in timehistory and animation.
Data Necessary for QEPH Compatibility
The Yield value and value Et/E (tangent modulus divided by Young's modulus) must be given in order for this law to be compatible with QEPH element. The prototype of this routine and the necessary data to provide are described in User's Material Law for Shell Elements Example.