dune-grid  2.2.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Friends
Dune::Alberta::MacroData< dim > Class Template Reference

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

List of all members.

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
void finalize ()
 compress macro data structure
void markLongestEdge ()
 mark the longest edge of all elements as refinement edges
void setOrientation (const Real orientation)
 set the orientation of all elements
bool checkNeighbors () const
 check the neighbor information
void release ()
 release the macro data structure
int insertElement (const ElementId &id)
 insert element
int insertVertex (const GlobalVector &coords)
 insert vertex
int insertVertex (const FieldVector< Real, dimWorld > &coords)
 insert vertex
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

struct InstantiateMacroDataLibrary

template<int dim>
class Dune::Alberta::MacroData< dim >


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>
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: