dune-grid  2.2.0
Classes | Public Types | Public Member Functions | Static Public Attributes | Protected Types | List of all members
Dune::ALU3dGridFactory< ALUGrid > Class Template Reference

Factory class for 3d ALUGrids. More...

#include <dune/grid/alugrid/3d/alu3dgridfactory.hh>

Inheritance diagram for Dune::ALU3dGridFactory< ALUGrid >:
Dune::GridFactoryInterface< ALUGrid >

Classes

struct  Codim
struct  FaceLess

Public Types

typedef ALUGrid Grid
typedef Grid::ctype ctype
typedef Grid::MPICommunicatorType MPICommunicatorType
typedef DuneBoundaryProjection< 3 > DuneBoundaryProjectionType
 type of boundary projection class
typedef unsigned int VertexId
typedef ALUGridTransformation
< ctype, dimensionworld
Transformation
typedef Transformation::WorldVector WorldVector
 type of vector for world coordinates
typedef Transformation::WorldMatrix WorldMatrix
 type of matrix from world coordinates to world coordinates

Public Member Functions

 ALU3dGridFactory (const MPICommunicatorType &communicator=Grid::defaultCommunicator(), bool removeGeneratedFile=true)
 default constructor
 ALU3dGridFactory (const std::string &filename, const MPICommunicatorType &communicator=Grid::defaultCommunicator())
 constructor taking filename for temporary outfile
 ALU3dGridFactory (const bool verbose, const MPICommunicatorType &communicator)
 constructor taking verbose flag
virtual ~ALU3dGridFactory ()
 Destructor.
virtual void insertVertex (const VertexType &pos)
 insert a vertex into the coarse grid
VertexId insertVertex (const VertexType &pos, const size_t globalId)
virtual void insertElement (const GeometryType &geometry, const std::vector< VertexId > &vertices)
 insert an element into the coarse grid
virtual void insertBoundary (const GeometryType &geometry, const std::vector< VertexId > &faceVertices, const int id)
 insert a boundary element into the coarse grid
virtual void insertBoundary (const int element, const int face, const int id)
 mark a face as boundary (and assign a boundary id)
void insertProcessBorder (const int element, const int face)
virtual void insertBoundaryProjection (const GeometryType &type, const std::vector< VertexId > &vertices, const DuneBoundaryProjectionType *projection)
 insert a boundary projection into the macro grid
virtual void insertBoundarySegment (const std::vector< VertexId > &vertices)
 insert a boundary segment into the macro grid
virtual void insertBoundarySegment (const std::vector< VertexId > &vertices, const shared_ptr< BoundarySegment< 3, 3 > > &boundarySegment)
 insert a shaped boundary segment into the macro grid
virtual void insertBoundaryProjection (const DuneBoundaryProjectionType &bndProjection)
 insert a boundary projection object, (a copy is made)
void insertFaceTransformation (const WorldMatrix &matrix, const WorldVector &shift)
 add a face transformation (for periodic identification)
GridcreateGrid ()
 finalize the grid creation and hand over the grid
GridcreateGrid (const bool addMissingBoundaries, const std::string dgfName="")
GridcreateGrid (const bool addMissingBoundaries, bool temporary, const std::string dgfName="")
virtual unsigned int insertionIndex (const typename Codim< 0 >::Entity &entity) const
virtual unsigned int insertionIndex (const typename Codim< dimension >::Entity &entity) const
virtual unsigned int insertionIndex (const typename Grid::LeafIntersection &intersection) const
virtual bool wasInserted (const typename Grid::LeafIntersection &intersection) const
virtual void insertVertex (const FieldVector< ctype, dimworld > &pos)=0
 Insert a vertex into the coarse grid.
virtual void insertElement (const GeometryType &type, const std::vector< unsigned int > &vertices, const shared_ptr< VirtualFunction< FieldVector< ctype, dimension >, FieldVector< ctype, dimworld > > > &elementParametrization)
 Insert a parametrized element into the coarse grid.
