- orderOrder of the quadrature rule the projected values are stored on. This must match the integration rule used by the objects consuming this coefficient.
C++ Type:int
Range:order>=0
Controllable:No
Description:Order of the quadrature rule the projected values are stored on. This must match the integration rule used by the objects consuming this coefficient.
- vector_coefficientVector coefficient to project onto the quadrature points. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a numeric vector value (enclosed in curly braces).
C++ Type:MFEMVectorCoefficientName
Controllable:No
Description:Vector coefficient to project onto the quadrature points. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a numeric vector value (enclosed in curly braces).
MFEMVectorQuadratureFunction
Overview
MFEMVectorQuadratureFunction is the vector-valued counterpart of MFEMScalarQuadratureFunction: it declares a named vector MFEM coefficient holding precomputed values of a source vector coefficient at the quadrature points of an MFEM QuadratureSpace, and can be used wherever a vector coefficient name is accepted. The source is supplied through the vector_coefficient parameter, and the vector dimension of the stored values is taken from it.
The lazy re-projection behaviour, the updates parameter, and the requirement that the consuming integration rule match the order parameter (with MOOSE erroring and suggesting a matching order otherwise) are all identical to the scalar case; see MFEMScalarQuadratureFunction for details.
Example Input File Syntax
[Functions<<<{"href": "../../../syntax/Functions/index.html"}>>>]
[qf_gravity]
type = MFEMVectorQuadratureFunction<<<{"description": "Declares a vector MFEM coefficient holding precomputed values of a source vector coefficient at quadrature points. Values are (re)projected lazily when the coefficient is used.", "href": "MFEMVectorQuadratureFunction.html"}>>>
vector_coefficient<<<{"description": "Vector coefficient to project onto the quadrature points. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a numeric vector value (enclosed in curly braces)."}>>> = gravitational_force_density
# the quadrature rule order matches the one used by VectorDomainLFIntegrator
# for first-order elements (2 * fe_order = 2)
order<<<{"description": "Order of the quadrature rule the projected values are stored on. This must match the integration rule used by the objects consuming this coefficient."}>>> = 2
updates<<<{"description": "When the stored values are re-projected from the source coefficient: 'none' projects exactly once, 'time' re-projects when the simulation time changes, 'nonlinear' additionally re-projects whenever solution variables change (i.e. on each nonlinear iteration)."}>>> = none
[]
[]
[Kernels<<<{"href": "../../../syntax/Kernels/index.html"}>>>]
[diff]
type = MFEMLinearElasticityKernel<<<{"description": "The isotropic linear elasticity operator with weak form $(c_{ikjl} \\nabla u_j, \\nabla v_i)$, to be added to an MFEM problem, where $c_{ikjl}$ is the isotropic elasticity tensor, $c_{ikjl} = \\lambda \\delta_{ik} \\delta_{jl} + \\mu \\left( \\delta_{ij} \\delta_{kl} + \\delta_{il} \\delta_{jk} \\right)$, $\\lambda$ is the first Lame parameter, $\\lambda = \\frac{E\\nu}{(1-2\\nu)(1+\\nu)}$, $\\mu$ is the second Lame parameter, $\\mu = \\frac{E}{2(1+\\nu)}$, where $E$ is Young's modulus and $\\nu$ is Poisson's ratio.", "href": "../kernels/MFEMLinearElasticityKernel.html"}>>>
variable<<<{"description": "Variable labelling the weak form this kernel is added to"}>>> = displacement
lambda<<<{"description": "Name of MFEM Lame constant lambda to multiply the div(u)*I term by. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a number."}>>> = lambda
mu<<<{"description": "Name of MFEM Lame constant mu to multiply the gradients term by. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a number."}>>> = mu
[]
[gravity]
type = MFEMVectorDomainLFKernel<<<{"description": "Adds the domain integrator to an MFEM problem for the linear form $(\\vec f, \\vec v)_\\Omega$ arising from the weak form of the forcing term $\\vec f$.", "href": "../kernels/MFEMVectorDomainLFKernel.html"}>>>
variable<<<{"description": "Variable labelling the weak form this kernel is added to"}>>> = displacement
vector_coefficient<<<{"description": "Name of body force density f. A functor is any of the following: a variable, an MFEM material property, a function, a postprocessor or a numeric vector value (enclosed in curly braces)."}>>> = qf_gravity
[]
[](test/tests/mfem/kernels/gravity_qf.i)Input Parameters
- updatesNONLINEARWhen the stored values are re-projected from the source coefficient: 'none' projects exactly once, 'time' re-projects when the simulation time changes, 'nonlinear' additionally re-projects whenever solution variables change (i.e. on each nonlinear iteration).
Default:NONLINEAR
C++ Type:MooseEnum
Controllable:No
Description:When the stored values are re-projected from the source coefficient: 'none' projects exactly once, 'time' re-projects when the simulation time changes, 'nonlinear' additionally re-projects whenever solution variables change (i.e. on each nonlinear iteration).
Optional Parameters
- control_tagsAdds user-defined labels for accessing object parameters via control logic.
C++ Type:std::vector<std::string>
Controllable:No
Description:Adds user-defined labels for accessing object parameters via control logic.
- enableTrueSet the enabled status of the MooseObject.
Default:True
C++ Type:bool
Controllable:No
Description:Set the enabled status of the MooseObject.