MFEM v4.7.0
Finite element discretization library
Loading...
Searching...
No Matches
mfem::L2NormalDerivativeFaceRestriction Class Reference

Class to compute face normal derivatives (in reference coordinate) of an L2 grid function (used internally by L2FaceRestriction). More...

#include <normal_deriv_restriction.hpp>

Collaboration diagram for mfem::L2NormalDerivativeFaceRestriction:
[legend]

Public Member Functions

 L2NormalDerivativeFaceRestriction (const FiniteElementSpace &fes_, const ElementDofOrdering f_ordering, const FaceType face_type_)
 Constructor.
 
void Mult (const Vector &x, Vector &y) const
 Computes the normal derivatives on the face_type faces of the mesh.
 
void AddMultTranspose (const Vector &x, Vector &y, const real_t a=1.0) const
 Computes the transpose of the action of Mult(), accumulating into y with coefficient a.
 
Internal compute kernels. Public because of nvcc restriction.
template<int T_D1D = 0>
void Mult2D (const Vector &x, Vector &y) const
 
template<int T_D1D = 0>
void AddMultTranspose2D (const Vector &x, Vector &y, const real_t a) const
 
template<int T_D1D = 0>
void Mult3D (const Vector &x, Vector &y) const
 
template<int T_D1D = 0>
void AddMultTranspose3D (const Vector &x, Vector &y, const real_t a) const
 

Protected Attributes

const FiniteElementSpacefes
 The L2 finite element space.
 
const FaceType face_type
 Face type: either boundary or interior.
 
const int dim
 Dimension of the mesh.
 
const int nf
 Number of faces of the given face_type.
 
const int ne
 Number of elements.
 
int ne_type
 Number of elements with faces of type face type.
 
Array< int > face_to_elem
 Face-wise information array.
 
Array< int > elem_to_face
 Element-wise information array.
 
Array< int > face_to_vol
 maps face index to volume index
 

Detailed Description

Class to compute face normal derivatives (in reference coordinate) of an L2 grid function (used internally by L2FaceRestriction).

Definition at line 25 of file normal_deriv_restriction.hpp.

Constructor & Destructor Documentation

◆ L2NormalDerivativeFaceRestriction()

mfem::L2NormalDerivativeFaceRestriction::L2NormalDerivativeFaceRestriction ( const FiniteElementSpace & fes_,
const ElementDofOrdering f_ordering,
const FaceType face_type_ )

Constructor.

Parameters
[in]fes_The associated FiniteElementSpace (should be L2/DG).
[in]f_orderingRequest a specific face dof ordering. Currently only ElementDofOrdering::LEXICOGRAPHIC is supported.
[in]face_type_Type of faces to compute restriction (interior or boundary).

Definition at line 94 of file normal_deriv_restriction.cpp.

Member Function Documentation

◆ AddMultTranspose()

void mfem::L2NormalDerivativeFaceRestriction::AddMultTranspose ( const Vector & x,
Vector & y,
const real_t a = 1.0 ) const

Computes the transpose of the action of Mult(), accumulating into y with coefficient a.

Parameters
xFace E-vector layout (face_dofs x vdim x 2 x nf).
yL-vector layout.
aOptional coefficient (y = y + a*R^t*x)

Definition at line 275 of file normal_deriv_restriction.cpp.

◆ AddMultTranspose2D()

template<int T_D1D>
void mfem::L2NormalDerivativeFaceRestriction::AddMultTranspose2D ( const Vector & x,
Vector & y,
const real_t a ) const

Definition at line 557 of file normal_deriv_restriction.cpp.

◆ AddMultTranspose3D()

template<int T_D1D>
void mfem::L2NormalDerivativeFaceRestriction::AddMultTranspose3D ( const Vector & x,
Vector & y,
const real_t a ) const

Definition at line 677 of file normal_deriv_restriction.cpp.

◆ Mult()

void mfem::L2NormalDerivativeFaceRestriction::Mult ( const Vector & x,
Vector & y ) const

Computes the normal derivatives on the face_type faces of the mesh.

Parameters
[in]xThe L-vector degrees of freedom.
[out]yThe face E(like)-vector degrees of freedom of the format (face_dofs x vdim x 2 x nf) where nf is the number of faces of type face_type. The face_dofs are ordered according to f_ordering specified in the constructor.

Definition at line 232 of file normal_deriv_restriction.cpp.

◆ Mult2D()

template<int T_D1D>
void mfem::L2NormalDerivativeFaceRestriction::Mult2D ( const Vector & x,
Vector & y ) const

Definition at line 320 of file normal_deriv_restriction.cpp.

◆ Mult3D()

template<int T_D1D>
void mfem::L2NormalDerivativeFaceRestriction::Mult3D ( const Vector & x,
Vector & y ) const

Definition at line 432 of file normal_deriv_restriction.cpp.

Member Data Documentation

◆ dim

const int mfem::L2NormalDerivativeFaceRestriction::dim
protected

Dimension of the mesh.

Definition at line 30 of file normal_deriv_restriction.hpp.

◆ elem_to_face

Array<int> mfem::L2NormalDerivativeFaceRestriction::elem_to_face
protected

Element-wise information array.

Definition at line 36 of file normal_deriv_restriction.hpp.

◆ face_to_elem

Array<int> mfem::L2NormalDerivativeFaceRestriction::face_to_elem
protected

Face-wise information array.

Definition at line 35 of file normal_deriv_restriction.hpp.

◆ face_to_vol

Array<int> mfem::L2NormalDerivativeFaceRestriction::face_to_vol
protected

maps face index to volume index

Definition at line 37 of file normal_deriv_restriction.hpp.

◆ face_type

const FaceType mfem::L2NormalDerivativeFaceRestriction::face_type
protected

Face type: either boundary or interior.

Definition at line 29 of file normal_deriv_restriction.hpp.

◆ fes

const FiniteElementSpace& mfem::L2NormalDerivativeFaceRestriction::fes
protected

The L2 finite element space.

Definition at line 28 of file normal_deriv_restriction.hpp.

◆ ne

const int mfem::L2NormalDerivativeFaceRestriction::ne
protected

Number of elements.

Definition at line 32 of file normal_deriv_restriction.hpp.

◆ ne_type

int mfem::L2NormalDerivativeFaceRestriction::ne_type
protected

Number of elements with faces of type face type.

Definition at line 33 of file normal_deriv_restriction.hpp.

◆ nf

const int mfem::L2NormalDerivativeFaceRestriction::nf
protected

Number of faces of the given face_type.

Definition at line 31 of file normal_deriv_restriction.hpp.


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