7 #include <dune/common/filledarray.hh>
8 #include <dune/common/fvector.hh>
9 #include <dune/common/std/type_traits.hh>
10 #include <dune/grid/common/gridenums.hh>
11 #include <dune/grid/yaspgrid.hh>
20 template <
class Gr
idView>
26 using ctype =
typename GridView::ctype;
36 ,
extent_(filledArray<6,int>(0))
67 for (
int i = 0; i <
dim; ++i) {
73 auto const& g = gl.interior[0];
74 auto const& gc = *g.dataBegin();
75 for (
int i = 0; i <
dim; ++i) {
84 void initGeometry (EquidistantCoordinates<ctype,dim>
const& coords)
86 for (
int i = 0; i <
dim; ++i) {
92 void initGeometry (EquidistantOffsetCoordinates<ctype,dim>
const& coords)
94 for (
int i = 0; i <
dim; ++i) {
102 for (
int i = 0; i <
dim; ++i) {
104 origin_[i] = coords.coordinate(i,0);
114 auto const& coords = it->coords;
116 std::array<std::vector<T>, 3> ordinates{};
117 for (
int d = 0; d <
dim; ++d) {
119 ordinates[d].resize(s);
120 for (
int i = 0; i < s; ++i)
121 ordinates[d][i] = coords.coordinate(d,
extent_[2*d] + i);
124 for (
int d =
dim; d < 3; ++d)
125 ordinates[d].resize(1, T(0));
134 using HostGrid = decltype(std::declval<G>().hostGrid());
137 std::enable_if_t<not Std::is_detected<HostGrid, G>::value,
int> = 0>
138 auto const& grid (G
const& g)
const
144 std::enable_if_t<Std::is_detected<HostGrid, G>::value,
int> = 0>
145 auto const& grid (G
const& g)
const
147 return grid(g.hostGrid());
161 template <
class Gr
idView,
int dim,
class Coordinates>
162 struct StructuredDataCollectorImpl<GridView, YaspGrid<dim,Coordinates>>
static constexpr auto partition
The partitionset to collect data from.
Definition: datacollectorinterface.hh:23
GridViewType GridView
Definition: datacollectorinterface.hh:25
@ dim
Definition: datacollectorinterface.hh:28
GridView gridView_
Definition: datacollectorinterface.hh:133
The Interface for structured data-collectors.
Definition: structureddatacollector.hh:19
void updateImpl()
\copyref DefaultDataCollector::update.
Definition: structureddatacollector.hh:94
Definition: yaspdatacollector.hh:23
std::array< int, 6 > extent_
Definition: yaspdatacollector.hh:153
void initGeometry(TensorProductCoordinates< ctype, dim > const &coords)
Definition: yaspdatacollector.hh:100
void initGeometry(EquidistantCoordinates< ctype, dim > const &coords)
Definition: yaspdatacollector.hh:84
std::array< int, 6 > wholeExtent_
Definition: yaspdatacollector.hh:152
FieldVector< ctype, 3 > spacing_
Definition: yaspdatacollector.hh:155
FieldVector< ctype, 3 > origin_
Definition: yaspdatacollector.hh:154
auto const & originImpl() const
Definition: yaspdatacollector.hh:52
std::array< std::vector< T >, 3 > coordinatesImpl() const
Extract the ordinates from the coordinates object of the current level.
Definition: yaspdatacollector.hh:111
void initGeometry(EquidistantOffsetCoordinates< ctype, dim > const &coords)
Definition: yaspdatacollector.hh:92
int level_
Definition: yaspdatacollector.hh:156
std::array< int, 6 > const & wholeExtentImpl() const
Definition: yaspdatacollector.hh:42
YaspDataCollector(GridView const &gridView)
Definition: yaspdatacollector.hh:33
void updateImpl()
Definition: yaspdatacollector.hh:62
auto const & spacingImpl() const
Definition: yaspdatacollector.hh:57
std::array< int, 6 > const & extentImpl() const
Definition: yaspdatacollector.hh:47