Appendix

Appendix 1 - Available User's Arguments

Available Starter User's Arguments

Table 1. Starter User’s Arguments – Material Law for Shells
Variable Size Type Write/read Definition
IIN 1 Integer R Input file unit (Starter input file)
IOUT 1 Integer R Output file unit (Starter output file)
UPARAM NUPARAM Float W User’s parameter
MAXNUPARAM 1 Integer R Maximum size of UPARAM
NUPARAM 1 Integer W Size of UPARAM
NUVAR 1 Integer W Number of user’s variables
IFUNC NFUNCT Integer W Function number array
MAXNFUNC 1 Integer R Maximum size of IFUNC
NFUNCT 1 Integer W Size of IFUNC
PARMAT 3 Float W (1) Stiffness modulus for interface

(2) Young's modulus (for shell)

(3) Poisson’s ratio (for shell)

Table 2. Starter User’s Arguments – Material Law for Bricks
Variable Size Type Write/read Definition
IIN 1 Integer R Input file unit (Starter input file)
IOUT 1 Integer R Output file unit (Starter output file)
UPARAM NUPARAM Float W User’s parameter
MAXNUPARAM 1 Integer R Maximum size of UPARAM
NUPARAM 1 Integer W Size of UPARAM
NUVAR 1 Integer W Number of user’s variables
IFUNC NFUNCT Integer W Function number array
MAXNFUNC 1 Integer R Maximum size of IFUNC
NFUNCT 1 Integer W Size of IFUNC
STIFINT 1 Integer W Stiffness modulus for interface
Table 3. Starter User’s Arguments – Spring Property
Variable Size Type Write/read Definition
IIN 1 Integer R Input file unit (Starter input file)
IOUT 1 Integer R Output file unit (Starter output file)
NUVAR 1 Integer W Number of user’s variables
UVAR NUVAR* NEL Float R/W User’s variable
PARGEO * Float W (1) Skew number

(2) Stiffness for interface

(3) Front wave option

NEL 1 Integer R Number of elements
IPROP 1 Integer R Property number
IX 3* NEL Float R Spring connectivity
XL NEL Float R Element length
MASS NEL Float W Element mass
XINER NEL Float W Element inertia (spherical)
STIFM NEL Float W Element stiffness (time step)
STIFR NEL Float W Element rotation stiffness (time step)
VISCM NEL Float W Element viscosity (time step)
VISCR NEL Float W Element rotation viscosity (time step)
Table 4. Starter User’s Arguments – Solid Property
Variable Size Type Write/read Definition
NEL 1 Integer R Number of elements
IIN 1 Integer R Input file unit (Starter input file)
IOUT 1 Integer R Output file unit (Starter output file)
NUVAR 1 Integer W Number of user’s variables
UVAR NUVAR* NEL Float R/W User’s variable
PARGEO * Float W (1) Skew number

(2) Stiffness for interface

(3) Front wave option

IPROP 1 Integer R Property number
IMAT 1 Integer R Material number
SOLID_ID NEL Integer R Solid Element id t=0
EINT NEL Float W Total internal energy t=0
VOL NEL Float R/W Initial volume
OFF NEL Float R/W Delete flag
RHO NEL Float R/W Density
SIG 6*NEL Float R/W Stress tensor
XX1 NEL Float R X coordinate node 1
YY1 NEL Float R Y coordinate node 1
ZZ1 NEL Float R Z coordinate node 1
XX2 . . ZZ8 NEL Float R Same for node 2 to 8
VX1 NEL Float R X velocity node 1
VY1 NEL Float R Y velocity node 1
VZ1 NEL Float R Z velocity node 1
VRX1 NEL Float R X rotational velocity node 1
VRY1 NEL Float R Y rotational velocity node 1
VRZ1 NEL Float R Z rotational velocity node 1
MAS1 NEL Float W Mass node 1
MAS2 . . MAS8 NEL Float W Same for node 2 to 8
INN1 NEL Float W Inertia node 1
INN2 . . INN8 NEL Float W Same for node 2 to 8
STIFM NEL Float W Element stiffness (time step)
STIFR NEL Float W Element rotation stiffness (time step)
VISCM NEL Float W Element viscosity (time step)
VISCR NEL Float W Element rotation viscosity (time step)
Table 5. Starter User’s Arguments – Sensor
Variable Size Type Write/read Definition
IIN 1 Integer R Input file unit (Starter input file)
IOUT 1 Integer R Output file unit (Starter output file)

