6 #ifndef DUNE_UGGRID_FACTORY_HH 7 #define DUNE_UGGRID_FACTORY_HH 18 #include <dune/common/fvector.hh> 162 template <
int dimworld>
169 static_assert(dimworld==2 || dimworld == 3,
"UGGrid only in 2d and 3d");
191 virtual void insertVertex(
const FieldVector<ctype,dimworld>& pos);
198 const std::vector<unsigned int>& vertices);
220 virtual std::unique_ptr<UGGrid<dimworld>>
createGrid();
224 template<
int codim >
237 return UG_NS<dimension>::levelIndex(entity.impl().target_);
247 return UG_NS<dimension>::levelIndex(entity.impl().target_);
257 return intersection.boundarySegmentIndex();
264 return (
insertionIndex( intersection ) < boundarySegmentVertices_.size());
275 return grid_->comm();
288 bool factoryOwnsGrid_;
291 std::vector<std::array<int, dimworld*2-2> > boundarySegmentVertices_;
295 std::vector<unsigned char> elementTypes_;
299 std::vector<unsigned int> elementVertices_;
302 std::vector<FieldVector<double, dimworld> > vertexPositions_;
Communication comm() const
Return the Communication used by the grid factory.
Definition: uggridfactory.hh:273
Base class for classes implementing geometries of boundary segments.
Definition: boundarysegment.hh:37
Base class for grid boundary segments of arbitrary geometry.
virtual unsigned int insertionIndex(const typename Codim< 0 >::Entity &entity) const
Return the number of the element in the order of insertion into the factory.
Definition: uggridfactory.hh:235
virtual bool wasInserted(const typename UGGrid< dimworld >::LeafIntersection &intersection) const
Return true if the intersection has been explicitly inserted into the factory.
Definition: uggridfactory.hh:262
virtual unsigned int insertionIndex(const typename Codim< dimension >::Entity &entity) const
Return the number of the vertex in the order of insertion into the factory.
Definition: uggridfactory.hh:245
Provide a generic factory class for unstructured grids.
virtual std::unique_ptr< GridType > createGrid()
Finalize grid creation and hand over the grid.
Definition: common/gridfactory.hh:333
GridFactory()
Default constructor.
Definition: common/gridfactory.hh:291
virtual unsigned int insertionIndex([[maybe_unused]] const typename Codim< 0 >::Entity &entity) const
obtain an element's insertion index
Definition: common/gridfactory.hh:181
Include standard header files.
Definition: agrid.hh:59
Provide a generic factory class for unstructured grids.
Definition: common/gridfactory.hh:69
virtual void insertBoundarySegment([[maybe_unused]] const std::vector< unsigned int > &vertices)
insert a boundary segment
Definition: common/gridfactory.hh:325
Front-end for the grid manager of the finite element toolbox UG3.
Definition: uggrid.hh:199
Provide a generic factory class for unstructured grids.
Definition: common/gridfactory.hh:275
UGGrid< dimworld >::template Codim< codim >::Entity Entity
Definition: uggridfactory.hh:227
typename UGGrid< dimworld >::Communication Communication
Definition: uggridfactory.hh:267
GeometryType
Type representing VTK's entity geometry types.
Definition: common.hh:132
virtual unsigned int insertionIndex(const typename UGGrid< dimworld >::LeafIntersection &intersection) const
Return the number of the intersection in the order of insertion into the factory. ...
Definition: uggridfactory.hh:255
virtual void insertElement([[maybe_unused]] const GeometryType &type, [[maybe_unused]] const std::vector< unsigned int > &vertices)
Insert an element into the coarse grid.
Definition: common/gridfactory.hh:307
static const int dimension
dimension of the grid
Definition: common/gridfactory.hh:74
virtual void insertVertex([[maybe_unused]] const FieldVector< ctype, dimworld > &pos)
Insert a vertex into the coarse grid.
Definition: common/gridfactory.hh:296