dune-grid 2.9.0
|
[ provides Dune::Grid ] More...
#include <dune/grid/albertagrid/agrid.hh>
Public Types | |
typedef AlbertaGridFamily< dim, dimworld > | GridFamily |
the grid family of AlbertaGrid More... | |
typedef GridFamily::ctype | ctype |
typedef AlbertaGridFamily< dim, dimworld >::Traits | Traits |
typedef Traits::LeafIndexSet | LeafIndexSet |
type of leaf index set More... | |
typedef Traits::LevelIndexSet | LevelIndexSet |
type of level index sets More... | |
typedef Traits::HierarchicIndexSet | HierarchicIndexSet |
type of hierarchic index set More... | |
typedef Traits::GlobalIdSet | GlobalIdSet |
type of global id set More... | |
typedef Traits::LocalIdSet | LocalIdSet |
type of local id set More... | |
typedef Traits::Communication | Communication |
type of communication More... | |
typedef Communication | CollectiveCommunication |
Public Member Functions | |
AlbertaGrid (const This &)=delete | |
This & | operator= (const This &)=delete |
AlbertaGrid () | |
create an empty grid More... | |
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 More... | |
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 More... | |
~AlbertaGrid () | |
desctructor More... | |
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. More... | |
template<int cd, PartitionIteratorType pitype> | |
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator | lend (int level) const |
one past the end on this level More... | |
template<int codim> | |
Traits::template Codim< codim >::LevelIterator | lbegin (int level) const |
Iterator to first entity of given codim on level. More... | |
template<int codim> | |
Traits::template Codim< codim >::LevelIterator | lend (int level) const |
one past the end on this level More... | |
template<int codim, PartitionIteratorType pitype> | |
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafbegin () const |
return LeafIterator which points to first leaf entity More... | |
template<int codim, PartitionIteratorType pitype> | |
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator | leafend () const |
return LeafIterator which points behind last leaf entity More... | |
template<int codim> | |
Traits::template Codim< codim >::LeafIterator | leafbegin () const |
return LeafIterator which points to first leaf entity More... | |
template<int codim> | |
Traits::template Codim< codim >::LeafIterator | leafend () const |
return LeafIterator which points behind last leaf entity More... | |
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. More... | |
int | size (int level, GeometryType type) const |
number of entities per level and geometry type in this process More... | |
int | size (int codim) const |
number of leaf entities per codim in this process More... | |
int | size (GeometryType type) const |
number of leaf entities per geometry type in this process More... | |
std::size_t | numBoundarySegments () const |
number of boundary segments within the macro grid More... | |
Traits::LevelGridView | levelGridView (int level) const |
View for a grid level for All_Partition. More... | |
Traits::LeafGridView | leafGridView () const |
View for the leaf grid for All_Partition. More... | |
int | getMark (const typename Traits::template Codim< 0 >::Entity &e) const |
returns adaptation mark for given entity More... | |
bool | mark (int refCount, const typename Traits::template Codim< 0 >::Entity &e) |
Marks an entity to be refined/coarsened in a subsequent adapt. More... | |
void | globalRefine (int refCount) |
uses the interface, mark on entity and refineLocal More... | |
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. More... | |
template<class DataHandle > | |
bool | adapt (AdaptDataHandleInterface< This, DataHandle > &handle) |
callback adapt method with AdaptDataHandleInterface More... | |
bool | preAdapt () |
returns true, if a least one element is marked for coarsening More... | |
void | postAdapt () |
clean up some markers More... | |
const Communication & | comm () const |
return reference to communication, if MPI found this is specialisation for MPI More... | |
template<class EntitySeed > | |
Traits::template Codim< EntitySeed::codimension >::Entity | entity (const EntitySeed &seed) const |
obtain Entity from EntitySeed. More... | |
bool | writeGrid (const std::string &filename, ctype time) const |
write Grid to file in Xdr More... | |
bool | readGrid (const std::string &filename, ctype &time) |
read Grid from file filename and store time of mesh in time More... | |
const HierarchicIndexSet & | hierarchicIndexSet () const |
const Traits::LevelIndexSet & | levelIndexSet (int level) const |
return level index set for given level More... | |
const Traits::LeafIndexSet & | leafIndexSet () const |
return leaf index set More... | |
const GlobalIdSet & | globalIdSet () const |
return global IdSet More... | |
const LocalIdSet & | localIdSet () const |
return local IdSet More... | |
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 |
bool | mark (int refCount, const typename Traits ::template Codim< 0 >::Entity &e) |
Marks an entity to be refined/coarsened in a subsequent adapt. More... | |
bool | loadBalance () |
default implementation of load balance does nothing and returns false More... | |
bool | loadBalance (DataHandle &data) |
default implementation of load balance does nothing and returns false More... | |
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. More... | |
int | getMark (const typename Codim< 0 >::Entity &e) const |
returns adaptation mark for given entity More... | |
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. More... | |
const GridImp & | asImp () const |
Barton-Nackman trick. More... | |
Exported types | |
typedef GridFamily::Traits::LeafGridView | LeafGridView |
type of view for leaf grid More... | |
typedef GridFamily::Traits::LevelGridView | LevelGridView |
type of view for level grid More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
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. More... | |
using | Communication_t = typename T::Communication |
using | DeprecatedCollectiveCommunication_t = typename T::CollectiveCommunication |
[ provides Dune::Grid ]
simplicial grid imlementation 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 config.h variables HAVE_ALBERTA
that tells you whether ALBERTA was found, and ALBERTA_DIM
compile flags which tells you the dimension of world for this program.
typedef Communication Dune::AlbertaGrid< dim, dimworld >::CollectiveCommunication |
typedef Traits::Communication Dune::AlbertaGrid< dim, dimworld >::Communication |
type of communication
|
protectedinherited |
typedef GridFamily::ctype Dune::AlbertaGrid< dim, dimworld >::ctype |
|
protectedinherited |
typedef Traits::GlobalIdSet Dune::AlbertaGrid< dim, dimworld >::GlobalIdSet |
type of global id set
typedef AlbertaGridFamily< dim, dimworld > Dune::AlbertaGrid< dim, dimworld >::GridFamily |
the grid family of AlbertaGrid
typedef Traits::HierarchicIndexSet Dune::AlbertaGrid< dim, dimworld >::HierarchicIndexSet |
type of hierarchic index set
|
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.
|
inherited |
type of view for leaf grid
typedef Traits::LeafIndexSet Dune::AlbertaGrid< dim, dimworld >::LeafIndexSet |
type of leaf index set
|
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.
|
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.
|
inherited |
type of view for level grid
typedef Traits::LevelIndexSet Dune::AlbertaGrid< dim, dimworld >::LevelIndexSet |
type of level index sets
|
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.
|
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.
typedef Traits::LocalIdSet Dune::AlbertaGrid< dim, dimworld >::LocalIdSet |
type of local id set
typedef AlbertaGridFamily<dim,dimworld>::Traits Dune::AlbertaGrid< dim, dimworld >::Traits |
|
delete |
|
inline |
create an empty grid
|
inline |
create a grid from an ALBERTA macro data structure
[in] | macroData | macro data to create grid from |
[in] | projection | shared pointer to a global boundary projection (defaults to 0) |
|
inline |
|
inline |
create a grid from an ALBERTA macro grid file
[in] | macroGridFileName | name of the macro grid file |
|
inline |
desctructor
|
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()
|
inline |
callback adapt method with AdaptDataHandleInterface
|
inline |
|
inline |
|
inlineprotectedinherited |
Barton-Nackman trick.
|
inlineprotectedinherited |
Barton-Nackman trick.
|
inline |
return reference to communication, if MPI found this is specialisation for MPI
|
inline |
|
inline |
|
inline |
obtain Entity from EntitySeed.
|
inline |
|
inline |
|
inlineinherited |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
inline |
return global IdSet
|
inline |
uses the interface, mark on entity and refineLocal
|
inline |
|
inline |
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.
Traits::template Codim< codim >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lbegin | ( | int | level | ) | const |
Iterator to first entity of given codim on level.
|
inline |
|
inline |
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafbegin | ( | ) | const |
return LeafIterator which points to first leaf entity
Traits::template Codim< codim >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafbegin | ( | ) | const |
return LeafIterator which points to first leaf entity
|
inline |
|
inline |
Traits::template Codim< codim >::template Partition< pitype >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafend | ( | ) | const |
return LeafIterator which points behind last leaf entity
Traits::template Codim< codim >::LeafIterator Dune::AlbertaGrid< dim, dimworld >::leafend | ( | ) | const |
return LeafIterator which points behind last leaf entity
|
inline |
|
inline |
|
inline |
View for the leaf grid for All_Partition.
|
inline |
return leaf index set
Traits::template Codim< cd >::template Partition< pitype >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lend | ( | int | level | ) | const |
one past the end on this level
Traits::template Codim< codim >::LevelIterator Dune::AlbertaGrid< dim, dimworld >::lend | ( | int | level | ) | const |
one past the end on this level
|
inline |
|
inline |
|
inline |
View for a grid level for All_Partition.
|
inline |
return level index set for given level
|
inline |
|
inlineinherited |
default implementation of load balance does nothing and returns false
|
inlineinherited |
default implementation of load balance does nothing and returns false
|
inline |
return local IdSet
|
inlineinherited |
|
inlineinherited |
Marks an entity to be refined/coarsened in a subsequent adapt.
[in] | refCount | Number of subdivisions that should be applied. Negative value means coarsening. |
[in] | e | Entity to Entity that should be refined |
|
inline |
|
inline |
Return maximum level defined in this grid. Levels are numbered 0 ... maxLevel with 0 the coarsest level.
|
inline |
|
inline |
number of boundary segments within the macro grid
|
delete |
|
inline |
clean up some markers
|
inline |
returns true, if a least one element is marked for coarsening
|
inline |
read Grid from file filename and store time of mesh in time
|
inline |
number of leaf entities per geometry type in this process
|
inline |
number of leaf entities per codim in this process
|
inline |
number of entities per level and geometry type in this process
|
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.
|
inlinestatic |
|
inline |
write Grid to file in Xdr
|
static |
|
static |