www.mooseframework.org
Functions
Split.C File Reference

Go to the source code of this file.

Functions

template<>
InputParameters validParams< Split > ()
 

Function Documentation

template<>
InputParameters validParams< Split > ( )

Which preconditioning matrix to use with S = D - CA^{-1}B 'Self' means use S to build the preconditioner. limited choices here: PCNONE and PCLSC in PETSc 'D' means the lower-right block in splitting J = [A B; C D]

Definition at line 25 of file Split.C.

26 {
28  params.addParam<std::vector<NonlinearVariableName>>(
29  "vars", "Variables Split operates on (omitting this implies \"all variables\"");
30  params.addParam<std::vector<SubdomainName>>(
31  "blocks", "Mesh blocks Split operates on (omitting this implies \"all blocks\"");
32  params.addParam<std::vector<BoundaryName>>(
33  "sides", "Sidesets Split operates on (omitting this implies \"no sidesets\"");
34  params.addParam<std::vector<BoundaryName>>(
35  "unsides", "Sidesets Split excludes (omitting this implies \"do not exclude any sidesets\"");
36  params.addParam<std::vector<std::string>>(
37  "splitting", "The names of the splits (subsystems) in the decomposition of this split");
38 
39  MooseEnum SplittingTypeEnum("additive multiplicative symmetric_multiplicative schur", "additive");
40  params.addParam<MooseEnum>("splitting_type", SplittingTypeEnum, "Split decomposition type");
41 
42  MooseEnum SchurTypeEnum("full upper lower", "full");
43  params.addParam<MooseEnum>("schur_type", SchurTypeEnum, "Type of Schur complement");
44 
51  MooseEnum SchurPreEnum("S Sp A11", "S");
52  params.addParam<MooseEnum>(
53  "schur_pre", SchurPreEnum, "Type of Schur complement preconditioner matrix");
54 
55  MooseEnum SchurAInvEnum("diag lump", "diag");
56  params.addParam<MooseEnum>(
57  "schur_ainv",
58  SchurAInvEnum,
59  "Type of approximation to inv(A) used when forming S = D - C inv(A) B");
60 
61 #if LIBMESH_HAVE_PETSC
62  params.addParam<MultiMooseEnum>("petsc_options",
64  "PETSc flags for the FieldSplit solver");
65  params.addParam<std::vector<std::string>>("petsc_options_iname",
66  "PETSc option names for the FieldSplit solver");
67  params.addParam<std::vector<std::string>>("petsc_options_value",
68  "PETSc option values for the FieldSplit solver");
69 #endif
70 
71  params.registerBase("Split");
72  return params;
73 }
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
void registerBase(const std::string &value)
This method must be called from every base "Moose System" to create linkage with the Action System...
MultiMooseEnum getCommonPetscFlags()
A helper function to produce a MultiMooseEnum with commonly used PETSc single options (flags) ...
Definition: PetscSupport.C:785
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:37
InputParameters validParams< MooseObject >()
Definition: MooseObject.C:22
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an option parameter and a documentation string to the InputParameters object...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...