Skip to content

Nonlinearsolver context

Arne Morten Kvarving edited this page Feb 27, 2017 · 3 revisions

The <nonlinearsolver> context

The <nonlinearsolver> context is used for everything related to the incremental solution of a nonlinear systems of equations.

<timestepping>

Controls everything related to (pseudo-)time stepping.

  • Attributes:

 start - Specify the start time of the simulation (default 0.0)  end - Specify the stop time of the simulation (default 1.0)  dtMin - Specify the minimum time step size (default 1.0)  dtMax - Specify the maximum time step size (default 1.0)  maxCFL - Specify the maxumum CFL number (for automatic time stepping in CFD simulations)  maxStep - Specify the maximum number of time steps (in case of automatic time stepping)  f1 - Increase the time step size by this factor in the next step       if the two last time steps used 4 or less iterations (default 1.5)  f2 - Reduce the time step size by this factor in the next step       if the previous time step used 10 or more iterations (default 0.25)

  • Values: One or more tags

  - Specify a pseudo-time range and how to divide the range into time steps  Attributes:    start - The starting time of the range    end - The end time of the range  Value: If an integer greater than 1, this is the number of time steps.         If not, this is read as a list of time step sizes. The last value read         will be used until the end time is reached. However, the last step is         adjusted such that the final step matches the specified end time.

The start and end attributes of the <timestepping> tag are only used of no <step> tags are specified. The start attribute of the <step> tags is ignored for all but the first <step> tag. For the subsequent <step> tags it defaults to the end attribute of the previous <step> tag.

If dtMin is specified less than dtMax, the time step size is modified automatically based on the number of iterations spent, using the scaling factors f1 and f2.

If the iterations diverge at a certain time step, that step is restarted automatically with a smaller step size (cut-back), using the scaling factor f2 (or 0.5 if f2 is specified equal to 1.0). This is repeated until convergence is achieved or the specified minimum step size dtMin is reached. In the latter case the simulation is terminated.

Example:

<timestepping>
  <step start="0.0" end="0.5">10</step> <!-- timestep of 0.05 !-->
  <step start="0.5">0.1 0.2 0.15</step> <!-- we end up at time=0.95 !-->
</timestepping>
<timestepping dtMin="0.001" dtMax="0.1"> <!-- automatic time stepping !-->
  <step end="100.0">0.1</step>
</timestepping>

<maxits>

Use this to control the maximum number of Newton-Raphson iterations in a time step.

  • Attributes: None
  • Value: The maximum number of iterations

Example:

<maxits>10</maxits>

<nupdate>

Use this to control the number of iterations with recalculation of tangent matrices (modified Newton-Raphson).

  • Attributes: None
  • Value: The number of iterations.

Example:

<nupdate>2</nupdate>

<rtol>

Use this to control the convergence tolerance.

  • Attributes: None
  • Value: The convergence tolerance, (\epsilon_{\rm tol}) (default 1.0e-6)

The nonlinear iterations are converged when (\delta E = \delta u R < \epsilon_{\rm tol}E_{\rm ref}) where (\delta u) denotes the iterative solution vector, (R) is the associated force residual, and (E_{\rm ref}) is the reference energy norm, typically (\delta E) evaluated in iteration 0 of the time step in question.

Example:

<rtol>1.e0e-6</rtol>

<dtol>

Use this to control the divergence tolerance.

  • Attributes: None
  • Value: The divergence tolerance, (\epsilon_{\rm div}) (default 10.0)

The nonlinear iterations have diverged if (\delta E > \epsilon_{\rm div}E_{\rm ref}) or if (\delta E) is increasing in three consequtive iterations. Iteration cut-back is then performed (if possible), or the simulation is terminated.

Example:

<dtol>1.e0e3</dtol>

<eta>

Use this to control the line search tolerance (when to switch to a simple line search)

  • Attributes: None
  • Value: The line search tolerance

Example:

<eta>1.e0e-3</eta>

<printSlow>

Use this to print out the worst DOFs, i.e., the DOFs with the largest contribution to the convergence norm, in case slow convergence is detected.

  • Attributes: None
  • Value: Number of DOFs to print out (default 0, i.e. no print)

This option can be useful as a model debugging tool, to help pinpoint problem regions in numerically unstable models. The DOFs are identified with the global node number and the local DOF withing that node. The DOF type is also printed if the model contains DOFs of different types.

Example:

<printSlow>5</printSlow>

<referenceNorm>

Use this to specify how the reference norm used in the convergence check should be updated.

  • Attributed: None
  • Value: MAX (default) or ALL. If ALL, always use the energy norm of iteration 0 as reference in the subsequent iterations of that time step. If MAX, use the highest energy norm of the zero'th iteration detected so far, as reference norm in the next time step.