Time integration¶
Static and Quasistatic¶
The above formulations solve the steady-state equations but with updates to the time parameter in the boundary conditions. Ratel also offers a static solve option via a PETSc SNES solve; this is covered in the static elasticity example. The quasistatic example uses the PETSc Timestepper (TS) object to manage pseudo-timestepping.
Large deformation solid mechanics exhibits both geometric and material nonlinearities, leading to path dependence by which there are be multiple static solutions for a specified set of boundary conditions. To disambiguate the multiple solutions, we solve the hyperelastic problem as a non-autonomous differential algebraic equation of index 1, with boundary conditions/loading a function of time \(t \in [0, 1]\). The current quasistatic example uses applied load (rather than displacement) and use backward Euler from PETSc’s TS with extrapolation-based hot starts disabled for simplicity.
Each pseudo time step requires a nonlinear solve, which is implemented using PETSc’s Scalable Nonlinear Equations Solver (SNES). By default, Ratel uses Newton-CG in which a multigrid V-cycle is used as a preconditioner for conjugate gradients. Additionally, we use a “critical point” line search, which supposes that the residual is the functional gradient of a latent objective function, \(\bm F(\bm u) = \nabla_{\bm u}\Psi(\bm u)\) and uses one step of a secant method to find \(\alpha\) for which \(F(\bm u + \alpha \delta \bm u)^{T} \delta \bm u = 0\) where \(\delta \bm u\) is the search direction found by Newton. This line search is inspired by the strong Wolfe conditions in optimization [NW99], but without explicit evaluation of the objective \(\Psi\), which may not be available or may not exist (e.g., for non-conservative models).
More information on the PETSc TS and SNES objects can be found in the PETSc documentation.
Elastodynamics¶
In (138), we represented the static problem i.e. \(\ddot{\bm u} = 0\). However, in the dynamic example acceleration is not zero and we use the PETSc Timestepper (TS) object to manage timestepping. Specifically, Ratel uses the Generalized-Alpha method for second order systems (TSALPHA2
) to solve the second order system of equations given by the momentum balance. More information on the PETSc TSALPHA2
time stepper can be found in the PETSc documentation TS.
For elastodynamics we need to add
to the residual equation (138) (or adding \(\rho_0 \ddot{\bm u}\) to \(\bm f_0\) term) and its jacobian
Note that in general for a time dependent residual function
we can write the Jacobian as
where \(\mathrm{shift_v}, \mathrm{shift_a}\) is related to the inverse of time step \(\Delta t\) and its square.