dune-pdelab  2.5-dev
Public Types | Public Member Functions | Static Public Member Functions | List of all members
Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType > Class Template Reference

#include <dune/pdelab/finiteelementmap/opbfem.hh>

Inheritance diagram for Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >:
Inheritance graph

Public Types

typedef LocalFiniteElementMapTraits< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > Traits
 export type of the signature More...
 

Public Member Functions

const Traits::FiniteElementTypefind (const EntityType &e) const
 get local basis functions for entity More...
 
bool hasDOFs (int codim) const=delete
 return if FiniteElementMap has degrees of freedom for given codimension More...
 
std::size_t maxLocalSize () const=delete
 compute an upper bound for the local number of DOFs. More...
 
Size calculation

The FiniteElementMap provides different methods to compute the size of the GridFunctionSpace (if possible) without iterating the grid. The approach is as follows (pseudo code):

computeNumberOfDofs(GridView, FEM):
if(FEM.fixedSize()):
sum(FEM.size(gt)*GridView.size(gt) for gt in GeometryTypes)
else
sum(FEM.find(E).basis().size() for E in GridView.entities<0>())
bool fixedSize () const=delete
 a FiniteElementMap is fixedSize iif the size of the local functions space for each GeometryType is fixed. More...
 
std::size_t size (GeometryType gt) const=delete
 if the FiniteElementMap is fixedSize, the size methods computes the number of DOFs for given GeometryType. More...
 

Static Public Member Functions

static constexpr bool fixedSize ()
 
static constexpr bool hasDOFs (int codim)
 
static constexpr std::size_t size (GeometryType gt)
 
static constexpr std::size_t maxLocalSize ()
 

Detailed Description

template<class D, class R, int k, int d, Dune::GeometryType::BasicType bt, typename ComputationFieldType = R, PB::BasisType basisType = PB::BasisType::Pk>
class Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >

wrap up element from local functions

Member Typedef Documentation

◆ Traits

typedef LocalFiniteElementMapTraits<Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > Dune::PDELab::SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > , dim_ >::Traits
inherited

export type of the signature

Member Function Documentation

◆ find()

const Traits::FiniteElementType& Dune::PDELab::SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > , dim_ >::find ( const EntityType &  e) const
inlineinherited

get local basis functions for entity

◆ fixedSize() [1/2]

template<class D, class R, int k, int d, Dune::GeometryType::BasicType bt, typename ComputationFieldType = R, PB::BasisType basisType = PB::BasisType::Pk>
static constexpr bool Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >::fixedSize ( )
inlinestatic

◆ fixedSize() [2/2]

bool Dune::PDELab::LocalFiniteElementMapInterface< LocalFiniteElementMapTraits< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > , SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > >::fixedSize ( ) const
deleteinherited

a FiniteElementMap is fixedSize iif the size of the local functions space for each GeometryType is fixed.

◆ hasDOFs() [1/2]

template<class D, class R, int k, int d, Dune::GeometryType::BasicType bt, typename ComputationFieldType = R, PB::BasisType basisType = PB::BasisType::Pk>
static constexpr bool Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >::hasDOFs ( int  codim)
inlinestatic

◆ hasDOFs() [2/2]

bool Dune::PDELab::LocalFiniteElementMapInterface< LocalFiniteElementMapTraits< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > , SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > >::hasDOFs ( int  codim) const
deleteinherited

return if FiniteElementMap has degrees of freedom for given codimension

◆ maxLocalSize() [1/2]

template<class D, class R, int k, int d, Dune::GeometryType::BasicType bt, typename ComputationFieldType = R, PB::BasisType basisType = PB::BasisType::Pk>
static constexpr std::size_t Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >::maxLocalSize ( )
inlinestatic

◆ maxLocalSize() [2/2]

std::size_t Dune::PDELab::LocalFiniteElementMapInterface< LocalFiniteElementMapTraits< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > , SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > >::maxLocalSize ( ) const
deleteinherited

compute an upper bound for the local number of DOFs.

this upper bound is used to avoid reallocations in std::vectors used during the assembly.

◆ size() [1/2]

template<class D, class R, int k, int d, Dune::GeometryType::BasicType bt, typename ComputationFieldType = R, PB::BasisType basisType = PB::BasisType::Pk>
static constexpr std::size_t Dune::PDELab::OPBLocalFiniteElementMap< D, R, k, d, bt, ComputationFieldType, basisType >::size ( GeometryType  gt)
inlinestatic

◆ size() [2/2]

std::size_t Dune::PDELab::LocalFiniteElementMapInterface< LocalFiniteElementMapTraits< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > , SimpleLocalFiniteElementMap< Dune::OPBLocalFiniteElement< D, R, k, d, bt, ComputationFieldType, basisType > > >::size ( GeometryType  gt) const
deleteinherited

if the FiniteElementMap is fixedSize, the size methods computes the number of DOFs for given GeometryType.


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