ADM703C - Writing User Subroutines in Adams/Solver

Horizontal spacer

This class is intended for experienced Adams users wanting to create Adams/Solver user subroutines. Initial setup with pre-existing libraries is considered, followed by the types of Adams/Solver elements which can be over-ridden. Dealing with user input is considered along with usage of the many built-in utility subroutines. Querying Adams/Solver for system state information (displacements, velocities, forces, etc.) is covered in detail, followed by initialization (IFLAG) and differencing (DFLAG) considerations. Callback subroutine functionality is presented for easy detection of simulation events (convergence, simulation start/end, saving/reloading, etc.) and considerations for threadsafe computations are discussed.

Students are expected to be comfortable with simple programming tasks in Fortran; this class does not provide a formal nor comprehensive introduction to the Fortran programming language.

1 Day
Pre-requisites : 
  • Moderate knowledge of the Fortran programming language
  • ADM701 - Complete Multibody Dynamics Analysis with Adams or ADM702 - Fundamentals of Multibody Dynamics Analysis with Adams
  • ADM703A - Advanced Modeling Elements and Techniques with Adams/Solver
  • ADM703b - Adams/Solver Theory: Achieving Robust, Converged Solutions
  • Using existing Adams/Solver libraries
  • Element types to over-ride, what is to be calculated
  • Inputs using the PAR array
  • Interface differences between Fortran and C
  • Querying system states using utility subroutines
  • Handling initialization and differencing calculations
  • Callback subroutines
  • Threadsafe computation considerations