dune-fem 2.8.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | List of all members
Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size > Class Template Reference

DoF block proxy for discrete functions with random access to DoFs. More...

#include <dune/fem/function/common/dofblock.hh>

Public Types

typedef DiscreteFunction DiscreteFunctionType
 
typedef Dof DofType
 
typedef unsigned int size_type
 
typedef std::pair< DiscreteFunctionType *, size_typeKeyType
 

Public Member Functions

const ThisTypeoperator= (const ConstDofBlockProxy &other)
 
const ThisTypeoperator= (const NonConstDofBlockProxy &other)
 
const DofTypeoperator[] (size_type index) const
 
DofTypeoperator[] (size_type index)
 
size_type dim () const
 

Static Public Attributes

static const unsigned int size = Size
 

Protected Member Functions

 DofBlockProxy (const KeyType &key)
 
 DofBlockProxy (const ConstDofBlockProxy &other)
 
 DofBlockProxy (const NonConstDofBlockProxy &other)
 

Protected Attributes

DiscreteFunctionTypediscreteFunction_
 
const size_type first_
 

Detailed Description

template<class DiscreteFunction, class Dof, unsigned int Size>
class Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >

DoF block proxy for discrete functions with random access to DoFs.

Discrete functions are required to support random access to DoF blocks. If random access to the DoFs is available, DofBlockProxy can be used to fake the required DoF blocks.

A discrete function willing to use this proxy has to implement a method called "dof" (and it's constant counterpart) that provides access to the DoFs via an index.

Use of the DofBlockProxy is shown in VectorDiscreteFunction.

Parameters
DiscreteFunctiontype of the discrete function (for constant DoF blocks, use the const version here)
Doftype of the degrees of freedom (for constant DoF blocks, use the const version here)
Sizesize of the DoF blocks (block size returned from block mapper)

Member Typedef Documentation

◆ DiscreteFunctionType

template<class DiscreteFunction , class Dof , unsigned int Size>
typedef DiscreteFunction Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::DiscreteFunctionType

◆ DofType

template<class DiscreteFunction , class Dof , unsigned int Size>
typedef Dof Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::DofType

◆ KeyType

template<class DiscreteFunction , class Dof , unsigned int Size>
typedef std::pair< DiscreteFunctionType *, size_type > Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::KeyType

◆ size_type

template<class DiscreteFunction , class Dof , unsigned int Size>
typedef unsigned int Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::size_type

Constructor & Destructor Documentation

◆ DofBlockProxy() [1/3]

template<class DiscreteFunction , class Dof , unsigned int Size>
Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::DofBlockProxy ( const KeyType key)
inlineprotected

◆ DofBlockProxy() [2/3]

template<class DiscreteFunction , class Dof , unsigned int Size>
Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::DofBlockProxy ( const ConstDofBlockProxy< DiscreteFunction, Dof, Size > &  other)
inlineprotected

◆ DofBlockProxy() [3/3]

template<class DiscreteFunction , class Dof , unsigned int Size>
Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::DofBlockProxy ( const NonConstDofBlockProxy< DiscreteFunction, Dof, Size > &  other)
inlineprotected

Member Function Documentation

◆ dim()

template<class DiscreteFunction , class Dof , unsigned int Size>
size_type Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::dim ( ) const
inline

◆ operator=() [1/2]

template<class DiscreteFunction , class Dof , unsigned int Size>
const ThisType & Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::operator= ( const ConstDofBlockProxy< DiscreteFunction, Dof, Size > &  other)
inline

◆ operator=() [2/2]

template<class DiscreteFunction , class Dof , unsigned int Size>
const ThisType & Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::operator= ( const NonConstDofBlockProxy< DiscreteFunction, Dof, Size > &  other)
inline

◆ operator[]() [1/2]

template<class DiscreteFunction , class Dof , unsigned int Size>
DofType & Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::operator[] ( size_type  index)
inline

◆ operator[]() [2/2]

template<class DiscreteFunction , class Dof , unsigned int Size>
const DofType & Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::operator[] ( size_type  index) const
inline

Member Data Documentation

◆ discreteFunction_

template<class DiscreteFunction , class Dof , unsigned int Size>
DiscreteFunctionType& Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::discreteFunction_
protected

◆ first_

template<class DiscreteFunction , class Dof , unsigned int Size>
const size_type Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::first_
protected

◆ size

template<class DiscreteFunction , class Dof , unsigned int Size>
const unsigned int Dune::Fem::DofBlockProxy< DiscreteFunction, Dof, Size >::size = Size
static

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