# Metafor

ULiege - Aerospace & Mechanical Engineering

### Site Tools

doc:user:integration:general:mim_tim

# Managing N.-R. Iterations

Mechanical iterations parameters are imposed by functions associated to metafor.getMechanicalIterationManager(), when thermal iterations parameters are imposed by functions associated to metafor.getThermalIterationManager().

mim = metafor.getMechanicalIterationManager()
tim = metafor.getThermalIterationManager()

mim/tim.setResidualComputationMethod(meth)
mim/tim.setVerbose()
mim/tim.setResidualTolerance(prec)
mim/tim.setMaxNbOfIterations(itma)
mim/tim.setNbOfIterationsForStiffUpdate(irea)
mim/tim.setMaxNbOfLineSearchIterations(lsma)
mim/tim.setLineSearchTolerance1(lsp1)
mim/tim.setLineSearchTolerance2(lsp2)
mim.setPredictorComputationMethod(predMeth)
mim.setConstrainedDofsVAComputationMethod(VACMeth)
mim/tim.setPreviousResidualsDecreaseCriterion()
mim/tim.setCpuDependency(cpuDep)

where meth defines the method used to compute the $Residual$.

#### Method1ResidualComputation(limitNormFactor)

important : since revision 2946 Method1ResidualComputation is not anymore the default value

The residual is adimensionalized by the norm of external forces and internal reactions . First :

$$Rmin = \frac{||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces||}{nreac}$$

If $$Rmin < limitNormFactor$$

$Rmin$ is set to $$Rmin = limitNormFactor$$

and the residual is adimensionalized :

$$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$

where

$ndofs$ : total number of degrees of freedom

$nreac$ : number of fixed degrees of freedom (having an associated reaction)

#### Method2ResidualComputation(limitNormFactor)

The residual is adimensionalized by the square of the norm of external forces and internal reactions. First:

$$Rmin = \frac{\sqrt{||FreeExternalForces||^2 + ||CstrInternalForces||^2+||CstrInertialForces||^2}}{nreac}$$

If $$Rmin < limitNormFactor$$ then $$Rmin = limitNormFactor$$

and the residual is adimensionalized :

$$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$

where

$ndofs$ : total number of degrees of freedom

$nreac$ : number of fixed degrees of freedom (having an associated reaction)

#### Method3ResidualComputation(limitNormFactor)

The residual is adimensionalized by the norm of external and inertial forces, and internal reactions (value to use preferentially for thermal simulations. Careful, the user must define it).

If $$||FreeExternalForces|| < limitNormFactor$$ then $$Residual = max(|FreeResidual|)$$ Else, $$Rmin = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces||$$ and $$Residual = \frac{||FreeResidual||}{ndofs*Rmin}$$

#### Method4ResidualComputation(limitNormFactor) (**default value**)

important : since revision 2946 Method4ResidualComputation is the new default value

This method is the same as Method1ResidualComputation() but without dividing by the number of dofs nor nreac, so

$$Rmin = ||FreeExternalForces|| + ||CstrInternalForces||+||CstrInertialForces||$$

If $$Rmin < limitNormFactor$$ then $$Rmin = limitNormFactor$$

and the residual is adimensionalized :

$$Residual = \frac{||FreeResidual||}{Rmin}$$

The residual is adimensionalized by the factor adimFactor, given by the user, without dividing by the number of dofs.

$$Residual = \frac{||FreeResidual||}{adimFactor }$$

The residual is adimensionalized by the factor adimFactor, given by the user, and by the number of dofs. $$Residual = \frac{||FreeResidual||}{ndofs * adimFactor }$$

where

$ndofs$ : total number of dofs

#### Parameters

Parameter Default value Description
limitNormFactor 1.0 Value from which the residual is no longer divided by $$Rmin$$ (to adjust as a function of the loading using verbose output)
adimFactor - Fixed adimensionalization factor for methods #5 and 6 (no default value, the factor must be defined for these methods)
prec 1.0E-4 accuracy that the residual must reach
itma 7 maximal number of Newton-Raphson iterations (this number if corrected internally if the automatic criterion is used to update the matrix). Iterations are stopped if the residual does not decrease over 6 iterations
irea 1 = 1 : stiffness matrix updated for each iteration
> 1 : stiffness matrix is updated automatically if the iteration number is lower than irea. The criterion is based on a convergence speed and a CPU time ratio (requires MDE_ICPU=1)
lsma 0 maximal line-search iteration number
lsp1 1.0 accuracy that the line-search residual must reach
lsp2 1.E-8 stop criterion when the line search parameter is not updated enough
predMeth EXTRAPOLATION_DEFAULT EXTRAPOLATION_DEFAULT = Extrapolation of the scheme by default (for example method to compute the displacement predictor by Newmark formula in the case of alpha-generalized scheme)
EXTRAPOLATION_MRUA = method to compute the displacement predictor by MRUA formula (for now only possible for alpha-generalized algorithms)
EXTRAPOLATION_ZERO = New positions are equal to the old ones, speed (and acceleration for dynamic schemes) equal to zero (for now only possible for quasi-static algorithms and alpha-generalized algorithms) .
VACMeth VAC_SCHEMECONSISTANT VAC_SCHEMECONSISTANT : Calculation of speed and acceleration with Newmark formula
VAC_BACKWARDEULER : Calculation of speed and acceleration using Backward Euler (to stabilize Newmark with dofs with a non zero fixed displacement. See JPP's thesis pg VIII.28)
cpuDep False Specify if the criterion for updating the stiffness matrix (irea > 1) depends on the User CPU time. (Metafor Version > 2422).