virtual void insertBoundarySegment (const std::vector< unsigned int > &vertices, const shared_ptr< BoundarySegment< dimension, dimworld > > &boundarySegment)
 insert an arbitrarily shaped boundary segment
virtual unsigned int insertionIndex (const typename Codim< 0 >::Entity &entity) const
 obtain an element's insertion index
virtual unsigned int insertionIndex (const typename Codim< dimension >::Entity &entity) const
 obtain a vertex' insertion index
virtual unsigned int insertionIndex (const typename ALUGrid::LeafIntersection &intersection) const
 obtain a boundary's insertion index
virtual bool wasInserted (const typename ALUGrid::LeafIntersection &intersection) const
 determine whether an intersection was inserted

Static Public Attributes

static const ALU3dGridElementType elementType = Grid::elementType
static const unsigned int dimension = Grid::dimension
static const unsigned int dimensionworld = Grid::dimensionworld

Protected Types

enum  
 The grid world dimension. More...

Detailed Description

template<class ALUGrid>
class Dune::ALU3dGridFactory< ALUGrid >

Factory class for 3d ALUGrids.

Member Typedef Documentation

template<class ALUGrid>
typedef Grid::ctype Dune::ALU3dGridFactory< ALUGrid >::ctype
template<class ALUGrid>
typedef DuneBoundaryProjection< 3 > Dune::ALU3dGridFactory< ALUGrid >::DuneBoundaryProjectionType

type of boundary projection class

template<class ALUGrid>
typedef ALUGrid Dune::ALU3dGridFactory< ALUGrid >::Grid
template<class ALUGrid>
typedef Grid::MPICommunicatorType Dune::ALU3dGridFactory< ALUGrid >::MPICommunicatorType
template<class ALUGrid>
typedef ALUGridTransformation< ctype, dimensionworld > Dune::ALU3dGridFactory< ALUGrid >::Transformation
template<class ALUGrid>
typedef unsigned int Dune::ALU3dGridFactory< ALUGrid >::VertexId
template<class ALUGrid>
typedef Transformation::WorldMatrix Dune::ALU3dGridFactory< ALUGrid >::WorldMatrix

type of matrix from world coordinates to world coordinates

template<class ALUGrid>
typedef Transformation::WorldVector Dune::ALU3dGridFactory< ALUGrid >::WorldVector

type of vector for world coordinates

Member Enumeration Documentation

anonymous enum
protectedinherited

The grid world dimension.

Constructor & Destructor Documentation

template<class ALUGrid >
Dune::ALU3dGridFactory< ALUGrid >::ALU3dGridFactory ( const MPICommunicatorType communicator = Grid::defaultCommunicator(),
bool  removeGeneratedFile = true 
)
inlineexplicit

default constructor

template<class ALUGrid >
Dune::ALU3dGridFactory< ALUGrid >::ALU3dGridFactory ( const std::string &  filename,
const MPICommunicatorType communicator = Grid::defaultCommunicator() 
)
inlineexplicit

constructor taking filename for temporary outfile

template<class ALUGrid >
Dune::ALU3dGridFactory< ALUGrid >::ALU3dGridFactory ( const bool  verbose,
const MPICommunicatorType communicator 
)
inlineexplicit

constructor taking verbose flag

template<class ALUGrid >
alu_inline Dune::ALU3dGridFactory< ALUGrid >::~ALU3dGridFactory ( )
virtual

Destructor.

Member Function Documentation

template<class ALUGrid >
alu_inline ALUGrid * Dune::ALU3dGridFactory< ALUGrid >::createGrid ( )
virtual

finalize the grid creation and hand over the grid

The caller takes responsibility for deleing the grid.

Implements Dune::GridFactoryInterface< ALUGrid >.

template<class ALUGrid >
alu_inline ALUGrid * Dune::ALU3dGridFactory< ALUGrid >::createGrid ( const bool  addMissingBoundaries,
const std::string  dgfName = "" 
)
template<class ALUGrid >
alu_inline ALUGrid * Dune::ALU3dGridFactory< ALUGrid >::createGrid ( const bool  addMissingBoundaries,
bool  temporary,
const std::string  dgfName = "" 
)
template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertBoundary ( const GeometryType &  geometry,
const std::vector< VertexId > &  faceVertices,
const int  id 
)
virtual