Available Engine User's Arguments

Table 6. Engine User’s Arguments – Material Law for Shells
Variable Size Type Write/read Definition
NEL 1 Integer R Number of elements
UVAR NUVAR* NEL Float R/W User’s variable
UPARAM NUPARAM Float W User’s parameter
NUPARAM 1 Integer W Size of UPARAM
NUVAR 1 Integer W Number of user’s variables
NFUNCT 1 Integer W Size of IFUNC
IFUNC NFUNCT Integer W Function number array
NPF * Integer R Function array
NPT 1 Integer R Number of layers or integration points
IPT 1 Integer R Layer or integration point number
IFLAG * Integer R Geometrical flags
TF * Float R Function array
NGL NEL Integer R Element number
TIME 1 Float R Current time
TIMESTEP 1 Float R Current time step
RHO0 NEL Float R Initial density
AREA NEL Float R Area
EINT NEL Float R Total internal energy
THKLY NEL Float R Layer thickness
EPSPXX NEL Float W Strain rate XX
DEPSXX NEL Float W Strain increment XX
EPSXX NEL Float W Strain XX
SIGOXX NEL Float W Old elasto-plastic stress XX
SIGNXX NEL Float W New elasto-plastic stress XX
SIGVXX NEL Float W Viscous stress XX
SOUNDSP NEL Float W Sound speed (time step)
VISCMAX NEL Float W Max damping modulus (time step)
THK NEL Float R/W Thickness
PLA NEL Float R/W Plastic strain
OFF NEL Float R/W Delete flag
Table 7. Engine User’s Arguments – Material Law for Bricks
Variable Size Type Write/read Definition
NEL 1 Integer R Number of elements
UVAR NUVAR* NEL Float R/W User’s variable
UPARAM NUPARAM Float W User’s parameter
NUPARAM 1 Integer W Size of UPARAM
NUVAR 1 Integer W Number of user’s variables
NFUNCT 1 Integer W Size of IFUNC
IFUNC NFUNCT Integer W Function number array
NPF * Integer R Function array
TF * Float R Function array
NGL NEL Integer R Element number
TIME 1 Float R Current time
TIMESTEP 1 Float R Current time step
RHO0 NEL Float R Initial density
RHO NEL Float R Density
VOLUME NEL Float R Volume
EINT NEL Float R Total internal energy
EPSPXX NEL Float W Strain rate XX
DEPSXX NEL Float W Strain increment XX
EPSXX NEL Float W Strain XX
SIGOXX NEL Float W Old elasto-plastic stress XX
SIGNXX NEL Float W New elasto-plastic stress XX
SIGVXX NEL Float W Viscous stress XX
SOUNDSP NEL Float W Sound speed (time step)
VISCMAX NEL Float W Max damping modulus (time step)
OFF NEL Float R/W Delete flag
Table 8. Engine User’s Arguments – Spring Property
Variable Size Type Write/read Definition
NEL 1 Integer R Number of elements
IPROP 1 Integer R Property number
UVAR NUVAR* NEL Float R/W User’s variable
NUVAR 1 Integer W Number of user’s variables
FX NEL Float R/W Tension force
FY NEL Float R/W Y shear force
FZ NEL Float R/W Z shear force
XMOM NEL Float R/W Torsion moment
YMOM NEL Float R/W Y bending moment
ZMOM NEL Float R/W Z bending moment
EINT NEL Float R/W Total internal energy
OFF NEL Float R/W Delete flag
STIFM NEL Float W Element stiffness (time step)
STIFR NEL Float W Element rotation stiffness (time step)
VISCM NEL Float W Element viscosity (time step)
VISCR NEL Float W Element rotation viscosity (time step)
MASS NEL Float W Element mass
XINER NEL Float W Element inertia (spherical)
DT 1 Integer R Time step
XL NEL Float R Element length
XL NEL Float R Element length
VX NEL Float R Tension velocity
RY1 NEL Float R Node 1 Y bending rotational velocity
RZ1 NEL Float R Node 1 Z bending rotational velocity
RX NEL Float R Torsional velocity
RY2 NEL Float R Node 2 Y bending rotational velocity
RZ2 NEL Float R Node 2 Z bending rotational velocity
Table 9. Engine User’s Arguments
Variable Size Type Write/read Definition
NEL 1 Integer R Number of elements
IOUT 1 Integer R Output file unit (Engine output file)
UVAR NUVAR* NEL Float R/W User’s variable
IPROP 1 Integer R Property number
IMAT 1 Integer R Material number
SOLID_ID NEL Integer R Solid Element ID
EINT NEL Float R Total internal energy
VOL NEL Float R Initial volume
OFF NEL Float R/W Delete flag
RHO NEL Float R/W Density
SIG 6* NEL Float R/W Stress tensor
XX1 NEL Float R X coordinate node 1
YY1 NEL Float R Y coordinate node 1
ZZ1 NEL Float R Z coordinate node 1
XX2 . . ZZ8 NEL Float R Same for node 2 to 8
VX1 NEL Float R X velocity node 1
VY1 NEL Float R Y velocity node 1
VZ1 NEL Float R Z velocity node 1
VRX1 NEL Float R X rotational velocity node 1
VRY1 NEL Float R Y rotational velocity node 1
VRZ1 NEL Float R Z rotational velocity node 1
FX1 NEL Float W X force node 1
FY1 NEL Float W Y force node 1
FZ1 NEL Float W Z force node 1
MX1 NEL Float W X moment node 1
MY1 NEL Float W Y moment node 1
MZ1 NEL Float W Z moment node 1
STIFM NEL Float W Element stiffness (time step)
STIFR NEL Float W Element rotation stiffness (time step)
VISCM NEL Float W Element viscosity (time step)
VISCR NEL Float W Element rotation viscosity (time step)
Table 10. Engine User’s Arguments – Sensor
Variable Size Type Write/read Definition
ID NEL Integer R Sensor ID

