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>(
27 "scale_factor_real", 1.0,
"Real part of the factor to scale result auxvariable by.");
28 params.addParam<mfem::real_t>(
29 "scale_factor_imag", 0.0,
"Imaginary part of the factor to scale result auxvariable by.");
35 _source_var_name(getParam<VariableName>(
"source")),
36 _source_var(*getMFEMProblem().getComplexGridFunction(_source_var_name)),
37 _scale_factor(getParam<mfem::real_t>(
"scale_factor_real"),
38 getParam<mfem::real_t>(
"scale_factor_imag")),
39 _grad(_source_var.ParFESpace(), _result_var.ParFESpace())
virtual void update() override
Method called to update any owned objects upon an FE space update.
registerMooseObject("MooseApp", MFEMComplexGradAux)
virtual void execute() override
Computes the auxvariable.
Class to set an H(curl) auxvariable to be the gradient of a complex H1 scalar variable.
static InputParameters validParams()
const std::complex< mfem::real_t > _scale_factor
Scalar factor to multiply the result by.
static InputParameters validParams()
void complexScale(mfem::ParComplexGridFunction &a, const std::complex< mfem::real_t > scale={1.0, 0.0})
Method to scale a complex variable by a complex constant.
mfem::ParComplexGridFunction & _source_var
Reference to source gridfunction.
mfem::ParComplexGridFunction & _result_var
Reference to result complex gridfunction.
mfem::common::ParDiscreteGradOperator _grad
Grad operator.
long _sequence
Counter to keep track of FE space updates.
MFEMComplexGradAux(const InputParameters ¶meters)
Class to construct an auxiliary solver used to update a complex auxvariable.