10#ifdef MOOSE_MFEM_ENABLED
22 "Calculates the gradient of an H1 conforming source variable and stores the result"
23 " on an H(curl) conforming ND result auxvariable");
24 MFEMExecutedObject::addRequiredDependencyParam<VariableName>(
25 params,
"source",
"Scalar H1 MFEMVariable to take the gradient of.");
26 params.
addParam<mfem::real_t>(
"scale_factor", 1.0,
"Factor to scale result auxvariable by.");
32 _source_var_name(getParam<VariableName>(
"source")),
33 _source_var(*getMFEMProblem().getGridFunction(_source_var_name)),
34 _scale_factor(getParam<
mfem::real_t>(
"scale_factor")),
35 _grad(_source_var.ParFESpace(), _result_var.ParFESpace())
registerMooseObject("MooseApp", MFEMGradAux)
Class to construct an auxiliary solver used to update a real auxvariable.
static InputParameters validParams()
long _sequence
Counter to keep track of FE space updates.
mfem::ParGridFunction & _result_var
Reference to result gridfunction.
Class to set an H(curl) auxvariable to be the gradient of a H1 scalar variable.
const mfem::real_t _scale_factor
Scalar factor to multiply the result by.
static InputParameters validParams()
virtual void execute() override
Computes the auxvariable.
virtual void update() override
Method called to update any owned objects upon an FE space update.
mfem::common::ParDiscreteGradOperator _grad
Grad operator.
MFEMGradAux(const InputParameters ¶meters)
const mfem::ParGridFunction & _source_var
Reference to source gridfunction.