# Engine Subroutine LUSERnn for Solid Elements

This subroutine calculates the stress tenor versus the strain tensor, strain rate tensor, density, volume, internal energy, or user variables.

## Arguments

The argument list of LUSERnn and its individual arguments and descriptions are:
C---------------------------------------------------------------------------
SUBROUTINE LUSERnn (
1     NEL    ,NUPARAM,NUVAR   ,NFUNC   ,IFUNC   ,NPF    ,
2     TF     ,TIME   ,TIMESTEP,UPARAM     ,RHO    , VOLUME ,
3     EINT  , NGL, SOUNDSP,VISCMAX,UVAR    ,OFF  ,
4     SIGY  , PLA  , USERBUF    )
C---------------------------------------------------------------------------
The user’s material law can be used in isotropic or orthotropic modes and conection element:
• With isotropic mode, the directions XX, YY, ... are the global reference frame axis. The old elastoplastic stresses (arrays SIGOXX, SIGOYY, ...) are already rotated to take into account the rigid body rotation.
• With orthotropic mode, the directions are the orthotropic frame axis.
• With connection element (/PROP/TYPE43), only directions ZZ,ZX, and YZ have to be defined.
You must use the Fortran float external function FINTER (shown below) 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 ith user’s function
DYDX
Slope
NPF, TF
Private function parameters

The SOUNDSP array is used in the calculation of the stability time step, the hourglass forces, and the artificial viscous pressure Q.

For isotropic materials, the sound speed value should be equal to the plane wave speed.

For elastic or elastoplastic materials, the sound speed is given by the following equation.(1) $c=\sqrt{\frac{K+\text{4G}/\text{3}}{{\rho }_{\text{0}}}}=\sqrt{\frac{\lambda +\text{2μ}}{{\rho }_{\text{0}}}}$
Where,
Variable
Description
K
Bulk modulus
$K=\frac{E}{\text{3}\left(\text{1}-\text{2υ}\right)}$
G
Shear modulus
$G=\mu =\frac{E}{\text{2}\left(\text{1}+\upsilon \right)}$
$\lambda$ and $\mu$
Lame parameters
$\lambda +\text{2μ}=\frac{E\left(\text{1}-\upsilon \right)}{\left(\text{1}+\upsilon \right)\left(\text{1}-\text{2υ}\right)}$

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 machine-dependent 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).
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.
RHO Float array read only Array of size NEL containing current densities.
VOLUME Float array read only Array of size NEL containing current element volumes.
EINT Float array read only Array of size NEL containing total internal 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.
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.
0
If the element is OFF
1
If the element is ON
USERBUF Data structure read write Defined in LAW_USERSO.mod. This module is used inside LUSERnn.
This USERBUF data structure contains:
Argument Format Description
ID Integer read only scalar Material ID defined in Starter input deck.
NCYCLE Integer read only Cycle number. First cycle is equal to 0.
IPTR Integer read only Integration point (direction r).
IPTS Integer read only Integration point (direction s).
IPTT Integer read only Integration point (direction t).
EPSPXX, EPSPYY, EPSPZZ, EPSPXY, EPSPYZ, EPSPZX Float array read only Arrays of size NEL containing $\text{ε}$ strain rates in directions XX, YY, and ZZ and $\gamma$ strain rates in directions XY, YZ, ZX.
DEPSXX, DEPSYY, DEPSZZ, DEPSXY, DEPSYZ, DEPSZX Float array read only Arrays of size NEL containing $\text{ε}$ strain increments in directions XX, YY, and ZZ and $\gamma$ strain increments in directions XY, YZ, and ZX.
EPSXX, EPSYY, EPSZZ, EPSXY, EPSYZ, EPSZX Float array read only Array of size NEL containing $\text{ε}$ strains in directions XX, YY, and ZZ and $\gamma$ strains in directions XY, YZ, and ZX.
SIGOXX, SIGOYY, SIGOZZ, SIGOXY, SIGOYZ, SIGOZX Float array read only Array of size NEL with old (previous time step) elastoplastic stresses in directions XX, YY, ZZ, XY, YZ, and ZX.
FPSXX, FPSYY, FPSZZ, FPSXY, FPSYX, FPSXZ, FPSZX, FPSYZ, FPSZY Float array ready only Array of size NEL containing the deformation gradient tensor.
UPSXX, UPSYY, UPSZZ, UPSXY, UPSYZ, UPSXZ Float array ready only Array of size NEL containing the stretch tensor.
R11, R12, R13, R21, R22, R23, R31, R32, R33 Float array write only Array of size NEL containing rotation matrices from the global skew system to an element skew system.
SIGNXX, SIGNYY, SIGNZZ, SIGNXY, SIGNYZ, SIGNZX Float array write only Array of size NEL with new computed elastoplastic stresses in directions XX, YY, ZZ, 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, ZZ, XY, YZ, and ZX.
RHO0 Float array read only Array of size NEL containing initial densities.
DPLA Float array write only Array of size NEL containing incremental plastic strain.
TEMP Float array read only Array of size NEL containing temperature.

## Data Necessary for HEPH Compatibility

### Definitions

Argument Format Description
PLA Float array write only Array of size NEL containing plastic strain.
SIGY Float array read only Array of size NEL containing yield stress.