7#include <dune/grid/common/gridfactory.hh>
29 std::vector<std::uint64_t>
const& )
31 shift_.push_back(points_.size());
32 points_.reserve(points_.size() + points.size());
33 points_.insert(points_.end(), points.begin(), points.end());
37 std::vector<std::int64_t>
const& offsets,
38 std::vector<std::int64_t>
const& connectivity)
40 types_.reserve(types_.size() + types.size());
41 types_.insert(types_.end(), types.begin(), types.end());
43 offsets_.reserve(offsets_.size() + offsets.size());
44 std::transform(offsets.begin(), offsets.end(), std::back_inserter(offsets_),
45 [shift=offsets_.empty() ? 0 : offsets_.back()](std::int64_t o) { return o + shift; });
47 connectivity_.reserve(connectivity_.size() + connectivity.size());
48 std::transform(connectivity.begin(), connectivity.end(), std::back_inserter(connectivity_),
49 [shift=shift_.back()](std::int64_t idx) { return idx + shift; });
54 if (this->
comm().rank() == 0) {
56 for (std::string
const& piece : pieces) {
57 pieceReader.
read(piece,
false);
68 std::vector<GlobalCoordinate> points_;
69 std::vector<std::uint8_t> types_;
70 std::vector<std::int64_t> offsets_;
71 std::vector<std::int64_t> connectivity_;
72 std::vector<std::int64_t> shift_;
Base class for grid creators in a CRTP style.
Definition: gridcreatorinterface.hh:25
GridFactory< Grid > & factory()
Return the associated GridFactory.
Definition: gridcreatorinterface.hh:77
typename Grid::template Codim< 0 >::Entity::Geometry::GlobalCoordinate GlobalCoordinate
Definition: gridcreatorinterface.hh:28
auto comm() const
Return the mpi collective communicator.
Definition: gridcreatorinterface.hh:89
void insertVertices(std::vector< GlobalCoordinate > const &points, std::vector< std::uint64_t > const &point_ids)
Insert all points as vertices into the factory.
Definition: gridcreatorinterface.hh:50
void insertElements(std::vector< std::uint8_t > const &types, std::vector< std::int64_t > const &offsets, std::vector< std::int64_t > const &connectivity)
Create elements based on type and connectivity description.
Definition: gridcreatorinterface.hh:57
Definition: discontinuousgridcreator.hh:24
Definition: serialgridcreator.hh:19
void insertElementsImpl(std::vector< std::uint8_t > const &types, std::vector< std::int64_t > const &offsets, std::vector< std::int64_t > const &connectivity)
Definition: serialgridcreator.hh:36
void insertVerticesImpl(std::vector< GlobalCoordinate > const &points, std::vector< std::uint64_t > const &)
Definition: serialgridcreator.hh:28
typename Super::GlobalCoordinate GlobalCoordinate
Definition: serialgridcreator.hh:22
void insertPiecesImpl(std::vector< std::string > const &pieces)
Definition: serialgridcreator.hh:52
File-Reader for Vtk unstructured .vtu files.
Definition: vtkreader.hh:37
void read(std::string const &filename, bool fillCreator=true)
Read the grid from file with filename into the GridCreator.
Definition: vtkreader.impl.hh:20
void fillGridCreator(bool insertPieces=true)
Definition: vtkreader.impl.hh:681