https://mooseframework.inl.gov
Loading...
Searching...
No Matches
MFEMVectorProjectionAux.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{
20 params.addClassDescription("Projects a vector coefficient $\\vec u$, optionally scaled by a "
21 "scalar coefficient $k$, onto a vector MFEM auxvariable, storing "
22 "$k \\vec u$.");
23 params.addRequiredParam<MFEMVectorCoefficientName>("vector_coefficient",
24 "Name of the vector coefficient to project.");
25 params.addParam<MFEMScalarCoefficientName>(
26 "coefficient", "1.", "Name of the scalar coefficient k to scale the vector coefficient by.");
27 return params;
28}
29
31 : MFEMAuxKernel(parameters),
32 _vec_coef(getScalarCoefficient("coefficient"), getVectorCoefficient("vector_coefficient"))
33{
34}
35
36void
38{
39 _result_var.ProjectCoefficient(_vec_coef);
40}
41
42#endif
registerMooseObject("MooseApp", MFEMVectorProjectionAux)
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 real auxvariable.
static InputParameters validParams()
mfem::ParGridFunction & _result_var
Reference to result gridfunction.
Projects a vector coefficient, optionally scaled by a scalar coefficient, onto a vector-valued auxvar...
static InputParameters validParams()
MFEMVectorProjectionAux(const InputParameters &parameters)
virtual void execute() override
Perform the main work for this object.
mfem::ScalarVectorProductCoefficient _vec_coef
Product of the scalar and vector source coefficients.