10 #ifdef MOOSE_MFEM_ENABLED 23 "complex MFEM vector FE variables, scaled by an optional scalar " 25 params.
addParam<MFEMScalarCoefficientName>(
26 "coefficient",
"1.",
"Name of optional scalar coefficient to scale integrand by.");
27 MFEMExecutedObject::addRequiredDependencyParam<VariableName>(
28 params,
"primal_variable",
"Name of the first complex vector variable in the inner product.");
29 MFEMExecutedObject::addRequiredDependencyParam<VariableName>(
30 params,
"dual_variable",
"Name of the second complex vector variable in the inner product.");
39 getMFEMProblem().getMFEMVariableMesh(getParam<VariableName>(
"primal_variable"))),
40 _l2_fec(getMFEMProblem()
41 .getComplexGridFunction(getParam<VariableName>(
"primal_variable"))
43 ->GetMaxElementOrder(),
44 getMesh().Dimension()),
45 _scalar_test_fespace(const_cast<mfem::ParMesh *>(&getMesh()), &_l2_fec),
46 _scalar_var(&_scalar_test_fespace),
47 _scalar_coef(getScalarCoefficient(
"coefficient")),
48 _primal_var_real_coef(
49 getVectorCoefficientByName(getParam<VariableName>(
"primal_variable") +
"_real")),
50 _primal_var_imag_coef(
51 getVectorCoefficientByName(getParam<VariableName>(
"primal_variable") +
"_imag")),
53 getVectorCoefficientByName(getParam<VariableName>(
"dual_variable") +
"_real")),
55 getVectorCoefficientByName(getParam<VariableName>(
"dual_variable") +
"_imag")),
56 _real_inner_product_coef(_primal_var_real_coef, _dual_var_real_coef),
57 _imag_inner_product_coef(_primal_var_imag_coef, _dual_var_imag_coef),
58 _sum_coef(_real_inner_product_coef, _imag_inner_product_coef, 0.5, 0.5),
59 _subdomain_integrator(&_scalar_test_fespace)
mfem::Array< int > & getSubdomainMarkers()
registerMooseObject("MooseApp", MFEMComplexVectorPeriodAveragedPostprocessor)
bool isSubdomainRestricted()
Returns a bool indicating if the object is restricted to a subset of subdomains.
Postprocessor for MFEM results.
mfem::ParLinearForm _subdomain_integrator
mfem::SumCoefficient _sum_coef
Real PostprocessorValue
various MOOSE typedefs
mfem::ParGridFunction _scalar_var
mfem::Coefficient & _scalar_coef
virtual PostprocessorValue getValue() const override final
Return the last evaluated integral value.
mfem::real_t _integral
Solution.
static InputParameters validParams()
Compute the time average of the inner product between two complex MFEM vector FE variables, scaled by an optional scalar coefficient.
static InputParameters validParams()
static InputParameters validParams()
Base class for construction of an object that is restricted to a subset of subdomains of the problem ...
virtual void execute() override
Evaluate integral.
MFEMComplexVectorPeriodAveragedPostprocessor(const InputParameters ¶meters)