# E. Improving Explicit Dynamics Performance

In general, the default settings in Sierra/SM explicit dynamics are chosen for robustness and accuracy over speed. When appropriate, defaults are changed in new releases as new options are shown to be sufficiently robust and accurate for a wide range of problems. In this appendix, we describe several approaches that can help to improve the execution speed, though potentially at the expense of robustness or accuracy.

## Diagnostics

Sierra/SM has a number of built-in timers that may be used to diagnose performance issues and identify areas for performance improvement. Often, there are small setting tweaks that can improve performance and the built-in timers can guide a user to focus on areas which may have the most impact. For example, the Element Death timer may indicate that evaluating death criteria is taking 20% of the total run time. By adjusting the `CHECK STEP INTERVAL` command in a `BEGIN ELEMENT DEATH` command block from the default value of 1 to 10, that performance cost can be reduced to only 2% of the total runtime.

The performance diagnostics may be output using the following command block, which appears at the region level.

    BEGIN PERFORMANCE DIAGNOSTICS
        AT TIME <real>time_begin INCREMENT = <real>time_increment_dt
        AT STEP <integer>step_begin INCREMENT = <integer>step_increment
        OUTPUT FILE = <string>output_file_name
    END

The `AT TIME` and `AT STEP` commands specify the frequency at which timer output should be printed. By default, the output is printed to the standard log file. Optionally, users may redirect that output to a separate file using the `OUTPUT FILE` command.

By default, the timers are always output at the end of a successful analysis. However, more frequent output may be desirable when a simulation fails to complete successfully or when run time exceeds available queue time.

## Increase the critical time step

The critical time step is generally controlled by three factors: element size, material stiffness, and material density. Smaller elements drive the critical time step down, as do stiffer materials. Denser materials have the opposite effect of increasing the critical time step.

- Improve the mesh quality The critical time step for explicit dynamics is often set by the smallest element. To identify the particular element which is limiting the simulation time step, the critical time step of each element can be output for plotting using the element variable `timestep`, see Table Table 9.13.

- Mass scaling This is a fairly common approach used by many commercial finite element codes to increase the time step. A range of options are provided in Sierra/SM to apply mass scaling dynamically throughout the analysis runtime, see Section 3.3.1. However, mass scaling can affect the solution in critical areas and must be used with caution.

- Lanczos time step This is an alternative method for computing the critical time step. The default element-based time step is sometimes more than 30% smaller than the true critical time step, especially if element sizes and material properties vary significantly and suddenly throughout the domain. The Lanczos algorithm computes a scaling factor which can bring the time step closer to the true critical value; this can result in a significant reduction in analysis time. However, for some analyses the Lanczos method does not provide a significantly improved time step, and computing the Lanczos time step estimate is expensive and thus should be done only occasionally during the analysis. And in a few problems, this approach can lead to unstable solutions. See Section 3.2.1.5 for further details.

- Node-based time step This is another approach to improve the estimate of the critical time step and often leads to larger time steps than the default element-based time step. Compared to the Lanczos estimate, the node-based method may still underestimate the critical time step but requires less overhead to compute. See Section 3.2.3.1 for further details.

## Improve contact performance

- Appropriate contact tolerances It is almost always best (for bothperformance and robustness) to use the default contact searchtolerances. Larger search tolerances will only slow down the simulation.

- Mesh rebalancing Use mesh rebalancing to avoid significant loss of performance for problems with large deformations and evolving contact surface interactions see Section 6.8.

- Mesh decomposition The initial decomposition of the mesh can have a sizable effect on the parallel performance of a model. For example, a Recursive Coordinate Bisection (RCB) decomposition can sometimes lead to improved load balancing compared to the default decomposition; see also the SEACAS manuals [[1], [2], [3]].

- Self contact off Not using self contact can help decrease the total time needed for tracking and reduce the number of contact interactions to assess. If possible, specify the needed contact interactions without using self contact. See Section 8 for more information.

## Improve computational efficiency

- Reduce the number of side sets, node sets and blocks A large number of side sets, node sets and/or blocks adversely affects the memory layout and can lead to both larger memory usage and longer execution times. Try to define boundary conditions using as few side sets/node sets as possible. Also try to remove node sets, sides sets and blocks which are not explicitly used in the input deck.

- Optimal number of mesh partitions If the mesh is partitioned such that there are less than around 1000 elements per processor, the parallel performance may become significantly compromised. Try to aim for 2000-10000 elements per processor. This recommendation may change as computer architectures evolve.

- Less frequent checks for element death Element death can lead to significant slowdowns if a large number of criteria are applied every time step. To reduce this effect, assess element death only occasionally, see Section 6.5.5. Also, if possible try to limit the areas that have both element death and contact.

- Use the uniform-gradient hex8 element Whenever performance improvements are made to the elements in Sierra/SM, they are generally first applied to the uniform-gradient hex8 element. Other element types may also be upgraded or addressed only as needs arise.

- Use an alternative material model Some material models have large numbers of function look ups (for instance the orthotropic crush model). These models typically have poor performance. Elastic models are typically significantly faster but may not be appropriate for many analyses.

The Sierra/SM team is interested in assisting with any performance issues. Please contact them if you have questions, example performance timings, or would like help in getting better performance out of a Sierra/SM explicit dynamics simulation.

[1]

T.A. Laursen, S.W. Attaway, and R.I. Zadoks. SEACAS theory manuals: part I. problem formulation in nonlinear solid mechanics. Technical Report SAND98-1760/1, Sandia National Laboratories, Albuquerque, NM, 1998. URL: http://infoserve.sandia.gov/sand_doc/1998/981760-1.pdf.

[2]

T.A. Laursen, S.W. Attaway, and R.I. Zadoks. SEACAS theory manuals: part II. nonlinear continuum mechanics. Technical Report SAND98-1760/2, Sandia National Laboratories, Albuquerque, NM, 1998. URL: http://infoserve.sandia.gov/sand_doc/1998/981760-2.pdf.

[3]

T.A. Laursen, S.W. Attaway, and R.I. Zadoks. SEACAS theory manuals: part III. finite element analysis in nonlinear solid mechanics. Technical Report SAND98-1760/3, Sandia National Laboratories, Albuquerque, NM, 1999. URL: http://infoserve.sandia.gov/sand_doc/1998/981760-3.pdf.