MFEM v4.10.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::DofToQuad Class Reference

Structure representing the matrices/tensors needed to evaluate (in reference space) the values, gradients, divergences, or curls of a FiniteElement at the quadrature points of a given IntegrationRule. More...

#include <fe_base.hpp>

Inheritance diagram for mfem::DofToQuad:
[legend]
Collaboration diagram for mfem::DofToQuad:
[legend]

Public Types

enum  Mode { FULL , TENSOR , LEXICOGRAPHIC_FULL , RAGGED_TENSOR }
 Type of data stored in the arrays B, Bt, G, and Gt. More...
 

Public Member Functions

DofToQuad Abs () const
 Returns absolute value of the maps.
 
virtual ~DofToQuad ()=default
 

Static Public Member Functions

static DofToQuadSearchArray (const Array< DofToQuad * > &dof2quad_array, const IntegrationRule &ir, DofToQuad::Mode mode)
 Auxiliary function for searching DofToQuad arrays.
 

Public Attributes

const class FiniteElementFE
 The FiniteElement that created and owns this object.
 
const IntegrationRuleIntRule
 IntegrationRule that defines the quadrature points at which the basis functions of the FE are evaluated.
 
Mode mode
 Describes the contents of the B, Bt, G, and Gt arrays, see Mode.
 
int ndof
 Number of degrees of freedom = number of basis functions. When mode is TENSOR, this is the 1D number.
 
int nqpt
 Number of quadrature points. When mode is TENSOR, this is the 1D number.
 
Array< real_tB
 Basis functions evaluated at quadrature points.
 
Array< real_tBt
 Transpose of B.
 
Array< real_tG
 Gradients/divergences/curls of basis functions evaluated at quadrature points.
 
Array< real_tGt
 Transpose of G.
 

Detailed Description

Structure representing the matrices/tensors needed to evaluate (in reference space) the values, gradients, divergences, or curls of a FiniteElement at the quadrature points of a given IntegrationRule.

Objects of this type are typically created and owned by the respective FiniteElement object.

Definition at line 140 of file fe_base.hpp.

Member Enumeration Documentation

◆ Mode

Type of data stored in the arrays B, Bt, G, and Gt.

Enumerator
FULL 

Full multidimensional representation which does not use tensor product structure. The ordering of the degrees of freedom is as defined by FE.

TENSOR 

Tensor product representation using 1D matrices/tensors with dimensions using 1D number of quadrature points and degrees of freedom.

When representing a vector-valued FiniteElement, two DofToQuad objects are used to describe the "closed" and "open" 1D basis functions.

LEXICOGRAPHIC_FULL 

Full multidimensional representation which does not use tensor product structure. The ordering of the degrees of freedom is the same as TENSOR, but the sizes of B and G are the same as FULL.

RAGGED_TENSOR 

Ragged tensor product representation using 1D matrices/tensors with dimensions using 1D number of quadrature points and ragged tensor degrees of freedom.

Used only for partial assembly of the H1 positive basis. The size of B is d1d x qnpt x dim. Since different Gauss-Jacobi quadrature rules are employed in each dimension, we need to store dim arrays.

Definition at line 153 of file fe_base.hpp.

Constructor & Destructor Documentation

◆ ~DofToQuad()

virtual mfem::DofToQuad::~DofToQuad ( )
virtualdefault

Member Function Documentation

◆ Abs()

DofToQuad mfem::DofToQuad::Abs ( ) const

Returns absolute value of the maps.

Definition at line 23 of file fe_base.cpp.

◆ SearchArray()

DofToQuad * mfem::DofToQuad::SearchArray ( const Array< DofToQuad * > & dof2quad_array,
const IntegrationRule & ir,
DofToQuad::Mode mode )
inlinestatic

Auxiliary function for searching DofToQuad arrays.

Definition at line 1460 of file fe_base.hpp.

Member Data Documentation

◆ B

Array<real_t> mfem::DofToQuad::B

Basis functions evaluated at quadrature points.

The storage layout is column-major with dimensions:

where

  • dim = dimension of the finite element reference space when mode is FULL, and dim = 1 when mode is TENSOR.

Definition at line 201 of file fe_base.hpp.

◆ Bt

Array<real_t> mfem::DofToQuad::Bt

Transpose of B.

The storage layout is column-major with dimensions:

Definition at line 207 of file fe_base.hpp.

◆ FE

const class FiniteElement* mfem::DofToQuad::FE

The FiniteElement that created and owns this object.

This pointer is not owned.

Definition at line 145 of file fe_base.hpp.

◆ G

Array<real_t> mfem::DofToQuad::G

Gradients/divergences/curls of basis functions evaluated at quadrature points.

The storage layout is column-major with dimensions:

  • nqpt x dim x ndof, for scalar elements, or
  • nqpt x ndof, for H(div) vector elements, or
  • nqpt x cdim x ndof, for H(curl) vector elements,

where

  • dim = dimension of the finite element reference space when mode is FULL, and 1 when mode is TENSOR,
  • cdim = 1/1/3 in 1D/2D/3D, respectively, when mode is FULL, and cdim = 1 when mode is TENSOR.

Definition at line 222 of file fe_base.hpp.

◆ Gt

Array<real_t> mfem::DofToQuad::Gt

Transpose of G.

The storage layout is column-major with dimensions:

  • ndof x nqpt x dim, for scalar elements, or
  • ndof x nqpt, for H(div) vector elements, or
  • ndof x nqpt x cdim, for H(curl) vector elements.

Definition at line 229 of file fe_base.hpp.

◆ IntRule

const IntegrationRule* mfem::DofToQuad::IntRule

IntegrationRule that defines the quadrature points at which the basis functions of the FE are evaluated.

This pointer is not owned.

Definition at line 150 of file fe_base.hpp.

◆ mode

Mode mfem::DofToQuad::mode

Describes the contents of the B, Bt, G, and Gt arrays, see Mode.

Definition at line 182 of file fe_base.hpp.

◆ ndof

int mfem::DofToQuad::ndof

Number of degrees of freedom = number of basis functions. When mode is TENSOR, this is the 1D number.

Definition at line 186 of file fe_base.hpp.

◆ nqpt

int mfem::DofToQuad::nqpt

Number of quadrature points. When mode is TENSOR, this is the 1D number.

Definition at line 190 of file fe_base.hpp.


The documentation for this class was generated from the following files: