DynamY is a C++ class library for the simulation of mechanical systems with unilateral contacts and friction, which was developped in the course of a Ph.D. thesis
at the Center of Mechanics (IMES) at the ETH Zurich. In contrast to most software codes, dynamY does not use regularized but set-valued force laws to model the unilateral contacts and friction
[Glocker 1995, Glocker 2001].
The numerical integration is performed using Moreau's time-stepping scheme
Modeling of unilateral contacts and friction
Unilateral contacts and friction can either be modeled by regularized or set-valued force laws. In the following we discuss an example to introduce the topic. Consider a block which can slide or stick on a table, see figure 1 a. The motion of the block is described by the equation of motion, wheras the friction force is unknown and must be specified by a force law, see figure 1 b.
Regularized force laws for friction write the friction force as function of the velocity, see figure 2 a. Doing so, one can eliminate the friction force to obtain an ordinary differential equation. The approach has numerical drawbacks in application. The resulting ordinary differential equations are stiff and require therfore special attention. In addition, oscillations may occur which are induced by the regularization. Also the choice of suitable regularization parameters is a problem. Note in addition that also the sticking case is associated with small velocities, which does not correspond to the physical nature of friction.
A more sophisticated approach which is used by dynamY is the non-smooth approach, which uses set-valued force laws to model mechanical systems with unilateral contacts and friction. Consider again the block which slides or sticks on the table. The associated set-valued force law for friction is shown in figure 2 b. Regarding the sliding case, the friction force is given, regarding the sticking case, the friction froce is set-valued and determined according to an additional algebraic constraint. To conclude, the non-smooth approach changes the underlying mathematical structure if required and leads to a proper description of mechanical systems with unilateral contacts and friction. As a consequence of the changing mathematical structure, impacts can occur, and the time evolutions of the positions and the velocities can not be assumed to be smooth anymore. Additional impact equations and impact laws have to be formulated. In order to handle the changing mathematical structure, the set-valued force laws are commonly written as inclusion problems. DynamY reformulates these inclusions as projective equations and solves them iteratively by Jacobi or Gauss-Seidel techniques. The non-smooth approach provides a completely new modelling approach for mechanical systems with unilateral contacts and friction, which incorporates also the whole classical mechanics subjected to bilateral constraints. The approach is associated with the classical DAE theory and leads to robust integration schemes.
Numerical integration of non-smooth models
To main classes of numerical integrators are used for non-smooth models of mechanical systems with unilateral contacts and friction. The first class of integrators are the event-driven integrators. These integrators distingush between smooth parts of the motion in which the underlying sytructure of the differential equations does not change, and in events or so-called switching points at which this structure changes, i.e. time instants at which a unilateral contact opens or at which a stick slip transition occurs. A these switching points, the set-valued force (and the additional impact) laws are evaluated in order to obtain a new underlying mathematical structure on which the integration can be continued. Event-driven integrators are very accurate but are not suitable for systems with many contacts.
So called time-stepping integrators are dedicated numerical schemes for mechanical systems with many contacts. The first time-stepping integrator was introduced by J.J. Moreau. The integrators do not aim at resolving switching points and are therefore very robust in application. As the integrators work with the integral of the contact forces and not with the forces itself, the methods can handle both non-impulsive motion and impulsive events like impacts. As a drawback, the accuracy is low. This lack can be fixed by using a step-size refinement at switching points. Smooth parts of the motion are processed by larger step sizes, and extrapolation methods can be used to increase the integration order [Studer 2008]. DynamY implements the classical Moreau time-stepping with constant step size as well as an augmented time-stepping integration which uses step-size adjustment and extrapolation.
DynamY distingushes between the specification of the mechanical system itself and the numerical integration of it. The mechanical system is divided into mechanical subsystems which can interact by set-valued force laws. DynamY provides abstract base classes which characterize these mechanical subsystems, the set-valued interactions as well as external forces. The user is asked to derive its own classes from these abstract base classes in order to describe his problem properly. Objects of these classes are gathered by an administration object which represents the mechanical system. Considering the integration, dynamY distinguishes between one-step integrators which perform one integration with the mechanical system, and simulation classes which combine these integration steps. Both constant and adjusted step size simulations are possible. DynamY also provides a basic parser and methods for generating output files. A well developped documentation is available in the