|
dune-grid 2.12-git
|
[ provides Dune::Grid ] More...
#include <dune/grid/albertagrid/agrid.hh>

Public Types | |
| typedef AlbertaGridFamily< dim, dimworld > | GridFamily |
| the grid family of AlbertaGrid | |
| typedef GridFamily::ctype | ctype |
| typedef AlbertaGridFamily< dim, dimworld >::Traits | Traits |
| typedef Traits::LeafIndexSet | LeafIndexSet |
| type of leaf index set | |
| typedef Traits::LevelIndexSet | LevelIndexSet |
| type of level index sets | |
| typedef Traits::HierarchicIndexSet | HierarchicIndexSet |
| type of hierarchic index set | |
| typedef Traits::GlobalIdSet | GlobalIdSet |
| type of global id set | |
| typedef Traits::LocalIdSet | LocalIdSet |
| type of local id set | |
| typedef Traits::Communication | Communication |
| type of communication | |
Exported types | |
| typedef GridFamily::Traits::LeafGridView | LeafGridView |
| type of view for leaf grid | |
| typedef GridFamily::Traits::LevelGridView | LevelGridView |
| type of view for level grid | |
| typedef GridFamily::Traits::LeafIntersection | LeafIntersection |
| A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in the leaf view. | |
| typedef GridFamily::Traits::LevelIntersection | LevelIntersection |
| A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in a level view. | |
| typedef GridFamily::Traits::LeafIntersectionIterator | LeafIntersectionIterator |
| A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an leaf element (entity of codimension 0) with other leaf elements. | |
| typedef GridFamily::Traits::LevelIntersectionIterator | LevelIntersectionIterator |
| A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an element (entity of codimension 0) with other elements on the same level. | |
| typedef GridFamily::Traits::HierarchicIterator | HierarchicIterator |
| A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine, but not to modify, entities of codimension 0 that result from refinement of an entity of codimension 0. | |
Public Member Functions | |
| AlbertaGrid (const This &)=delete | |
| This & | operator= (const This &)=delete |
| AlbertaGrid () | |
| create an empty grid | |
| AlbertaGrid (const Alberta::MacroData< dimension > ¯oData, const std::shared_ptr< DuneBoundaryProjection< dimensionworld > > &projection=std::shared_ptr< DuneBoundaryProjection< dimensionworld > >()) | |
| create a grid from an ALBERTA macro data structure | |
| template<class Proj , class Impl > | |
| AlbertaGrid (const Alberta::MacroData< dimension > ¯oData, const Alberta::ProjectionFactoryInterface< Proj, Impl > &projectionFactory) | |
| AlbertaGrid (const std::string ¯oGridFileName) | |
| create a grid from an ALBERTA macro grid file | |
| ~AlbertaGrid () | |
| destructor | |
| int | maxLevel () const |
| template<int cd, PartitionIteratorType pitype> | |
| Traits::template Codim< cd >::template Partition< pitype >::LevelIterator | lbegin (int level) const |
| Iterator to first entity of given codim on level. | |
| template<int cd, PartitionIteratorType pitype> | |
| Traits::template Codim< cd >::template Partition< pitype >::LevelIterator | lend (int level) const |
| one past the end on this level | |
| template<int codim> | |
| Traits::template Codim< codim >::LevelIterator | lbegin (int level) const |
| Iterator to first entity of given codim on level. | |
| template<int codim> | |
| Traits::template Codim< codim >::LevelIterator | lend (int level) const |
| one past the end on this level | |
| template<int codim, PartitionIteratorType pitype> | |
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafbegin () const |
| return LeafIterator which points to first leaf entity | |
| template<int codim, PartitionIteratorType pitype> | |
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafend () const |
| return LeafIterator which points behind last leaf entity | |
| template<int codim> | |
| Traits::template Codim< codim >::LeafIterator | leafbegin () const |
| return LeafIterator which points to first leaf entity | |
| template<int codim> | |
| Traits::template Codim< codim >::LeafIterator | leafend () const |
| return LeafIterator which points behind last leaf entity | |
| int | size (int level, int codim) const |
| Number of grid entities per level and codim because lbegin and lend are none const, and we need this methods counting the entities on each level, you know. | |
| int | size (int level, GeometryType type) const |
| number of entities per level and geometry type in this process | |
| int | size (int codim) const |
| number of leaf entities per codim in this process | |
| int | size (GeometryType type) const |
| number of leaf entities per geometry type in this process | |
| std::size_t | numBoundarySegments () const |
| number of boundary segments within the macro grid | |
| Traits::LevelGridView | levelGridView (int level) const |
| View for a grid level for All_Partition. | |
| Traits::LeafGridView | leafGridView () const |
| View for the leaf grid for All_Partition. | |
| int | getMark (const typename Traits::template Codim< 0 >::Entity &e) const |
| returns adaptation mark for given entity | |
| bool | mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e) |
| Marks an entity to be refined/coarsened in a subsequent adapt. | |
| void | globalRefine (int refCount) |
| uses the interface, mark on entity and refineLocal | |
| template<class DataHandle > | |
| void | globalRefine (int refCount, AdaptDataHandleInterface< This, DataHandle > &handle) |
| bool | adapt () |
| Refine all positive marked leaf entities, coarsen all negative marked entities if possible. | |
| template<class DataHandle > | |
| bool | adapt (AdaptDataHandleInterface< This, DataHandle > &handle) |
| callback adapt method with AdaptDataHandleInterface | |
| bool | preAdapt () |
| returns true, if a least one element is marked for coarsening | |
| void | postAdapt () |
| clean up some markers | |
| const Communication & | comm () const |
| return reference to communication, if MPI found this is specialisation for MPI | |
| template<class EntitySeed > | |
| Traits::template Codim< EntitySeed::codimension >::Entity | entity (const EntitySeed &seed) const |
| obtain Entity from EntitySeed. | |
| bool | writeGrid (const std::string &filename, ctype time) const |
| write Grid to file in Xdr | |
| bool | readGrid (const std::string &filename, ctype &time) |
| read Grid from file filename and store time of mesh in time | |
| const HierarchicIndexSet & | hierarchicIndexSet () const |
| const Traits::LevelIndexSet & | levelIndexSet (int level) const |
| return level index set for given level | |
| const Traits::LeafIndexSet & | leafIndexSet () const |
| return leaf index set | |
| const GlobalIdSet & | globalIdSet () const |
| return global IdSet | |
| const LocalIdSet & | localIdSet () const |
| return local IdSet | |
| ALBERTA MESH * | getMesh () const |
| const MeshPointer & | meshPointer () const |
| const DofNumbering & | dofNumbering () const |
| const LevelProvider & | levelProvider () const |
| int | dune2alberta (int codim, int i) const |
| int | alberta2dune (int codim, int i) const |
| int | generic2alberta (int codim, int i) const |
| int | alberta2generic (int codim, int i) const |
| const Alberta::GlobalVector & | getCoord (const ElementInfo &elementInfo, int vertex) const |
| template<int codim, PartitionIteratorType pitype> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::template Partition< pitype >::LevelIterator | lbegin (int level) const |
| template<int codim, PartitionIteratorType pitype> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::template Partition< pitype >::LevelIterator | lend (int level) const |
| template<int codim> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::LevelIterator | lbegin (int level) const |
| template<int codim> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::LevelIterator | lend (int level) const |
| template<int codim, PartitionIteratorType pitype> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafbegin () const |
| template<int codim, PartitionIteratorType pitype> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafend () const |
| template<int codim> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::LeafIterator | leafbegin () const |
| template<int codim> | |
| AlbertaGrid< dim, dimworld >::Traits::template Codim< codim >::LeafIterator | leafend () const |
| Traits::LeafIntersectionIterator | ileafbegin (const typename Traits::template Codim< 0 >::Entity &entity) const |
| obtain begin intersection iterator on the leaf level | |
| Traits::LeafIntersectionIterator | ileafend (const typename Traits::template Codim< 0 >::Entity &entity) const |
| obtain end intersection iterator on the leaf level | |
| Traits::LevelIntersectionIterator | ilevelbegin (const typename Traits::template Codim< 0 >::Entity &entity) const |
| obtain begin intersection iterator on the entity level | |
| Traits::LevelIntersectionIterator | ilevelend (const typename Traits::template Codim< 0 >::Entity &entity) const |
| obtain end intersection iterator on the entity level | |
| bool | mark (int, const typename Traits ::template Codim< 0 >::Entity &) |
| Marks an entity to be refined/coarsened in a subsequent adapt. | |
| bool | loadBalance () |
| default implementation of load balance does nothing and returns false | |
| template<class DataHandle > | |
| bool | loadBalance (DataHandle &data) |
| default implementation of load balance does nothing and returns false | |
Adaptivity and grid refinement | |
| bool | mark (int refCount, const typename Codim< 0 >::Entity &e) |
| Marks an entity to be refined/coarsened in a subsequent adapt. | |
| int | getMark (const typename Codim< 0 >::Entity &e) const |
| returns adaptation mark for given entity | |
Static Public Member Functions | |
| static std::string | typeName () |
| template<int codim> | |
| static int | getTwist (const typename Traits::template Codim< codim >::Entity &entity) |
| template<int codim> | |
| static int | getTwist (const typename Traits::template Codim< 0 >::Entity &entity, int subEntity) |
| static int | getTwistInInside (const typename Traits::LeafIntersection &intersection) |
| static int | getTwistInOutside (const typename Traits::LeafIntersection &intersection) |
Static Public Attributes | |
| static const int | dimension = GridFamily::dimension |
| static const int | dimensionworld = GridFamily::dimensionworld |
Protected Member Functions | |
Parallel data distribution and communication | |
| GridImp & | asImp () |
| Barton-Nackman trick. | |
| const GridImp & | asImp () const |
| Barton-Nackman trick. | |
Friends | |
| template<int , int , class > | |
| class | AlbertaGridEntity |
| template<class > | |
| class | AlbertaLevelGridView |
| template<class > | |
| class | AlbertaLeafGridView |
| template<int , class , bool > | |
| class | AlbertaGridTreeIterator |
| template<class > | |
| class | AlbertaGridHierarchicIterator |
| class | GridFactory< This > |
| struct | DGFGridFactory< This > |
| class | AlbertaGridIntersectionBase< const This > |
| class | AlbertaGridLeafIntersection< const This > |
| class | AlbertaMarkerVector< dim, dimworld > |
| struct | AlbertaMarkerVector< dim, dimworld >::MarkSubEntities< true > |
| struct | AlbertaMarkerVector< dim, dimworld >::MarkSubEntities< false > |
| class | AlbertaGridIndexSet< dim, dimworld > |
| class | AlbertaGridHierarchicIndexSet< dim, dimworld > |
| template<class , class > | |
| class | Alberta::AdaptRestrictProlongHandler |
| class | AlbertaGridLeafIntersectionIterator< const This > |
Detailed Description
class Dune::AlbertaGrid< dim, dimworld >
[ provides Dune::Grid ]
Simplicial grid implementation from the ALBERTA finite element toolbox
AlbertaGrid provides access to the grid from the ALBERTA finite element toolbox through the Dune interface.
ALBERTA is a finite element toolbox written by Alfred Schmidt and Kunibert G. Siebert (see http://www.alberta-fem.de). It contains a simplicial mesh in 1, 2 and 3 space dimensions that can be dynamically adapted by a bisection algorithm.
Supported ALBERTA versions include 3.0 or higher. It can be downloaded from the ALBERTA website (https://gitlab.mathematik.uni-stuttgart.de/ians-nmh/alberta/alberta3).
After installing ALBERTA, just configure DUNE with the cmake option -DAlberta_ROOT=[path/to/alberta] and provide the path to ALBERTA.
Each program linking to ALBERTA only supports a fixed dimension of world. This is obtained from the ALBERTA_DIM preprocessor variable. This variable and all other necessary link flags and libraries are set by the cmake function add_dune_alberta_flags(WORLDDIM [N] [targets]...) with N the world dimension.
CMake sets the compile flag HAVE_ALBERTA that tells you whether ALBERTA was found, and ALBERTA_DIM compile flags which tells you the dimension of world for this program.
Member Typedef Documentation
◆ Communication
| typedef Traits::Communication Dune::AlbertaGrid< dim, dimworld >::Communication |
type of communication
◆ ctype
| typedef GridFamily::ctype Dune::AlbertaGrid< dim, dimworld >::ctype |
◆ GlobalIdSet
| typedef Traits::GlobalIdSet Dune::AlbertaGrid< dim, dimworld >::GlobalIdSet |
type of global id set
◆ GridFamily
| typedef AlbertaGridFamily< dim, dimworld > Dune::AlbertaGrid< dim, dimworld >::GridFamily |
the grid family of AlbertaGrid
◆ HierarchicIndexSet
| typedef Traits::HierarchicIndexSet Dune::AlbertaGrid< dim, dimworld >::HierarchicIndexSet |
type of hierarchic index set
◆ HierarchicIterator
|
inherited |
A type that is a model of Dune::HierarchicIterator A type of iterator that allows to examine, but not to modify, entities of codimension 0 that result from refinement of an entity of codimension 0.
◆ LeafGridView
|
inherited |
type of view for leaf grid
◆ LeafIndexSet
| typedef Traits::LeafIndexSet Dune::AlbertaGrid< dim, dimworld >::LeafIndexSet |
type of leaf index set
◆ LeafIntersection
|
inherited |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in the leaf view.
◆ LeafIntersectionIterator
|
inherited |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an leaf element (entity of codimension 0) with other leaf elements.
◆ LevelGridView
|
inherited |
type of view for level grid
◆ LevelIndexSet
| typedef Traits::LevelIndexSet Dune::AlbertaGrid< dim, dimworld >::LevelIndexSet |
type of level index sets
◆ LevelIntersection
|
inherited |
A type that is a model of Dune::Intersection, an intersections of two codimension 1 of two codimension 0 entities in a level view.
◆ LevelIntersectionIterator
|
inherited |
A type that is a model of Dune::IntersectionIterator which is an iterator that allows to examine, but not to modify, the intersections of codimension 1 of an element (entity of codimension 0) with other elements on the same level.
◆ LocalIdSet
| typedef Traits::LocalIdSet Dune::AlbertaGrid< dim, dimworld >::LocalIdSet |
type of local id set
◆ Traits
| typedef AlbertaGridFamily<dim,dimworld>::Traits Dune::AlbertaGrid< dim, dimworld >::Traits |
Constructor & Destructor Documentation
◆ AlbertaGrid() [1/5]
|
delete |
◆ AlbertaGrid() [2/5]
|
inline |
create an empty grid
◆ AlbertaGrid() [3/5]
|
inline |
create a grid from an ALBERTA macro data structure
- Parameters
-
[in] macroData macro data to create grid from [in] projection shared pointer to a global boundary projection (defaults to 0)
◆ AlbertaGrid() [4/5]
|
inline |
◆ AlbertaGrid() [5/5]
|
inline |
create a grid from an ALBERTA macro grid file
- Parameters
-
[in] macroGridFileName name of the macro grid file
◆ ~AlbertaGrid()
|
inline |
destructor
Member Function Documentation
◆ adapt() [1/2]
|
inline |
Refine all positive marked leaf entities, coarsen all negative marked entities if possible.
\return true if a least one entity was refined The complete adaptation process works as follows: - mark entities with the mark() method - call preAdapt() - if preAdapt() returned true: possibly save current solution - call adapt() - if adapt() returned true: possibly interpolate the (saved) solution - call postAdapt()
◆ adapt() [2/2]
|
inline |
callback adapt method with AdaptDataHandleInterface
◆ alberta2dune()
|
inline |
◆ alberta2generic()
|
inline |
◆ asImp() [1/2]
|
inlineprotectedinherited |
Barton-Nackman trick.
◆ asImp() [2/2]
|
inlineprotectedinherited |
Barton-Nackman trick.
◆ comm()
|
inline |
return reference to communication, if MPI found this is specialisation for MPI
◆ dofNumbering()
|
inline |
◆ dune2alberta()
|
inline |
◆ entity()
|
inline |
obtain Entity from EntitySeed.
◆ generic2alberta()
|
inline |
◆ getCoord()
|
inline |
◆ getMark() [1/2]
|
inlineinherited |
◆ getMark() [2/2]
|
inline |
◆ getMesh()
|
inline |
◆ getTwist() [1/2]
|
inlinestatic |
◆ getTwist() [2/2]
|
inlinestatic |
◆ getTwistInInside()
|
inlinestatic |
◆ getTwistInOutside()
|
inlinestatic |
◆ globalIdSet()
|
inline |
return global IdSet
◆ globalRefine() [1/2]
|
inline |
uses the interface, mark on entity and refineLocal
◆ globalRefine() [2/2]
|
inline |
◆ hierarchicIndexSet()
|
inline |
◆ ileafbegin()
|
inlineinherited |
obtain begin intersection iterator on the leaf level
◆ ileafend()
|
inlineinherited |
obtain end intersection iterator on the leaf level
◆ ilevelbegin()
|
inlineinherited |
obtain begin intersection iterator on the entity level
◆ ilevelend()
|
inlineinherited |
obtain end intersection iterator on the entity level
◆ lbegin() [1/4]
| Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lbegin | ( | int | level | ) | const |
Iterator to first entity of given codim on level.
◆ lbegin() [2/4]
| Traits::template Codim< codim >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lbegin | ( | int | level | ) | const |
Iterator to first entity of given codim on level.
◆ lbegin() [3/4]
|
inline |
◆ lbegin() [4/4]
|
inline |
◆ leafbegin() [1/4]
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafbegin | ( | ) | const |
return LeafIterator which points to first leaf entity
◆ leafbegin() [2/4]
| Traits::template Codim< codim >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafbegin | ( | ) | const |
return LeafIterator which points to first leaf entity
◆ leafbegin() [3/4]
|
inline |
◆ leafbegin() [4/4]
|
inline |
◆ leafend() [1/4]
| Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafend | ( | ) | const |
return LeafIterator which points behind last leaf entity
◆ leafend() [2/4]
| Traits::template Codim< codim >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafend | ( | ) | const |
return LeafIterator which points behind last leaf entity
◆ leafend() [3/4]
|
inline |
◆ leafend() [4/4]
|
inline |
◆ leafGridView()
|
inline |
View for the leaf grid for All_Partition.
◆ leafIndexSet()
|
inline |
return leaf index set
◆ lend() [1/4]
| Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lend | ( | int | level | ) | const |
one past the end on this level
◆ lend() [2/4]
| Traits::template Codim< codim >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lend | ( | int | level | ) | const |
one past the end on this level
◆ lend() [3/4]
|
inline |
◆ lend() [4/4]
|
inline |
◆ levelGridView()
|
inline |
View for a grid level for All_Partition.
◆ levelIndexSet()
|
inline |
return level index set for given level
◆ levelProvider()
|
inline |
◆ loadBalance() [1/2]
|
inlineinherited |
default implementation of load balance does nothing and returns false
◆ loadBalance() [2/2]
|
inlineinherited |
default implementation of load balance does nothing and returns false
◆ localIdSet()
|
inline |
return local IdSet
◆ mark() [1/3]
|
inlineinherited |
◆ mark() [2/3]
|
inline |
◆ mark() [3/3]
|
inlineinherited |
Marks an entity to be refined/coarsened in a subsequent adapt.
- Parameters
-
[in] refCount Number of subdivisions that should be applied. Negative value means coarsening. [in] e Entity to Entity that should be refined
- Returns
- true if Entity was marked, false otherwise.
- Note
- default implementation is: return false; for grids with no adaptation.
- for the grid programmer: this method is implemented as a template method, because the Entity type is not defined when the class is instantiated You won't need this trick in the implementation. In your implementation you should use it as This template method will vanish due to the inheritance rules.typename Traits::template Codim<0>::Entity & e ).bool mark(int refCount, const typename Traits::template Codim< 0 >::Entity &e)Marks an entity to be refined/coarsened in a subsequent adapt.Definition albertagrid.cc:385A Traits struct that collects all associated types of one implementation.Definition common/grid.hh:429
◆ maxLevel()
|
inline |
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest level.
◆ meshPointer()
|
inline |
◆ numBoundarySegments()
|
inline |
number of boundary segments within the macro grid
◆ operator=()
|
delete |
◆ postAdapt()
|
inline |
clean up some markers
◆ preAdapt()
|
inline |
returns true, if a least one element is marked for coarsening
◆ readGrid()
|
inline |
read Grid from file filename and store time of mesh in time
◆ size() [1/4]
|
inline |
number of leaf entities per geometry type in this process
◆ size() [2/4]
|
inline |
number of leaf entities per codim in this process
◆ size() [3/4]
|
inline |
number of entities per level and geometry type in this process
◆ size() [4/4]
|
inline |
Number of grid entities per level and codim because lbegin and lend are none const, and we need this methods counting the entities on each level, you know.
◆ typeName()
|
inlinestatic |
◆ writeGrid()
|
inline |
write Grid to file in Xdr
Friends And Related Symbol Documentation
◆ Alberta::AdaptRestrictProlongHandler
|
friend |
◆ AlbertaGridEntity
|
friend |
◆ AlbertaGridHierarchicIndexSet< dim, dimworld >
|
friend |
◆ AlbertaGridHierarchicIterator
|
friend |
◆ AlbertaGridIndexSet< dim, dimworld >
|
friend |
◆ AlbertaGridIntersectionBase< const This >
|
friend |
◆ AlbertaGridLeafIntersection< const This >
|
friend |
◆ AlbertaGridLeafIntersectionIterator< const This >
|
friend |
◆ AlbertaGridTreeIterator
|
friend |
◆ AlbertaLeafGridView
|
friend |
◆ AlbertaLevelGridView
|
friend |
◆ AlbertaMarkerVector< dim, dimworld >
|
friend |
◆ AlbertaMarkerVector< dim, dimworld >::MarkSubEntities< false >
|
friend |
◆ AlbertaMarkerVector< dim, dimworld >::MarkSubEntities< true >
|
friend |
◆ DGFGridFactory< This >
|
friend |
◆ GridFactory< This >
|
friend |
Member Data Documentation
◆ dimension
|
static |
◆ dimensionworld
|
static |
The documentation for this class was generated from the following files:
Legal Statements / Impressum | Hosted by TU Dresden & Uni Heidelberg | Generated by
1.9.8