User Subroutines

This manual describes the interface between Altair Radioss and user subroutines.

You can define private code of various categories, including:
  • User window (general interface for external code)
  • User material laws for solids and shells
  • User spring elements
  • User solid elements (may be degenerated to shell or beam elements)
  • User sensors
  • User failure models

To link Radioss to a user module of each category, two subroutines must be provided: one linked with Radioss Starter and one with Radioss Engine. The Starter subroutines are only used to read user data and initialize specified parameters. The Engine subroutines define and execute user programs. Storage arrays are provided for each type of application. The communication between Radioss and the User subroutines is done by passing function arguments by specialized functions. The function arguments are used for general purpose user window interface, user materials and elements. Only integer and float variables or arrays are used. The float arguments are, Double Precision.

Otherwise, all user subroutines use special access functions to retrieve information from the Radioss database.

The next sections will describe the standardized headers for each user subroutine, the access functions, and link procedures. Example program codes for each category are also provided.
Table 1. Radioss Starter and Engine Subroutines and Executables . (nn = 29, 30 or 31; n = 1, 2 or 3; m = 1, 2, 3, … ; i = 1 to 18 ; j = 1 to 99 ; k = 1 to 99), ll =04, 05 or 06
Radioss Starter Radioss Engine
User’s Input Options Engine File Options
User material /MAT/USERn /ANIM/keyword/USRi

/ANIM/keyword/USRj/k

User property /PROP/USERn
User sensor /SENSOR/USERm
User failure /FAIL/USern
User’s Subroutines
User window USERWIS.f USERWI.f
User material laws 29, 30, 31 Shell LECMnn.f SIGEPSnnC.f
Solid LECMnn.f SIGEPSnn.f
User property Spring LECGnn.f and RINInn.f RUSERnn.f
Solid LECGnn.f and SINInn.f SUSERnn.f
User failure 01, 02, 04 Shell LECRll.f flllawC.f
Solid LECRll.f flllaw.f
User sensor LECSEN_USERm.f USER_SENm.f
Object Files
User window USERWIS.o USERWI.o
User material laws 29, 30, 31 Shell LECMnn.o
Solid LECMnn.o
User spring Spring LECGnn.o and RINInn.o
Solid LECGnn.o and SINInn.o
User failure 01, 02, 04 Shell LECRll.o
Solid LECRll.o
User sensor LECSEN_USERm.o USER_SENm.o
Object library
"radioss_engine_library".a "radioss_starter_library".a
   
User’s Executables
"user_engine_executable" "user_starter_executable"


Figure 1.

Saving User’s Variables in Animation

The user’s variables UVAR (element_number,i) defined in the user’s material law can be saved in an animation file using the output USERi as keyword3 in the Engine option /ANIM/keyword2/keyword3.

The number of saved variables is limited to 18 ( 1i18 MathType@MTEF@5@5@+= feaagKart1ev2aaatCvAUfeBSjuyZL2yd9gzLbvyNv2CaerbwvMCKf MBHbqefqvATv2CG4uz3bIuV1wyUbqedmvETj2BSbqefm0B1jxALjhi ov2DaebbnrfifHhDYfgasaacH8srps0lbbf9q8WrFfeuY=Hhbbf9v8 qqaqFr0xc9pk0xbba9q8WqFfea0=yr0RYxir=Jbba9q8aq0=yq=He9 q8qqQ8frFve9Fve9Ff0dmeaacaGacmGadaWaaiqacaabaiaafaaake aacaaIXaGaeyizImQaamyAaiabgsMiJkaaigdacaaI4aaaaa@3F67@ ). Results are saved for each integration point.

Example: The user variable number 1 UVAR (element number,1) is saved in animations by the Engine option /ANIM/ELEM/USER1.

The number of user variables is set in NUVAR (Starter argument).