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);
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;
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)
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.
bool toBool(const std::string &, T &)
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.
int convert< int >(const std::string &str, bool throw_on_failure)
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.
unsigned int convert< unsigned int >(const std::string &str, bool throw_on_failure)
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)