dune-fem  2.4.1-rc
Classes | Public Types | Public Member Functions | Protected Member Functions | Related Functions | List of all members
Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits > Class Template Reference

This is the interface for discrete function spaces. All methods declared here have to be implemented by the implementation class. More...

#include </local/tomalk/somewhere/tmp/dune-fem/dune/fem/space/common/discretefunctionspace.hh>

Inheritance diagram for Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >:
Inheritance graph

Classes

struct  CommDataHandle
 defines type of data handle for communication More...
 
struct  ToNewDimRange
 typedef struct for defining the same discrete function space with a different dimRange More...
 
struct  ToNewFunctionSpace
 typedef struct for defining the same discrete function space with a different function space More...
 

Public Types

enum  { localBlockSize = Traits :: localBlockSize }
 size of local blocks More...
 
typedef FunctionSpaceTraits Traits
 type of traits class More...
 
typedef Traits::DiscreteFunctionSpaceType DiscreteFunctionSpaceType
 type of DiscretefunctionSapce implementation (Barton-Nackman) More...
 
typedef Traits::FunctionSpaceType FunctionSpaceType
 type of function space More...
 
typedef Traits::BasisFunctionSetType BasisFunctionSetType
 type of basis function set of this space More...
 
typedef Traits::BlockMapperType BlockMapperType
 type of block mapper of this space More...
 
typedef Traits::GridPartType GridPartType
 type of underlying grid part More...
 
typedef GridPartType::GridType GridType
 type of underlying dune grid More...
 
typedef GridPartType::IndexSetType IndexSetType
 type of used dune index set More...
 
typedef GridPartType::template Codim< Traits::codimension >::IteratorType IteratorType
 type of iterator for grid traversal More...
 
typedef GridPartType::template Codim< Traits::codimension >::EntityType EntityType
 type of entity of codimension 0 More...
 
typedef GridPartType::IntersectionType IntersectionType
 type of the intersections More...
 
typedef CommunicationManager< DiscreteFunctionSpaceTypeCommunicationManagerType
 type of communication manager More...
 

Public Member Functions

DFSpaceIdentifier type () const
 return type identifier of discrete function space More...
 
const BasisFunctionSetType basisFunctionSet (const EntityType &entity) const
 get basis function set for given entity More...
 
bool continuous () const
 returns true if the space contains only globally continuous functions More...
 
int sequence () const
 get index of the sequence in grid sequences More...
 
int order () const
 get global order of space More...
 
bool continuous (const IntersectionType &intersection) const
 returns true if discrete functions over this space have zero jump over the given intersection. More...
 
BlockMapperTypeblockMapper () const
 get a reference to the block mapper More...
 
const GridTypegrid () const
 get reference to grid this discrete function space belongs to More...
 
GridTypegrid ()
 get reference to grid this discrete function space belongs to More...
 
GridPartTypegridPart ()
 get a reference to the associated grid partition More...
 
const IndexSetTypeindexSet () const
 Get a reference to the associated index set. More...
 
int size () const
 get number of DoFs for this space More...
 
IteratorType begin () const
 get iterator pointing to the first entity of the associated grid partition More...
 
IteratorType end () const
 get iterator pointing behind the last entity of the associated grid partition More...
 
template<class FunctorType >
void forEach (FunctorType &f) const
 apply a functor to each entity in the associated grid partition More...
 
bool multipleGeometryTypes () const
 returns true if the grid has more than one geometry type More...
 
bool multipleBasisFunctionSets () const
 returns true if base function sets depend on the entity More...
 
InterfaceType communicationInterface () const
 return the communication interface appropriate for this space More...
 
CommunicationDirection communicationDirection () const
 return the communication direction appropriate for this space More...
 
const CommunicationManagerTypecommunicator () const
 return reference to communicator (see CommunicationManager) More...
 
template<class DiscreteFunction >
void communicate (DiscreteFunction &discreteFunction) const
 communicate data for given discrete function using the space's default communication operation More...
 
template<class DiscreteFunction , class Operation >
void communicate (DiscreteFunction &discreteFunction, const Operation *op) const
 communicate data for given discrete function More...
 
