Parameters: Simulation

Command ElementModifies the simulation parameter element.


     [ constr_tol          = "real" ]     
     [ implicit_diff_tol   = "real" ]     
     [ nr_converge_ratio   = "real" ]     
     [ linsolver           = "HARWELL" ]
     [ acusolve_cosim      = "TRUE | FALSE" ]


Modifies the accuracy to which the system configuration and motion constraints are to be satisfied at each step. This is used by kinematics and the transient solver in ODE formulation (ABAM, VSTIFF, or MSTIFF), but not the DAE form, which has its own tolerance for this (Param_Transient::dae_constr_tol). This should be a small positive number.
The default value for constr_tol = 1.0E-10.
Modifies the accuracy to which implicit differential equations, such as Control_Diff equations with the is_implicit = "TRUE", are to be satisfied. The default value for implicit_diff_tol = 1.0E-5.
Modifies a measure of the rate of convergence in the Newton-Raphson method for ODE solvers. If the maximum entry in the constraint vector is larger than nr_converg_ratio times the maximum entry from the previous iteration, the Newton-Raphson iterations are converging slowly and the generalized coordinates will be re-partitioned in the next integration step to select a new set of independent coordinates. This attribute is applicable only if an ODE integrator (ABAM, VSTIFF, or MSTIFF) is selected.
The default value is 0.09.
The type of linear solver used, which currently is set to "HARWELL" for all analyses.
A Boolean flag that determines whether the simulation will be coupled with AcuSolve or not.
"TRUE" means that the MBD model is to be coupled with the CFD model in a co-simulation between MotionSolve and AcuSolve.
"FALSE" means that the MBD model is not to be coupled with the CFD model.
The default value is "FALSE".


The example below shows the default settings for the Param_Simulation command element.

     constr_tol          = "1E-10"
     implicit_diff_tol   = "1E-5"
     nr_converg_ratio    = "0.09"
     linsolver           = "HARWELL" 


  1. Linear Solvers: At the core of most analyses in MotionSolve is solving a set of linear equations (A x = b). For example, the Newton-Raphson method solves a set of linear equations as part of the iteration process to find the solution to a set of non-linear algebraic equations. A brief explanation of how the linear solver works follows:
    • The Harwell Linear Solver is a tool for solving linear algebraic equations. It is especially suited for linear systems characterized by non-singular, unsymmetrical and sparse coefficient matrices A that have a fixed, non-zero entry pattern. The latter implies that while matrix entries are allowed to change with time, the pattern of non-zeroes is not. The matrix entries must be real.
    This methodology is suitable for solving small to medium sets of equations (<10,000 equations) and is therefore quite suitable for multi-body systems simulation. The Harwell software solves the equations in three major steps:
    1. Symbolic LU factorization.
    2. Numeric LU factorization.
    3. Forward-Backward Substitution.
    Symbolic LU factorization
    Given a pattern of non-zero entries in A and their representative values, this function computes the symbolic lower- and upper-triangular (LU) factors of A. A partial pivoting scheme is used. It tries to maximize the stability of the LU factors while still maintaining sparsity of the factors. This operation is typically done once or only a few times during the simulation.
    Numeric LU factorization
    Given the current values of the non-zero entries in A and the symbolic LU factors, this utility returns the numeric LU factors of A. The symbolic LU factorization must therefore precede the numeric LU factorization. This operation is done whenever a new Jacobian is needed.
    Forward-Backward Substitution
    Given the numeric LU factors of a sparse matrix A and an appropriately sized right-hand-side vector b, this utility returns the solution x for the linear problem. The Numeric LU factorization must precede the forward-backward substitution operation. This operation is performed at each iteration.