Preconditioning System

Overview

See Steady for more details on how preconditioning is used in solving nonlinear systems in MOOSE. The Preconditioning block allows you to define which type of preconditioning matrix to build and what process to apply. You can define multiple blocks with different names, allowing you to quickly switch out preconditioning options. Within the sub-blocks you can also provide other options specific to that type of preconditioning matrix. You can also override PETSc options here. Only one block can be active at a time.

Default Preconditioning Matrix

Consider the fully coupled system of equations:

the fully coupled Jacobian is then approximated using a block-diagonal approach:

Thus, for this example, the default preconditioning matrix is defined as:

Example Input File Syntax

[Preconditioning]
  active = 'my_prec'

  [my_prec]
    type = SMP
    # SMP Options Go Here!
    # Override PETSc Options Here!
  []

  [other_prec]
    type = PBP
    # PBP Options Go Here!
    # Override PETSc Options Here!
  []
[]

Available Objects

  • Moose App
  • Split
  • FDPFinite difference preconditioner (FDP) builds a numerical Jacobian for preconditioning, only use for testing and verification.
  • FSP
  • PBPPhysics-based preconditioner (PBP) allows individual physics to have their own preconditioner.
  • SMPSingle matrix preconditioner (SMP) builds a preconditioner using user defined off-diagonal parts of the Jacobian.
  • Contact App
  • ContactSplitSplit-based preconditioner that partitions the domain into DOFs directly involved in contact (on contact surfaces) and those that are not

Available Actions