/usr/include/dune/grid/io/file/vtk/volumeiterators.hh is in libdune-grid-dev 2.3.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
#ifndef DUNE_GRID_IO_FILE_VTK_VOLUMEITERATORS_HH
#define DUNE_GRID_IO_FILE_VTK_VOLUMEITERATORS_HH
#include <dune/grid/common/gridenums.hh>
#include <dune/grid/io/file/vtk/corner.hh>
#include <dune/grid/io/file/vtk/corneriterator.hh>
#include <dune/grid/io/file/vtk/functionwriter.hh>
#include <dune/grid/io/file/vtk/pointiterator.hh>
namespace Dune {
//! \addtogroup VTK
//! \{
namespace VTK {
template<typename GV>
class ConformingVolumeIteratorFactory {
const GV& gv;
typedef typename GV::IndexSet IndexSet;
const IndexSet& indexSet() const { return gv.indexSet(); }
friend class ConformingConnectivityWriter<
ConformingVolumeIteratorFactory<GV> >;
public:
static const unsigned dimCell = GV::dimension;
typedef typename GV::template Codim<0>::Entity Cell;
typedef typename GV::template Codim<0>::
template Partition<InteriorBorder_Partition>::Iterator CellIterator;
typedef VTK::Corner<Cell> Corner;
typedef VTK::CornerIterator<CellIterator> CornerIterator;
typedef VTK::Corner<Cell> Point;
typedef VTK::PointIterator<CellIterator,
typename GV::IndexSet> PointIterator;
typedef ConformingConnectivityWriter<ConformingVolumeIteratorFactory<GV>
> ConnectivityWriter;
typedef typename GV::CollectiveCommunication CollectiveCommunication;
explicit ConformingVolumeIteratorFactory(const GV& gv_)
: gv(gv_)
{ }
CellIterator beginCells() const {
return gv.template begin<0, InteriorBorder_Partition>();
}
CellIterator endCells() const {
return gv.template end<0, InteriorBorder_Partition>();
}
CornerIterator beginCorners() const {
return CornerIterator(beginCells(), endCells());
}
CornerIterator endCorners() const {
return CornerIterator(endCells());
}
PointIterator beginPoints() const {
return PointIterator(beginCells(), endCells(), gv.indexSet());
}
PointIterator endPoints() const {
return PointIterator(endCells());
}
ConnectivityWriter makeConnectivity() const {
return ConnectivityWriter(*this);
}
const CollectiveCommunication& comm() const {
return gv.comm();
}
};
template<typename GV>
class NonConformingVolumeIteratorFactory {
const GV& gv;
public:
static const unsigned dimCell = GV::dimension;
typedef typename GV::template Codim<0>::Entity Cell;
typedef typename GV::template Codim<0>::
template Partition<InteriorBorder_Partition>::Iterator CellIterator;
typedef VTK::Corner<Cell> Corner;
typedef VTK::CornerIterator<CellIterator> CornerIterator;
typedef Corner Point;
typedef CornerIterator PointIterator;
typedef NonConformingConnectivityWriter<Cell> ConnectivityWriter;
typedef typename GV::CollectiveCommunication CollectiveCommunication;
explicit NonConformingVolumeIteratorFactory(const GV& gv_)
: gv(gv_)
{ }
CellIterator beginCells() const {
return gv.template begin<0, InteriorBorder_Partition>();
}
CellIterator endCells() const {
return gv.template end<0, InteriorBorder_Partition>();
}
CornerIterator beginCorners() const {
return CornerIterator(beginCells(), endCells());
}
CornerIterator endCorners() const {
return CornerIterator(endCells());
}
PointIterator beginPoints() const { return beginCorners(); }
PointIterator endPoints() const { return endCorners(); }
ConnectivityWriter makeConnectivity() const {
return ConnectivityWriter();
}
const CollectiveCommunication& comm() const {
return gv.comm();
}
};
} // namespace VTK
//! \} group VTK
} // namespace Dune
#endif // DUNE_GRID_IO_FILE_VTK_VOLUMEITERATORS_HH
|