23#ifndef EWOMS_COPYRESTRICTPROLONG_HH
24#define EWOMS_COPYRESTRICTPROLONG_HH
29#include <dune/fem/space/common/restrictprolonginterface.hh>
34template <
class Gr
id,
class Container>
37template <
class Gr
id,
class Container>
40 using DomainFieldType =
typename Grid::ctype;
44template<
class Gr
id,
class Container>
45class CopyRestrictProlong
47 :
public Dune::Fem::RestrictProlongInterfaceDefault<CopyRestrictProlongTraits<Grid, Container>>
50 using ThisType = CopyRestrictProlong<Grid, Container>;
52 Container& container_;
55 using DomainFieldType =
typename Grid::ctype;
57 explicit CopyRestrictProlong(Container& container)
58 : container_(container)
67 template <
class Field>
72 template<
class Entity>
73 void restrictLocal (
const Entity& father,
const Entity& son,
bool initialize)
const
76 assert(container_.codimension() == 0);
79 container_[father] = container_[son];
84 template<
class Entity,
class LocalGeometry>
88 bool initialize)
const
92 template<
class Entity>
98 assert(container_.codimension() == 0);
100 container_[son] = container_[father];
104 template<
class Entity,
class LocalGeometry>
107 const LocalGeometry&,
108 bool initialize)
const
114 template<
class Communicator>
123 template<
class LoadBalancer>
130class EmptyRestrictProlong;
134 using DomainFieldType = double;
140 :
public Dune::Fem::RestrictProlongInterfaceDefault< EmptyRestrictProlongTraits >
152 template <
class Field>
157 template<
class Entity>
164 template<
class Entity,
class LocalGeometry>
167 const LocalGeometry&,
172 template<
class Entity>
179 template<
class Entity,
class LocalGeometry>
182 const LocalGeometry&,
189 template<
class Communicator>
196 template<
class LoadBalancer>
Definition restrictprolong.hh:49
void addToLoadBalancer(LoadBalancer &)
add discrete function to load balancer
Definition restrictprolong.hh:124
void restrictLocal(const Entity &father, const Entity &son, bool initialize) const
restrict data to father
Definition restrictprolong.hh:73
void setFatherChildWeight(const Field &) const
explicit set volume ratio of son and father
Definition restrictprolong.hh:68
void prolongLocal(const Entity &father, const Entity &son, const LocalGeometry &, bool initialize) const
prolong data to children
Definition restrictprolong.hh:105
void prolongLocal(const Entity &father, const Entity &son, bool) const
prolong data to children
Definition restrictprolong.hh:93
void restrictLocal(const Entity &father, const Entity &son, const LocalGeometry &, bool initialize) const
restrict data to father
Definition restrictprolong.hh:85
void addToList(Communicator &)
add discrete function to communicator
Definition restrictprolong.hh:115
Definition restrictprolong.hh:142
void addToList(Communicator &)
add discrete function to communicator
Definition restrictprolong.hh:190
void restrictLocal(const Entity &, const Entity &, const LocalGeometry &, bool) const
restrict data to father
Definition restrictprolong.hh:165
void prolongLocal(const Entity &, const Entity &, const LocalGeometry &, bool) const
prolong data to children
Definition restrictprolong.hh:180
void addToLoadBalancer(LoadBalancer &)
add discrete function to load balancer
Definition restrictprolong.hh:197
void setFatherChildWeight(const Field &) const
explicit set volume ratio of son and father
Definition restrictprolong.hh:153
void prolongLocal(const Entity &, const Entity &, bool) const
prolong data to children
Definition restrictprolong.hh:173
void restrictLocal(const Entity &, const Entity &, bool) const
restrict data to father
Definition restrictprolong.hh:158
This file contains a set of helper functions used by VFPProd / VFPInj.
Definition blackoilbioeffectsmodules.hh:43
Definition restrictprolong.hh:39
Definition restrictprolong.hh:133