27 "auto_preconditioning",
29 "When true and a [Preconditioning] block does not exist, the application will attempt to use " 30 "the correct preconditioning given the Executioner settings.");
35 :
MooseObjectAction(params), _auto_preconditioning(getParam<bool>(
"auto_preconditioning"))
47 std::shared_ptr<Executioner> executioner =
50 std::shared_ptr<Eigenvalue> eigen_executioner =
53 if ((eigen_problem ==
nullptr) != (eigen_executioner ==
nullptr))
54 mooseError(
"Executioner is not consistent with each other; EigenExecutioner needs an " 55 "EigenProblem, and Steady and Transient need a FEProblem");
71 if (((solve_type.
find(
"NEWTON") != solve_type.
items().end()) && (solve_type ==
"NEWTON")) ||
72 ((solve_type.
find(
"LINEAR") != solve_type.
items().end()) && (solve_type ==
"LINEAR")))
76 params.
set<std::string>(
"type") =
"SMP";
82 std::shared_ptr<Action> ptr =
86 std::shared_ptr<MooseObjectAction> moa_ptr = std::static_pointer_cast<
MooseObjectAction>(ptr);
88 mo_params.
set<
bool>(
"full") =
true;
const std::set< MooseEnumItem > & items() const
Return the complete set of available flags.
void setExecutioner(std::shared_ptr< Executioner > &&executioner)
Set the Executioner for this App.
CreateExecutionerAction(const InputParameters ¶ms)
ActionWarehouse & _awh
Reference to ActionWarehouse where we store object build by actions.
Eigenvalue executioner is used to drive the eigenvalue calculations.
InputParameters getValidParams(const std::string &name)
static InputParameters validParams()
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)
virtual void act() override
Method to add objects to the simulation or perform other setup tasks.
static InputParameters validParams()
void addActionBlock(std::shared_ptr< Action > blk)
This method add an Action instance to the warehouse.
std::unique_ptr< T_DEST, T_DELETER > dynamic_pointer_cast(std::unique_ptr< T_SRC, T_DELETER > &src)
These are reworked from https://stackoverflow.com/a/11003103.
std::shared_ptr< Action > create(const std::string &action, const std::string &action_name, InputParameters ¶meters)
Factory & _factory
The Factory associated with the MooseApp.
const bool _auto_preconditioning
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Executioners are objects that do the actual work of solving your problem.
MooseApp & _app
The MOOSE application this is associated with.
ActionFactory & _action_factory
Builds Actions.
std::string _type
The Object type that is being created.
bool hasActions(const std::string &task) const
Check if Actions associated with passed in task exist.
Generic class for solving transient nonlinear problems.
InputParameters _moose_object_pars
The parameters for the object to be created.
registerMooseAction("MooseApp", CreateExecutionerAction, "setup_executioner")
void associateWithParameter(const std::string ¶m_name, InputParameters ¶ms) const
Associates the object's parameters params with the input location from this Action's parameter with t...
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type.
std::shared_ptr< FEProblemBase > & _problem
Convenience reference to a problem this action works on.
Problem for solving eigenvalue problems.
std::set< MooseEnumItem >::const_iterator find(const MooseEnumItem &other) const
Locate an item.
virtual void setupAutoPreconditioning()