www.mooseframework.org
Split.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #pragma once
11 
12 // MOOSE includes
13 #include "MooseEnum.h"
14 #include "MooseObject.h"
15 #include "PetscSupport.h"
16 #include "Restartable.h"
17 
18 // Forward declarations
19 class FEProblemBase;
21 
25 class Split : public MooseObject, public Restartable
26 {
27 public:
29 
31  virtual ~Split() = default;
32 
33  virtual void setup(NonlinearSystemBase & nl, const std::string & prefix = "-");
34 
35 protected:
38  {
43  };
44 
46 
48  std::vector<NonlinearVariableName> _vars;
49 
52  std::vector<SubdomainName> _blocks;
53  std::vector<BoundaryName> _sides;
54  std::vector<BoundaryName> _unsides;
56 
58  std::vector<std::string> _splitting;
59 
66 
69 };
virtual void setup(NonlinearSystemBase &nl, const std::string &prefix="-")
Definition: Split.C:91
A class for creating restricted objects.
Definition: Restartable.h:28
Base class for split-based preconditioners.
Definition: Split.h:25
std::vector< SubdomainName > _blocks
Definition: Split.h:52
std::vector< NonlinearVariableName > _vars
"Variables Split operates on
Definition: Split.h:48
std::vector< std::string > _splitting
Split subsystem list.
Definition: Split.h:58
A struct for storing the various types of petsc options and values.
Definition: PetscSupport.h:38
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
virtual ~Split()=default
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
FEProblemBase & _fe_problem
Definition: Split.h:45
Nonlinear system to be solved.
std::vector< BoundaryName > _sides
Definition: Split.h:53
MooseEnum _splitting_type
Definition: Split.h:62
Moose::PetscSupport::PetscOptions _petsc_options
Additional PETSc options.
Definition: Split.h:68
std::vector< BoundaryName > _unsides
Definition: Split.h:54
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:33
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:31
Split(const InputParameters &parameters)
Definition: Split.C:72
static InputParameters validParams()
Definition: Split.C:21
MooseEnum _schur_pre
Definition: Split.h:64
const InputParameters & parameters() const
Get the parameters of the object.
MooseEnum _schur_type
Definition: Split.h:63
SplittingType
Which splitting to use.
Definition: Split.h:37