dune-fem 2.8.0
Loading...
Searching...
No Matches
Classes | Public Types | Protected Member Functions | List of all members
Dune::Fem::RestrictProlongTuple< Head, Tail... > Class Template Reference

#include <dune/fem/space/common/restrictprolongtuple.hh>

Inheritance diagram for Dune::Fem::RestrictProlongTuple< Head, Tail... >:
Inheritance graph

Public Types

typedef BaseType::DomainFieldType DomainFieldType
 field type of domain vector space More...
 
typedef Traits::RestProlImp RestProlImp
 type of restrict-prolong operator implementation More...
 

Public Member Functions

Construction
 RestrictProlongTuple (Head &&head, Tail &&... tail)
 
 RestrictProlongTuple (std::tuple< Head, Tail... > &&tuple)
 
Interface methods
void initialize ()
 initialize restrict prolong object (if necessary) before adaptation takes place More...
 
void finalize ()
 explicit set volume ratio of son and father More...
 
void setFatherChildWeight (const DomainFieldType &weight) const
 explicit set volume ratio of son and father More...
 
template<class Entity >
void restrictLocal (const Entity &father, const Entity &child, bool initialize) const
 restrict data to father More...
 
template<class Entity , class LocalGeometry >
void restrictLocal (const Entity &father, const Entity &child, const LocalGeometry &geometryInFather, bool initialize) const
 restrict data to father More...
 
template<class Entity >
void restrictFinalize (const Entity &father) const
 
template<class Entity >
void prolongLocal (const Entity &father, const Entity &child, bool initialize) const
 prolong data to children More...
 
template<class Entity , class LocalGeometry >
void prolongLocal (const Entity &father, const Entity &child, const LocalGeometry &geometryInFather, bool initialize) const
 prolong data to children More...
 
template<class Communicator , class Operation >
void addToList (Communicator &comm, const Operation &op)
 add discrete function to communicator More...
 
template<class Communicator >
void addToList (Communicator &comm)
 add discrete function to communicator More...
 
template<class LoadBalancer >
void addToLoadBalancer (LoadBalancer &loadBalancer)
 add discrete function to load balancer More...
 

Protected Member Functions

DomainFieldType calcWeight (const Entity &father, const Entity &son) const
 calculates the weight, i.e. (volume son)/(volume father) More...
 
const RestProlImpasImp () const
 
RestProlImpasImp ()
 

Member Typedef Documentation

◆ DomainFieldType

template<class Head , class... Tail>
typedef BaseType::DomainFieldType Dune::Fem::RestrictProlongTuple< Head, Tail... >::DomainFieldType

field type of domain vector space

◆ RestProlImp

typedef Traits::RestProlImp Dune::Fem::RestrictProlongInterface< RestrictProlongTraits< RestrictProlongTuple< Head, Tail... >, Head::DomainFieldType > >::RestProlImp
inherited

type of restrict-prolong operator implementation

Constructor & Destructor Documentation

◆ RestrictProlongTuple() [1/2]

template<class Head , class... Tail>
Dune::Fem::RestrictProlongTuple< Head, Tail... >::RestrictProlongTuple ( Head &&  head,
Tail &&...  tail 
)
inlineexplicit

◆ RestrictProlongTuple() [2/2]

template<class Head , class... Tail>
Dune::Fem::RestrictProlongTuple< Head, Tail... >::RestrictProlongTuple ( std::tuple< Head, Tail... > &&  tuple)
inlineexplicit

Member Function Documentation

◆ addToList() [1/2]

template<class Head , class... Tail>
template<class Communicator >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::addToList ( Communicator &  comm)
inline

add discrete function to communicator

Parameters
[in]commCommunicator to add the discrete functions to

◆ addToList() [2/2]

template<class Head , class... Tail>
template<class Communicator , class Operation >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::addToList ( Communicator &  comm,
const Operation &  op 
)
inline

add discrete function to communicator

Parameters
[in]commCommunicator to add the discrete functions to

◆ addToLoadBalancer()

template<class Head , class... Tail>
template<class LoadBalancer >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::addToLoadBalancer ( LoadBalancer loadBalancer)
inline

add discrete function to load balancer

Parameters
[in]lbLoadBalancer to add the discrete functions to

◆ asImp() [1/2]

RestProlImp & Dune::Fem::RestrictProlongInterface< RestrictProlongTraits< RestrictProlongTuple< Head, Tail... >, Head::DomainFieldType > >::asImp ( )
inlineprotectedinherited

◆ asImp() [2/2]

const RestProlImp & Dune::Fem::RestrictProlongInterface< RestrictProlongTraits< RestrictProlongTuple< Head, Tail... >, Head::DomainFieldType > >::asImp ( ) const
inlineprotectedinherited

◆ calcWeight()

DomainFieldType Dune::Fem::RestrictProlongInterface< RestrictProlongTraits< RestrictProlongTuple< Head, Tail... >, Head::DomainFieldType > >::calcWeight ( const Entity &  father,
const Entity &  son 
) const
inlineprotectedinherited

calculates the weight, i.e. (volume son)/(volume father)

Parameters
[in]fatherFather Entity
[in]sonSon Entity
Returns
proportion between fahter and son volume

◆ finalize()

template<class Head , class... Tail>
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::finalize ( )
inline

explicit set volume ratio of son and father

Parameters
[in]weightvolume of son / volume of father
Note
If this ratio is set, it is assume to be constant.

◆ initialize()

template<class Head , class... Tail>
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::initialize ( )
inline

initialize restrict prolong object (if necessary) before adaptation takes place

◆ prolongLocal() [1/2]

template<class Head , class... Tail>
template<class Entity >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::prolongLocal ( const Entity &  father,
const Entity &  child,
bool  initialize 
) const
inline

prolong data to children

◆ prolongLocal() [2/2]

template<class Head , class... Tail>
template<class Entity , class LocalGeometry >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::prolongLocal ( const Entity &  father,
const Entity &  child,
const LocalGeometry &  geometryInFather,
bool  initialize 
) const
inline

prolong data to children

◆ restrictFinalize()

template<class Head , class... Tail>
template<class Entity >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::restrictFinalize ( const Entity &  father) const
inline

◆ restrictLocal() [1/2]

template<class Head , class... Tail>
template<class Entity >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::restrictLocal ( const Entity &  father,
const Entity &  child,
bool  initialize 
) const
inline

restrict data to father

◆ restrictLocal() [2/2]

template<class Head , class... Tail>
template<class Entity , class LocalGeometry >
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::restrictLocal ( const Entity &  father,
const Entity &  child,
const LocalGeometry &  geometryInFather,
bool  initialize 
) const
inline

restrict data to father

◆ setFatherChildWeight()

template<class Head , class... Tail>
void Dune::Fem::RestrictProlongTuple< Head, Tail... >::setFatherChildWeight ( const DomainFieldType weight) const
inline

explicit set volume ratio of son and father

Parameters
[in]weightvolume of son / volume of father
Note
If this ratio is set, it is assume to be constant.

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