https://mooseframework.inl.gov
Loading...
Searching...
No Matches
Split.h
Go to the documentation of this file.
1//* This file is part of the MOOSE framework
2//* https://mooseframework.inl.gov
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
19class FEProblemBase;
21
25class Split : public MooseObject, public Restartable
26{
27public:
29
31 virtual ~Split() = default;
32
33 virtual void setup(NonlinearSystemBase & nl, const std::string & prefix = "");
34
35protected:
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};
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
const InputParameters & parameters() const
Get the parameters of the object.
Definition MooseBase.h:131
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition MooseEnum.h:55
Every object that can be built by the factory should be derived from this class.
Definition MooseObject.h:31
Nonlinear system to be solved.
A class for creating restricted objects.
Definition Restartable.h:29
Base class for split-based preconditioners.
Definition Split.h:26
std::vector< BoundaryName > _sides
Definition Split.h:53
static InputParameters validParams()
Definition Split.C:21
MooseEnum _schur_pre
Definition Split.h:64
virtual void setup(NonlinearSystemBase &nl, const std::string &prefix="")
Definition Split.C:92
MooseEnum _splitting_type
Definition Split.h:62
std::vector< NonlinearVariableName > _vars
"Variables Split operates on
Definition Split.h:48
MooseEnum _schur_type
Definition Split.h:63
std::vector< SubdomainName > _blocks
Definition Split.h:52
SplittingType
Which splitting to use.
Definition Split.h:38
@ SplittingTypeMultiplicative
Definition Split.h:40
@ SplittingTypeAdditive
Definition Split.h:39
@ SplittingTypeSchur
Definition Split.h:42
@ SplittingTypeSymmetricMultiplicative
Definition Split.h:41
std::vector< BoundaryName > _unsides
Definition Split.h:54
virtual ~Split()=default
FEProblemBase & _fe_problem
Definition Split.h:45
std::vector< std::string > _splitting
Split subsystem list.
Definition Split.h:58