LehrFEM++ 1.0.0
A simple Finite Element Library for teaching
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 hybrid 2D 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 More...
 
virtual const lf::assemble::DofHandlerLocGlobMap () const =0
 access to associated local-to-global map More...
 
virtual ScalarReferenceFiniteElement< SCALAR > const * ShapeFunctionLayout (const lf::mesh::Entity &entity) const =0
 access to shape function layout for mesh entities More...
 
virtual size_type NumRefShapeFunctions (const lf::mesh::Entity &entity) const =0
 number of interior shape functions associated to a particular mesh entity. More...
 
virtual ~ScalarFESpace ()=default
 No special destructor. More...
 

Protected Member Functions

 ScalarFESpace ()=default
 default constructor, needed by std::vector More...
 
 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 hybrid 2D mesh

Template Parameters
SCALARunderlying scalar type, usually either double or complex<double>

The abstract concept of a (parametric) finite element space involves

This class just contains (pointers to) objects representing the various building blocks of a finite element space. It does not offer elaborate methods.

Note
Some of the pointers may be NULL. For instance, if all computations are done on purely triangular meshes then a finite element specification for quadrilaterals need not be given.

This class is covered in Paragraph 2.8.3.28.

Definition at line 45 of file scalar_fe_space.h.

Member Typedef Documentation

◆ Scalar

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

Definition at line 47 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: