29 params.
set<std::string>(
"type") =
"BatchMeshGeneratorAction";
33 "Type of the mesh generator to be batch generated.");
35 "Prefix name of the meshes to be batch generated.");
37 params.
addParam<std::vector<std::string>>(
"batch_scalar_input_param_names",
38 std::vector<std::string>(),
39 "Names of the scalar input parameters to be altered.");
41 "BOOL REAL SHORT USHORT INT UINT LONG ULONG LONGLONG ULONGLONG DOFIDTYPE BDRYIDTYPE SDIDTYPE " 42 "STRING SDNAME BDRYNAME MGNAME MFNAME ENUM REALVECTORVALUE POINT",
45 "batch_scalar_input_param_types",
47 "Types of the scalar input parameters to be altered in each generator of the batch.");
48 params.
addParam<std::vector<std::vector<std::string>>>(
49 "batch_scalar_input_param_values",
51 "Values of the scalar input parameters to be assigned.");
53 params.
addParam<std::vector<std::string>>(
"batch_vector_input_param_names",
54 std::vector<std::string>(),
55 "Name of the vector input parameters to be altered.");
58 "Type of the vector input parameters to be altered.");
59 params.
addParam<std::vector<std::vector<std::vector<std::string>>>>(
60 "batch_vector_input_param_values",
62 "Values of the vector input parameters to be assigned.");
64 MooseEnum multi_batch_params_method(
"corresponding cartesian_product",
"cartesian_product");
66 multi_batch_params_method,
67 "Method to generate multiple batch parameters.Options: " +
70 params.
addParam<std::vector<std::string>>(
71 "fixed_scalar_input_param_names", {},
"Names of the input parameters to be fixed.");
74 "Types of the input parameters to be fixed.");
75 params.
addParam<std::vector<std::string>>(
76 "fixed_scalar_input_param_values", {},
"Values of the input parameters to be fixed.");
77 params.
addParam<std::vector<std::string>>(
78 "fixed_vector_input_param_names", {},
"Names of the input vector parameters to be fixed.");
81 "Types of the input vector parameters to be fixed.");
82 params.
addParam<std::vector<std::vector<std::string>>>(
83 "fixed_vector_input_param_values", {},
"Values of the input vector parameters to be fixed.");
84 params.
addParam<
bool>(
"use_decomposed_index",
86 "Whether to use the decomposed index for the mesh name (only effective for " 87 "the cartesian_product method).");
90 "batch_scalar_input_param_values " 91 "batch_vector_input_param_names batch_vector_input_param_types " 92 "batch_vector_input_param_values",
95 "fixed_scalar_input_param_values " 96 "fixed_vector_input_param_names fixed_vector_input_param_types " 97 "fixed_vector_input_param_values",
106 _mesh_generator_type(getParam<
std::string>(
"mesh_generator_type")),
107 _mesh_name_prefix(getParam<
std::string>(
"mesh_name_prefix")),
108 _batch_scalar_input_param_names(
109 getParam<
std::vector<
std::string>>(
"batch_scalar_input_param_names")),
110 _batch_scalar_input_param_types(isParamValid(
"batch_scalar_input_param_types")
114 _batch_scalar_input_param_values(
115 getParam<
std::vector<
std::vector<
std::string>>>(
"batch_scalar_input_param_values")),
116 _batch_vector_input_param_names(
117 getParam<
std::vector<
std::string>>(
"batch_vector_input_param_names")),
118 _batch_vector_input_param_types(isParamValid(
"batch_vector_input_param_types")
122 _batch_vector_input_param_values(getParam<
std::vector<
std::vector<
std::vector<
std::string>>>>(
123 "batch_vector_input_param_values")),
124 _multi_batch_params_method(getParam<
MooseEnum>(
"multi_batch_params_method")
126 _fixed_scalar_input_param_names(
127 getParam<
std::vector<
std::string>>(
"fixed_scalar_input_param_names")),
128 _fixed_scalar_input_param_types(isParamValid(
"fixed_scalar_input_param_types")
132 _fixed_scalar_input_param_values(
133 getParam<
std::vector<
std::string>>(
"fixed_scalar_input_param_values")),
134 _fixed_vector_input_param_names(
135 getParam<
std::vector<
std::string>>(
"fixed_vector_input_param_names")),
136 _fixed_vector_input_param_types(isParamValid(
"fixed_vector_input_param_types")
140 _fixed_vector_input_param_values(
141 getParam<
std::vector<
std::vector<
std::string>>>(
"fixed_vector_input_param_values")),
142 _use_decomposed_index(getParam<bool>(
"use_decomposed_index"))
145 checkVectorParamAndMultiMooseEnumLength<std::string>(
"fixed_scalar_input_param_names",
146 "fixed_scalar_input_param_types");
147 const auto fixed_scalar_real_compound_num =
151 if (fixed_scalar_real_compound_num > 0)
154 (
Moose::dim - 1) * fixed_scalar_real_compound_num !=
157 "This parameter must have a size that is consistent with " 158 "fixed_scalar_input_param_names. Note that each REALVECTORVALUE or POINT type " 159 "parameter must be represented as ",
161 " separate values instead of 1.");
166 unsigned int raw_value_ct = 0;
173 fixed_scalar_input_param_values_tmp.begin() + raw_value_ct,
174 fixed_scalar_input_param_values_tmp.begin() + raw_value_ct +
Moose::dim,
186 checkVectorParamsSameLength<std::string, std::string>(
"fixed_scalar_input_param_names",
187 "fixed_scalar_input_param_values");
189 checkVectorParamAndMultiMooseEnumLength<std::string>(
"fixed_vector_input_param_names",
190 "fixed_vector_input_param_types");
193 checkVectorParamsSameLength<std::string, std::vector<std::string>>(
194 "fixed_vector_input_param_names",
"fixed_vector_input_param_values");
203 "This parameter must have a size that is consistent with " 204 "fixed_vector_input_param_names. Note that each REALVECTORVALUE or POINT type " 205 "parameter must be represented as ",
207 " separate values instead of 1.");
213 unit_fixed_vector_input_param_values_tmp.begin() + j *
Moose::dim,
220 checkVectorParamAndMultiMooseEnumLength<std::string>(
"batch_scalar_input_param_names",
221 "batch_scalar_input_param_types");
224 checkVectorParamsSameLength<std::string, std::vector<std::string>>(
225 "batch_scalar_input_param_names",
"batch_scalar_input_param_values");
234 "This parameter must have a size that is consistent with " 235 "batch_scalar_input_param_names. Note that each REALVECTORVALUE or POINT type " 236 "parameter must be represented as ",
238 " separate values instead of 1.");
244 unit_batch_scalar_input_param_values_tmp.begin() + j *
Moose::dim,
250 checkVectorParamAndMultiMooseEnumLength<std::string>(
"batch_vector_input_param_names",
251 "batch_vector_input_param_types");
253 checkVectorParamsSameLength<std::string, std::vector<std::vector<std::string>>>(
254 "batch_vector_input_param_names",
"batch_vector_input_param_values");
265 "This parameter must have a size that is consistent with " 266 "batch_vector_input_param_names. Note that each REALVECTORVALUE or POINT type " 267 "parameter must be represented as ",
269 " separate values instead of 1.");
272 unit_batch_vector_input_param_values_tmp.size() / 3);
275 unit_batch_vector_input_param_values_tmp.begin() + k *
Moose::dim,
285 ", batch_scalar_input_param_names and batch_vector_input_param_names cannot be " 286 "empty at the same time.");
290 std::set<unsigned int> batch_params_sizes;
293 if (unit_batch_scalar_param_values.empty())
295 "this parameter cannot contain empty elements.");
296 batch_params_sizes.emplace(unit_batch_scalar_param_values.size());
300 if (unit_batch_vector_param_values.empty())
302 "this parameter cannot contain empty elements.");
303 batch_params_sizes.emplace(unit_batch_vector_param_values.size());
308 batch_params_sizes.size() > 1)
310 ", elements of batch_scalar_input_param_values and batch_vector_input_param_values " 311 "must have the same size in corresponding mode.");
316 "Decomposed index cannot be used with the corresponding method.");
322 "batch_scalar_input_param_names",
327 "fixed_scalar_input_param_names",
332 "batch_vector_input_param_names",
338 "fixed_vector_input_param_names",
354 std::vector<std::vector<std::string>> processed_batch_scalar_input_param_values;
355 std::vector<std::vector<std::vector<std::string>>> processed_batch_vector_input_param_values;
357 std::vector<std::vector<unsigned int>> processed_batch_indices;
364 processed_batch_indices.push_back(std::vector<unsigned int>(
365 processed_batch_vector_input_param_values.empty()
366 ? processed_batch_scalar_input_param_values.front().size()
367 : processed_batch_vector_input_param_values.front().size()));
368 std::iota(processed_batch_indices.back().begin(), processed_batch_indices.back().end(), 0);
378 if (processed_batch_scalar_input_param_values.empty())
383 processed_batch_indices.push_back(
386 processed_batch_indices.back().begin(), processed_batch_indices.back().end(), 0);
392 const unsigned int num_processed_batch_params =
393 processed_batch_scalar_input_param_values.front().size();
396 for (
auto & unit_processed_batch_scalar_input_param_values :
397 processed_batch_scalar_input_param_values)
399 auto temp_params = unit_processed_batch_scalar_input_param_values;
400 for (
unsigned int j = 1; j < num_new_batch_params; j++)
402 unit_processed_batch_scalar_input_param_values.insert(
403 unit_processed_batch_scalar_input_param_values.end(),
411 for (
auto & unit_processed_batch_indices : processed_batch_indices)
413 auto temp_indices = unit_processed_batch_indices;
414 for (
unsigned int j = 1; j < num_new_batch_params; j++)
416 unit_processed_batch_indices.insert(
417 unit_processed_batch_indices.end(), temp_indices.begin(), temp_indices.end());
424 processed_batch_scalar_input_param_values.push_back({});
425 for (
const auto & unit_batch_scalar_input_param_values :
427 for (
unsigned int j = 0; j < num_processed_batch_params; j++)
428 processed_batch_scalar_input_param_values.back().push_back(
429 unit_batch_scalar_input_param_values);
433 processed_batch_indices.push_back({});
434 for (
const auto & unit_batch_scalar_input_param_values_index :
436 for (
unsigned int j = 0; j < num_processed_batch_params; j++)
437 processed_batch_indices.back().push_back(unit_batch_scalar_input_param_values_index);
444 if (processed_batch_vector_input_param_values.empty())
446 if (processed_batch_scalar_input_param_values.empty())
454 processed_batch_indices.push_back(
457 processed_batch_indices.back().begin(), processed_batch_indices.back().end(), 0);
462 processed_batch_vector_input_param_values.push_back({});
465 for (
const auto & unit_batch_vector_input_param_values :
467 for (
unsigned int j = 0; j < processed_batch_scalar_input_param_values.front().size();
469 processed_batch_vector_input_param_values.back().push_back(
470 unit_batch_vector_input_param_values);
473 for (
auto & unit_processed_batch_scalar_input_param_values :
474 processed_batch_scalar_input_param_values)
476 auto temp_params = unit_processed_batch_scalar_input_param_values;
477 for (
unsigned int j = 1; j < processed_batch_vector_input_param_values.back().size();
480 unit_processed_batch_scalar_input_param_values.insert(
481 unit_processed_batch_scalar_input_param_values.end(),
489 processed_batch_indices.push_back({});
490 for (
const auto & unit_batch_vector_input_param_values_index :
492 for (
unsigned int j = 0; j < processed_batch_indices.front().size(); j++)
493 processed_batch_indices.back().push_back(
494 unit_batch_vector_input_param_values_index);
496 for (
unsigned int k = 1; k < processed_batch_indices.size(); k++)
498 auto & unit_processed_batch_indices = processed_batch_indices[k - 1];
499 auto temp_indices = unit_processed_batch_indices;
502 unit_processed_batch_indices.insert(
503 unit_processed_batch_indices.end(), temp_indices.begin(), temp_indices.end());
512 const unsigned int num_processed_batch_params =
513 processed_batch_vector_input_param_values.front().size();
516 for (
auto & unit_processed_batch_vector_input_param_values :
517 processed_batch_vector_input_param_values)
519 auto temp_params = unit_processed_batch_vector_input_param_values;
520 for (
unsigned int j = 1; j < num_new_batch_params; j++)
522 unit_processed_batch_vector_input_param_values.insert(
523 unit_processed_batch_vector_input_param_values.end(),
531 for (
auto & unit_processed_batch_indices : processed_batch_indices)
533 auto temp_indices = unit_processed_batch_indices;
534 for (
unsigned int j = 1; j < num_new_batch_params; j++)
536 unit_processed_batch_indices.insert(
537 unit_processed_batch_indices.end(), temp_indices.begin(), temp_indices.end());
542 for (
auto & unit_processed_batch_scalar_input_param_values :
543 processed_batch_scalar_input_param_values)
545 auto temp_params = unit_processed_batch_scalar_input_param_values;
546 for (
unsigned int j = 1; j < num_new_batch_params; j++)
548 unit_processed_batch_scalar_input_param_values.insert(
549 unit_processed_batch_scalar_input_param_values.end(),
556 processed_batch_vector_input_param_values.push_back({});
557 for (
const auto & unit_batch_vector_input_param_values :
559 for (
unsigned int j = 0; j < num_processed_batch_params; j++)
560 processed_batch_vector_input_param_values.back().push_back(
561 unit_batch_vector_input_param_values);
565 processed_batch_indices.push_back({});
566 for (
const auto & unit_batch_vector_input_param_values_index :
568 for (
unsigned int j = 0; j < num_processed_batch_params; j++)
569 processed_batch_indices.back().push_back(unit_batch_vector_input_param_values_index);
576 const unsigned int num_batch_params =
577 processed_batch_vector_input_param_values.empty()
578 ? processed_batch_scalar_input_param_values.front().size()
579 : processed_batch_vector_input_param_values.front().size();
580 for (
const auto i :
make_range(num_batch_params))
587 processed_batch_scalar_input_param_values[j][i]);
592 processed_batch_vector_input_param_values[j][i]);
604 std::string mesh_index;
606 for (
const auto & process_batch_index : processed_batch_indices)
607 mesh_index +=
'_' + std::to_string(process_batch_index[i]);
609 mesh_index =
"_" + std::to_string(i);
618 const std::string & param_name,
620 const std::string & param_value)
const 625 params.
set<
Real>(param_name) = MooseUtils::convert<Real>(param_value);
628 params.
set<
short>(param_name) = MooseUtils::convert<short>(param_value);
631 params.
set<
unsigned short>(param_name) = MooseUtils::convert<unsigned short>(param_value);
634 params.
set<
int>(param_name) = MooseUtils::convert<int>(param_value);
637 params.
set<
unsigned int>(param_name) = MooseUtils::convert<unsigned int>(param_value);
640 params.
set<
long>(param_name) = MooseUtils::convert<long>(param_value);
643 params.
set<
unsigned long>(param_name) = MooseUtils::convert<unsigned long>(param_value);
646 params.
set<
long long>(param_name) = MooseUtils::convert<long long>(param_value);
649 params.
set<
unsigned long long>(param_name) =
650 MooseUtils::convert<unsigned long long>(param_value);
653 params.
set<
dof_id_type>(param_name) = MooseUtils::convert<dof_id_type>(param_value);
656 params.
set<
boundary_id_type>(param_name) = MooseUtils::convert<boundary_id_type>(param_value);
660 MooseUtils::convert<subdomain_id_type>(param_value);
666 params.
set<std::string>(param_name) = param_value;
669 params.
set<SubdomainName>(param_name) = param_value;
672 params.
set<BoundaryName>(param_name) = param_value;
675 params.
set<MeshGeneratorName>(param_name) = param_value;
678 params.
set<MeshFileName>(param_name) = param_value;
681 hit::toBool(param_value, ¶ms.
set<
bool>(param_name));
685 convertStringToCompoundRealScalar<RealVectorValue>(param_value);
688 params.
set<Point>(param_name) = convertStringToCompoundRealScalar<Point>(param_value);
692 "impossible situation.");
698 const std::string & param_name,
700 const std::vector<std::string> & param_value)
const 705 convertAndSetNumericVector<Real>(params, param_name, param_value);
708 convertAndSetNumericVector<short>(params, param_name, param_value);
711 convertAndSetNumericVector<unsigned short>(params, param_name, param_value);
714 convertAndSetNumericVector<int>(params, param_name, param_value);
717 convertAndSetNumericVector<unsigned int>(params, param_name, param_value);
720 convertAndSetNumericVector<long>(params, param_name, param_value);
723 convertAndSetNumericVector<unsigned long>(params, param_name, param_value);
726 convertAndSetNumericVector<long long>(params, param_name, param_value);
729 convertAndSetNumericVector<unsigned long long>(params, param_name, param_value);
732 convertAndSetNumericVector<dof_id_type>(params, param_name, param_value);
735 convertAndSetNumericVector<boundary_id_type>(params, param_name, param_value);
738 convertAndSetNumericVector<subdomain_id_type>(params, param_name, param_value);
744 params.set<std::vector<std::string>>(param_name) = param_value;
747 convertAndSetStringLikeVector<SubdomainName>(params, param_name, param_value);
750 convertAndSetStringLikeVector<BoundaryName>(params, param_name, param_value);
753 convertAndSetStringLikeVector<MeshGeneratorName>(params, param_name, param_value);
756 convertAndSetStringLikeVector<MeshFileName>(params, param_name, param_value);
760 std::vector<bool> values(param_value.size());
761 std::transform(param_value.begin(),
764 [](
const std::string & val)
767 hit::toBool(val, &tmp);
770 params.set<std::vector<bool>>(param_name) = values;
774 convertAndSetCompoundRealScalarVector<RealVectorValue>(params, param_name, param_value);
777 convertAndSetCompoundRealScalarVector<Point>(params, param_name, param_value);
781 "impossible situation.");
785 template <
typename T>
789 const std::string & param_name,
790 const std::vector<std::string> & param_value)
const 792 std::vector<T> values(param_value.size());
793 std::transform(param_value.begin(),
796 [](
const std::string & val) {
return MooseUtils::convert<T>(val); });
797 params.
set<std::vector<T>>(param_name) = values;
800 template <
typename T>
804 const std::string & param_name,
805 const std::vector<std::string> & param_value)
const 807 std::vector<T> values(param_value.size());
808 std::transform(param_value.begin(),
811 [
this](
const std::string & val)
812 {
return convertStringToCompoundRealScalar<T>(val); });
813 params.
set<std::vector<T>>(param_name) = values;
816 template <
typename T>
820 const std::string & param_name,
821 const std::vector<std::string> & param_value)
const 823 std::vector<T> values(param_value.size());
824 std::transform(param_value.begin(),
827 [](
const std::string & val) {
return T(val); });
828 params.
set<std::vector<T>>(param_name) = values;
833 const std::string & action_input_param_name,
834 const std::vector<std::string> & param_names,
835 const std::vector<ParameterType> & param_types,
836 const bool & is_vector)
const 840 switch (param_types[i])
843 checkInputParameterType<Real>(params, action_input_param_name, param_names[i], is_vector);
846 checkInputParameterType<short>(params, action_input_param_name, param_names[i], is_vector);
849 checkInputParameterType<unsigned short>(
850 params, action_input_param_name, param_names[i], is_vector);
853 checkInputParameterType<int>(params, action_input_param_name, param_names[i], is_vector);
856 checkInputParameterType<unsigned int>(
857 params, action_input_param_name, param_names[i], is_vector);
860 checkInputParameterType<long>(params, action_input_param_name, param_names[i], is_vector);
863 checkInputParameterType<unsigned long>(
864 params, action_input_param_name, param_names[i], is_vector);
867 checkInputParameterType<long long>(
868 params, action_input_param_name, param_names[i], is_vector);
871 checkInputParameterType<unsigned long long>(
872 params, action_input_param_name, param_names[i], is_vector);
875 checkInputParameterType<dof_id_type>(
876 params, action_input_param_name, param_names[i], is_vector);
879 checkInputParameterType<boundary_id_type>(
880 params, action_input_param_name, param_names[i], is_vector);
883 checkInputParameterType<subdomain_id_type>(
884 params, action_input_param_name, param_names[i], is_vector);
888 checkInputParameterType<MultiMooseEnum>(
889 params, action_input_param_name, param_names[i],
false);
891 checkInputParameterType<MooseEnum>(
892 params, action_input_param_name, param_names[i],
false);
895 checkInputParameterType<std::string>(
896 params, action_input_param_name, param_names[i], is_vector);
899 checkInputParameterType<SubdomainName>(
900 params, action_input_param_name, param_names[i], is_vector);
903 checkInputParameterType<BoundaryName>(
904 params, action_input_param_name, param_names[i], is_vector);
907 checkInputParameterType<MeshGeneratorName>(
908 params, action_input_param_name, param_names[i], is_vector);
911 checkInputParameterType<MeshFileName>(
912 params, action_input_param_name, param_names[i], is_vector);
915 checkInputParameterType<bool>(params, action_input_param_name, param_names[i], is_vector);
918 checkInputParameterType<RealVectorValue>(
919 params, action_input_param_name, param_names[i], is_vector);
922 checkInputParameterType<Point>(params, action_input_param_name, param_names[i], is_vector);
927 "impossible situation.");
932 template <
typename T>
935 const std::string & action_input_param_name,
936 const std::string & param_name,
937 const bool & is_vector)
const 939 if ((is_vector && !params.
isType<std::vector<T>>(param_name)) ||
940 (!is_vector && !params.
isType<T>(param_name)))
942 "the input parameter, " + param_name +
", has the wrong type. It should be " +
943 params.
type(param_name) +
".");
946 template <
typename T>
952 "string used for compound real scalar conversion should contain three elements.");
953 T ret(MooseUtils::convert<Real>(split_str[0]));
956 ret(i) = MooseUtils::convert<Real>(split_str[i]);
964 return std::count(valid_types.begin(), valid_types.end(), param_type);
void convertAndSetCompoundRealScalarVector(InputParameters ¶ms, const std::string ¶m_name, const std::vector< std::string > ¶m_value) const
Convert a vector of strings to a compound real scalar type vector and set it in the InputParameters o...
unsigned int size(THREAD_ID tid=0) const
Return how many kernels we store in the current warehouse.
std::string join(Iterator begin, Iterator end, const std::string &delimiter)
Python-like join function for strings over an iterator range.
T convertStringToCompoundRealScalar(const std::string &str) const
Convert a string to a compound real scalar type.
const std::vector< ParameterType > _fixed_scalar_input_param_types
Types of the vector input parameters to keep fixed in the batch generation.
void setVectorParams(InputParameters ¶ms, const std::string ¶m_name, const ParameterType ¶m_type, const std::vector< std::string > ¶m_value) const
Set the vector input parameters for a unit mesh generator.
const std::string & _name
The name of this class.
const std::string _mesh_generator_type
Type (object name) of the mesh generator to use for batch generation.
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 ...
std::vector< std::vector< std::string > > _batch_scalar_input_param_values
Values of the scalar input parameters to vary in the batch generation.
void convertAndSetStringLikeVector(InputParameters ¶ms, const std::string ¶m_name, const std::vector< std::string > ¶m_value) const
Convert a vector of strings to a string-derived type vector and set it in the InputParameters object...
bool isCompoundRealScalarType(const ParameterType ¶m_type) const
Check if the parameter type is a compound real scalar type.
std::vector< std::string > _fixed_scalar_input_param_values
Values of the vector input parameters to keep fixed in the batch generation.
registerMooseAction("MooseApp", BatchMeshGeneratorAction, "add_mesh_generator")
BatchMeshGeneratorAction(const InputParameters ¶ms)
InputParameters getValidParams(const std::string &name) const
Get valid parameters for the object.
const MultiBatchParamsMethod _multi_batch_params_method
Method to use for generating the batch parameters.
static constexpr std::size_t dim
This is the dimension of all vector and tensor datastructures used in MOOSE.
Action to generate batches of mesh generators from vectors of parameter values.
static InputParameters validParams()
std::string getRawNames() const
Method for returning the raw name strings for this instance.
const bool _use_decomposed_index
Flag to indicate if the decomposed index should be used in the mesh name.
Factory & getFactory()
Retrieve a writable reference to the Factory associated with this App.
std::vector< std::string > split(const std::string &str, const std::string &delimiter, std::size_t max_count=std::numeric_limits< std::size_t >::max())
Python like split functions for strings.
const std::vector< ParameterType > _batch_scalar_input_param_types
Types of the scalar input parameters to vary in the batch generation.
void addMeshGenerator(const std::string &type, const std::string &name, const InputParameters ¶ms)
Add a mesh generator that will act on the meshes in the system.
void setScalarParams(InputParameters ¶ms, const std::string ¶m_name, const ParameterType ¶m_type, const std::string ¶m_value) const
Set the scalar input parameters for a unit mesh generator.
virtual void act() override final
Method to add objects to the simulation or perform other setup tasks.
static InputParameters validParams()
std::vector< std::vector< std::string > > _fixed_vector_input_param_values
Values of the vector input parameters to keep fixed in the batch generation.
const std::vector< std::string > _fixed_vector_input_param_names
Names of the vector input parameters to keep fixed in the batch generation.
void checkInputParameterType(const InputParameters ¶ms, const std::string &action_input_param_name, const std::string ¶m_name, const bool &is_vector) const
Check the type of the input parameter is valid, otherwise throw an error.
const std::string & type() const
Get the type of this class.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
const std::string & _current_task
The current action (even though we have separate instances for each action)
MooseApp & _app
The MOOSE application this is associated with.
void convertAndSetNumericVector(InputParameters ¶ms, const std::string ¶m_name, const std::vector< std::string > ¶m_value) const
Convert a vector of strings to a numeric vector and set it in the InputParameters object...
const std::vector< std::string > _fixed_scalar_input_param_names
Names of the vector input parameters to keep fixed in the batch generation.
const std::vector< std::string > _batch_scalar_input_param_names
Names of the scalar input parameters to vary in the batch generation.
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
virtual void addMeshGenerators()
IntRange< T > make_range(T beg, T end)
void mooseError(Args &&... args) const
Emits an error prefixed with object name and type and optionally a file path to the top-level block p...
const std::vector< std::string > _batch_vector_input_param_names
Names of the vector input parameters to vary in the batch generation.
const std::vector< ParameterType > _fixed_vector_input_param_types
Types of the vector input parameters to keep fixed in the batch generation.
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type...
void checkInputParametersTypes(const InputParameters ¶ms, const std::string &action_input_param_name, const std::vector< std::string > ¶m_names, const std::vector< ParameterType > ¶m_types, const bool &is_vector=false) const
Check the types of the input parameters are valid, otherwise throw an error.
std::vector< std::vector< std::vector< std::string > > > _batch_vector_input_param_values
Values of the vector input parameters to vary in the batch generation.
MeshGeneratorSystem & getMeshGeneratorSystem()
Gets the system that manages the MeshGenerators.
const std::string _mesh_name_prefix
Prefix to use for naming the batch generated meshes.
const std::vector< ParameterType > _batch_vector_input_param_types
Types of the vector input parameters to vary in the batch generation.
auto index_range(const T &sizable)