15 #include "libmesh/sparse_matrix.h" 29 params.
addParam<
bool>(
"use_displaced_mesh",
31 "Whether or not this object should use the " 32 "displaced mesh for computation. Note that " 33 "in the case this is true but no " 34 "displacements are provided in the Mesh block " 35 "the undisplaced mesh will still be used.");
38 params.
addParam<
bool>(
"allow_duplicate_execution_on_initial",
40 "In the case where this UserObject is depended upon by an initial " 41 "condition, allow it to be executed twice during the initial setup (once " 42 "before the IC and again after mesh adaptivity (if applicable).");
45 params.
addParam<
bool>(
"force_preaux",
false,
"Forces the UserObject to be executed in PREAUX");
46 params.
addParam<
bool>(
"force_postaux",
false,
"Forces the UserObject to be executed in POSTAUX");
48 "force_preic",
false,
"Forces the UserObject to be executed in PREIC during initial setup");
50 "execution_order_group",
52 "Execution order groups are executed in increasing order (e.g., the lowest " 53 "number is executed first). Note that negative group numbers may be used to execute groups " 54 "before the default (0) group. Please refer to the user object documentation " 55 "for ordering of user object execution within a group.");
58 "allow_duplicate_execution_on_initial execution_order_group",
59 "Execution scheduling");
83 _subproblem(*getCheckedPointerParam<
SubProblem *>(
"_subproblem")),
84 _fe_problem(*getCheckedPointerParam<
FEProblemBase *>(
"_fe_problem_base")),
85 _sys(*getCheckedPointerParam<
SystemBase *>(
"_sys")),
86 _assembly(_subproblem.assembly(_tid, 0)),
87 _duplicate_initial_execution(getParam<bool>(
"allow_duplicate_execution_on_initial"))
90 if (getParam<bool>(
"force_preaux") && getParam<bool>(
"force_postaux"))
92 "A user object may be specified as executing before or after " 93 "AuxKernels, not both.");
98 #ifdef MOOSE_KOKKOS_ENABLED 116 _subproblem(object._subproblem),
117 _fe_problem(object._fe_problem),
119 _assembly(object._assembly),
120 _duplicate_initial_execution(object._duplicate_initial_execution)
125 std::set<UserObjectName>
128 std::set<UserObjectName> all;
139 if (uo.name() !=
name())
141 auto uos = uo.getDependObjects();
const ExecFlagType EXEC_TRANSFER
A MultiMooseEnum object to hold "execute_on" flags.
A class for creating restricted objects.
virtual void addVectorPostprocessorDependencyHelper(const VectorPostprocessorName &name) const override
Helper for deriving classes to override to add dependencies when a VectorPostprocessor is requested...
static InputParameters validParams()
virtual void addUserObjectDependencyHelper(const UserObjectBase &uo) const override
Helper for deriving classes to override to add dependencies when a UserObject is requested.
void paramError(const std::string ¶m, Args... args) const
Emits an error prefixed with the file and line number of the given param (from the input file) along ...
Interface for objects acting when the mesh has been displaced.
static InputParameters validParams()
Interface for objects that need to use samplers.
void addAvailableFlags(const ExecFlagType &flag, Args... flags)
Add additional execute_on flags to the list of possible flags.
const ExecFlagType EXEC_TIMESTEP_END
std::set< std::string > _depend_uo
Depend UserObjects that to be used both for determining user object sorting and by AuxKernel for find...
Base class for a system (of equations)
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
std::set< UserObjectName > getDependObjects() const
Recursively return a set of user objects this user object depends on Note: this can be called only af...
const std::string & name() const
Get the name of the class.
Interface for notifications that the mesh has changed.
Every object that can be built by the factory should be derived from this class.
Interface for objects that need to use distributions.
Interface to allow object to consume Reporter values.
const UserObjectBase & getUserObjectBaseByName(const UserObjectName &object_name, bool is_dependency=true) const
Get an user object with the name object_name.
Interface for objects that need to use UserObjects.
const std::string & getObjectName() const
Return the object name that produces the Reporter value.
static InputParameters validParams()
Interface for objects interacting with the PerfGraph.
void addReporterDependencyHelper(const ReporterName &reporter_name) override
A method that can be overridden to update the UO dependencies.
Generic class for solving transient nonlinear problems.
std::set< std::string > _supplied_uo
A name of the "supplied" user objects, which is just this object.
UserObjectBase(const InputParameters ¶ms)
virtual void addPostprocessorDependencyHelper(const PostprocessorName &name) const override
Helper for deriving classes to override to add dependencies when a Postprocessor is requested...
static InputParameters validParams()
Interface for objects that need to use functions.
const Elem & get(const ElemType type_in)
The Reporter system is comprised of objects that can contain any number of data values.
Interface class for classes which interact with Postprocessors.