template<class DiscreteFunction , class Operation >
CommDataHandle< DiscreteFunction, Operation >::Type createDataHandle (DiscreteFunction &discreteFunction, const Operation *operation) const
 Creates DataHandle for given discrete function. More...
 

Protected Member Functions

 DiscreteFunctionSpaceInterface ()
 
const DiscreteFunctionSpaceTypeasImp () const
 
DiscreteFunctionSpaceTypeasImp ()
 

Related Functions

(Note that these are not member functions.)

template<class Traits >
bool operator== (const DiscreteFunctionSpaceInterface< Traits > &X, const DiscreteFunctionSpaceInterface< Traits > &Y)
 check two spaces for equality More...
 

Detailed Description

template<class FunctionSpaceTraits>
class Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >

This is the interface for discrete function spaces. All methods declared here have to be implemented by the implementation class.

The discrete function space always depends on a given grid. For all diffrent element types of the grid the function space provides a set of base functions for the different element types. Because of the knowledge of on the one hand the grid an on the other hand the base functions sets, the discrete function space provides the size of the function space and a mapping from entity and local dof number to global dof number of the level of the entity.

Note
A DiscreteFunctionSpace is defined on a certain grid part.
An interface class:

Member Typedef Documentation

template<class FunctionSpaceTraits>
typedef Traits :: BasisFunctionSetType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::BasisFunctionSetType

type of basis function set of this space

template<class FunctionSpaceTraits>
typedef Traits :: BlockMapperType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::BlockMapperType

type of block mapper of this space

template<class FunctionSpaceTraits>
typedef CommunicationManager< DiscreteFunctionSpaceType > Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::CommunicationManagerType

type of communication manager

template<class FunctionSpaceTraits>
typedef Traits :: DiscreteFunctionSpaceType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::DiscreteFunctionSpaceType

type of DiscretefunctionSapce implementation (Barton-Nackman)

template<class FunctionSpaceTraits>
typedef GridPartType :: template Codim< Traits::codimension >:: EntityType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::EntityType

type of entity of codimension 0

template<class FunctionSpaceTraits>
typedef Traits :: FunctionSpaceType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::FunctionSpaceType

type of function space

template<class FunctionSpaceTraits>
typedef Traits :: GridPartType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::GridPartType

type of underlying grid part

template<class FunctionSpaceTraits>
typedef GridPartType :: GridType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::GridType

type of underlying dune grid

template<class FunctionSpaceTraits>
typedef GridPartType :: IndexSetType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::IndexSetType

type of used dune index set

template<class FunctionSpaceTraits>
typedef GridPartType :: IntersectionType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::IntersectionType

type of the intersections

template<class FunctionSpaceTraits>
typedef GridPartType :: template Codim< Traits::codimension >:: IteratorType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::IteratorType

type of iterator for grid traversal

Note
Only grid traversal for codimension 0 is currently supported.
template<class FunctionSpaceTraits>
typedef FunctionSpaceTraits Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::Traits

type of traits class

Member Enumeration Documentation

template<class FunctionSpaceTraits>
anonymous enum

size of local blocks

Enumerator
localBlockSize 

Constructor & Destructor Documentation

template<class FunctionSpaceTraits>
Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::DiscreteFunctionSpaceInterface ( )
inlineprotected

Member Function Documentation

template<class FunctionSpaceTraits>
const DiscreteFunctionSpaceType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::asImp ( ) const
inlineprotected
template<class FunctionSpaceTraits>
DiscreteFunctionSpaceType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::asImp ( )
inlineprotected
template<class FunctionSpaceTraits>
const BasisFunctionSetType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::basisFunctionSet ( const EntityType entity) const
inline

get basis function set for given entity

Parameters
[in]entityentity (of codim 0) for which base function is requested
Returns
BasisFunctionSet for the entity
template<class FunctionSpaceTraits>
IteratorType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::begin ( ) const
inline

get iterator pointing to the first entity of the associated grid partition

Returns
iterator pointing to first entity
template<class FunctionSpaceTraits>
BlockMapperType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::blockMapper ( ) const
inline

get a reference to the block mapper

Returns
refernce to the block mapper

Referenced by Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::operator==().

template<class FunctionSpaceTraits>
template<class DiscreteFunction >
void Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::communicate ( DiscreteFunction &  discreteFunction) const
inline

