Overview of nonlinear equations solver settings
Iris features its own nonlinear equations solver used in calculating the steady state and dynamic simulations of structural models.
General settings
display="iter"
[ "iter"
| "final"
| "none"
| numeric ]
Level of display in numeric iterations:
display="iter"
- print every iteration and the final convergence message;
display="final"
- print the final convergence message only;
display="none"
- do not print any message;
display=numeric
- same as"display="iter"
but print everydisplay
iterations only.
Objective function settings
functionNorm=2
[ numeric | Inf
| function ]
A vector norm applied to the array of discrepancies between the LHS and RHS of individual equations; see help on the builtin
norm
function for numeric specification of the norm; or specify your own function norm as an anonymous function.In most situations, one of the following norms are the appropriate choice:
functionNorm=2
- a quadratic norm, i.e. sum of squared discrepancies;
functionNorm=Inf
- an infinity norm, i.e. sum of absolute discrepancies.
__trimObjectiveFunction=false
[ true
| false
]
After evaluating the objective function, replace the value smaller than
functionTolerance
with zeros.
Convergence settings
maxIterations=5000
[ numeric ]
Maximum number of iterations.
maxFunctionEvaluations=@(x) 200*x.NumUknowns
[ numeric | functions ]
Maximum number of function evaluations.
functionTolerance=1e-12
[ numeric ]
Convergence tolerance for the
functionNorm
.
stepTolerance=1e-12
[ numeric ]
Convergence tolerance for the maximum absolute change in the value of the unknowns; set
stepTolerance=Inf
to turn step tolerance off.
Jacobian settings
jacobCalculation="analytical"
[ "analytical"
| "forwardDiff"
]
Calculate the Jacobian analytically or numerically.
lastJacobUpdate=Inf
[ numeric | Inf
]
Last iteration in which the Jacobian will be updated:
lastJacobUpdate=Inf
means the Jacobian will be always updated;
lastJacobUpdate=0
means the Jacobian will be calculated once at the beginning and never updated afterwards;
lastJacobUpdate=-1
means the Jacobian will not be calculated, and an identity matrix will be used in its place;
lastJacobUpdate=n
means the Jacobian will be update until then
-the iteration (inclusive).
skipJacobUpdate=0
[ numeric ]
The Jacobian will be reused (without recalculation) in the next
skipJacobUpdate
iteration; then it will get updated again.