10 #ifdef MOOSE_MFEM_ENABLED 20 params.
addPrivateParam<std::vector<std::string>>(
"_mfem_dependency_param_names", {});
31 std::optional<std::string>
37 std::optional<std::string>
43 std::optional<std::string>
49 const std::set<std::string> &
57 for (
const auto & param :
getParam<std::vector<std::string>>(
"_mfem_dependency_param_names"))
59 if (
const auto *
name = queryParam<VariableName>(param))
61 if (
const auto * names =
queryParam<std::vector<VariableName>>(param))
62 for (
const auto &
name : *names)
64 if (
const auto *
name = queryParam<PostprocessorName>(param))
66 if (
const auto * names =
queryParam<std::vector<PostprocessorName>>(param))
67 for (
const auto &
name : *names)
69 if (
const auto *
name = queryParam<VectorPostprocessorName>(param))
71 if (
const auto * names =
queryParam<std::vector<VectorPostprocessorName>>(param))
72 for (
const auto &
name : *names)
79 const std::set<std::string> &
100 return "variable:" +
name;
106 return "postprocessor:" +
name;
112 return "vector_postprocessor:" +
name;
118 auto & param_names = params.
set<std::vector<std::string>>(
"_mfem_dependency_param_names");
119 param_names.push_back(param_name);
virtual std::optional< std::string > suppliedPostprocessorName() const
Return the postprocessor name supplied by this object, or std::nullopt if none.
Thin base for MFEM objects backed directly by MooseObject instead of UserObject.
A MultiMooseEnum object to hold "execute_on" flags.
const T & getParam(const std::string &name) const
Retrieve a parameter for the object.
static std::string vectorPostprocessorDependencyKey(const std::string &name)
Build the dependency key used for a supplied/requested vector postprocessor.
static void appendDependencyParam(InputParameters ¶ms, const std::string ¶m_name)
Record one dependency-bearing parameter in the private parameter metadata.
static std::string variableDependencyKey(const std::string &name)
Build the dependency key used for a supplied/requested variable.
std::optional< std::set< std::string > > _requested_items
Lazily constructed requested dependency keys for this object's registered dependencies.
static std::string postprocessorDependencyKey(const std::string &name)
Build the dependency key used for a supplied/requested postprocessor.
static InputParameters validParams()
Declare the common parameters used by MFEM executed objects.
const ExecFlagType EXEC_TIMESTEP_END
std::optional< std::set< std::string > > _supplied_items
Lazily constructed supplied dependency keys for this object's supplied resources. ...
virtual std::optional< std::string > suppliedVectorPostprocessorName() const
Return the vector postprocessor name supplied by this object, or std::nullopt if none.
const std::string & name() const
Get the name of the class.
virtual std::optional< std::string > suppliedVariableName() const
Return the variable name supplied by this object, or std::nullopt if none.
MFEMExecutedObject(const InputParameters ¶meters)
Construct an executed MFEM object and materialize its dependency metadata.
static InputParameters validParams()
const T * queryParam(const std::string &name) const
Query a parameter for the object.
static InputParameters validParams()
Declare the common parameters required by MFEM MooseObject-backed classes.
Interface for sorting dependent vectors of objects.
virtual const std::set< std::string > & getSuppliedItems() override
Return a set containing the names of items owned by the object.
virtual const std::set< std::string > & getRequestedItems() override
Return a set containing the names of items requested by the object.