22 "Set up ACGrGrPoly, ACInterface, TimeDerivative, and ACGBPoly kernels");
24 "op_num",
"specifies the total number of grains (deformed + recrystallized) to create");
25 params.
addRequiredParam<std::string>(
"var_name_base",
"specifies the base name of the variables");
26 params.
addParam<VariableName>(
"c",
"Name of coupled concentration variable");
27 params.
addParam<
Real>(
"en_ratio", 1.0,
"Ratio of surface to GB energy");
28 params.
addParam<
unsigned int>(
"ndef", 0,
"specifies the number of deformed grains to create");
29 params.
addParam<
bool>(
"implicit",
true,
"Whether kernels are implicit or not");
31 "use_displaced_mesh",
false,
"Whether to use displaced mesh in the kernels");
32 params.
addParam<
bool>(
"variable_mobility",
34 "The mobility is a function of any MOOSE variable (if " 35 "this is set to false, L must be constant over the " 37 params.
addCoupledVar(
"args",
"Vector of nonlinear variable arguments that L depends on");
45 _op_num(getParam<unsigned
int>(
"op_num")),
46 _var_name_base(getParam<
std::string>(
"var_name_base"))
53 for (
unsigned int op = 0; op <
_op_num; ++op)
60 std::vector<VariableName>
v;
74 params.
set<NonlinearVariableName>(
"variable") = var_name;
75 params.
set<std::vector<VariableName>>(
"v") =
v;
78 std::string kernel_name =
"ACBulk_" + var_name;
79 _problem->addKernel(
"ACGrGrPoly", kernel_name, params);
88 params.
set<NonlinearVariableName>(
"variable") = var_name;
91 std::string kernel_name =
"ACInt_" + var_name;
92 _problem->addKernel(
"ACInterface", kernel_name, params);
101 params.
set<NonlinearVariableName>(
"variable") = var_name;
102 params.
set<
bool>(
"implicit") =
true;
105 std::string kernel_name =
"IE_" + var_name;
106 _problem->addKernel(
"TimeDerivative", kernel_name, params);
116 params.
set<NonlinearVariableName>(
"variable") = var_name;
117 params.
set<std::vector<VariableName>>(
"c") = {getParam<VariableName>(
"c")};
120 std::string kernel_name =
"ACBubInteraction_" + var_name;
121 _problem->addKernel(
"ACGBPoly", kernel_name, params);
const unsigned int _op_num
number of grains to create
InputParameters getValidParams(const std::string &name) const
static InputParameters validParams()
bool isParamValid(const std::string &name) const
static InputParameters validParams()
PolycrystalKernelAction(const InputParameters ¶ms)
std::string stringify(const T &t)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
Action that sets up ACGrGrPoly, ACInterface, TimeDerivative, and ACGBPoly kernels.
registerMooseAction("PhaseFieldApp", PolycrystalKernelAction, "add_kernel")
std::shared_ptr< FEProblemBase > & _problem
const InputParameters & parameters() const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
const std::string _var_name_base
base name for the order parameter variables
void ErrorVector unsigned int