|
| 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 More...
|
|
| AlbertaGrid (const std::string ¯oGridFileName) |
| create a grid from an ALBERTA macro grid file More...
|
|
| ~AlbertaGrid () |
| desctructor
|
|
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 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
|
|
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
|
|
bool | preAdapt () |
| returns true, if a least one element is marked for coarsening
|
|
void | postAdapt () |
| clean up some markers
|
|
const CollectiveCommunication & | comm () const |
| return reference to collective 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 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
|
|
bool | writeGridXdr (const std::string &filename, ctype time) const |
|
bool | readGridXdr (const std::string &filename, ctype &time) |
| reads ALBERTA mesh file More...
|
|
const AlbertaGridLeafIntersection< const This > & | getRealIntersection (const typename Traits::LeafIntersection &intersection) const |
|
int | getMark (const typename Traits::template Codim< 0 >::Entity &e) const |
| returns adaptation mark for given entity, i.e. here the default implementation returns 0. 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...
|
|
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
|
|
bool | loadBalance (DataHandle &data) |
| default implementation of load balance does nothing and returns false
|
|
|
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...
|
|
template<int dim, int dimworld = Alberta::dimWorld>
class Dune::AlbertaGrid< dim, dimworld >
[ 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 2.0 or higher. It can be downloaded from the ALBERTA website (www.alberta-fem.de). After installing ALBERTA, just configure DUNE with the –with-alberta option 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, which defaults to WORLDDIM
.
Further installation instructions can be found here: http://www.dune-project.org/external_libraries/install_alberta.html
If you use automake and want to compile a program maude, the following Makefile.am
snippet might help:
bin_PROGRAMS = maude
ALBERTA_DIM = 2
maude_SOURCES = maude.cc
maude_CPPFLAGS = $(AM_CPPFLAGS) $(ALBERTA_CPPFLAGS)
maude_LDFLAGS = $(AM_LDFLAGS) $(ALBERTA_LDFLAGS) $(DUNE_LDFLAGS)
maude_LDADD = $(ALBERTA_LIBS) $(DUNE_LIBS)
This will compile and link your program with the world dimension specified by WORLDDIM
. If you want to use different world dimensions per program, you can use the following snippet in your Makefile.am
:
bin_PROGRAMS = maude2d maude3d
maude2d_SOURCES = maude.cc
maude2d_CPPFLAGS = $(AM_CPPFLAGS) $(ALBERTA2D_CPPFLAGS)
maude2d_LDFLAGS = $(AM_LDFLAGS) $(ALBERTA2D_LDFLAGS) $(DUNE_LDFLAGS)
maude2d_LDADD = $(ALBERTA2D_LIBS) $(DUNE_LIBS)
maude3d_SOURCES = maude.cc
maude3d_CPPFLAGS = $(AM_CPPFLAGS) $(ALBERTA3D_CPPFLAGS)
maude3d_LDFLAGS = $(AM_LDFLAGS) $(ALBERTA3D_LDFLAGS) $(DUNE_LDFLAGS)
maude3d_LDADD = $(ALBERTA3D_LIBS) $(DUNE_LIBS)
In either case the preprocessor variables HAVE_ALBERTA
, which tells you whether ALBERTA was found by configure, and ALBERTA_DIM
which tells you the dimension of world for this program.
For further details look into the alberta.m4
autoconf snippet.