Engine Subroutine SIGEPSnn for Solid Elements
This subroutine calculates the stress tensor versus the strain tensor, strain rate tensor, density, volume, internal energy, or user-defined variables.
Arguments
SIGEPSnn
and its individual arguments and
descriptions
are:C-----------------------------------------------------------------------------------------
SUBROUTINE SIGEPS29 (
1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,NPF
2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,RHO ,
3 VOLUME ,EINT ,
4 EPSPXX ,EPSPYY ,EPSPZZ ,EPSPXY ,EPSPYZ ,EPSPZX ,
5 DEPSXX ,DEPSYY ,DEPSZZ ,DEPSXY ,DEPSYZ ,DEPSZX ,
6 EPSXX ,EPSYY ,EPSZZ ,EPSXY ,EPSYZ ,EPSZX ,
7 SIGOXX ,SIGOYY ,SIGOZZ ,SIGOXY ,SIGOYZ ,SIGOZX ,
8 SIGNXX ,SIGNYY ,SIGNZZ ,SIGNXY ,SIGNYZ ,SIGNZX ,
9 SIGVXX ,SIGVYY ,SIGVZZ ,SIGVXY ,SIGVYZ ,SIGVZX ,
A SOUNDSP,VISCMAX,UVAR ,OFF )
C-----------------------------------------------------------------------------------------
- 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
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.
- Variable
- Description
- K
- Bulk modulus
- G
- Shear modulus
- and
- Lame parameters
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 . |
RHO0 |
Float array read only | Array of size NEL containing initial
densities. |
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. |
EPSPXX , EPSPYY ,
EPSPZZ , EPSPXY ,
EPSPYZ , EPSPZX |
Float array read only | Arrays of size NEL containing
strain rates in directions XX, YY, and
ZZ and strain rates in directions XY, YZ,
ZX. |
DEPSXX , DEPSYY ,
DEPSZZ , DEPSXY ,
DEPSYZ , DEPSZX |
Float array read only | Arrays of size NEL containing
strain increments in directions XX, YY,
and ZZ and strain increments in directions XY, YZ,
and ZX. |
EPSXX , EPSYY ,
EPSZZ , EPSXY ,
EPSYZ , EPSZX |
Float array read only | Array of size NEL containing
strains in directions XX, YY, and ZZ
and 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. |
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. |
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.
|
Data Necessary for HEPH Compatibility
You must provide Radioss with plasticity information to
calculate physical stabilization forces of HEPH. Yield and Plastic strain values
must be given back to Radioss in the user law
(SIGEPS29.F
, SIGEPS.F
, or
SIGEPS.F
) to be compatible with the HEPH element. This can be
done through a call to routine SET_U_SOLPLAS
.
C---------------------------------------------------------------------
C New routine : SET_U_SOLPLAS allows to return to Altair Radioss,
C Yield and Plastic strain for all elements.
C
C Description of the arguments to be given to
C SET_U_SOLPLAS(NEL,YLD,PLA) :
C---------+-----------+---+--------------------------------------------
C VAR | SIZE |TYP| DEFINITION
C----------+--------+---+----------------------------------------------
C NEL | 1 | I | NUMBER OF ELEMENTS
C YLD | NEL | F | YIELD VALUE FOR EACH ELEMENT,
C (FOR THE CURRENT INTEGRATION POINT)
C PLA | NEL | F | PLASTIC STRAIN VALUE FOR EACH ELEMENT,
C (FOR THE CURRENT INTEGRATION POINT)
C---------+---------+---+---------------------------------------------
The arrays YLD
and PLA
, defined in the routine
SET_U_SOLPLAS
, have to be declared as local variables in the
user material routines SIGEPS29.F
, SIGEPS30.F
, and
SIGEPS31.F
with a sufficiently-long NEL
.
DOUBLE PRECISION YLD(NEL), PLA(NEL)
NEL
is set by Radioss and given as
an argument to the user routine. Therefore, the dynamic allocation is intended in
this statement.DOUBLE PRECISION YLD(4096), PLA(4096)
The statement must be sufficient in all cases, meaning the value of
NEL
given from Radioss to the user
routine should be less than 4096.