https://mooseframework.inl.gov
MFEMComplexInnerProductAux.h
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://mooseframework.inl.gov
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #ifdef MOOSE_MFEM_ENABLED
11 
12 #pragma once
13 
14 #include "MFEMComplexAuxKernel.h"
15 
24 {
25 public:
27 
29  ~MFEMComplexInnerProductAux() override = default;
30 
31  void execute() override;
32 
33 protected:
35  const std::complex<mfem::real_t> _scale_factor;
36 
38  mfem::VectorCoefficient & _u_coef_real;
39  mfem::VectorCoefficient & _u_coef_imag;
40  mfem::VectorCoefficient & _v_coef_real;
41  mfem::VectorCoefficient & _v_coef_imag;
42 
43  mfem::InnerProductCoefficient _dot_ur_vr;
44  mfem::InnerProductCoefficient _dot_ur_vi;
45  mfem::InnerProductCoefficient _dot_ui_vr;
46  mfem::InnerProductCoefficient _dot_ui_vi;
47 
49  mfem::SumCoefficient _final_coef_real;
50  mfem::SumCoefficient _final_coef_imag;
51 };
52 
53 #endif // MOOSE_MFEM_ENABLED
mfem::InnerProductCoefficient _dot_ur_vi
~MFEMComplexInnerProductAux() override=default
Project onto a complex scalar MFEM auxvariable.
void execute() override
Perform the main work for this object.
const InputParameters & parameters() const
Get the parameters of the object.
Definition: MooseBase.h:131
const std::complex< mfem::real_t > _scale_factor
Scaling factor applied on the resulting field.
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
mfem::InnerProductCoefficient _dot_ui_vi
mfem::InnerProductCoefficient _dot_ur_vr
mfem::VectorCoefficient & _u_coef_imag
mfem::VectorCoefficient & _v_coef_imag
MFEMComplexInnerProductAux(const InputParameters &parameters)
mfem::SumCoefficient _final_coef_real
Final coefficient that sums the inner product terms.
static InputParameters validParams()
mfem::InnerProductCoefficient _dot_ui_vr
mfem::VectorCoefficient & _v_coef_real
Class to construct an auxiliary solver used to update a complex auxvariable.
mfem::VectorCoefficient & _u_coef_real
Coefficient wrappers.