Appendix 2 - Communication Between User's Subroutines and Radioss Code

The main functions to access user’s properties and materials are return functions and storage functions.

Return Function Variables Description
INTEGER IP = GET_U_P(PID) PID Integer property ID Returns a property number.
INTEGER PID = GET_U_PID(IP) IP Property number Returns the user property ID corresponding to the user property number IP.
FLOAT PARAMI = GET U GEO (I,IP) I Parameter index (1 for the first parameter, …) Returns the user geometry parameters.
IP Property number
INTEGER II = GET U PNU (I,IP,KK)

IFUNCI = GET_U_PNU (I,IP,KFUNC)

IPROPI = GET_U_PNU(I,IP,KPROP)

IMATI = GET_U_PNU(I,IP,KMAT)

I Parameter index Returns the user-stored function (if KK=KFUNC), material (if KK=KMAT), or property (if KK=KPROP) numbers.

See Starter subroutine for corresponding ID storage.

IP Property number
KK Parameters KFUNC, KMAT, KPROP
INTEGER IM = GET_U_M(MID) MID Material ID Returns a material number.
INTEGER MID = GET_U_MID(IM) IM Material number Returns the user material ID corresponding to user material number IM.
FLOAT PARAMI = GET_U_MAT(I,IM) I Parameter index Returns the user material parameters.
Note: GET_U_MAT(0,IMAT) returns the density.
IM Material number
INTEGER IFUNCI = GET_U_MNU (I,IM,KFUNC) I Variable index Returns the user-stored function numbers (function referred by user’s materials).

See the Starter material user’s subroutine for corresponding ID storage.

