variational_integrator_settings Derived Type

type, public :: variational_integrator_settings

Defines numerical settings for the nonlinear variational step.


Contents


Components

Type Visibility Attributes Name Initial
real(kind=real64), public :: constraint_rotation_scale = 1.0d0

The characteristic dimensionless quaternion-tangent magnitude used when perturbing rotational components in a numerical constraint Jacobian.

real(kind=real64), public :: constraint_translation_scale = 1.0d0

The characteristic translation magnitude used as the absolute floor when perturbing position components in a numerical constraint Jacobian. This value has the same length units as the model positions.

real(kind=real64), public :: finite_difference_step = 1.0d-7

The relative forward-difference step used for numerical Jacobians.

integer(kind=int32), public :: force_evaluation = VI_FORCE_LEFT_ENDPOINT

The applied-load evaluation point, used for every force and torque callback, including springs, dampers, and user loads. VI_FORCE_LEFT_ENDPOINT uses the current state explicitly; VI_FORCE_IMPLICIT_ENDPOINT uses the trial next state inside Newton; VI_FORCE_MIDPOINT uses the interpolated midpoint state inside Newton. The latter two modes reevaluate loads as the Newton trial changes. These modes change load quadrature, not the conservative state update or its formal order.

integer(kind=int32), public :: linear_solver = VI_DENSE_SOLVER

The linear solver used for each Newton correction. Valid values are VI_DENSE_SOLVER and VI_GRAPH_FACTORIZED_SOLVER.

integer(kind=int32), public :: maximum_iterations = 50

The maximum number of Newton iterations allowed per time step.

integer(kind=int32), public :: maximum_line_search_iterations = 12

The maximum number of step halvings allowed by the residual line search.

real(kind=real64), public :: tolerance = 1.0d-10

The Euclidean residual tolerance used to terminate Newton's method.