101 bool initial_from_file = getParam<bool>(
"initial_from_file");
104 for (
unsigned int op = 0; op <
_op_num; op++)
106 auto type = AddVariableAction::determineType(
_fe_type, 1);
107 auto var_params = _factory.getValidParams(type);
109 var_params.applySpecificParameters(_pars, {
"family",
"order"});
110 var_params.set<std::vector<Real>>(
"scaling") = {getParam<Real>(
"scaling")};
116 if (initial_from_file)
118 if (_current_task ==
"check_copy_nodal_vars")
119 _app.setFileRestart() =
true;
121 if (_current_task ==
"copy_nodal_vars")
123 auto * system = &_problem->getNonlinearSystemBase();
124 system->addVariableToCopy(var_name, var_name,
"LATEST");
129 if (_current_task ==
"add_variable")
130 _problem->addVariable(type, var_name, var_params);
133 else if (_current_task ==
"add_kernel")
140 std::string kernel_type =
_use_ad ?
"ADTimeDerivative" :
"TimeDerivative";
142 std::string kernel_name = var_name +
"_" + kernel_type;
143 InputParameters params =
144 _factory.getValidParams(kernel_type + (
_use_ad ?
"<RESIDUAL>" :
""));
145 params.set<NonlinearVariableName>(
"variable") = var_name;
146 params.applyParameters(parameters());
148 addKernel(kernel_type, kernel_name, params);
156 std::string kernel_type =
_use_ad ?
"ADGrainGrowth" :
"ACGrGrPoly";
159 std::vector<VariableName> v;
162 unsigned int ind = 0;
163 for (
unsigned int j = 0; j <
_op_num; ++j)
167 std::string kernel_name = var_name +
"_" + kernel_type;
168 InputParameters params =
169 _factory.getValidParams(kernel_type + (
_use_ad ?
"<RESIDUAL>" :
""));
170 params.set<NonlinearVariableName>(
"variable") = var_name;
171 params.set<std::vector<VariableName>>(
"v") = v;
172 params.set<MaterialPropertyName>(
"mob_name") = getParam<MaterialPropertyName>(
"mobility");
173 params.applyParameters(parameters());
175 addKernel(kernel_type, kernel_name, params);
183 std::string kernel_type =
_use_ad ?
"ADACInterface" :
"ACInterface";
185 std::string kernel_name = var_name +
"_" + kernel_type;
186 InputParameters params =
187 _factory.getValidParams(kernel_type + (
_use_ad ?
"<RESIDUAL>" :
""));
188 params.set<NonlinearVariableName>(
"variable") = var_name;
189 params.set<MaterialPropertyName>(
"mob_name") = getParam<MaterialPropertyName>(
"mobility");
190 params.set<MaterialPropertyName>(
"kappa_name") = getParam<MaterialPropertyName>(
"kappa");
191 params.set<
bool>(
"variable_L") = getParam<bool>(
"variable_mobility");
192 params.applyParameters(parameters());
194 addKernel(kernel_type, kernel_name, params);
201 if (isParamValid(
"c"))
204 mooseError(
"AD version of ACGBPoly is not implemented");
206 std::string kernel_type =
"ACGBPoly";
208 std::string kernel_name = var_name +
"_" + kernel_type;
209 InputParameters params = _factory.getValidParams(kernel_type);
210 params.set<NonlinearVariableName>(
"variable") = var_name;
211 params.set<std::vector<VariableName>>(
"c") = {getParam<VariableName>(
"c")};
212 params.applyParameters(parameters());
214 _problem->addKernel(kernel_type, kernel_name, params);
219 if (_current_task ==
"add_aux_variable")
221 auto var_params = _factory.getValidParams(
"MooseVariable");
222 var_params.set<MooseEnum>(
"family") =
"LAGRANGE";
223 var_params.set<MooseEnum>(
"order") =
"FIRST";
224 _problem->addAuxVariable(
"MooseVariable",
"bnds", var_params);
228 else if (_current_task ==
"add_aux_kernel")
231 std::vector<VariableName> v;
234 for (
unsigned int j = 0; j <
_op_num; ++j)
237 std::string aux_kernel_type =
"BndsCalcAux";
239 std::string aux_kernel_name =
"bnds_" + aux_kernel_type;
240 InputParameters params = _factory.getValidParams(aux_kernel_type);
241 params.set<AuxVariableName>(
"variable") =
"bnds";
242 params.set<std::vector<VariableName>>(
"v") = v;
243 params.applyParameters(parameters());
245 _problem->addAuxKernel(aux_kernel_type, aux_kernel_name, params);