www.mooseframework.org
SolveObject.C
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 #include "SolveObject.h"
11 
12 #include "Executioner.h"
13 #include "FEProblem.h"
14 #include "DisplacedProblem.h"
15 #include "NonlinearSystemBase.h"
16 #include "LinearSystem.h"
17 
19  : MooseObject(ex.parameters()),
20  PerfGraphInterface(this),
22  _executioner(ex),
23  _problem(*getCheckedPointerParam<FEProblemBase *>(
24  "_fe_problem_base", "This might happen if you don't have a mesh")),
25  _displaced_problem(_problem.getDisplacedProblem()),
26  _mesh(_problem.mesh()),
27  _displaced_mesh(_displaced_problem ? &_displaced_problem->mesh() : nullptr),
28  _solver_sys(_problem.numNonlinearSystems()
29  ? static_cast<SystemBase &>(_problem.getNonlinearSystemBase(/*nl_sys=*/0))
30  : static_cast<SystemBase &>(_problem.getLinearSystem(/*l_sys_num=*/0))),
31  _aux(_problem.getAuxiliarySystem()),
32  _inner_solve(nullptr)
33 {
34 }
MeshBase & mesh
Base class for a system (of equations)
Definition: SystemBase.h:85
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Every object that can be built by the factory should be derived from this class.
Definition: MooseObject.h:33
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
Interface class for classes which interact with Postprocessors.