33 #ifndef __H__UG__LIB_DISC__FUNCTION_SPACS__LOCAL_TRANSFER_INTERFACE__
34 #define __H__UG__LIB_DISC__FUNCTION_SPACS__LOCAL_TRANSFER_INTERFACE__
74 template <
typename TDomain>
106 template <
typename TDomain,
typename TImpl>
125 TImpl&
getImpl() {
return static_cast<TImpl&
>(*this);}
128 const TImpl&
getImpl()
const {
return static_cast<const TImpl&
>(*this);}
132 template <
typename TDomain>
141 template <
typename TDomain>
173 template <
typename TDomain,
typename TImpl>
192 TImpl&
getImpl() {
return static_cast<TImpl&
>(*this);}
195 const TImpl&
getImpl()
const {
return static_cast<const TImpl&
>(*this);}
199 template <
typename TDomain>
Definition: smart_pointer.h:108
Base-class for edges.
Definition: grid_base_objects.h:397
Definition: local_transfer_interface.h:108
virtual void prolongate(Volume *parent)
Definition: local_transfer_interface.h:119
const TImpl & getImpl() const
const access to implementation
Definition: local_transfer_interface.h:128
TImpl & getImpl()
access to implementation
Definition: local_transfer_interface.h:125
virtual void prolongate(Vertex *parent)
Definition: local_transfer_interface.h:110
virtual void prolongate(Face *parent)
Definition: local_transfer_interface.h:116
virtual void prolongate(Edge *parent)
Definition: local_transfer_interface.h:113
Definition: local_transfer_interface.h:175
const TImpl & getImpl() const
const access to implementation
Definition: local_transfer_interface.h:195
virtual void do_restrict(Vertex *parent)
Definition: local_transfer_interface.h:177
virtual void do_restrict(Face *parent)
Definition: local_transfer_interface.h:183
virtual void do_restrict(Volume *parent)
Definition: local_transfer_interface.h:186
virtual void do_restrict(Edge *parent)
Definition: local_transfer_interface.h:180
TImpl & getImpl()
access to implementation
Definition: local_transfer_interface.h:192
Faces are 2-dimensional objects.
Definition: grid_base_objects.h:510
The base class for all geometric objects, such as vertices, edges, faces, volumes,...
Definition: grid_base_objects.h:157
Definition: local_transfer_interface.h:76
virtual void prolongate(Edge *parent)=0
virtual ~IElemProlongation()
Definition: local_transfer_interface.h:95
virtual void prolongate(Vertex *parent)=0
SmartPtr< TransferValueAccessor > m_vValueParent
Definition: local_transfer_interface.h:102
virtual bool perform_prolongation_on(GridBaseObjectId gbo)=0
virtual void init(ConstSmartPtr< TDomain > spDomain, SmartPtr< TransferValueAccessor > vValueChild, SmartPtr< TransferValueAccessor > vValueParent)
Definition: local_transfer_interface.h:78
ConstSmartPtr< TDomain > m_spDomain
Definition: local_transfer_interface.h:98
virtual void prolongate(Volume *parent)=0
SmartPtr< TransferValueAccessor > m_vValueChild
Definition: local_transfer_interface.h:101
ConstSmartPtr< MultiGrid > m_spGrid
Definition: local_transfer_interface.h:99
virtual void prolongate(Face *parent)=0
Definition: local_transfer_interface.h:143
virtual bool perform_restriction_on(GridBaseObjectId gbo)=0
virtual void do_restrict(Face *parent)=0
virtual void do_restrict(Vertex *parent)=0
virtual void do_restrict(Volume *parent)=0
SmartPtr< TransferValueAccessor > m_vValueParent
Definition: local_transfer_interface.h:169
SmartPtr< TransferValueAccessor > m_vValueChild
Definition: local_transfer_interface.h:168
virtual void do_restrict(Edge *parent)=0
virtual ~IElemRestriction()
Definition: local_transfer_interface.h:162
ConstSmartPtr< TDomain > m_spDomain
Definition: local_transfer_interface.h:165
virtual void init(ConstSmartPtr< TDomain > spDomain, SmartPtr< TransferValueAccessor > vValueChild, SmartPtr< TransferValueAccessor > vValueParent)
Definition: local_transfer_interface.h:145
ConstSmartPtr< MultiGrid > m_spGrid
Definition: local_transfer_interface.h:166
Definition: local_transfer_interface.h:46
virtual ~TransferValueAccessor()
Definition: local_transfer_interface.h:52
virtual void access_inner(GridObject *elem)=0
size_t size() const
Definition: local_transfer_interface.h:64
std::vector< number * > m_Val
Definition: local_transfer_interface.h:67
const number & operator[](size_t i) const
Definition: local_transfer_interface.h:54
virtual void access_closure(GridObject *elem)=0
number & operator[](size_t i)
Definition: local_transfer_interface.h:59
Base-class for all vertex-types.
Definition: grid_base_objects.h:231
Volumes are 3-dimensional objects.
Definition: grid_base_objects.h:754
#define UG_ASSERT(expr, msg)
Definition: assert.h:70
double number
Definition: types.h:124
SmartPtr< IElemRestriction< TDomain > > GetStandardElementRestriction(const LFEID &lfeid)
Definition: local_transfer_interface.cpp:61
SmartPtr< IElemProlongation< TDomain > > GetStandardElementProlongation(const LFEID &lfeid)
Definition: local_transfer_interface.cpp:40
GridBaseObjectId
enumeration of the GridBaseObjects that make up a grid.
Definition: grid_base_objects.h:59