insert a boundary element into the coarse grid

Note
The order of the vertices must coincide with the vertex order in the corresponding DUNE reference element.
Parameters
[in]geometryGeometryType of the boundary element
[in]faceVerticesvertices of the boundary element
[in]idboundary identifier of the boundary element, the default value is 0 (invalid boundary id)

Referenced by Dune::ALU3dGridFactory< ALUCubeGrid< 3, 3 > >::insertProcessBorder().

template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertBoundary ( const int  element,
const int  face,
const int  id 
)
virtual

mark a face as boundary (and assign a boundary id)

Parameters
[in]elementindex of the element, the face belongs to
[in]facelocal number of the face within the element
[in]idboundary id to assign to the face
template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertBoundaryProjection ( const GeometryType &  type,
const std::vector< VertexId > &  vertices,
const DuneBoundaryProjectionType projection 
)
virtual

insert a boundary projection into the macro grid

Parameters
[in]typegeometry type of boundary face
[in]verticesvertices of the boundary face
[in]projectionboundary projection
Note
The grid takes control of the projection object.
template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertBoundaryProjection ( const DuneBoundaryProjectionType bndProjection)
virtual

insert a boundary projection object, (a copy is made)

Parameters
[in]bndProjectioninstance of an ALUGridBoundaryProjection projecting vertices to a curved
virtual void Dune::GridFactoryInterface< ALUGrid >::insertBoundarySegment ( const std::vector< unsigned int > &  vertices,
const shared_ptr< BoundarySegment< dimension, dimworld > > &  boundarySegment 
)
inlinevirtualinherited

insert an arbitrarily shaped boundary segment

This method inserts a boundary segment into the coarse grid.

Parameters
[in]verticesthe indices of the vertices of the segment
[in]boundarySegmentuser defined implementation of the boundary segment's geometry
template<class ALUGrid >
void Dune::ALU3dGridFactory< ALUGrid >::insertBoundarySegment ( const std::vector< VertexId > &  vertices)
inlinevirtual

insert a boundary segment into the macro grid

Parameters
[in]verticesvertex indices of boundary face

Implements Dune::GridFactoryInterface< ALUGrid >.

template<class ALUGrid >
void Dune::ALU3dGridFactory< ALUGrid >::insertBoundarySegment ( const std::vector< VertexId > &  vertices,
const shared_ptr< BoundarySegment< 3, 3 > > &  boundarySegment 
)
inlinevirtual

insert a shaped boundary segment into the macro grid

Parameters
[in]verticesvertex indices of boundary face
[in]boundarySegmentgeometric realization of shaped boundary
virtual void Dune::GridFactoryInterface< ALUGrid >::insertElement ( const GeometryType &  type,
const std::vector< unsigned int > &  vertices,
const shared_ptr< VirtualFunction< FieldVector< ctype, dimension >, FieldVector< ctype, dimworld > > > &  elementParametrization 
)
inlinevirtualinherited

Insert a parametrized element into the coarse grid.

Parameters
typeThe GeometryType of the new element
verticesThe vertices of the new element, using the DUNE numbering
elementParametrizationA function prescribing the shape of this element

Make sure the inserted element is not inverted (this holds even for simplices). There are grids that can't handle inverted elements.

template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertElement ( const GeometryType &  geometry,
const std::vector< VertexId > &  vertices 
)
virtual

insert an element into the coarse grid

Note
The order of the vertices must coincide with the vertex order in the corresponding DUNE reference element.
Parameters
[in]geometryGeometryType of the new element
[in]verticesvertices of the new element

Implements Dune::GridFactoryInterface< ALUGrid >.

template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertFaceTransformation ( const WorldMatrix matrix,
const WorldVector shift 
)

add a face transformation (for periodic identification)

