dune-geometry  2.4
Classes
Dune::RefinementImp::Simplex Namespace Reference

This namespace contains the Refinement implementation for simplices (triangles, tetrahedrons...) More...

Classes

class  RefinementImp
 
class  RefinementIteratorSpecial
 
class  RefinementIteratorSpecial< dimension, CoordType, 0 >
 
class  RefinementIteratorSpecial< dimension, CoordType, dimension >
 

Functions

Utilities
int factorial (int n)
 Calculate n! More...
 
int binomial (int upper, int lower)
 calculate $\left({upper}\atop{lower}\right)$ More...
 
template<int dimension>
int pointIndex (const FieldVector< int, dimension > &point)
 calculate the index of a given gridpoint within a Kuhn0 simplex More...
 
template<int n>
FieldVector< int, n > getPermutation (int m)
 Calculate permutation from it's index. More...
 
template<int dimension, class CoordType >
FieldVector< CoordType, dimension > referenceToKuhn (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)
 Map from the reference simplex to some Kuhn simplex. More...
 
template<int dimension, class CoordType >
FieldVector< CoordType, dimension > kuhnToReference (FieldVector< CoordType, dimension > point, const FieldVector< int, dimension > &kuhn)
 Map from some Kuhn simplex to the reference simplex. More...
 

Detailed Description

This namespace contains the Refinement implementation for simplices (triangles, tetrahedrons...)

See Refinement implementation for simplices.

Function Documentation

int Dune::RefinementImp::Simplex::binomial ( int  upper,
int  lower 
)
inline

calculate $\left({upper}\atop{lower}\right)$

Runtime is of order O(min {lower, upper-lower})

References factorial().

Referenced by Dune::RefinementImp::Simplex::RefinementImp< dimension_, CoordType >::nVertices(), and pointIndex().

int Dune::RefinementImp::Simplex::factorial ( int  n)
inline
template<int n>
FieldVector<int, n> Dune::RefinementImp::Simplex::getPermutation ( int  m)

Calculate permutation from it's index.

Runtime is of order O(n).

template<int dimension, class CoordType >
FieldVector<CoordType, dimension> Dune::RefinementImp::Simplex::kuhnToReference ( FieldVector< CoordType, dimension >  point,
const FieldVector< int, dimension > &  kuhn 
)

Map from some Kuhn simplex to the reference simplex.

Template Parameters
dimensionDimension of the simplices
CoordTypeThe C++ type of the coordinates

Runtime is of order O(dimension)

Parameters
pointPoint to map
kuhnPermutation of the Kuhn simplex to map from

Referenced by Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::coords().

template<int dimension>
int Dune::RefinementImp::Simplex::pointIndex ( const FieldVector< int, dimension > &  point)

calculate the index of a given gridpoint within a Kuhn0 simplex

Runtime is of order O(dimension^2) (or better for dimension > the coordinates of the point)

References binomial().

Referenced by Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, dimension >::index(), and Dune::RefinementImp::Simplex::RefinementIteratorSpecial< dimension, CoordType, 0 >::vertexIndices().

template<int dimension, class CoordType >
FieldVector<CoordType, dimension> Dune::RefinementImp::Simplex::referenceToKuhn ( FieldVector< CoordType, dimension >  point,
const FieldVector< int, dimension > &  kuhn 
)