16 #include "libmesh/string_to_enum.h" 25 params.
addClassDescription(
"Creates the L nonlinear variables for the Cahn-Hilliard equation for " 26 "the RFF form of the phase field crystal model");
30 "Specifies the family of FE shape functions to use for the L variables");
35 "Specifies the order of the FE shape function to use for the L variables");
36 params.
addParam<
Real>(
"scaling", 1.0,
"Specifies a scaling factor to apply to the L variables");
38 "num_L",
"specifies the number of complex L variables will be solved for");
39 params.
addRequiredParam<std::string>(
"L_name_base",
"Base name for the complex L variables");
40 params.
addParam<std::vector<SubdomainName>>(
41 "block", {},
"Block restriction for the variables and kernels");
47 _num_L(getParam<unsigned
int>(
"num_L")),
48 _L_name_base(getParam<
std::string>(
"L_name_base"))
56 Moose::err <<
"Inside the PFCRFFVariablesAction Object\n";
57 Moose::err <<
"VariableBase: " <<
_L_name_base <<
"\torder: " << getParam<MooseEnum>(
"order")
58 <<
"\tfamily: " << getParam<MooseEnum>(
"family") << std::endl;
66 var_params.set<std::vector<Real>>(
"scaling") = {getParam<Real>(
"scaling")};
69 for (
unsigned int l = 0; l <
_num_L; ++l)
75 const std::string real_name = L_name +
"_real";
81 std::string imag_name = L_name +
"_imag";
const std::string _L_name_base
registerMooseAction("PhaseFieldApp", PFCRFFVariablesAction, "add_variable")
const unsigned int _num_L
InputParameters getValidParams(const std::string &name) const
PFCRFFVariablesAction(const InputParameters ¶ms)
static InputParameters validParams()
static MooseEnum getNonlinearVariableFamilies()
Automatically generates all the L variables for the RFF phase field crystal model.
static InputParameters validParams()
static MooseEnum getNonlinearVariableOrders()
const std::string & type() const
static std::string variableType(const libMesh::FEType &fe_type, const bool is_fv=false, const bool is_array=false)
std::string stringify(const T &t)
static libMesh::FEType feType(const InputParameters ¶ms)
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & _pars
std::shared_ptr< FEProblemBase > & _problem
void ErrorVector unsigned int