27. SOLID_MECHANICS Namelist
The SOLID_MECHANICS
namelist sets parameters that are specific to the solid
mechanics model and algorithm. This namelist is read whenever the PHYSICS
Namelist option
solid_mechanics is enabled. Solid
mechanics boundary conditions are defined using SOLID_MECHANICS_BC
Namelists.
- Required/Optional:
Required when solid mechanics physics is enabled.
- Single/Multiple Instances:
Single
27.1. Physics Options
contact_distance
A length scale parameter \(\beta\) for the contact function
\(\lambda = \lambda_s * \lambda_{\tau}\)
and
- Physical dimension:
\(L\)
- Type:
real
- Default:
1.0e-7
- Valid Values:
(0, \(\infty\)]
Note
The default value is usually a good value for mesh cell sizes in the 1 - 10 mm size range.
contact_norm_trac
A parameter \(\tau^{*}\) for the contact function
\(\lambda = \lambda_s * \lambda_{\tau}\)
where
and
\(\tau_n\) is the normal traction at the interface where a positive value corresponds to a tensile force normal to the surface.
- Physical dimension:
\(F/L^2\)
- Type:
real
- Default:
1.0e4
- Valid Values:
[0, \(\infty\)]
Note
The default value is probably appropriate for materials with elastic constants in the range \(10^9 - 10^{11}\). This parameter should probably be scaled proportionately for elastic constants that differ from this range.
27.2. Numerical Parameters
maximum_iterations
Maximum allowed number of iterations of the nonlinear solver.
- Type:
integer
- Default:
100
- Valid Values:
\([0,\infty)\)
nlk_vector_tolerance
The vector drop tolerance for the NLK method. When assembling the acceleration subspace vector by vector, a vector is dropped when the sine of the angle between the vector and the subspace less than this value.
- Type:
real
- Default:
0.01
- Valid Values:
\((0,1)\)
nlk_max_vectors
For the NLK method, the maximum number of acceleration vectors to be used.
- Type:
integer
- Default:
20
- Valid Values:
\([0,\infty)\)
abs_stress_tol
The tolerance for the absolute error of the residual used by the solid mechanics solver.
- Physical Dimension:
same as the ‘stress’ variable
- Type:
real
- Default:
1e-10
- Valid Values:
\(\gt 0\)
abs_displ_tol
The tolerance \(\epsilon\) for the absolute error component of the displacement error norm used by the nonlinear solver. If \(\delta u\) is a displacement field increment with reference displacement field \(u\),then this error norm is
The relative error tolerance \(\eta\) is given by rel_displ_tol.
- Physical Dimension:
\(\Theta\)
- Type:
real
- Default:
1e-10
- Valid Values:
\(\geq 0\)
Note
The error norm is dimensionless and normalized.
Note
For \(u_j\) sufficiently small the norm approximates an absolute norm with tolerance \(\epsilon\), and for \(u_j\) sufficiently large the norm approximates a relative norm with tolerance \(\eta\). If \(\epsilon = 0\) then the norm is a pure relative norm and the displacement must be bounded away from 0.
rel_displ_tol
The tolerance \(\eta\) for the relative error component of the displacement error norm used by the nonlinear solver. If \(\delta u\) is a displacement field increment with reference displacement field \(u\), then this error norm is
The absolute error tolerance \(\epsilon\) is given by abs_displ_tol.
- Physcial Dimension:
dimensionless
- Type:
real
- Default:
1e-10
- Valid Values:
(0, 1)
Note
See the notes for abs_displ_tol.
abs_plastic_strain_tol
The tolerance \(\epsilon\) for the absolute error component of the plastic strain error norm used by the nonlinear solver. If \(\delta u\) is a plastic strain field increment with reference plastic strain field \(u\),then this error norm is
The relative error tolerance \(\eta\) is given by rel_plastic_strain_tol.
- Physical Dimension:
\(\Theta\)
- Type:
real
- Default:
1e-12
- Valid Values:
\(\geq 0\)
Note
The error norm is dimensionless and normalized.
Note
For \(u_j\) sufficiently small the norm approximates an absolute norm with tolerance \(\epsilon\), and for \(u_j\) sufficiently large the norm approximates a relative norm with tolerance \(\eta\). If \(\epsilon = 0\) then the norm is a pure relative norm and the plastic strain must be bounded away from 0.
rel_plastic_strain_tol
The tolerance \(\eta\) for the relative error component of the plastic strain error norm used by the nonlinear solver. If \(\delta u\) is a plastic strain field increment with reference displacement field \(u\), then this error norm is
The absolute error tolerance \(\epsilon\) is given by abs_plastic_strain_tol.
- Physcial Dimension:
dimensionless
- Type:
real
- Default:
1e-3
- Valid Values:
(0, 1)
Note
See the notes for abs_plastic_strain_tol.
viscoplastic_strain_limit
This parameter controls the use of the ODE integrator in the plastic strain calculation. When the plastic strain at an integration point is below this limit, a single Heun step is taken. When the plastic strain is at or above this limit, the solver requested by viscoplastic_solver is invoked with an initial step size such that the predicted plastic strain delta does not exceed the limit.
- Type:
real
- Default:
1e-10
- Valid Values:
\(\geq 0\)
Tip
This should be set to the minimum significant value of the plastic strain increment for a time step. If convergence seems poor when a viscoplastic material model is used, it may help to reduce this value.
nlk_tol (expert)
The convergence tolerance for the NLK nonlinear solver. The nonlinear system is considered solved by the current iterate if the norm of the last solution correction is less than this value.
- Type:
real
- Default:
1.0
- Valid Values:
(0, 1]
Note
This tolerance is relative to the dimensionless and normalized BDF2 integrator norm; see abs_displ_tol, for example. The nonlinear system only needs to be solved to an accuracy equal to the acceptable local truncation error for the step, which is roughly 1. Solving to a greater accuracy is wasted effort.
relaxation_parameter (expert)
The relaxation parameter for the diagonal scaling preconditioner.
- Type:
real
- Default:
1.0
- Valid Values:
(0, 1]
stress_relaxation_parameter (expert)
The relaxation parameter for the stress part of the diagonal scaling preconditioner. For reference, the original solid mechanics solver used a value of 16 / 9.
- Type:
real
- Default:
1.0
- Valid Values:
\(\gt 0\)
preconditioning_steps (expert)
Number of iterations for the preconditioner. In the current version, a diagonal scaling preconditioner is used, such that there is no sense in changing this value unless the relaxation_parameter (expert) variable is also changed from the default.
- Type:
integer
- Default:
1
- Valid Values:
\(\geq 1\)
contact_penalty (expert)
A penalty factor for the penetration constraint in the contact algorithm. Changing this is probably not a good idea in the current version.
- Physical Dimension:
dimensionless
- Type:
real
- Default:
1e3
- Valid Values:
[0, \(\infty\))
viscoplastic_nlk_tol (expert)
The convergence tolerance for the NLK nonlinear solver for viscoplasticity. The nonlinear system is considered solved by the current iterate if the norm of the last solution correction is less than this value.
- Type:
real
- Default:
1e-2
- Valid Values:
(0, 1]
viscoplastic_solver (expert)
The choice of viscoplastic solver. The default is fast and accurate, and an end
user won’t benefit by changing this option. The default is to use the
bdf2_integrator
backend. The “jacobian” option uses an implicit
NLK-accelerated idaesol
solver. The “jfree” option uses a jacobian-free
algorithm identical to the bdf2_integrator
, but implemented on the
idaesol
type.
- Type:
string
- Default:
“bdf2”
- Valid Values:
“bdf2”, “jacobian”, or “jfree”