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}\)

\[ \lambda_s = \left\{ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } 1 & \mathrm{if} &s \le 0 \\ 0 & \mathrm{if} &s \ge \beta \\ 2*(\frac{s}{\beta} - 1)^3 + 3(\frac{s}{\beta} - 1)^2 ,& \mathrm{if} & 0 \le s \le \beta \end{array} \right. \]

and

\[ \lambda_{\tau} = \left\{ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } 1 & \mathrm{if} &\tau_n \le 0 \\ 0 & \mathrm{if} &\tau_n \ge \tau^{*} \\ 2*(\frac{\tau_n}{\tau^{*}} - 1)^3 + 3(\frac{\tau_n}{\tau^{*}} - 1)^2 & \mathrm{if} & 0 \le \tau_n \le \tau^{*} \end{array} \right. \]
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

\[ \lambda_s = \left\{ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } 1 & \mathrm{if} &s \le 0 \\ 0 & \mathrm{if} &s \ge \beta \\ 2*(\frac{s}{\beta} - 1)^3 + 3(\frac{s}{\beta} - 1)^2 ,& \mathrm{if} & 0 \le s \le \beta \end{array} \right. \]

and

\[ \lambda_{\tau} = \left\{ \begin{array}{ @{}% no padding l@{\quad}% some padding r@{}% no padding >{{}}r@{}% no padding >{{}}l@{}% no padding } 1 & \mathrm{if} &\tau_n \le 0 \\ 0 & \mathrm{if} &\tau_n \ge \tau^{*} \\ 2*(\frac{\tau_n}{\tau^{*}} - 1)^3 + 3(\frac{\tau_n}{\tau^{*}} - 1)^2 & \mathrm{if} & 0 \le \tau_n \le \tau^{*} \end{array} \right. \]

\(\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

\[|||\delta u||| \equiv \mathop{{max}_j} |\delta u_j|/(\epsilon + \eta |u_j|)\]

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

\[|||\delta u||| \equiv \mathop{{max}_j} |\delta u_j|/(\epsilon + \eta |u_j|)\]

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

\[|||\delta u||| \equiv \mathop{{max}_j} |\delta u_j|/(\epsilon + \eta |u_j|)\]

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

\[|||\delta u||| \equiv \mathop{{max}_j} |\delta u_j|/(\epsilon + \eta |u_j|)\]

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”