https://mooseframework.inl.gov
MFEMQuadratureFunctionBase.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 #include "MFEMProblem.h"
14 
17 {
19  params.registerBase("MFEMQuadratureFunction");
20  params.registerSystemAttributeName("MFEMQuadratureFunction");
21  params.addRequiredRangeCheckedParam<int>(
22  "order",
23  "order>=0",
24  "Order of the quadrature rule the projected values are stored on. This must match the "
25  "integration rule used by the objects consuming this coefficient.");
26  MooseEnum updates(MFEMQuadratureFunctionCoefficientBase::getUpdatePolicyOptions(), "NONLINEAR");
27  params.addParam<MooseEnum>(
28  "updates",
29  updates,
30  "When the stored values are re-projected from the source coefficient: 'none' projects "
31  "exactly once, 'time' re-projects when the simulation time changes, 'nonlinear' additionally "
32  "re-projects whenever solution variables change (i.e. on each nonlinear iteration).");
33  return params;
34 }
35 
37  : MFEMObject(parameters),
38  _qspace(&getMFEMProblem().mesh().getMFEMParMesh(), getParam<int>("order"))
39 {
40 }
41 
42 MFEMQuadratureFunctionCoefficientBase::UpdatePolicy
44 {
45  return getParam<MooseEnum>("updates")
46  .getEnum<MFEMQuadratureFunctionCoefficientBase::UpdatePolicy>();
47 }
48 
49 #endif
Thin base for MFEM objects backed directly by MooseObject instead of UserObject.
Definition: MFEMObject.h:25
void addRequiredRangeCheckedParam(const std::string &name, const std::string &parsed_function, const std::string &doc_string)
These methods add an range checked parameters.
MFEMQuadratureFunctionBase(const InputParameters &parameters)
MeshBase & mesh
void registerSystemAttributeName(const std::string &value)
This method is used to define the MOOSE system name that is used by the TheWarehouse object for stori...
The main MOOSE class responsible for handling user-defined parameters in almost every MOOSE system...
MFEMQuadratureFunctionCoefficientBase::UpdatePolicy updatePolicy() const
Return the update policy selected by the &#39;updates&#39; input parameter, to hand to the coefficient (which...
static InputParameters validParams()
void registerBase(const std::string &value)
This method must be called from every base "Moose System" to create linkage with the Action System...
This is a "smart" enum class intended to replace many of the shortcomings in the C++ enum type It sho...
Definition: MooseEnum.h:54
static InputParameters validParams()
Declare the common parameters required by MFEM MooseObject-backed classes.
Definition: MFEMObject.C:17
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 ErrorVector unsigned int