26 "NonlinearSystem and a single AuxiliarySystem object.");
32 :
FEProblemBase(parameters), _use_nonlinear(getParam<bool>(
"use_nonlinear"))
38 nl =
_use_nonlinear ? (std::make_shared<NonlinearSystem>(*
this, sys_name))
39 : (std::make_shared<MooseEigenSystem>(*
this, sys_name));
40 _nl_sys.push_back(std::dynamic_pointer_cast<NonlinearSystem>(nl));
47 _aux = std::make_shared<AuxiliarySystem>(*
this,
"aux0");
53 es().parameters.set<
FEProblem *>(
"_fe_problem") =
this;
83 ls_params.
set<
bool>(
"affect_ltol") = affect_ltol;
84 ls_params.
set<
unsigned>(
"allowed_lambda_cuts") =
85 parameters.
get<
unsigned>(
"contact_line_search_allowed_lambda_cuts");
86 ls_params.
set<
Real>(
"contact_ltol") = affect_ltol
100 "PetscProjectSolutionOntoBounds",
"project_solution_onto_bounds_line_search", ls_params);
104 mooseError(
"Requested line search ", line_search.operator std::string(),
" is not supported");
std::vector< std::shared_ptr< NonlinearSystem > > _nl_sys
Factory & _factory
The Factory for building objects.
virtual void setInputParametersFEProblem(InputParameters ¶meters) override
virtual void setInputParametersFEProblem(InputParameters ¶meters)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::shared_ptr< MooseObject > create(const std::string &obj_name, const std::string &name, const InputParameters ¶meters, THREAD_ID tid=0, bool print_deprecated=true)
Build an object (must be registered) - THIS METHOD IS DEPRECATED (Use create<T>()) ...
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
FEProblem(const InputParameters ¶meters)
virtual void newAssemblyArray(std::vector< std::shared_ptr< NonlinearSystemBase >> &nl)
virtual EquationSystems & es() override
std::vector< std::shared_ptr< NonlinearSystemBase > > _nl
The nonlinear systems.
void createTagSolutions()
Create extra tagged solution vectors.
static InputParameters validParams()
void setCurrentNonlinearSystem(const unsigned int nl_sys_num)
LineSearchType
Type of the line search.
void createTagVectors()
Create extra tagged vectors and matrices.
virtual void addLineSearch(const InputParameters ¶meters) override
add a MOOSE line search
std::shared_ptr< AuxiliarySystem > _aux
The auxiliary system.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
virtual void initNullSpaceVectors(const InputParameters ¶meters, std::vector< std::shared_ptr< NonlinearSystemBase >> &nl)
const std::vector< NonlinearSystemName > _nl_sys_names
The nonlinear system names.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
const InputParameters & parameters() const
Get the parameters of the object.
static InputParameters validParams()
registerMooseObject("MooseApp", FEProblem)
auto index_range(const T &sizable)
std::shared_ptr< LineSearch > _line_search