MFEMVectorFESpace

Overview

This is a convenience class for building finite element spaces to represent vector variables. The family of shape functions is selected from the fec_type parameter, and the order is controlled using the fec_order parameter. The number of vector components _in reference space_ is set by the range_dim parameter and defaults to the same as the dimension of the mesh. The number of vector components in physical space may differ, if a lower-dimensional mesh is embedded in a higher dimensional space.

The dimension of the resulting finite element collection/space will be the same as the dimension of the mesh. The value of vdim (the number of degrees of freedom per basis function) will depend on fec_type.

  • H1 and L2(Int) spaces will have vdim set to range_dim

  • ND and RT spaces will always have vdim set to 1

Note that Nédélec and Raviart-Thomas shape functions do not support vectors with fewer components than the dimension of the problem. Furthermore, MFEM does not currently support Nédélec and Raviart-Thomas finite elements in a 1D reference space but with 2D vectors.

If you need a finite element space that can't be constructed using the options available in this class, you can use MFEMGenericFESpace instead.

Example Input File Syntax

[FESpaces<<<{"href": "../../../syntax/FESpaces/index.html"}>>>]
  [H1FESpace]
    type = MFEMVectorFESpace<<<{"description": "Convenience class to construct vector finite element spaces, abstracting away some of the mathematical complexity of specifying the dimensions.", "href": "MFEMVectorFESpace.html"}>>>
    fec_type<<<{"description": "Specifies the family of FE shape functions."}>>> = H1
    fec_order<<<{"description": "Order of the FE shape function to use."}>>> = FIRST
    range_dim<<<{"description": "The number of components of the vectors in reference space. Zero (the default) means it will be the same as the problem dimension. Note that MFEM does not currently support 2D vectors in 1D space for ND and RT elements."}>>> = 3
    ordering<<<{"description": "Ordering style to use for vector DoFs."}>>> = "vdim"
  []
[]

[Variables<<<{"href": "../../../syntax/Variables/index.html"}>>>]
  [displacement]
    type = MFEMVariable<<<{"description": "Class for adding MFEM variables to the problem (`mfem::ParGridFunction`s).", "href": "../variables/MFEMVariable.html"}>>>
    fespace<<<{"description": "The finite element space this variable is defined on."}>>> = H1FESpace
  []
[]
(test/tests/mfem/kernels/gravity.i)

Input Parameters

  • basisGaussLobattoSpecifies the basis used for H1 and L2(Int) vector elements. H1 spaces require a closed basis (GaussLobatto Positive ClosedUniform Serendipity ClosedGL)

    Default:GaussLobatto

    C++ Type:MooseEnum

    Options:GaussLegendre, GaussLobatto, Positive, OpenUniform, ClosedUniform, OpenHalfUniform, Serendipity, ClosedGL, IntegratedGLL

    Controllable:No

    Description:Specifies the basis used for H1 and L2(Int) vector elements. H1 spaces require a closed basis (GaussLobatto Positive ClosedUniform Serendipity ClosedGL)

  • closed_basisGaussLobattoSpecifies the closed basis used for ND and RT elements.

    Default:GaussLobatto

    C++ Type:MooseEnum

    Options:GaussLobatto, ClosedUniform, Serendipity, ClosedGL

    Controllable:No

    Description:Specifies the closed basis used for ND and RT elements.

  • fec_orderFIRSTOrder of the FE shape function to use.

    Default:FIRST

    C++ Type:MooseEnum

    Options:CONSTANT, FIRST, SECOND, THIRD, FOURTH, FIFTH, SIXTH, SEVENTH, EIGHTH, NINTH, TENTH, ELEVENTH, TWELFTH, THIRTEENTH, FOURTEENTH, FIFTEENTH, SIXTEENTH, SEVENTEENTH, EIGHTTEENTH, NINETEENTH, TWENTIETH, TWENTYFIRST, TWENTYSECOND, TWENTYTHIRD, TWENTYFOURTH, TWENTYFIFTH, TWENTYSIXTH, TWENTYSEVENTH, TWENTYEIGHTH, TWENTYNINTH, THIRTIETH, THIRTYFIRST, THIRTYSECOND, THIRTYTHIRD, THIRTYFOURTH, THIRTYFIFTH, THIRTYSIXTH, THIRTYSEVENTH, THIRTYEIGHTH, THIRTYNINTH, FORTIETH, FORTYFIRST, FORTYSECOND, FORTYTHIRD

    Controllable:No

    Description:Order of the FE shape function to use.

  • fec_typeH1Specifies the family of FE shape functions.

    Default:H1

    C++ Type:MooseEnum

    Options:H1, ND, RT, L2, L2Int

    Controllable:No

    Description:Specifies the family of FE shape functions.

  • open_basisGaussLegendreSpecifies the open basis used for ND and RT elements.

    Default:GaussLegendre

    C++ Type:MooseEnum

    Options:GaussLegendre, GaussLobatto, Positive, OpenUniform, ClosedUniform, OpenHalfUniform, Serendipity, ClosedGL, IntegratedGLL

    Controllable:No

    Description:Specifies the open basis used for ND and RT elements.

  • orderingVDIMOrdering style to use for vector DoFs.

    Default:VDIM

    C++ Type:MooseEnum

    Options:NODES, VDIM

    Controllable:No

    Description:Ordering style to use for vector DoFs.

  • range_dim0The number of components of the vectors in reference space. Zero (the default) means it will be the same as the problem dimension. Note that MFEM does not currently support 2D vectors in 1D space for ND and RT elements.

    Default:0

    C++ Type:int

    Controllable:No

    Description:The number of components of the vectors in reference space. Zero (the default) means it will be the same as the problem dimension. Note that MFEM does not currently support 2D vectors in 1D space for ND and RT elements.

  • submeshSubmesh to define the FESpace on. Leave blank to use base mesh.

    C++ Type:std::string

    Controllable:No

    Description:Submesh to define the FESpace on. Leave blank to use base mesh.

  • vdim1The number of degrees of freedom per basis function.

    Default:1

    C++ Type:int

    Controllable:No

    Description:The number of degrees of freedom per basis function.

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.

Advanced Parameters

Input Files