|
| GridFactory () |
|
virtual | ~GridFactory () |
|
virtual void | insertVertex (const WorldVector &pos) |
| insert a vertex into the macro grid More...
|
|
virtual void | insertElement (const GeometryType &type, const std::vector< unsigned int > &vertices) |
| insert an element into the macro grid More...
|
|
virtual void | insertBoundary (int element, int face, int id) |
| mark a face as boundary (and assign a boundary id) More...
|
|
virtual void | insertBoundaryProjection (const GeometryType &type, const std::vector< unsigned int > &vertices, const DuneProjection *projection) |
| insert a boundary projection into the macro grid More...
|
|
virtual void | insertBoundaryProjection (const DuneProjection *projection) |
| insert a global (boundary) projection into the macro grid More...
|
|
virtual void | insertBoundarySegment (const std::vector< unsigned int > &vertices) |
| insert a boundary segment into the macro grid More...
|
|
virtual void | insertBoundarySegment (const std::vector< unsigned int > &vertices, const std::shared_ptr< BoundarySegment > &boundarySegment) |
| insert a shaped boundary segment into the macro grid More...
|
|
void | insertFaceTransformation (const WorldMatrix &matrix, const WorldVector &shift) |
| add a face transformation (for periodic identification) More...
|
|
void | markLongestEdge () |
| mark the longest edge as refinemet edge More...
|
|
std::unique_ptr< Grid > | createGrid () |
| finalize grid creation and hand over the grid More...
|
|
bool | write (const std::string &filename) |
| write out the macro triangulation in native grid file format More...
|
|
virtual unsigned int | insertionIndex (const typename Codim< 0 >::Entity &entity) const |
| obtain an element's insertion index More...
|
|
virtual unsigned int | insertionIndex (const typename Codim< dimension >::Entity &entity) const |
| obtain a vertex' insertion index More...
|
|
virtual unsigned int | insertionIndex (const typename Grid::LeafIntersection &intersection) const |
|
virtual bool | wasInserted (const typename Grid::LeafIntersection &intersection) const |
|
virtual void | insertVertex (const FieldVector< ctype, dimworld > &pos)=0 |
| Insert a vertex into the coarse grid. More...
|
|
virtual DUNE_NO_DEPRECATED_BEGIN void | insertElement (const GeometryType &type, const std::vector< unsigned int > &vertices, const std::shared_ptr< VirtualFunction< FieldVector< ctype, dimension >, FieldVector< ctype, dimworld > > > &elementParametrization) |
| Insert a parametrized element into the coarse grid. More...
|
|
virtual DUNE_NO_DEPRECATED_END void | insertElement (const GeometryType &type, const std::vector< unsigned int > &vertices, std::function< FieldVector< ctype, dimworld >(FieldVector< ctype, dimension >)> elementParametrization) |
| Insert a parametrized element into the coarse grid. More...
|
|
virtual void | insertBoundarySegment (const std::vector< unsigned int > &vertices, const std::shared_ptr< BoundarySegment< dimension, dimworld > > &boundarySegment) |
| insert an arbitrarily shaped boundary segment More...
|
|
virtual unsigned int | insertionIndex (const typename GridType::LeafIntersection &intersection) const |
| obtain a boundary's insertion index More...
|
|
virtual bool | wasInserted (const typename GridType::LeafIntersection &intersection) const |
| determine whether an intersection was inserted More...
|
|
Communication | comm () const |
| Return the Communication used by the grid factory. More...
|
|
template<int dim, int dimworld>
class Dune::GridFactory< AlbertaGrid< dim, dimworld > >
specialization of the generic GridFactory for AlbertaGrid
The GridFactory for AlbertaGrid adds some extensions to the standard GridFactoryInterface. It provides the following additional features:
- It allows to set boundary ids via insertBoundary. For ALBERTA 1.2, these boundary ids are ignored, though.
- For ALBERTA 3.0 and above, you can add face transformation to identify faces. This allows the construction of periodic grids.
- The grid can be written in ALBERTA's native format for macro triangulations via write (both ASCII and XDR format are supported).
- On grid creation, a name can be assigned to the grid.
- On grid creation, the grid can be reordered such that ALBERTA uses the longest edge as refinement edge during recursive bisection.
template<int dim, int dimworld>
obtain an element's insertion index
Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.
Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.
- Parameters
-
[in] | entity | entity whose insertion index is requested |
- Returns
- insertion index of the entity
Reimplemented from Dune::GridFactoryInterface< AlbertaGrid< dim, dimworld > >.
template<int dim, int dimworld>
obtain a vertex' insertion index
Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.
Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.
- Parameters
-
[in] | entity | entity whose insertion index is requested |
- Returns
- insertion index of the entity
Reimplemented from Dune::GridFactoryInterface< AlbertaGrid< dim, dimworld > >.
obtain a boundary's insertion index
Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.
Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.
- Parameters
-
[in] | intersection | intersection whose insertion index is requested |
- Returns
- insertion index of the intersection
- Note
- The insertion index can only be obtained for boundary intersections that were actually inserted (see also wasInserted).
template<int dim, int dimworld>
mark the longest edge as refinemet edge
Marking the longest edge avoids cycles in the recursive bisection algorithm, if the longest edge of each element is unique. It also makes sure the angles degenerate least. It can, hoowever, produce more nonlocal refinements than necessary. Therefore this feature is disabled by default.