23 #ifndef EWOMS_COPYRESTRICTPROLONG_HH
24 #define EWOMS_COPYRESTRICTPROLONG_HH
26 #include <opm/common/Unused.hpp>
29 #include <dune/fem/space/common/restrictprolonginterface.hh>
34 template <
class Gr
id,
class Container >
37 template <
class Gr
id,
class Container >
40 typedef typename Grid::ctype DomainFieldType;
44 template<
class Gr
id,
class Container >
47 :
public Dune::Fem::RestrictProlongInterfaceDefault< CopyRestrictProlongTraits< Grid, Container > >
52 Container& container_;
54 typedef typename Grid::ctype DomainFieldType;
57 : container_( container )
66 template <
class Field>
71 template<
class Entity >
72 void restrictLocal (
const Entity& father,
const Entity& son,
bool initialize )
const
75 assert( container_.codimension() == 0 );
79 container_[ father ] = container_[ son ];
84 template<
class Entity,
class LocalGeometry >
87 const LocalGeometry& geometryInFather OPM_UNUSED,
88 bool initialize)
const
92 template<
class Entity >
95 bool initialize OPM_UNUSED)
const
98 assert( container_.codimension() == 0 );
100 container_[ son ] = container_[ father ];
104 template<
class Entity,
class LocalGeometry >
107 const LocalGeometry& geometryInFather OPM_UNUSED,
108 bool initialize)
const
114 template<
class Communicator >
123 template<
class LoadBalancer >
132 class EmptyRestrictProlong;
136 typedef double DomainFieldType;
142 :
public Dune::Fem::RestrictProlongInterfaceDefault< EmptyRestrictProlongTraits >
154 template <
class Field>
159 template<
class Entity >
161 const Entity& son OPM_UNUSED,
162 bool initialize OPM_UNUSED)
const
166 template<
class Entity,
class LocalGeometry >
168 const Entity& son OPM_UNUSED,
169 const LocalGeometry& geometryInFather OPM_UNUSED,
170 bool initialize OPM_UNUSED)
const
174 template<
class Entity >
176 const Entity& son OPM_UNUSED,
177 bool initialize OPM_UNUSED)
const
181 template<
class Entity,
class LocalGeometry >
183 const Entity& son OPM_UNUSED,
184 const LocalGeometry& geometryInFather OPM_UNUSED,
185 bool initialize OPM_UNUSED)
const
191 template<
class Communicator >
198 template<
class LoadBalancer >
void setFatherChildWeight(const Field &weight OPM_UNUSED) const
explicit set volume ratio of son and father
Definition: restrictprolong.hh:67
void addToList(Communicator &comm OPM_UNUSED)
add discrete function to communicator
Definition: restrictprolong.hh:192
Definition: restrictprolong.hh:134
void restrictLocal(const Entity &father OPM_UNUSED, const Entity &son OPM_UNUSED, bool initialize OPM_UNUSED) const
restrict data to father
Definition: restrictprolong.hh:160
void addToList(Communicator &comm OPM_UNUSED)
add discrete function to communicator
Definition: restrictprolong.hh:115
void restrictLocal(const Entity &father, const Entity &son, const LocalGeometry &geometryInFather OPM_UNUSED, bool initialize) const
restrict data to father
Definition: restrictprolong.hh:85
Definition: restrictprolong.hh:35
Definition: restrictprolong.hh:38
void prolongLocal(const Entity &father, const Entity &son, bool initialize OPM_UNUSED) const
prolong data to children
Definition: restrictprolong.hh:93
void addToLoadBalancer(LoadBalancer &lb OPM_UNUSED)
add discrete function to load balancer
Definition: restrictprolong.hh:199
void prolongLocal(const Entity &father, const Entity &son, const LocalGeometry &geometryInFather OPM_UNUSED, bool initialize) const
prolong data to children
Definition: restrictprolong.hh:105
Definition: restrictprolong.hh:140
void prolongLocal(const Entity &father OPM_UNUSED, const Entity &son OPM_UNUSED, bool initialize OPM_UNUSED) const
prolong data to children
Definition: restrictprolong.hh:175
void restrictLocal(const Entity &father, const Entity &son, bool initialize) const
restrict data to father
Definition: restrictprolong.hh:72
void setFatherChildWeight(const Field &weight OPM_UNUSED) const
explicit set volume ratio of son and father
Definition: restrictprolong.hh:155
void restrictLocal(const Entity &father OPM_UNUSED, const Entity &son OPM_UNUSED, const LocalGeometry &geometryInFather OPM_UNUSED, bool initialize OPM_UNUSED) const
restrict data to father
Definition: restrictprolong.hh:167
void addToLoadBalancer(LoadBalancer &lb OPM_UNUSED)
add discrete function to load balancer
Definition: restrictprolong.hh:124
void prolongLocal(const Entity &father OPM_UNUSED, const Entity &son OPM_UNUSED, const LocalGeometry &geometryInFather OPM_UNUSED, bool initialize OPM_UNUSED) const
prolong data to children
Definition: restrictprolong.hh:182