A face transformation is an affine mapping T from world coordinates to world coordinates. The grid factory then glues two faces f and g if T( f ) = g or T( g ) = f.

Parameters
[in]matrixmatrix describing the linear part of T
[in]shiftvector describing T( 0 )
virtual unsigned int Dune::GridFactoryInterface< ALUGrid >::insertionIndex ( const typename Codim< 0 >::Entity entity) const
inlinevirtualinherited

obtain an element's insertion index

Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.

Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.

Parameters
[in]entityentity whose insertion index is requested
Returns
insertion index of the entity
virtual unsigned int Dune::GridFactoryInterface< ALUGrid >::insertionIndex ( const typename Codim< dimension >::Entity entity) const
inlinevirtualinherited

obtain a vertex' insertion index

Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.

Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.

Parameters
[in]entityentity whose insertion index is requested
Returns
insertion index of the entity
virtual unsigned int Dune::GridFactoryInterface< ALUGrid >::insertionIndex ( const typename ALUGrid ::LeafIntersection &  intersection) const
inlinevirtualinherited

obtain a boundary's insertion index

Data can be associated to the created macro grid using the insertion index of each entity that has been inserted during the grid creation process.

Between grid construction (createGrid) and the first grid modification, this method allows to obtain this insertion index from the grid factory. This way, data can be stored using the index maps provided by the grid.

Parameters
[in]intersectionintersection whose insertion index is requested
Returns
insertion index of the intersection
Note
The insertion index can only be obtained for boundary intersections that were actually inserted (see also wasInserted).
template<class ALUGrid>
virtual unsigned int Dune::ALU3dGridFactory< ALUGrid >::insertionIndex ( const typename Codim< 0 >::Entity entity) const
inlinevirtual
template<class ALUGrid>
virtual unsigned int Dune::ALU3dGridFactory< ALUGrid >::insertionIndex ( const typename Codim< dimension >::Entity entity) const
inlinevirtual
template<class ALUGrid>
virtual unsigned int Dune::ALU3dGridFactory< ALUGrid >::insertionIndex ( const typename Grid::LeafIntersection intersection) const
inlinevirtual
template<class ALUGrid>
void Dune::ALU3dGridFactory< ALUGrid >::insertProcessBorder ( const int  element,
const int  face 
)
inline
virtual void Dune::GridFactoryInterface< ALUGrid >::insertVertex ( const FieldVector< ctype, dimworld > &  pos)
pure virtualinherited

Insert a vertex into the coarse grid.

template<class ALUGrid >
alu_inline void Dune::ALU3dGridFactory< ALUGrid >::insertVertex ( const VertexType &  pos)
virtual

insert a vertex into the coarse grid

Parameters
[in]posposition of the vertex
template<class ALUGrid >
alu_inline ALU3dGridFactory< ALUGrid >::VertexId Dune::ALU3dGridFactory< ALUGrid >::insertVertex ( const VertexType &  pos,
const size_t  globalId 
)
virtual bool Dune::GridFactoryInterface< ALUGrid >::wasInserted ( const typename ALUGrid ::LeafIntersection &  intersection) const
inlinevirtualinherited

determine whether an intersection was inserted

This method allows checking wheter an intersection was actually inserted into the grid factory.

Note
Not all boundary segments need to be inserted into the grid factory.
This method returns false for all interior intersections
Parameters
[in]intersectionintersection in question
Returns
true, if the intersection was inserted
template<class ALUGrid>
virtual bool Dune::ALU3dGridFactory< ALUGrid >::wasInserted ( const typename Grid::LeafIntersection intersection) const
inlinevirtual

Member Data Documentation

template<class ALUGrid>
const unsigned int Dune::ALU3dGridFactory< ALUGrid >::dimension = Grid::dimension
static
template<class ALUGrid>
const unsigned int Dune::ALU3dGridFactory< ALUGrid >::dimensionworld = Grid::dimensionworld
static
template<class ALUGrid>
const ALU3dGridElementType Dune::ALU3dGridFactory< ALUGrid >::elementType = Grid::elementType
static

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