User-defined subroutines enable you to define your own modeling entities. For example, you may define a new constraint type using the UCOSUB user subroutine, or a new general force element using the GFOSUB user subroutine. User subroutines can be written in FORTRAN or C/C++. A compiler is necessary to compile and link the user subroutines into a DLL (dynamically linked library). MotionSolve calls the DLL as necessary during the simulation process.
User subroutines provide the following key benefits:
• | Significantly faster simulation than expressions. |
• | Hides proprietary knowledge by compiling it into a DLL. |
• | Complete access to all solver functions. |
• | The full power of the programming language. |
User subroutines have been used to model varied and complex elements like tires, hydrodynamic bearing pressures, aerodynamic forces, amplitude, and frequency dependent bushing models and friction models.
The table below summarizes the user subroutines that are currently available in MotionSolve.
User Defined Subroutines |
CONSUB, COUSUB, COUXX, COUXX2, CURSUB, DIFSUB, DMPSUB, FIESUB, GFOSUB, GSESUB, GSEXU, GSEXX, MOTSUB, REQSUB, SENSUB, SEVSUB, SFOSUB, SURSUB, UCOSUB, VARSUB, VFOSUB, VTOSUB, SPLINE_READ |
User defined subroutines available in MotionSolve
To allow access to solver run-time information for the user subroutines, a variety of utility functions are available. The table below summarizes the utility functions available in MoionSolve.
Utility Subroutines |
|
Execution Control Subroutines |
DATOUT, MODIFY |
Data Access Subroutines |
AKISPL, CUBSPL, ERRMES, GETCPU, GETINM, GETINT, GETMOD, GETSLV, GETSTM, GETVER, GTARAY, GTCURV, GTSTRG, GTUNTS, MODINF, NMODES, SYSARY, SYSFNC, TIMGET, USRMES, GET_MATRIX_INFO, GET_SPARSE_MATRIX_DATA, GET_FULL_MATRIX_DATA |
Setup Subroutines |
PUT_SPLINE, UCOMAR, UCOVAR |
General Subroutines |
BISTOP, CHEBY, FORCOS, FORSIN, HAVSIN, IMPACT, ISTRNG, POLY, RCNVRT, RSTRNG, SHF, STEP, STEP5, SWEEP, TCNVRT |
Utility-subroutines available in MotionSolve.
For detailed information, refer to the User Defined Subroutines topic in the XML Format help.
See Also: