https://mooseframework.inl.gov
SolveObject.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 #include "MooseObject.h"
13 #include "PerfGraphInterface.h"
14 #include "PostprocessorInterface.h"
15 
16 class SolveObject;
17 class Executioner;
18 class FEProblemBase;
19 class DisplacedProblem;
20 class MooseMesh;
21 class SystemBase;
22 class AuxiliarySystem;
23 
25 {
26 public:
28 
32  virtual void initialSetup() {};
33 
38  virtual bool solve() = 0;
39 
42 
43 protected:
60 };
FEProblemBase & _problem
Reference to FEProblem.
Definition: SolveObject.h:47
MooseMesh & _mesh
Mesh.
Definition: SolveObject.h:51
DisplacedProblem * _displaced_problem
Displaced problem.
Definition: SolveObject.h:49
AuxiliarySystem & _aux
Reference to auxiliary system for faster access.
Definition: SolveObject.h:57
virtual void setInnerSolve(SolveObject &solve)
Set the inner solve object wrapped by this object.
Definition: SolveObject.h:41
virtual void initialSetup()
Method that should be executed once, before any solve calls.
Definition: SolveObject.h:32
Base class for a system (of equations)
Definition: SystemBase.h:84
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Executioner & _executioner
Executioner used to construct this.
Definition: SolveObject.h:45
MooseMesh * _displaced_mesh
Displaced mesh.
Definition: SolveObject.h:53
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:28
SolveObject * _inner_solve
SolveObject wrapped by this solve object.
Definition: SolveObject.h:59
MooseMesh wraps a libMesh::Mesh object and enhances its capabilities by caching additional data and s...
Definition: MooseMesh.h:88
Executioners are objects that do the actual work of solving your problem.
Definition: Executioner.h:30
Interface for objects interacting with the PerfGraph.
SolveObject(Executioner &ex)
Definition: SolveObject.C:18
SystemBase & _solver_sys
Reference to a system for creating vectors as needed for the solve, etc.
Definition: SolveObject.h:55
virtual bool solve()=0
Solve routine provided by this object.
A system that holds auxiliary variables.
Interface class for classes which interact with Postprocessors.