12 #include "FEProblem.h"
13 #include "Conversion.h"
14 #include "AddVariableAction.h"
16 #include "libmesh/string_to_enum.h"
24 InputParameters params = validParams<Action>();
25 MooseEnum familyEnum = AddVariableAction::getNonlinearVariableFamilies();
26 params.addParam<MooseEnum>(
29 "Specifies the family of FE shape functions to use for the L variables");
30 MooseEnum orderEnum = AddVariableAction::getNonlinearVariableOrders();
31 params.addParam<MooseEnum>(
34 "Specifies the order of the FE shape function to use for the L variables");
35 params.addParam<Real>(
"scaling", 1.0,
"Specifies a scaling factor to apply to the L variables");
36 params.addRequiredParam<
unsigned int>(
37 "num_L",
"specifies the number of complex L variables will be solved for");
38 params.addRequiredParam<std::string>(
"L_name_base",
"Base name for the complex L variables");
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 _problem->addVariable(real_name,
69 FEType(Utility::string_to_enum<Order>(getParam<MooseEnum>(
"order")),
70 Utility::string_to_enum<FEFamily>(getParam<MooseEnum>(
"family"))),
71 getParam<Real>(
"scaling"));
76 std::string imag_name = L_name +
"_imag";
78 _problem->addVariable(
80 FEType(Utility::string_to_enum<Order>(getParam<MooseEnum>(
"order")),
81 Utility::string_to_enum<FEFamily>(getParam<MooseEnum>(
"family"))),
82 getParam<Real>(
"scaling"));