dune-grid-glue  2.4.0
Namespaces | Classes | Typedefs | Enumerations | Functions
Dune::GridGlue Namespace Reference

Namespaces

 Implementation
 
 ProjectionImplementation
 
 ProjectionWriterImplementation
 

Classes

class  Codim0Extractor
 
class  Codim1Extractor
 
class  CommDataHandle
 describes the features of a data handle for communication in parallel runs using the GridGlue::communicate methods. More...
 
struct  CommInfo
 collects all GridGlue data requried for communication More...
 
class  CommunicationOperator
 forward gather scatter to user defined CommInfo class More...
 
class  ComputationMethod
 
class  ConformingMerge
 Implementation of the Merger concept for conforming interfaces. More...
 
class  ContactMerge
 Merge two codimension-1 surfaces that may be a positive distance apart. More...
 
class  Extractor
 Provides codimension-independent methods for grid extraction. More...
 
class  ExtractorPredicate
 Base class for subentity-selecting predicates. More...
 
struct  GlobalId
 
class  GridGlue
 sequential adapter to couple two grids at specified close together boundaries More...
 
class  GridGlueAmiraWriter
 Write remote intersections to a AmiraMesh file for debugging purposes. More...
 
struct  GridGlueView
 
struct  GridGlueView< P0, P1, 0 >
 
struct  GridGlueView< P0, P1, 1 >
 
class  GridGlueVtkWriter
 Write remote intersections to a vtk file for debugging purposes. More...
 
class  Intersection
 The intersection of two entities of the two patches of a GridGlue. More...
 
class  IntersectionComputation
 Intersection computation method for two elements of arbitrary dimension. More...
 
class  IntersectionData
 storage class for Dune::GridGlue::Intersection related data More...
 
struct  IntersectionDataView
 
struct  IntersectionDataView< P0, P1, 0 >
 
struct  IntersectionDataView< P0, P1, 1 >
 
class  IntersectionIndexSet
 
class  IntersectionIterator
 
struct  IntersectionTraits
 
struct  IntersectionTraits< P0, P1, 0, 1 >
 
struct  IntersectionTraits< P0, P1, 1, 0 >
 
class  Merger
 Abstract base for all classes that take extracted grids and build sets of intersections. More...
 
class  OverlappingMerge
 Computing overlapping grid intersections for grids of different dimensions. More...
 
class  Projection
 Projection of a line (triangle) on another line (triangle). More...
 
class  PSurfaceMerge
 
class  PSurfaceMerge< dim, dimworld, T >
 Standard implementation of the SurfaceMerge concept using the psurface library. More...
 
class  PSurfaceMerge< dimworld, dimworld, T >
 
struct  Reverse
 
class  SimplexGeometry
 This class is derived from BasicGeometry using tuned geometry traits. More...
 
struct  SimplexGeometryTraits
 Geometry traits for simplices passed to GenericGeometry::BasicGeometry. More...
 
class  SimplexMethod
 
class  SimplexMethod< dimWorld, 0, 0, T >
 
class  SimplexMethod< dimWorld, 0, 1, T >
 
class  SimplexMethod< dimWorld, 0, 2, T >
 
class  SimplexMethod< dimWorld, 0, 3, T >
 
class  SimplexMethod< dimWorld, 1, 1, T >
 
class  SimplexMethod< dimWorld, 1, 2, T >
 
class  SimplexMethod< dimWorld, 1, 3, T >
 
class  SimplexMethod< dimWorld, 2, 2, T >
 
class  SimplexMethod< dimWorld, 2, 3, T >
 
class  SimplexMethod< dimWorld, 3, 3, T >
 
class  StandardMerge
 Common base class for many merger implementations: produce pairs of entities that may intersect. More...
 
class  StreamingMessageBuffer
 
class  VtkSurfaceWriter
 

Typedefs

typedef std::pair< int, int > RankPair
 
typedef CommunicationOperator< Dune::ForwardCommunication > ForwardOperator
 
typedef CommunicationOperator< Dune::BackwardCommunication > BackwardOperator
 

