5 #include <dune/grid/common/partitionset.hh>
15 template <
class Gr
idView,
class Partition = Partitions::InteriorBorder>
37 std::int64_t vertex_idx = 0;
38 auto const& indexSet =
gridView_.indexSet();
42 for (
unsigned int i = 0; i < c.subEntities(
dim); ++i)
58 auto const& indexSet =
gridView_.indexSet();
60 for (
unsigned int i = 0; i < element.subEntities(
dim); ++i) {
61 std::size_t idx = 3 *
indexMap_[indexSet.subIndex(element, i,
dim)];
62 auto v = element.geometry().corner(i);
63 for (std::size_t j = 0; j < v.size(); ++j)
64 data[idx + j] = T(v[j]);
65 for (std::size_t j = v.size(); j < 3u; ++j)
86 std::int64_t old_o = 0;
87 auto const& indexSet =
gridView_.indexSet();
90 for (
unsigned int j = 0; j < c.subEntities(
dim); ++j) {
102 template <
class T,
class GlobalFunction>
105 std::vector<T> data(
numPoints_ * fct.numComponents());
106 auto const& indexSet =
gridView_.indexSet();
107 auto localFct = localFunction(fct);
111 auto refElem = referenceElement(e.geometry());
112 for (
unsigned int j = 0; j < e.subEntities(
dim); ++j) {
113 std::size_t idx = fct.numComponents() *
indexMap_[indexSet.subIndex(e, cellType.permutation(j),
dim)];
114 for (
int comp = 0; comp < fct.numComponents(); ++comp)
115 data[idx + comp] = T(localFct.evaluate(comp, refElem.position(cellType.permutation(j),
dim)));
GridViewType GridView
Definition: datacollectorinterface.hh:25
Implementation of DataCollector for linear cells, with discontinuous data.
Definition: discontinuousdatacollector.hh:18
void updateImpl()
Create an index map the uniquely assigns an index to each pair (element,corner)
Definition: discontinuousdatacollector.hh:32
Cells cellsImpl() const
Connect the corners of each cell. The leads to a global discontinuous grid.
Definition: discontinuousdatacollector.hh:79
DiscontinuousDataCollector(GridView const &gridView)
Definition: discontinuousdatacollector.hh:27
std::uint64_t numCells_
Definition: discontinuousdatacollector.hh:124
std::uint64_t numPointsImpl() const
The number of points approx. #cell * #corners-per-cell.
Definition: discontinuousdatacollector.hh:48
std::vector< T > pointDataImpl(GlobalFunction const &fct) const
Evaluate the fct in the corners of each cell.
Definition: discontinuousdatacollector.hh:103
std::vector< T > pointsImpl() const
Return the coordinates of the corners of all cells.
Definition: discontinuousdatacollector.hh:55
std::vector< std::int64_t > indexMap_
Definition: discontinuousdatacollector.hh:126
std::uint64_t numCellsImpl() const
Return number of grid cells.
Definition: discontinuousdatacollector.hh:73
std::uint64_t numPoints_
Definition: discontinuousdatacollector.hh:125
Definition: unstructureddatacollector.hh:14
std::vector< std::int64_t > offsets
Definition: unstructureddatacollector.hh:16
std::vector< std::int64_t > connectivity
Definition: unstructureddatacollector.hh:17
std::vector< std::uint8_t > types
Definition: unstructureddatacollector.hh:15
Definition: unstructureddatacollector.hh:23
@ dim
Definition: datacollectorinterface.hh:28
static constexpr auto partition
The partitionset to collect data from.
Definition: datacollectorinterface.hh:23
Cells cells() const
Return cell types, offsets, and connectivity.
Definition: unstructureddatacollector.hh:36
GridView gridView_
Definition: datacollectorinterface.hh:133
Mapping of Dune geometry types to VTK cell types.
Definition: types.hh:160
std::uint8_t type() const
Return VTK Cell type.
Definition: types.hh:203
int permutation(int idx) const
Return a permutation of Dune elemenr vertices to conform to VTK element numbering.
Definition: types.hh:209