6 #include <dune/common/filledarray.hh>
7 #include <dune/common/fvector.hh>
12 #include <dune/grid/spgrid.hh>
19 template <
class Gr
idView>
21 :
public StructuredDataCollectorInterface<GridView, SPDataCollector<GridView>>
23 using Self = SPDataCollector;
24 using Super = StructuredDataCollectorInterface<GridView, Self>;
25 using ctype =
typename GridView::ctype;
29 using Super::partition;
32 SPDataCollector (GridView
const& gridView)
34 , wholeExtent_(filledArray<6,int>(0))
35 , extent_(filledArray<6,int>(0))
40 std::array<int, 6>
const& wholeExtentImpl ()
const
45 std::array<int, 6>
const& extentImpl ()
const
50 auto const& originImpl ()
const
55 auto const& spacingImpl ()
const
64 auto const& localMesh = gridView_.impl().gridLevel().localMesh();
65 auto const& begin = gridView_.impl().gridLevel().globalMesh().begin();
66 auto const& end = gridView_.impl().gridLevel().globalMesh().end();
67 auto const& cube = gridView_.grid().domain().cube();
69 for (
int i = 0; i < dim; ++i) {
70 wholeExtent_[2*i] = begin[i];
71 wholeExtent_[2*i+1] = end[i];
72 extent_[2*i] = localMesh.begin()[i];
73 extent_[2*i+1] = localMesh.end()[i];
74 spacing_[i] = cube.width()[i] / (end[i] - begin[i]);
75 origin_[i] = cube.origin()[i];
80 using Super::gridView_;
81 std::array<int, 6> wholeExtent_;
82 std::array<int, 6> extent_;
83 FieldVector<ctype,3> origin_;
84 FieldVector<ctype,3> spacing_;
85 std::vector<std::size_t> indexMap_;
90 template <
class Gr
idView,
class ct,
int dim,
template<
int >
class Ref,
class Comm>
91 struct StructuredDataCollectorImpl<GridView, SPGrid<ct,dim,Ref,Comm>>
93 using type = SPDataCollector<GridView>;
Definition: datacollectorinterface.hh:9