Enumerations

enum  GridOrdering { Domain = 0, Target = 1 }
 

Functions

template<typename T >
void printVector (const std::vector< T > &v, std::string name)
 
std::ostream & operator<< (std::ostream &os, const GlobalId &id)
 
template<... >
IteratorRange<... > intersections (const GridGlue<... > &glue, const Reverse<... > &reverse=!reversed)
 Iterate over all intersections of a GridGlue. More...
 
template<class T , int dim>
static Dune::FieldVector< T, dim > crossProduct (const Dune::FieldVector< T, dim > &a, const Dune::FieldVector< T, dim > &b)
 compute cross product More...
 
template<typename Coordinate , typename Corners , typename Normals >
void write (const Projection< Coordinate > &projection, const Corners &corners, const Normals &normals, std::ostream &out)
 write projection in VTK format More...
 
template<typename Coordinate , typename Corners , typename Normals >
void write (const Projection< Coordinate > &projection, const Corners &corners, const Normals &normals, const std::string &filename)
 write projection in VTK format More...
 
template<class V >
int insertPoint (const V p, std::vector< V > &P)
 
template<int dimworld, typename T >
void simplexSubdivision (std::integral_constant< int, 0 >, const std::vector< Dune::FieldVector< T, dimworld > > elementCorners, std::vector< std::vector< unsigned int > > &subElements, std::vector< std::vector< int > > &faceIds)
 
template<int dimworld, typename T >
void simplexSubdivision (std::integral_constant< int, 1 >, const std::vector< Dune::FieldVector< T, dimworld > > elementCorners, std::vector< std::vector< unsigned int > > &subElements, std::vector< std::vector< int > > &faceIds)
 
template<int dimworld, typename T >
void simplexSubdivision (std::integral_constant< int, 2 >, const std::vector< Dune::FieldVector< T, dimworld > > elementCorners, std::vector< std::vector< unsigned int > > &subElements, std::vector< std::vector< int > > &faceIds)
 
template<int dimworld, typename T >
void simplexSubdivision (std::integral_constant< int, 3 >, const std::vector< Dune::FieldVector< T, dimworld > > elementCorners, std::vector< std::vector< unsigned int > > &subElements, std::vector< std::vector< int > > &faceIds)
 
 STANDARD_MERGE_INSTANTIATE (double, 1, 1, 1)
 
 STANDARD_MERGE_INSTANTIATE (double, 2, 2, 2)
 
 STANDARD_MERGE_INSTANTIATE (double, 3, 3, 3)
 

Typedef Documentation

typedef CommunicationOperator<Dune::BackwardCommunication> Dune::GridGlue::BackwardOperator
typedef CommunicationOperator<Dune::ForwardCommunication> Dune::GridGlue::ForwardOperator
typedef std::pair<int, int> Dune::GridGlue::RankPair

Enumeration Type Documentation

Document the relation between the old grid names and the new numbering

Enumerator
Domain 
Target 

Function Documentation

template<class T , int dim>
static Dune::FieldVector<T,dim> Dune::GridGlue::crossProduct ( const Dune::FieldVector< T, dim > &  a,
const Dune::FieldVector< T, dim > &  b 
)
static
template<class V >
int Dune::GridGlue::insertPoint ( const V  p,
std::vector< V > &  P 
)
inline
template<... >
IteratorRange<... > intersections ( const GridGlue<... > &  glue,
const Reverse<... > &  reverse = !reversed 
)

Iterate over all intersections of a GridGlue.

This function returns an object representing the range of intersections with respect to the GridGlue glue. Its main purpose is to enable iteration over these intersections by means of a range-based for loop:

// Iterate over all intersections of a GridGlue in various ways
using Dune::GridGlue::reversed;
GridGlue<...> glue;
for (const auto& in : intersections(glue)) { ... }
for (const auto& in : intersections(glue, reversed)) { ... }
for (const auto& in : intersections(glue, !reversed)) { ... }
for (const auto& in : intersections(glue, Reversed<true>())) { ... }

