dune-grid  2.2.1
Classes | Public Types | Public Member Functions | Static Public Attributes | Friends | List of all members
Dune::Alberta::MacroData< dim > Class Template Reference

#include <dune/grid/albertagrid/macrodata.hh>

Classes

struct  Library
 

Public Types

typedef int ElementId [numVertices]
 

Public Member Functions

 MacroData ()
 
 operator Data * () const
 
int vertexCount () const
 
int elementCount () const
 
ElementIdelement (int i) const
 
GlobalVectorvertex (int i) const
 
int & neighbor (int element, int i) const
 
BoundaryIdboundaryId (int element, int i) const
 
void create ()
 create a new macro data structure More...
 
void finalize ()
 compress macro data structure More...
 
void markLongestEdge ()
 mark the longest edge of all elements as refinement edges More...
 
void setOrientation (const Real orientation)
 set the orientation of all elements More...
 
bool checkNeighbors () const
 check the neighbor information More...
 
void release ()
 release the macro data structure More...
 
int insertElement (const ElementId &id)
 insert element More...
 
int insertVertex (const GlobalVector &coords)
 insert vertex More...
 
int insertVertex (const FieldVector< Real, dimWorld > &coords)
 insert vertex More...
 
void insertWallTrafo (const GlobalMatrix &m, const GlobalVector &t)
 
void insertWallTrafo (const FieldMatrix< Real, dimWorld, dimWorld > &matrix, const FieldVector< Real, dimWorld > &shift)
 
void checkCycles ()
 
void read (const std::string &filename, bool binary=false)
 
bool write (const std::string &filename, bool binary=false) const
 

Static Public Attributes

static const int supportPeriodicity = (DUNE_ALBERTA_VERSION >= 0x300)
 

Friends

template<int >
struct InstantiateMacroDataLibrary
 

Member Typedef Documentation

template<int dim>
typedef int Dune::Alberta::MacroData< dim >::ElementId[numVertices]

Constructor & Destructor Documentation

template<int dim>
Dune::Alberta::MacroData< dim >::MacroData ( )
inline

Member Function Documentation

template<int dim>
BoundaryId & Dune::Alberta::MacroData< dim >::boundaryId ( int  element,
int  i 
) const
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::checkCycles ( )
inline

References ALBERTA.

template<int dim>
bool Dune::Alberta::MacroData< dim >::checkNeighbors ( ) const
inline

check the neighbor information

This method allows the verification of neighbor information in a finalized (and possibly postprecessed) macro triangulation.

Note
On unfinalized macro triangulations there is no neighbor information. Hence this check will succeed in this case.
Returns
true, if all generated neighbor information is correct.
template<int dim>
void Dune::Alberta::MacroData< dim >::create ( )

create a new macro data structure

A new macro data structure is created and put into insert mode.

template<int dim>
MacroData< dim >::ElementId & Dune::Alberta::MacroData< dim >::element ( int  i) const
inline
template<int dim>
int Dune::Alberta::MacroData< dim >::elementCount ( ) const
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::finalize ( )
inline

compress macro data structure

Compress the macro data structure to its minimum size and leave insert mode.

Note
This method may always be called. It does nothing outside of insert mode.

References ALBERTA, Dune::Alberta::DirichletBoundary, and Dune::Alberta::InteriorBoundary.

template<int dim>
int Dune::Alberta::MacroData< dim >::insertElement ( const ElementId id)
inline

insert element

Insert an element into the macro data structure. This may only be done in insert mode.

References Dune::Alberta::InteriorBoundary.

template<int dim>
int Dune::Alberta::MacroData< dim >::insertVertex ( const GlobalVector coords)
inline

insert vertex

Insert a vertex into the macro data structure. This may only be done in insert mode.

template<int dim>
int Dune::Alberta::MacroData< dim >::insertVertex ( const FieldVector< Real, dimWorld > &  coords)
inline

insert vertex

Insert a vertex into the macro data structure. This may only be done in insert mode.

template<int dim>
void Dune::Alberta::MacroData< dim >::insertWallTrafo ( const GlobalMatrix m,
const GlobalVector t 
)
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::insertWallTrafo ( const FieldMatrix< Real, dimWorld, dimWorld > &  matrix,
const FieldVector< Real, dimWorld > &  shift 
)
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::markLongestEdge ( )
inline

mark the longest edge of all elements as refinement edges

This is a postprocessing step and should be done after finalizing the triangulation.

Note
Though it is possible to call markLongestEdge in insert mode, you must make sure that all required vertices have been set.
template<int dim>
int & Dune::Alberta::MacroData< dim >::neighbor ( int  element,
int  i 
) const
inline
template<int dim>
Dune::Alberta::MacroData< dim >::operator Data * ( ) const
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::read ( const std::string &  filename,
bool  binary = false 
)
inline
template<int dim>
void Dune::Alberta::MacroData< dim >::release ( )
inline

release the macro data structure

Referenced by Dune::Alberta::MeshPointer< dim >::create(), and Dune::AlbertaReader< Grid >::readGrid().

template<int dim>
void Dune::Alberta::MacroData< dim >::setOrientation ( const Real  orientation)
inline

set the orientation of all elements

This is a postprocessing step and should be done after finalizing the triangulation.

Note
Though it is possible to call setOrientation in insert mode, you must make sure that all required vertices have been set.
template<int dim>
GlobalVector & Dune::Alberta::MacroData< dim >::vertex ( int  i) const
inline
template<int dim>
int Dune::Alberta::MacroData< dim >::vertexCount ( ) const
inline
template<int dim>
bool Dune::Alberta::MacroData< dim >::write ( const std::string &  filename,
bool  binary = false 
) const
inline

Friends And Related Function Documentation

template<int dim>
template<int >
friend struct InstantiateMacroDataLibrary
friend

Member Data Documentation

template<int dim>
const int Dune::Alberta::MacroData< dim >::supportPeriodicity = (DUNE_ALBERTA_VERSION >= 0x300)
static

The documentation for this class was generated from the following file: