https://mooseframework.inl.gov
SolveObject.C
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 #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().get()),
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 }
T * get(const std::unique_ptr< T > &u)
The MooseUtils::get() specializations are used to support making forwards-compatible code changes fro...
Definition: MooseUtils.h:1155
MeshBase & mesh
Base class for a system (of equations)
Definition: SystemBase.h:84
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:28
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.