- blocksMesh blocks Split operates on (omitting this implies "all blocks"
C++ Type:std::vector<SubdomainName>
Controllable:No
Description:Mesh blocks Split operates on (omitting this implies "all blocks"
- petsc_optionsPETSc flags for the FieldSplit solver
C++ Type:MultiMooseEnum
Controllable:No
Description:PETSc flags for the FieldSplit solver
- petsc_options_inamePETSc option names for the FieldSplit solver
C++ Type:std::vector<std::string>
Controllable:No
Description:PETSc option names for the FieldSplit solver
- petsc_options_valuePETSc option values for the FieldSplit solver
C++ Type:std::vector<std::string>
Controllable:No
Description:PETSc option values for the FieldSplit solver
- schur_preSType of Schur complement preconditioner matrix
Default:S
C++ Type:MooseEnum
Controllable:No
Description:Type of Schur complement preconditioner matrix
- schur_typefullType of Schur complement
Default:full
C++ Type:MooseEnum
Controllable:No
Description:Type of Schur complement
- sidesSidesets Split operates on (omitting this implies "no sidesets"
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Sidesets Split operates on (omitting this implies "no sidesets"
- splittingThe names of the splits (subsystems) in the decomposition of this split
C++ Type:std::vector<std::string>
Controllable:No
Description:The names of the splits (subsystems) in the decomposition of this split
- splitting_typeadditiveSplit decomposition type
Default:additive
C++ Type:MooseEnum
Controllable:No
Description:Split decomposition type
- unsidesSidesets Split excludes (omitting this implies "do not exclude any sidesets"
C++ Type:std::vector<BoundaryName>
Controllable:No
Description:Sidesets Split excludes (omitting this implies "do not exclude any sidesets"
- varsVariables Split operates on (omitting this implies "all variables"
C++ Type:std::vector<NonlinearVariableName>
Controllable:No
Description:Variables Split operates on (omitting this implies "all variables"
Split
Field split based preconditioner for nonlinear solver.
This is an alternative syntax to the FSP. The field split based preconditioner is entirely set up by defining the relevant PETSc options. This syntax offers shorthands for some of the parameters that may be passed to PETSc, such as for splitting between variables, blocks or sidesets.
More information about field split preconditioning may be found in the PETSc manual.
Example input syntax
In this example, a two level field split preconditioning is set up using the Split
syntax. A Schur decomposition is used for preconditioning at the top level, and asm
preconditioning, with their own sets of PETSc options, is set set up for two groups of variables.
[Splits]
[./nuv]
splitting = 'v nu'
splitting_type = schur
schur_type = full
schur_pre = Sp
#petsc_options = '-dm_view'
[../]
[./nu]
vars = 'n u'
petsc_options = '-ksp_monitor'
petsc_options_iname = '-ksp_gmres_restart -pc_type -pc_asm_overlap -sub_pc_type'
petsc_options_value = ' 101 asm 5 lu'
[../]
[./v]
vars = 'v'
#petsc_options = '-ksp_monitor'
petsc_options_iname = '-pc_type -ksp_gmres_restart -sub_ksp_type -sub_pc_type -pc_asm_overlap'
petsc_options_value = 'asm 101 preonly lu 0'
#full = true
[../]
[]
(../moose/modules/phase_field/test/tests/phase_field_crystal/PFCTrad/pfct_newton_split1_asm5.i)Input Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.