14 #include "libmesh/string_to_enum.h" 26 params.
addClassDescription(
"Set up variables, kernels, and materials for a the displacement " 27 "gradients and their elastic free energy derivatives for non-split " 28 "Cahn-Hilliard problems.");
30 "Vector of displacement variables");
32 "Vector of displacement gradient variables");
34 "scaling", 1.0,
"Specifies a scaling factor to apply to the displacement gradient variables");
35 params.
addParam<std::vector<SubdomainName>>(
36 "block", {},
"Block restriction for the variables and kernels");
42 _displacements(getParam<
std::vector<VariableName>>(
"displacements")),
43 _displacement_gradients(getParam<
std::vector<VariableName>>(
"displacement_gradients"))
55 Real scaling = getParam<Real>(
"scaling");
56 for (
unsigned int i = 0; i < ngrad; ++i)
60 var_params.set<
MooseEnum>(
"order") =
"FIRST";
61 var_params.set<std::vector<Real>>(
"scaling") = {scaling};
62 var_params.applySpecificParameters(
_pars, {
"block"});
73 _problem->addMaterial(
"StrainGradDispDerivatives",
"strain_grad_disp_derivatives", params);
78 if (ndisp * ndisp != ngrad)
80 "Number of displacement gradient variables must be the square of the number of " 81 "displacement variables.");
85 for (
unsigned int j = 0;
j < ndisp; ++
j)
86 for (
unsigned int k = 0;
k < ndisp; ++
k)
91 params.
set<
unsigned int>(
"component") =
k;
DisplacementGradientsAction(const InputParameters ¶ms)
InputParameters getValidParams(const std::string &name) const
registerMooseAction("PhaseFieldApp", DisplacementGradientsAction, "add_kernel")
static InputParameters validParams()
const std::string & _current_task
void paramError(const std::string ¶m, Args... args) const
std::vector< VariableName > _displacements
DIE A HORRIBLE DEATH HERE typedef LIBMESH_DEFAULT_SCALAR_TYPE Real
std::vector< VariableName > _displacement_gradients
void mooseError(Args &&... args) const
const InputParameters & _pars
std::shared_ptr< FEProblemBase > & _problem
const InputParameters & parameters() const
static const std::complex< double > j(0, 1)
Complex number "j" (also known as "i")
static InputParameters validParams()
Automatically generates all variables, Kernels, and Materials to ensure the correct derivatives of th...
static const std::string k