The in- and outside of the intersection can be reversed by passing reversed as the second argument. The fourth form can be used in case a template parameter for reversal is required.

Since
dune-common 2.4
Parameters
glueGridGlue to obtain the intersections from
reverseTag to indicate reversal of in- and outside of intersections
Returns
an unspecified object that is guaranteed to fulfill the interface of IteratorRange and that can be iterated over using a range-based for loop.
See also
Dune::GridGlue::Intersection

Referenced by Dune::GridGlue::StandardMerge< T, grid1Dim, grid2Dim, dimworld >::computeIntersection(), Dune::GridGlue::ConformingMerge< dim, dimworld, T >::ConformingMerge(), Dune::GridGlue::StandardMerge< T, dim1, dim2, dimworld >::enableBruteForce(), and Dune::GridGlue::StandardMerge< T, grid1Dim, grid2Dim, dimworld >::nSimplices().

std::ostream& Dune::GridGlue::operator<< ( std::ostream &  os,
const GlobalId id 
)
inline
template<typename T >
void Dune::GridGlue::printVector ( const std::vector< T > &  v,
std::string  name 
)
template<int dimworld, typename T >
void Dune::GridGlue::simplexSubdivision ( std::integral_constant< int, 0 >  ,
const std::vector< Dune::FieldVector< T, dimworld > >  elementCorners,
std::vector< std::vector< unsigned int > > &  subElements,
std::vector< std::vector< int > > &  faceIds 
)
inline
template<int dimworld, typename T >
void Dune::GridGlue::simplexSubdivision ( std::integral_constant< int, 1 >  ,
const std::vector< Dune::FieldVector< T, dimworld > >  elementCorners,
std::vector< std::vector< unsigned int > > &  subElements,
std::vector< std::vector< int > > &  faceIds 
)
inline
template<int dimworld, typename T >
void Dune::GridGlue::simplexSubdivision ( std::integral_constant< int, 2 >  ,
const std::vector< Dune::FieldVector< T, dimworld > >  elementCorners,
std::vector< std::vector< unsigned int > > &  subElements,
std::vector< std::vector< int > > &  faceIds 
)
inline
template<int dimworld, typename T >
void Dune::GridGlue::simplexSubdivision ( std::integral_constant< int, 3 >  ,
const std::vector< Dune::FieldVector< T, dimworld > >  elementCorners,
std::vector< std::vector< unsigned int > > &  subElements,
std::vector< std::vector< int > > &  faceIds 
)
inline
Dune::GridGlue::STANDARD_MERGE_INSTANTIATE ( double  ,
,
,
 
)
Dune::GridGlue::STANDARD_MERGE_INSTANTIATE ( double  ,
,
,
 
)
Dune::GridGlue::STANDARD_MERGE_INSTANTIATE ( double  ,
,
,
 
)
template<typename Coordinate , typename Corners , typename Normals >
void Dune::GridGlue::write ( const Projection< Coordinate > &  projection,
const Corners &  corners,
const Normals &  normals,
std::ostream &  out 
)

write projection in VTK format

This file writes the projection information in VTK format to the given output stream. It is intended to be used for debugging so the details of the output might change at any time.

Note
This currently only works in 3D!
Parameters
projectionprojection result
cornerscorners of the projected triangles
normalsnormals of the projected triangles
outoutput stream

References Dune::GridGlue::Projection< Coordinate >::numberOfEdgeIntersections(), Dune::GridGlue::ProjectionWriterImplementation::write_edge_intersection_normals(), and Dune::GridGlue::ProjectionWriterImplementation::write_edge_intersection_points().

Referenced by write().

template<typename Coordinate , typename Corners , typename Normals >
void Dune::GridGlue::write ( const Projection< Coordinate > &  projection,
const Corners &  corners,
const Normals &  normals,
const std::string &  filename 
)

write projection in VTK format

This function works the same as write(const Projection<Coordinate>&, const Corners&, const Normals&, std::ostream&) but creates a new file with the given name.

References write().