https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MFEMComplexVectorProjectionAux.C
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
13
15
18{
21 "Projects a real and imaginary vector coefficient, optionally scaled by a real scalar "
22 "coefficient, onto a complex vector MFEM auxvariable.");
23 params.addRequiredParam<MFEMVectorCoefficientName>(
24 "vector_coefficient_real", "Name of the real part of the vector coefficient to project.");
25 params.addRequiredParam<MFEMVectorCoefficientName>(
26 "vector_coefficient_imag",
27 "Name of the imaginary part of the vector coefficient to project.");
28 params.addParam<MFEMScalarCoefficientName>(
29 "coefficient",
30 "1.",
31 "Name of the real scalar coefficient k to scale both parts of the vector coefficient by.");
32 return params;
33}
34
36 : MFEMComplexAuxKernel(parameters),
37 _vec_coef_real(getScalarCoefficient("coefficient"),
38 getVectorCoefficient("vector_coefficient_real")),
39 _vec_coef_imag(getScalarCoefficient("coefficient"),
40 getVectorCoefficient("vector_coefficient_imag"))
41{
42}
43
44void
49
50#endif
registerMooseObject("MooseApp", MFEMComplexVectorProjectionAux)
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system.
void addParam(const std::string &name, const S &value, const std::string &doc_string)
These methods add an optional parameter and a documentation string to the InputParameters object.
void addRequiredParam(const std::string &name, const std::string &doc_string)
This method adds a parameter and documentation string to the InputParameters object that will be extr...
void addClassDescription(const std::string &doc_string)
This method adds a description of the class that will be displayed in the input file syntax dump.
Class to construct an auxiliary solver used to update a complex auxvariable.
mfem::ParComplexGridFunction & _result_var
Reference to result complex gridfunction.
static InputParameters validParams()
Projects a complex vector coefficient, optionally scaled by a real scalar coefficient,...
mfem::ScalarVectorProductCoefficient _vec_coef_imag
Product of the scalar coefficient and the imaginary part of the source vector coefficient.
MFEMComplexVectorProjectionAux(const InputParameters &parameters)
virtual void execute() override
Perform the main work for this object.
mfem::ScalarVectorProductCoefficient _vec_coef_real
Product of the scalar coefficient and the real part of the source vector coefficient.