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:
However, with the "linearStrainTensor" keyword, the user can decide to force a linear strain tensor:
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;
}