IM Material number
KFUNC Only functions are yet available
FLOAT Y = GET_U_FUNC(IFUNC,X,DYDX) IFUNC Function numbered obtained by IFUNC = GET_U_MNU(I,IM, KFUNC) or IFUNC = GET_U_PNU(I,IP,KFUNC) Returns Y(X).
X X value
DYDX Slope dY/dX
Storage Function Description
INTEGER ierror = SET_U_PNU(func_index, fun_id, KFUNC) Stores Radioss function fun_id in the current user property buffer at a position referenced by func_index.
INTEGER ierror = SET_U_PNU(mat_index, mid, KMAT) Stores Radioss material mid in the current user property buffer at a position referenced by mat_index.
INTEGER ierror = SET_U_PNU(prop_index, pid, KPROP) Stores Radioss property pid in the current user property buffer at a position referenced by prop_index.
INTEGER ierror = SET_U_GEO(value_index, value) Stores a value in the current user property buffer at a position referenced by value_index.
Specific functions for user's subroutines type sensor include:
Function Variables Description
INTEGER NUM = GET_U_NUMSENS(ID) ID Sensor ID Allows you to get a sensor number.
NUM Sensor number
INTEGER ierror = GET_U_SENS_FPAR(IVAR, VAR) IVAR Float variable index Allows you to retrieve a float sensor parameter.
VAR Integer value
INTEGER ierror = GET_U_SENS_IPAR(IVAR, VAR) IVAR Integer variable index Allows you to retrieve an integer sensor parameter.
VAR Integer value
INTEGER ierror = SET_U_SENS_VALUE(NSENS,IVAR,VAR) NSENS Integer sensor number Allows you to write a variable to a sensor buffer (float).
IVAR Integer buffer index
VAR Float value
INTEGER ierror = GET_U_SENS_VALUE(NSENS,IVAR,VAR) NSENS Integer sensor number Allows you to read a variable from a sensor buffer (float).
IVAR Integer buffer index
VAR Float value
INTEGER ierror = SET_U_SENS_ACTI(NSENS) NSENS Integer sensor number Allows you to activate a sensor using Radioss flag.
FLOAT DTIME = GET_U_SENS_ACTI(NSENS) DTIME Float time delay since first activation.
(actif < = > DTIME   >
                0)
Allows you to check Radioss activation status of a sensor.
NSENS Integer sensor number
FLOAT TIME = GET_U_TIME() Allows you to check the current time.
INTEGER NCYC = GET_U_CYCLE() Allows you to check the current cycle.
INTEGER IERR = GET_U_ACCEL(NACC, AX,AY,AZ) AX, AY, AZ Float acceleration components Allows you to access accelerometer values.
NACC Integer accelerator number
IDACC Integer accelerator ID
NACC GET_U_NUMACC(IDACC)
INTEGER IERR = GET_U_NOD_X(NOD, X,Y,Z)

INTEGER IERR = GET_U_NOD_D(NOD, DX,DY,DZ)

INTEGER IERR = GET_U_NOD_V(NOD, VX,VY,VZ)

INTEGER IERR = GET_U_NOD_A(NOD, AX,AY,AZ)

X, Y, Z Float nodal coordinates Allows you access to nodal values.
DX, DY, DZ Float nodal displacements
VX, VY, VZ Float nodal velocities
AX, AY, AZ Float nodal accelerations
NOD Integer node number
NID Integer node ID
NOD GET_U_NUMNOD(ID)
FLOAT Y = GET_U_FUNC(IFUNC, X, DERI) X Float ordinate Allows you to access Radioss functions.
Y Float abscissa
DERI Float Y/X
IFUNC Integer function number
IDFUN Integer function ID, where

INTEGER IFUNC = GET_U_NUMFUN(IDFUN)

Communication Between User's Modules and Radioss Database



Figure 1.

Appendix 3 - General User's Subroutine Format with Material Laws 29, 30, and 31

Starter Format Example



Figure 2.

Engine Format Example



Figure 3.

Example Demo File

<install_directory>/hwsolvers/demos/radioss/User_Subroutines/7_appendix/appendix3/*

Appendix 4 - General User's Subroutine Format with Extended User Material Laws

Starter Format Example



Figure 4.

Engine Format Example



Figure 5.

Example Demo File

<install_directory>/hwsolvers/demos/radioss/User_Subroutines/7_appendix/appendix4/*