LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Protected Member Functions | List of all members
lf::fe::ScalarFESpace< SCALAR > Class Template Referenceabstract

Space of scalar valued finite element functions on a Mesh. More...

#include <lf/fe/fe.h>

Inheritance diagram for lf::fe::ScalarFESpace< SCALAR >:
lf::fe::HierarchicScalarFESpace< SCALAR > lf::uscalfe::UniformScalarFESpace< SCALAR > lf::uscalfe::FeSpaceLagrangeO1< SCALAR > lf::uscalfe::FeSpaceLagrangeO2< SCALAR > lf::uscalfe::FeSpaceLagrangeO3< SCALAR >

Public Types

using Scalar = SCALAR
 

Public Member Functions

virtual std::shared_ptr< const lf::mesh::MeshMesh () const =0
 acess to underlying mesh
 
virtual const lf::assemble::DofHandlerLocGlobMap () const =0
 access to associated local-to-global map
 
virtual ScalarReferenceFiniteElement< SCALAR > const * ShapeFunctionLayout (const lf::mesh::Entity &entity) const =0
 access to shape function layout for mesh entities
 
virtual size_type NumRefShapeFunctions (const lf::mesh::Entity &entity) const =0
 number of interior shape functions associated to a particular mesh entity.
 
virtual ~ScalarFESpace ()=default
 No special destructor.
 

Protected Member Functions

 ScalarFESpace ()=default
 default constructor, needed by std::vector
 
 ScalarFESpace (const ScalarFESpace &)=default
 
 ScalarFESpace (ScalarFESpace &&) noexcept=default
 
ScalarFESpaceoperator= (const ScalarFESpace &)=default
 
ScalarFESpaceoperator= (ScalarFESpace &&) noexcept=default
 

Detailed Description

template<typename SCALAR>
class lf::fe::ScalarFESpace< SCALAR >

Space of scalar valued finite element functions on a Mesh.

Template Parameters
SCALARScalar type of the finite element functions, usually either double or complex<double>

A ScalarFESpace can be thought of as a set of basis functions \( b^1, \ldots b^N \) which span a (approximation) space \( V_h := \operatorname{span} \{ b^1, \ldots b^N\} \). The basis functions \( b^i\) are usually selected such that their support is limited to a small number of mesh cells. This is reflected in the design of ScalarFESpace:

This class is covered in Paragraph 2.8.3.28.

Relation to uscalfe::UniformScalarFESpace

As you can see in the inheritance diagram, every UniformScalarFESpace is also a ScalarFESpace. The UniformScalarFESpace class and all other classes in the namespace lf::uscalfe make additionally the assumption that when we restrict the basis functions \( b^1, \ldots b^N\) to a cell, the remaining set of basis functions are always the same for every cell/reference element (when defined on the reference element). I.e. ShapeFunctionLayout() will always return the same ScalarReferenceFiniteElement for the same reference element.

Definition at line 65 of file scalar_fe_space.h.

Member Typedef Documentation

◆ Scalar

template<typename SCALAR >
using lf::fe::ScalarFESpace< SCALAR >::Scalar = SCALAR

Definition at line 67 of file scalar_fe_space.h.

Constructor & Destructor Documentation

◆ ScalarFESpace() [1/3]

template<typename SCALAR >
lf::fe::ScalarFESpace< SCALAR >::ScalarFESpace ( )
protecteddefault

default constructor, needed by std::vector

Note
creates an invalid object that cannot be used.

◆ ScalarFESpace() [2/3]

template<typename SCALAR >
lf::fe::ScalarFESpace< SCALAR >::ScalarFESpace ( const ScalarFESpace< SCALAR > & )
protecteddefault

◆ ScalarFESpace() [3/3]

template<typename SCALAR >
lf::fe::ScalarFESpace< SCALAR >::ScalarFESpace ( ScalarFESpace< SCALAR > && )
protecteddefaultnoexcept

◆ ~ScalarFESpace()

template<typename SCALAR >
virtual lf::fe::ScalarFESpace< SCALAR >::~ScalarFESpace ( )
virtualdefault

No special destructor.

Member Function Documentation

◆ LocGlobMap()

template<typename SCALAR >
virtual const lf::assemble::DofHandler & lf::fe::ScalarFESpace< SCALAR >::LocGlobMap ( ) const
pure virtual

access to associated local-to-global map

Returns
a reference to the lf::assemble::DofHandler object (immutable)

Implemented in lf::fe::HierarchicScalarFESpace< SCALAR >, and lf::uscalfe::UniformScalarFESpace< SCALAR >.

Referenced by lf::fe::InitEssentialConditionFromFunction().

◆ Mesh()

template<typename SCALAR >
virtual std::shared_ptr< const lf::mesh::Mesh > lf::fe::ScalarFESpace< SCALAR >::Mesh ( ) const
pure virtual

acess to underlying mesh

Returns
a shared pointer to the mesh

Implemented in lf::fe::HierarchicScalarFESpace< SCALAR >, and lf::uscalfe::UniformScalarFESpace< SCALAR >.

Referenced by lf::fe::InitEssentialConditionFromFunction().

◆ NumRefShapeFunctions()

template<typename SCALAR >
virtual size_type lf::fe::ScalarFESpace< SCALAR >::NumRefShapeFunctions ( const lf::mesh::Entity & entity) const
pure virtual

number of interior shape functions associated to a particular mesh entity.

Parameters
entitymesh entity to be queried
Returns
number of interior shape functions

Implemented in lf::fe::HierarchicScalarFESpace< SCALAR >, and lf::uscalfe::UniformScalarFESpace< SCALAR >.

◆ operator=() [1/2]

template<typename SCALAR >
ScalarFESpace & lf::fe::ScalarFESpace< SCALAR >::operator= ( const ScalarFESpace< SCALAR > & )
protecteddefault

◆ operator=() [2/2]

template<typename SCALAR >
ScalarFESpace & lf::fe::ScalarFESpace< SCALAR >::operator= ( ScalarFESpace< SCALAR > && )
protecteddefaultnoexcept

◆ ShapeFunctionLayout()

template<typename SCALAR >
virtual ScalarReferenceFiniteElement< SCALAR > const * lf::fe::ScalarFESpace< SCALAR >::ShapeFunctionLayout ( const lf::mesh::Entity & entity) const
pure virtual

access to shape function layout for mesh entities

Parameters
entityThe entity to get the reference element for
Warning
NULL pointers may be returned by this method in case a finite element specification was not given for a particular topological type of entity.
Note
The returned ShapeFunctionLayout pointer will remain for the entire lifetime of the owning ScalarFESpace.
See also
ScalarReferenceFiniteElement

Implemented in lf::fe::HierarchicScalarFESpace< SCALAR >, and lf::uscalfe::UniformScalarFESpace< SCALAR >.

Referenced by lf::fe::InitEssentialConditionFromFunction().


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