communicate data for given discrete function using the space's default communication operation

Parameters
discreteFunctiondiscrete function to be communicated
template<class FunctionSpaceTraits>
template<class DiscreteFunction , class Operation >
void Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::communicate ( DiscreteFunction &  discreteFunction,
const Operation *  op 
) const
inline

communicate data for given discrete function

Parameters
discreteFunctiondiscrete function to be communicated
[in]opcommunication operation to use (see DFCommunicationOperation)
template<class FunctionSpaceTraits>
CommunicationDirection Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::communicationDirection ( ) const
inline

return the communication direction appropriate for this space

Returns
communication direction
template<class FunctionSpaceTraits>
InterfaceType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::communicationInterface ( ) const
inline

return the communication interface appropriate for this space

Returns
communication interface
template<class FunctionSpaceTraits>
const CommunicationManagerType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::communicator ( ) const
inline

return reference to communicator (see CommunicationManager)

Returns
reference to communicator
template<class FunctionSpaceTraits>
bool Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::continuous ( ) const
inline

returns true if the space contains only globally continuous functions

For example, a Lagrange space returns true while a discontiuous Galerkin space returns false.

Returns
true if the space contians only globally continous functions, false otherwise
template<class FunctionSpaceTraits>
bool Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::continuous ( const IntersectionType intersection) const
inline

returns true if discrete functions over this space have zero jump over the given intersection.

For example, a Lagrange space returns true iff the intersection is conforming while a discontiuous Galerkin space always returns false.

Parameters
intersectionIntersection for which we want to know the continuety
Returns
true if the space contians functions which are continuous over the intersection, false otherwise
template<class FunctionSpaceTraits>
template<class DiscreteFunction , class Operation >
CommDataHandle< DiscreteFunction, Operation >:: Type Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::createDataHandle ( DiscreteFunction &  discreteFunction,
const Operation *  operation 
) const
inline

Creates DataHandle for given discrete function.

Parameters
[in]discreteFunctiondiscrete function to create the data handle for
[in]operationoperation to perform on scatter
template<class FunctionSpaceTraits>
IteratorType Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::end ( ) const
inline

get iterator pointing behind the last entity of the associated grid partition

Returns
iterator pointing behind last entity
template<class FunctionSpaceTraits>
template<class FunctorType >
void Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::forEach ( FunctorType &  f) const
inline

apply a functor to each entity in the associated grid partition

The functor must provide an the following operator

template< class EntityType >
void operator() ( const EntityType & );
Parameters
[in]ffunctor to apply
template<class FunctionSpaceTraits>
const GridType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::grid ( ) const
inline

get reference to grid this discrete function space belongs to

Returns
constant reference to grid
template<class FunctionSpaceTraits>
GridType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::grid ( )
inline

get reference to grid this discrete function space belongs to

Returns
reference to grid
template<class FunctionSpaceTraits>
GridPartType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::gridPart ( )
inline

get a reference to the associated grid partition

Returns
reference to the grid partition
template<class FunctionSpaceTraits>
const IndexSetType& Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::indexSet ( ) const
inline

Get a reference to the associated index set.

Returns
const reference to index set
template<class FunctionSpaceTraits>
bool Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::multipleBasisFunctionSets ( ) const
inline

returns true if base function sets depend on the entity

Returns
true if base function set depend on entities, false otherwise
template<class FunctionSpaceTraits>
bool Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::multipleGeometryTypes ( ) const
inline

returns true if the grid has more than one geometry type

Returns
true if the underlying grid has more than one geometry type (hybrid grid), false otherwise
template<class FunctionSpaceTraits>
int Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::order ( ) const
inline

get global order of space

Returns
order of space, i.e., the maximal polynomial order of base functions
template<class FunctionSpaceTraits>
int Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::sequence ( ) const
inline

get index of the sequence in grid sequences

Returns
number of current sequence
template<class FunctionSpaceTraits>
int Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::size ( ) const
inline

get number of DoFs for this space

Returns
number of DoFs (degrees of freedom)
template<class FunctionSpaceTraits>
DFSpaceIdentifier Dune::Fem::DiscreteFunctionSpaceInterface< FunctionSpaceTraits >::type ( ) const
inline

return type identifier of discrete function space

Returns
return type identifier of discrete function space

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