36 "simulation with a linearized interface");
38 "specifies the base name of the dependent order parameters");
41 "Bounds value used in the constrained solve, where limits are +/- bound_value");
59 for (
unsigned int op = 0; op <
_op_num; op++)
73 var_params.set<
MooseEnum>(
"order") =
"FIRST";
74 _problem->addAuxVariable(
"MooseVariable", op_name, var_params);
79 var_params.set<
MooseEnum>(
"order") =
"FIRST";
80 _problem->addAuxVariable(
"MooseVariable",
"bounds_dummy", var_params);
90 std::string kernel_type =
"ChangedVariableTimeDerivative";
92 std::string kernel_name = var_name +
"_" + kernel_type;
94 params.
set<NonlinearVariableName>(
"variable") = var_name;
95 params.
set<MaterialPropertyName>(
"order_parameter") = op_name;
98 _problem->addKernel(kernel_type, kernel_name, params);
106 std::string kernel_type =
"ACGrGrPolyLinearizedInterface";
109 std::vector<VariableName>
v;
111 std::vector<MaterialPropertyName> other_ops;
114 unsigned int ind = 0;
123 std::string kernel_name = var_name +
"_" + kernel_type;
125 params2.
set<NonlinearVariableName>(
"variable") = var_name;
126 params2.
set<std::vector<VariableName>>(
"v") =
v;
127 params2.
set<MaterialPropertyName>(
"this_op") = op_name;
128 params2.
set<std::vector<MaterialPropertyName>>(
"other_ops") = other_ops;
129 params2.
set<MaterialPropertyName>(
"mob_name") = getParam<MaterialPropertyName>(
"mobility");
132 _problem->addKernel(kernel_type, kernel_name, params2);
140 std::string kernel_type =
"ACInterfaceChangedVariable";
142 std::string kernel_name = var_name +
"_" + kernel_type;
144 params.
set<NonlinearVariableName>(
"variable") = var_name;
145 params.
set<MaterialPropertyName>(
"mob_name") = getParam<MaterialPropertyName>(
"mobility");
146 params.
set<MaterialPropertyName>(
"kappa_name") = getParam<MaterialPropertyName>(
"kappa");
147 params.
set<MaterialPropertyName>(
"order_parameter") = op_name;
148 params.
set<
bool>(
"variable_L") = getParam<bool>(
"variable_mobility");
151 _problem->addKernel(kernel_type, kernel_name, params);
158 std::string material_name =
"LinearizedInterfaceFunction";
160 params.
set<std::string>(
"property_name") = op_name;
161 params.set<std::vector<VariableName>>(
"phi") = {var_name};
163 _problem->addMaterial(material_name, op_name, params);
170 std::string aux_kernel_type =
"LinearizedInterfaceAux";
172 std::string aux_kernel_name = op_name + aux_kernel_type;
174 params.
set<AuxVariableName>(
"variable") = op_name;
175 params.
set<std::vector<VariableName>>(
"nonlinear_variable") = {var_name};
179 _problem->addAuxKernel(aux_kernel_type, aux_kernel_name, params);
184 std::string bound_type =
"ConstantBounds";
185 std::string bound_name = var_name +
"_upper_bound";
187 params.
set<AuxVariableName>(
"variable") =
"bounds_dummy";
188 params.set<NonlinearVariableName>(
"bounded_variable") = var_name;
189 params.set<
MooseEnum>(
"bound_type") =
"upper";
190 params.set<
Real>(
"bound_value") = getParam<Real>(
"bound_value");
191 _problem->addAuxKernel(bound_type, bound_name, params);
195 std::string bound_type =
"ConstantBounds";
196 std::string bound_name = var_name +
"_lower_bound";
198 params.
set<AuxVariableName>(
"variable") =
"bounds_dummy";
199 params.set<NonlinearVariableName>(
"bounded_variable") = var_name;
200 params.set<
MooseEnum>(
"bound_type") =
"lower";
201 params.set<
Real>(
"bound_value") = -1.0 * getParam<Real>(
"bound_value");
202 _problem->addAuxKernel(bound_type, bound_name, params);
void addBnds(const std::string &name_base)
static InputParameters validParams()
InputParameters getValidParams(const std::string &name) const
const ExecFlagType EXEC_TIMESTEP_END
const unsigned int _op_num
number of variables and variable name base for variable creation
const std::string _var_name_base
GrainGrowthLinearizedInterfaceAction(const InputParameters ¶ms)
const std::string _op_name_base
number of variables and variable name base for variable creation
const std::string & _current_task
std::string stringify(const T &t)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
static const std::string v
static InputParameters validParams()
std::shared_ptr< FEProblemBase > & _problem
const InputParameters & parameters() const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
registerMooseAction("PhaseFieldApp", GrainGrowthLinearizedInterfaceAction, "add_aux_variable")
const ExecFlagType EXEC_INITIAL