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
 
typedef Traits::RestProlImp RestProlImp
 type of restrict-prolong operator implementation
 

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
 
void finalize ()
 explicit set volume ratio of son and father
 
void setFatherChildWeight (const DomainFieldType &weight) const
 explicit set volume ratio of son and father
 
template<class Entity >
void restrictLocal (const Entity &father, const Entity &child, bool initialize) const
 restrict data to father
 
template<class Entity , class LocalGeometry >
void restrictLocal (const Entity &father, const Entity &child, const LocalGeometry &geometryInFather, bool initialize) const
 restrict data to father
 
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
 
template<class Entity , class LocalGeometry >
void prolongLocal (const Entity &father, const Entity &child, const LocalGeometry &geometryInFather, bool initialize) const
 prolong data to children
 
template<class Communicator , class Operation >
void addToList (Communicator &comm, const Operation &op)
 add discrete function to communicator
 
template<class Communicator >
void addToList (Communicator &comm)
 add discrete function to communicator
 
template<class LoadBalancer >
void addToLoadBalancer (LoadBalancer &loadBalancer)
 add discrete function to load balancer
 

Protected Member Functions

DomainFieldType calcWeight (const Entity &father, const Entity &son) const
 calculates the weight, i.e. (volume son)/(volume father)
 
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: