Skip to content

largeStrainUpdLag

Description

This class olves for incremental displacement DD in an updated Lagrangian configuration (i.e. the mesh is updated at every time step), and employs a finite- (or large-) strain mechanics framework.

The geometric non-linearity (i.e. the inter-dependence between displacement and geometric configuration) is taken care of by multiplying the stress tensor (Cauchy) by relJ*relF.inv(), where relF is the relative deformation gradient and relJ is its determinant.

By default, the strain tensor takes into account the second order deformations:

\[ \begin{aligned} E = \frac{1}{2} (\nabla D + \nabla^T D + \nabla D \cdot \nabla^T D) \end{aligned} \]

However, with the "linearStrainTensor" keyword, the user can decide to force a linear strain tensor:

\[ \begin{aligned} \epsilon = \frac{1}{2} (\nabla D + \nabla^T D) \end{aligned} \]

Options

As a mechanicsSubSolver class, largeStrainUpdLag allows the user to specify a few additional parameters in the mechanicsOptions sub-dictionary located within the solverDict.

Parameters in mechanicsOptions:

forceSummary It prints a summary of boundary-forces at each iteration. It is set to false by default.
cylindricalStress Creates cylindrical stress, strain and displacement field. It is useful for visualization and data-analysis purposes. It is set to false by default.
sphericalStress Creates spherical stress, strain and displacement field. It is useful for visualization and data-analysis purposes. It is set to false by default.
strainTensor The strain tensor can be selected as linear, EulerAlmansi (default choice), Hencky, GreenLagrange.
RhieChowCorrection Apply a correction to the explicit component of the divergence of the stress, similar to a Rhie & Chow correction, to stabilize the momentum equation. It is set to true by default unless the multiMaterialCorrection is activated. It is strongly suggested to use a RhieChowCorrection unless the multiMaterialCorrection itself is activated.
RhieChowScaleFactor Scaling factor for the RhieChowCorrection. A value of 1 is used by default and corresponds to applying the full correction. A value of 0 applies no correction at all.
multiMaterialCorrection Additional subdictionary that applies a custom discretization scheme for both the implicit and explicit components of the stress divergence. This means that the gradient scheme for the stress and the laplacian scheme for the displacement fields are neglected. The correction is not activated by default.
inertialRelaxation Optionally apply inertial relaxation to the solution of the displacement equation. This may be activated in models containing regions that are not fixed, e.g. free pellets, and are therefore numerically ill-posed.
inertialRelaxationDeltaT If inertial relaxation is activated, a virtual time step is defined to reduce the rate of solution change with each iteration. A time step of 1e-7 has been found to work well in most cases.


Usage

Here is a code snippet of the solverDict to be used for activating the largeStrainUpdLag mechanics solver class:

mechanicsSolver largeStrainUpdLag;

mechanicsOptions
{
    // Print summary of boundary-forces at each iteration
    forceSummary false;

    // Creates cylindrical stress and displacement field
    cylindricalStress false;

    // Creates spherical stress and displacement field
    sphericalStress false;

    // Type of strain tensor
    strainTensor     Hencky;

    // Apply RhieChowCorrection to stabilize momentum equation (it should
    // be activated in most situations)
    RhieChowCorrection true;

    // Optional subDict for multi-material cases (it has priority over
    // RhieChowCorrection when activated)
    multiMaterialCorrection
    {
        // other correction types are possible
        type none;
    }

    // Activate inertial relaxation (optional, default=false)
    inertialRelaxation false;

    // Inertial relaxation time step (optional, default=1e-7)
    inertialRelaxationDeltaT 1e-7;
}