dune-pdelab 2.10-git
Loading...
Searching...
No Matches
singlecodimleafordering.hh
Go to the documentation of this file.
1// -*- tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*-
2// vi: set et ts=8 sw=2 sts=2:
3
4#ifndef DUNE_PDELAB_ORDERING_SINGLECODIMLEAFORDERING_HH
5#define DUNE_PDELAB_ORDERING_SINGLECODIMLEAFORDERING_HH
6
8
11
12namespace Dune {
13 namespace PDELab {
14
17
18 template<typename GV, typename DI, typename CI>
20 : public TypeTree::LeafNode
21 {
22
23 public:
24
26
28
29
31
32 typename Traits::ContainerIndex mapIndex(const typename Traits::DOFIndex& di) const
33 {
34 return di[0];
35 }
36
37 void mapIndex(typename Traits::DOFIndex di, typename Traits::ContainerIndex& ci) const
38 {
39 ci = di[0];
40 }
41
42 typename Traits::SizeType size() const
43 {
44 return _gv.size(0);
45 }
46
48 {
49 return size();
50 }
51
53 {
54 return 1;
55 }
56
57 void update()
58 {
59 }
60
62 : _gv(gv)
63 {
64 }
65
66 bool container_blocked() const
67 {
68 return false;
69 }
70
71 typename Traits::SizeType size(typename Traits::ContainerIndex suffix) const
72 {
73 assert(suffix.size() == 0);
74 return size();
75 }
76
77 private:
78
79 GV _gv;
80
81 };
82
83
84 template<typename GFS, typename Transformation>
85 struct leaf_gfs_to_ordering_descriptor<GFS,Transformation,SingleCodimMapper>
86 {
87
88 static const bool recursive = false;
89
91 typename GFS::Traits::GridView,
95
97
98 static transformed_type transform(const GFS& gfs, const Transformation& t)
99 {
100 return transformed_type(gfs.gridView());
101 }
102
104 {
105 return std::make_shared<transformed_type>(gfs->gridView());
106 }
107
108 };
109
111
112 } // namespace PDELab
113} // namespace Dune
114
115#endif // DUNE_PDELAB_ORDERING_SINGLECODIMLEAFORDERING_HH
For backward compatibility – Do not use this!
Definition simpledofindex.hh:16
Definition simpledofindex.hh:41
Definition gridfunctionspace/tags.hh:191
Definition gridfunctionspace/tags.hh:208
Definition gridfunctionspace/tags.hh:216
Definition singlecodimleafordering.hh:21
void update()
Definition singlecodimleafordering.hh:57
void mapIndex(typename Traits::DOFIndex di, typename Traits::ContainerIndex &ci) const
Definition singlecodimleafordering.hh:37
Traits::SizeType blockCount() const
Definition singlecodimleafordering.hh:47
SimpleLFSCacheTag CacheTag
Definition singlecodimleafordering.hh:27
Traits::ContainerIndex mapIndex(const typename Traits::DOFIndex &di) const
Definition singlecodimleafordering.hh:32
SimpleOrderingTraits< DI, CI > Traits
Definition singlecodimleafordering.hh:30
Traits::SizeType size(typename Traits::ContainerIndex suffix) const
Definition singlecodimleafordering.hh:71
Traits::SizeType size() const
Definition singlecodimleafordering.hh:42
Traits::SizeType maxLocalSize() const
Definition singlecodimleafordering.hh:52
FlatContainerAllocationTag ContainerAllocationTag
Definition singlecodimleafordering.hh:25
bool container_blocked() const
Definition singlecodimleafordering.hh:66
SingleCodimLeafOrdering(const GV &gv)
Definition singlecodimleafordering.hh:61
static transformed_storage_type transform_storage(std::shared_ptr< const GFS > gfs, const Transformation &t)
Definition singlecodimleafordering.hh:103
std::shared_ptr< transformed_type > transformed_storage_type
Definition singlecodimleafordering.hh:96
SingleCodimLeafOrdering< typename GFS::Traits::GridView, SimpleDOFIndex< typename GFS::Traits::SizeType >, SimpleContainerIndex< typename GFS::Traits::SizeType > > transformed_type
Definition singlecodimleafordering.hh:94
static transformed_type transform(const GFS &gfs, const Transformation &t)
Definition singlecodimleafordering.hh:98
Definition ordering/utility.hh:172
DI DOFIndex
Definition ordering/utility.hh:174
CI ContainerIndex
Definition ordering/utility.hh:176