4#ifndef DUNE_UGGRID_FACTORY_HH
5#define DUNE_UGGRID_FACTORY_HH
16#include <dune/common/fvector.hh>
160 template <
int dimworld>
167 static_assert(dimworld==2 || dimworld == 3,
"UGGrid only in 2d and 3d");
197 const std::vector<unsigned int>& vertices);
223 template<
int codim >
236 return UG_NS<dimension>::levelIndex(grid_->getRealImplementation(entity).target_);
246 return UG_NS<dimension>::levelIndex(grid_->getRealImplementation(entity).target_);
256 return intersection.boundarySegmentIndex();
263 return (
insertionIndex( intersection ) < boundarySegmentVertices_.size());
276 bool factoryOwnsGrid_;
279 std::vector<std::array<int, dimworld*2-2> > boundarySegmentVertices_;
283 std::vector<unsigned char> elementTypes_;
287 std::vector<unsigned int> elementVertices_;
290 std::vector<FieldVector<double, dimworld> > vertexPositions_;
Base class for grid boundary segments of arbitrary geometry.
Include standard header files.
Definition agrid.hh:60
Base class for classes implementing geometries of boundary segments.
Definition boundarysegment.hh:30
GridFamily::Traits::LeafIntersection LeafIntersection
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimensio...
Definition common/grid.hh:460
Provide a generic factory class for unstructured grids.
Definition common/gridfactory.hh:74
virtual unsigned int insertionIndex(const typename Codim< 0 >::Entity &entity) const
obtain an element's insertion index
Definition common/gridfactory.hh:179
static const int dimension
dimension of the grid
Definition common/gridfactory.hh:78
Provide a generic factory class for unstructured grids.
Definition common/gridfactory.hh:263
Front-end for the grid manager of the finite element toolbox UG.
Definition uggrid.hh:231
UG::DOUBLE ctype
The type used to store coordinates.
Definition uggrid.hh:285
void insertBoundarySegment(const std::vector< unsigned int > &vertices, const std::shared_ptr< BoundarySegment< dimworld > > &boundarySegment)
Method to insert an arbitrarily shaped boundary segment into a coarse grid.
virtual void insertVertex(const FieldVector< ctype, dimworld > &pos)
Insert a vertex into the coarse grid.
~GridFactory()
Destructor.
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:234
virtual void insertElement(const GeometryType &type, const std::vector< unsigned int > &vertices)
Insert an element into the coarse grid.
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:244
GridFactory()
Default constructor.
virtual UGGrid< dimworld > * createGrid()
Finalize grid creation and hand over the grid.
virtual bool wasInserted(const typename UGGrid< dimworld >::LeafIntersection &intersection) const
Return true if the intersection has been explictily insterted into the factory.
Definition uggridfactory.hh:261
GridFactory(UGGrid< dimworld > *grid)
Constructor for a given grid object.
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:254
void insertBoundarySegment(const std::vector< unsigned int > &vertices)
Method to insert a boundary segment into a coarse grid.
UGGrid< dimworld >::template Codim< codim >::Entity Entity
Definition uggridfactory.hh:226
Provide a generic factory class for unstructured grids.