12 #include "Conversion.h"
13 #include "FEProblem.h"
21 InputParameters params = validParams<Action>();
22 params.addRequiredParam<
unsigned int>(
23 "grain_num",
"Value that specifies the number of grains to create aux kernels for.");
24 params.addRequiredParam<std::vector<std::string>>(
25 "variable_base",
"Vector specifies the base name of the variables.");
26 params.addRequiredParam<std::vector<MaterialPropertyName>>(
"property",
27 "The material property names.");
28 params.addParam<
bool>(
29 "use_displaced_mesh",
false,
"Whether to use displaced mesh in the kernels.");
35 _grain_num(getParam<unsigned int>(
"grain_num")),
36 _var_name_base(getParam<std::vector<std::string>>(
"variable_base")),
37 _num_var(_var_name_base.size()),
38 _prop(getParam<std::vector<MaterialPropertyName>>(
"property")),
39 _num_prop(_prop.size())
47 paramError(
"property",
"variable_base and property must be vectors of the same size");
49 for (
unsigned int gr = 0; gr <
_grain_num; ++gr)
50 for (
unsigned int val = 0; val <
_num_var; ++val)
54 InputParameters params = _factory.getValidParams(
"MaterialStdVectorAux");
55 params.set<AuxVariableName>(
"variable") = var_name;
56 params.set<MaterialPropertyName>(
"property") =
_prop[val];
57 params.set<
unsigned int>(
"index") = gr;
58 params.set<
bool>(
"use_displaced_mesh") = getParam<bool>(
"use_displaced_mesh");
60 std::string aux_kernel_name = var_name;
61 _problem->addAuxKernel(
"MaterialStdVectorAux", aux_kernel_name, params);