https://mooseframework.inl.gov
Loading...
Searching...
No Matches
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()),
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 ex.registerSolveObject(*this);
35}
Executioners are objects that do the actual work of solving your problem.
Definition Executioner.h:37
void registerSolveObject(const SolveObject &so)
Register a solve object to the executioner so that we can check whether a solve object has been built...
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:31
Interface for objects interacting with the PerfGraph.
Interface class for classes which interact with Postprocessors.
SolveObject(Executioner &ex)
Definition SolveObject.C:18
Base class for a system (of equations)
Definition SystemBase.h:87
MeshBase & mesh