Step size refers to the time step (∆t) that is taken before recomputing the forces experienced by objects in a multibody system. The primary characteristic affecting step size is the highest frequency component (stiffest spring, smallest mass) that must be integrated numerically. Simbody permits an investigator to set up the multibody framework to best represent the dynamic range of interest. The scale should be the primary determinant of the numerical integration step size required for stability and accuracy. Thus, neuromuscular models have subsecond skeletal dynamics and so can use ms-range step sizes [9, 10], while molecular models with picosecond movements of interest must be integrated at step sizes around a femtosecond [11]. Mesoscale models, where microsecond dynamics are relevant, therefore, should use steps in the ns range, but this remains a major challenge to achieve in practice [12-14]. The primary problem at these scales is the presence of small elements whose dynamics are much faster than the dynamics of interest, yet whose inclusion is necessary to obtain accurate behavior of the interesting dynamics. To achieve larger steps, we must remove “uninteresting” high frequency dynamics so that the number of computationally expensive steps is determined by the “interesting” dynamics. Prior attempts have used multirate and implicit integration and provided only modest gains [11, 14]. We will extend Simbody to permit assignment of generalized coordinates to one of three rate classes: driven, dynamic, or fast. For motions known or hypothesized a priori, we will provide methods to drive them while the remainder of the system advances dynamically. For motions known to exhibit fast dynamics, quasi-static relaxation will be applied. Rate assignments can be changed on the fly as a result of events during a simulation. This entails extending the current Simbody formulation in which all the generalized coordinates q are dynamic variables (Eqn. 1) to one in which they are partitioned into three subsets to reduce dynamic range (Eqn. 2).
(Eqn. 1)
(Eqn. 2)
The direct influences in the system are thus ordered drivendynamicfast. Only the dynamic variables affect the step size. Driven variables are essentially free. Processing of fast variables can be handled by methods of varying costs; critically, they are a per-step cost involving particles or continuum models subject to hardware acceleration as described in Section 1.2 and 1.4. Step size is determined only by the needs of the dynamic variables, whose maximum frequency is substantially reduced by removal of the fast variables, and by error estimation that accounts for all forces including those of fast variables after relaxation.
1.3.2 Integate multibody, particle, and continuum computations
We have already integrated Simbody with OpenMM to produce molecular simulations using multibody dynamics with hardware-accelerated force computations, available in our SimTK 2.0 release. We now propose an additional integration of Simbody with continuum models.
These include neuromuscular models with continuum muscle, cartilage, and compliant contact surfaces, and macromolecular complexes interacting with continuum solvent and cell envelope models (examples in Figure 1.4.). The primary challenges are performance and software engineering. Specifically, to integrate Simbody with continuum models we will seek efficient methods for communication of state information with particular continuum computational subsystems and for the design, development, and dissemination of Simbody plugins. We will incorporate such particle and continuum computations into both the dynamic computations and the quasi-static relaxation solvers to reduce the cost per step, by exploring and implementing suitable abstractions in Simbody’s force calculations and relaxation solvers. Finally, we will investigate performance of such integrated models to address bottlenecks and to characterize their range of applicability. In particular, we are interested in the degree to which Amdahl’s law [15] limits attainable gains due to less-parallelizable portions of the overall computation including the O(n) multibody recursion and the numerical integrators.
We propose to develop a composite DSL that combines the particle and continuum DSLs with multibody techniques to produce a language in which composite multibody/particle/continuum models can be constructed without knowledge of the heterogeneous hardware systems on which they will be executed. Specifically, we propose to find the best high-level abstractions for building composite multibody/particle/continuum models. We will investigate whether dynamic rate class assignment must be part of the language, or if the determination can be made by the DSL during runtime as an on-the-fly optimization. We will evaluate different rate class choices for different hardware environments. We will also design the language to capture empirically-known, event-driven, and investigator-driven behavior to guide and accelerate the simulation. For example, in analyses of human movement, some of the degrees of freedom are measured, whereas others must be simulated. We will investigate the degree to which the DSL must know the intended use of the model (e.g. forward vs. inverse dynamics; Monte Carlo; design studies) in order to construct an optimal runtime representation on given hardware. For instance, a design study requires that certain parameters are variable; however, if no design study is intended the DSL could exploit that for precomputation. Finally, complex multibody models are best understood with the aid of visualization, and we will explore ways to display the contents of a Multibody system using the DSL as a framework. This might take the form of generating images from the DSL or alternatively generating the DSL code from a GUI.
Share with your friends: |