27 bool add_vector =
true,
28 bool multiple_entries =
true);
39 std::vector<std::vector<std::vector<T>> *>
48 bool multiple_entries)
52 if (!multiple_entries)
54 mooseAssert(!add_vector,
"Should be creating vector of singular entry.");
55 params.
addParam<ReporterValueName>(prefix +
"_name",
"Name of " + prefix +
" value.");
56 params.
addParam<T>(prefix +
"_value",
"Value of " + prefix +
".");
60 params.
addParam<std::vector<ReporterValueName>>(prefix +
"_names",
61 "Names for each " + prefix +
" value.");
62 params.
addParam<std::vector<T>>(prefix +
"_values",
"Values for " + prefix +
"s.");
65 params.
addParam<std::vector<ReporterValueName>>(
66 prefix +
"_vector_names",
"Names for each vector of " + prefix +
"s value.");
67 params.
addParam<std::vector<std::vector<T>>>(prefix +
"_vector_values",
68 "Values for vectors of " + prefix +
"s.");
70 params.
addParam<std::vector<ReporterValueName>>(prefix +
"_vector_vector_names",
71 "Names for each vector of vectors of " +
73 params.
addParam<std::vector<std::vector<std::vector<T>>>>(
74 prefix +
"_vector_vector_values",
"Values for vectors of vectors of " + prefix +
"s.");
84 std::string names_param(prefix +
"_name");
85 std::string values_param(prefix +
"_value");
92 "' must be set together.");
94 return &declareValue<T>(names_param, getParam<T>(values_param));
103 std::string names_param(prefix +
"_names");
104 std::string values_param(prefix +
"_values");
105 std::vector<T *> data;
108 paramError(names_param,
"Must specify values using ", values_param);
110 paramError(values_param,
"Use ", names_param,
" to specify reporter names.");
114 auto & names = getParam<std::vector<ReporterValueName>>(names_param);
115 auto & values = this->getParam<std::vector<T>>(values_param);
116 if (names.size() != values.size())
118 "Number of names specified in ",
120 " must match number of values specified in ",
123 for (
unsigned int i = 0; i < names.size(); ++i)
124 data.push_back(&this->declareValueByName<T>(names[i], values[i]));
129 template <
typename T>
130 std::vector<std::vector<T> *>
133 return this->declareConstantReporterValues<std::vector<T>>(prefix +
"_vector");
136 template <
typename T>
137 std::vector<std::vector<std::vector<T>> *>
140 return this->declareConstantReporterValues<std::vector<std::vector<T>>>(prefix +
virtual void execute() override
Execute method.
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 ...
Reporter object that has a single execution of the "execute" method for for each execute flag...
ConstantReporter(const InputParameters ¶meters)
const InputParameters & parameters() const
Get the parameters of the object.
static InputParameters addReporterTypeParams(const std::string &prefix, bool add_vector=true, bool multiple_entries=true)
This will add another type of reporter to the params.
std::vector< std::vector< std::vector< T > > * > declareConstantVectorVectorReporterValues(const std::string &prefix)
static InputParameters validParams()
virtual void finalize() override
Finalize.
std::vector< T * > declareConstantReporterValues(const std::string &prefix)
bool isParamValid(const std::string &name) const
Test if the supplied parameter is valid.
T * declareConstantReporterValue(const std::string &prefix)
std::vector< std::vector< T > * > declareConstantVectorReporterValues(const std::string &prefix)
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.