16 #include "libmesh/string_to_enum.h" 28 "Specifies the family of FE shape functions to use for the L variables");
33 "Specifies the order of the FE shape function to use for the L variables");
34 params.
addParam<
Real>(
"scaling", 1.0,
"Specifies a scaling factor to apply to the L variables");
36 "num_L",
"specifies the number of complex L variables will be solved for");
37 params.
addRequiredParam<std::string>(
"L_name_base",
"Base name for the complex L variables");
38 params.
addParam<std::vector<SubdomainName>>(
39 "block", {},
"Block restriction for the variables and kernels");
45 _num_L(getParam<unsigned
int>(
"num_L")),
46 _L_name_base(getParam<
std::string>(
"L_name_base"))
54 Moose::err <<
"Inside the HHPFCRFFSplitVariablesAction Object\n";
55 Moose::err <<
"VariableBase: " <<
_L_name_base <<
"\torder: " << getParam<MooseEnum>(
"order")
56 <<
"\tfamily: " << getParam<MooseEnum>(
"family") << std::endl;
60 for (
unsigned int l = 0; l <
_num_L; ++l)
66 std::string real_name = L_name +
"_real";
68 const auto type =
"MooseVariable";
71 params.set<std::vector<Real>>(
"scaling") = {getParam<Real>(
"scaling")};
78 std::string imag_name = L_name +
"_imag";
const unsigned int _num_L
HHPFCRFFSplitVariablesAction(const InputParameters ¶ms)
InputParameters getValidParams(const std::string &name) const
const std::string _L_name_base
static MooseEnum getNonlinearVariableFamilies()
Automatically generates all the L variables for the RFF phase field crystal model.
static InputParameters validParams()
static MooseEnum getNonlinearVariableOrders()
registerMooseAction("PhaseFieldApp", HHPFCRFFSplitVariablesAction, "add_variable")
const std::string & type() const
std::string stringify(const T &t)
static InputParameters validParams()
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
const InputParameters & _pars
std::shared_ptr< FEProblemBase > & _problem
void ErrorVector unsigned int