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.