dune-geometry  2.3beta2
Classes
Dune::RefinementImp::Simplex Namespace Reference

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

Classes

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

Functions

Utilities
int factorial (int n)
 Calculate n!
int binomial (int upper, int lower)
 calculate $\left({upper}\atop{lower}\right)$
template<int dimension>
int pointIndex (const FieldVector< int, dimension > &point)
 calculate the index of a given gridpoint within a Kuhn0 simplex
template<int n>
FieldVector< int, n > getPermutation (int m)
 Calculate permutation from it's index.
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.
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.

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 
)