#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.