10#ifdef MOOSE_MFEM_ENABLED
22 "Calculates the curl of an H(curl) conforming ND source variable and stores the result"
23 " on an H(div) conforming RT result auxvariable");
24 MFEMExecutedObject::addRequiredDependencyParam<VariableName>(
25 params,
"source",
"Vector H(curl) MFEMVariable to take the curl 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 _curl(_source_var.ParFESpace(), _result_var.ParFESpace())
registerMooseObject("MooseApp", MFEMCurlAux)
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(div) auxvariable to be the curl of an H(curl) vector variable.
static InputParameters validParams()
mfem::common::ParDiscreteCurlOperator _curl
Curl operator.
const mfem::ParGridFunction & _source_var
Reference to source gridfunction.
const mfem::real_t _scale_factor
Scalar factor to multiply the result by.
virtual void execute() override
Computes the auxvariable.
MFEMCurlAux(const InputParameters ¶meters)
virtual void update() override
Method called to update any owned objects upon an FE space update.