Engine Subroutine SIGEPSnnC for Shell Elements
This subroutine calculates the stress tensor versus the strain tensor, strain rate tensor, or user variables.
Arguments
SIGEPSnnC
and its individual arguments and
descriptions
are:C-----------------------------------------------------------------------------------------
SUBROUTINE SIGEPS29C(
1 NEL ,NUPARAM,NUVAR ,NFUNC ,IFUNC ,
2 NPF ,NPT ,IPT ,IFLAG ,
2 TF ,TIME ,TIMESTEP,UPARAM ,RHO0 ,
3 AREA ,EINT ,THKLY ,
4 EPSPXX ,EPSPYY ,EPSPXY ,EPSPYZ ,EPSPZX ,
5 DEPSXX ,DEPSYY ,DEPSXY ,DEPSYZ ,DEPSZX ,
6 EPSXX ,EPSYY ,EPSXY ,EPSYZ ,EPSZX ,
7 SIGOXX ,SIGOYY ,SIGOXY ,SIGOYZ ,SIGOZX ,
8 SIGNXX ,SIGNYY ,SIGNXY ,SIGNYZ ,SIGNZX ,
9 SIGVXX ,SIGVYY ,SIGVXY ,SIGVYZ ,SIGVZX ,
A SOUNDSP,VISCMAX,THK ,PLA ,UVAR ,
B OFF ,NGL ,SHF)
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. Stress 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 ith 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 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). |
NPT |
Integer read only scalar | Number of layers or integration points. |
IPT |
Integer read only scalar | Current layer or interrogation point. |
IFLAG |
Integer array read only scalar | Array of size NEL with geometrical
flags. |
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 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. |
THKLY |
Float array write only | Array of size NEL with the layer thickness
at each integration point. |
EPSPXX , EPSPYY ,
EPSPXY , EPSPYZ ,
EPSPZX |
Float array read only | Arrays of size NEL containing
strain rates in directions XX and YY
and strains in directions XY, YZ, and ZX. |
DEPSXX , DEPSYY ,
DEPSXY , DEPSYZ ,
DEPSZX |
Float array read only | Arrays of size NEL containing
strain increments in directions XX and
YY and strain increments in directions XY, YZ,
and ZX. |
EPSXX , EPSYY ,
EPSXY , EPSYZ ,
EPSZX |
Float array read only | Array of size NEL containing
strains in directions XX and YY and
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. |
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. |
THK |
Float array read write | Array of size NEL containing total
thickness. |
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. |
Shell Element Law Output
Unlike solid elements, shell elements do not have any variables specific to user’s law that are saved in time-history and animation.
Data Necessary for QEPH Compatibility
With QEPH, you must provide Radioss information relative
to plasticity so that physical stabilization can be accurately calculated. Yield
value and value Et/E (tangent modulus divided by Young’s modulus) must be given back
to Radioss in the user law
(SIGEPS29C.F
, SIGEPS30C.F
, or
SIGEPS31C.F
) to be compatible with the QEPH element.
This can be done through a call to routine SET_U_SHLPLAS
.
C-------------------------------------------------------------------------
C New routine : SET_U_SHLPLAS allows to return to Altair Radioss,
C Yield and Et/E for all elements.
C
C Description of the arguments to be given to
C SET_U_SHLPLAS(NEL,YLD,ETSE) :
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 ETSE | NEL | F | VALUE FOR EACH ELEMENT,
C AND THE CURRENT INTEGRATION POINT OF :
C ETSE = 1 in case of an elastic increment
C = H/(H+E) in case of a plastic increment
C where H : plastic tangent modulus,
C E : Young modulus
C---------+---------+---+---+--------------------------------------------
The arrays YLD
and ETSE
, defined in the routine
SET_U_SHLPLAS
, have to be declared as local variables in the
user material routines SIGEPS29C.F
, SIGEPS30C.F
,
and SIGEPS30C.F
with a sufficiently-long NEL
.
DOUBLE PRECISION YLD(NEL), ETSE(NEL)
NEL
is set by Radioss and given as
an argument to the user routine. Therefore, the dynamic allocation is intended in
this statement. In this case, use the following
statement.DOUBLE PRECISION YLD(4096), ETSE(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.