#include <diameter.hh>
Public Types | |
enum | type { LINE , PLANE , FIGURE } |
Public Member Functions | |
template<class F > | |
CellDiameter (const concepts::SpaceOnCells< F > &spc, const enum type typ, bool square=false) | |
CellDiameter (const Cell &cell, const enum type typ, bool square=false) | |
const Real | operator() (uint key) const |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. | |
Class representing a map of diameters of elements of a given Space.
At the moment just Straight Elements have computable diameter. To go to general curvature elements, a convex hull algorithm is needed to compute the diameter, since the diameter of a solid set is the diameter of the convex hull of this set.
The Diameter implementation is motivated by the Paper
"An hp-finite element adaptive scheme to solve the poisson problem on curved domains" by M.G. Armentano, C. Padra, M. Scheble
edge size are not exactly but 3-Point approximated.
Definition at line 43 of file diameter.hh.
enum concepts::CellDiameter::type |
Definition at line 48 of file diameter.hh.
concepts::CellDiameter::CellDiameter | ( | const concepts::SpaceOnCells< F > & | spc, |
const enum type | typ, | ||
bool | square = false |
||
) |
Constructor getting a Space of Elements, i.e. a hpAdaptiveSpace, TraceSpace, etc. creating a map of all element's keys to its diameter.
The constructor is downward compatible, e.g. a constructor call with a Space with 2D manifold cells and a enum call of 1D Manifold, creates a mapping of 1D manifolds to its diamters. This applicates when no lower dimensional Space is in hand, i.e. a TraceSpace for an AdaptiveSpace.
spc | Space of 1D 2D or 3D ElementWithCells. |
typ | typ of the diameter to be computed |
square | marker that is set to true if all ElementWithCells are Squares (Cubes) |
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.