3 #ifndef DUNE_PDELAB_BACKEND_COMMON_UNCACHEDVECTORVIEW_HH
4 #define DUNE_PDELAB_BACKEND_COMMON_UNCACHEDVECTORVIEW_HH
6 #include <dune/common/typetraits.hh>
16 template<
typename V,
typename LFSC>
20 typedef typename std::remove_const<V>::type
Container;
70 return cache().size();
74 void read(LC& local_container)
const
82 template<
typename ChildLFS,
typename LC>
83 void read(
const ChildLFS& child_lfs, LC& local_container)
const
85 for (
size_type i = 0; i < child_lfs.size(); ++i)
87 const size_type local_index = child_lfs.localIndex(i);
92 template<
typename ChildLFS,
typename LC>
95 for (
size_type i = 0; i < child_lfs.size(); ++i)
97 const size_type local_index = child_lfs.localIndex(i);
111 template<
typename DI>
113 (std::is_same<DI,DOFIndex>{} and not std::is_same<DI,ContainerIndex>{}),
116 operator[](
const DI& di)
const
146 template<
typename V,
typename LFSC>
177 template<
typename LC>
178 void write(
const LC& local_container)
186 template<
typename LC>
187 void add(
const LC& local_container)
197 template<
typename ChildLFS,
typename LC>
198 void write(
const ChildLFS& child_lfs,
const LC& local_container)
200 for (
size_type i = 0; i < child_lfs.size(); ++i)
202 const size_type local_index = child_lfs.localIndex(i);
207 template<
typename ChildLFS,
typename LC>
208 void add(
const ChildLFS& child_lfs,
const LC& local_container)
210 for (
size_type i = 0; i < child_lfs.size(); ++i)
212 const size_type local_index = child_lfs.localIndex(i);
220 template<
typename ChildLFS,
typename LC>
223 for (
size_type i = 0; i < child_lfs.size(); ++i)
225 const size_type local_index = child_lfs.localIndex(i);
230 template<
typename ChildLFS,
typename LC>
233 for (
size_type i = 0; i < child_lfs.size(); ++i)
235 const size_type local_index = child_lfs.localIndex(i);
252 template<
typename DI>
254 (std::is_same<DI,DOFIndex>{} and not std::is_same<DI,ContainerIndex>{}),
C & accessBaseContainer(C &c)
Definition: localvector.hh:368
For backward compatibility – Do not use this!
Definition: adaptivity.hh:28
Definition: uncachedvectorview.hh:18
void unbind()
Definition: uncachedvectorview.hh:64
void attach(V &container)
Definition: uncachedvectorview.hh:44
void detach()
Definition: uncachedvectorview.hh:54
const Container & container() const
Definition: uncachedvectorview.hh:128
const ElementType & operator[](const ContainerIndex &ci) const
Definition: uncachedvectorview.hh:122
const ElementType & operator[](size_type i) const
Definition: uncachedvectorview.hh:103
Container::E ElementType
Definition: uncachedvectorview.hh:23
size_type size() const
Definition: uncachedvectorview.hh:68
Container::size_type size_type
Definition: uncachedvectorview.hh:24
ConstUncachedVectorView(std::shared_ptr< V > container)
Definition: uncachedvectorview.hh:39
ConstUncachedVectorView(V &container)
Definition: uncachedvectorview.hh:34
LFSCache::DOFIndex DOFIndex
Definition: uncachedvectorview.hh:25
LFSC LFSCache
Definition: uncachedvectorview.hh:21
const LFSCache * _lfs_cache
Definition: uncachedvectorview.hh:141
std::remove_const< V >::type Container
Definition: uncachedvectorview.hh:20
void attach(std::shared_ptr< V > container)
Definition: uncachedvectorview.hh:49
void read(const ChildLFS &child_lfs, LC &local_container) const
Definition: uncachedvectorview.hh:83
void bind(const LFSCache &lfs_cache)
Definition: uncachedvectorview.hh:59
void read(LC &local_container) const
Definition: uncachedvectorview.hh:74
const LFSCache & cache() const
Definition: uncachedvectorview.hh:133
V * _container
Definition: uncachedvectorview.hh:140
ConstUncachedVectorView()
Definition: uncachedvectorview.hh:29
LFSCache::ContainerIndex ContainerIndex
Definition: uncachedvectorview.hh:26
void read_sub_container(const ChildLFS &child_lfs, LC &local_container) const
Definition: uncachedvectorview.hh:93
Definition: uncachedvectorview.hh:149
UncachedVectorView(Container &container)
Definition: uncachedvectorview.hh:169
void write(const ChildLFS &child_lfs, const LC &local_container)
Definition: uncachedvectorview.hh:198
LFSC LFSCache
Definition: uncachedvectorview.hh:155
LFSCache::ContainerIndex ContainerIndex
Definition: uncachedvectorview.hh:157
void commit()
Definition: uncachedvectorview.hh:240
UncachedVectorView()
Definition: uncachedvectorview.hh:166
V Container
Definition: uncachedvectorview.hh:151
ElementType & operator[](size_type i)
Definition: uncachedvectorview.hh:245
void write_sub_container(const ChildLFS &child_lfs, const LC &local_container)
Definition: uncachedvectorview.hh:221
void add_sub_container(const ChildLFS &child_lfs, const LC &local_container)
Definition: uncachedvectorview.hh:231
void add(const ChildLFS &child_lfs, const LC &local_container)
Definition: uncachedvectorview.hh:208
ElementType & operator[](const ContainerIndex &ci)
Definition: uncachedvectorview.hh:263
Container::ElementType ElementType
Definition: uncachedvectorview.hh:152
LFSCache::DOFIndex DOFIndex
Definition: uncachedvectorview.hh:156
Container::size_type size_type
Definition: uncachedvectorview.hh:153
UncachedVectorView(std::shared_ptr< Container > container)
Definition: uncachedvectorview.hh:173
void add(const LC &local_container)
Definition: uncachedvectorview.hh:187
void write(const LC &local_container)
Definition: uncachedvectorview.hh:178
Container & container()
Definition: uncachedvectorview.hh:269