#include <cell3D.hh>
Classes | |
| struct | Index |
| Subclass of Hexahedron3d representing its index. More... | |
Public Types | |
| typedef uint | index_type |
Public Member Functions | |
| Hexahedron3d (Hexahedron &cntr, const MappingHexahedron3d &map) | |
| virtual Hexahedron3d * | child (uint i) |
| virtual const Hexahedron3d * | child (uint i) const |
| Hexahedron & | connector () const |
| Returns the connector. | |
| Real3d | chi (Real xi, Real eta, Real zeta) const |
| Real3d | elemMap (const Real3d &coord_local) const |
| Element map from point local coordinates in 3D. | |
| MapReal3d | jacobian (const Real xi, const Real eta, const Real zeta) const |
| MapReal3d | jacobian (const concepts::Real3d &p) const |
| MapReal3d | hessian (const uint i, const Real xi, const Real eta, const Real zeta) const |
| MapReal3d | hessian (const uint i, const concepts::Real3d &p) const |
| MapReal3d | jacobianInverse (const Real xi, const Real eta, const Real zeta) const |
| Real | jacobianDeterminant (const Real xi, const Real eta, const Real zeta) const |
| const Level< 3 > & | level () const |
| Returns the level of the cell. | |
| Real3d | vertex (uint i) const |
| Returns the coordinates of the ith vertex. | |
| Real3d | center () const |
| Returns the center of the cell. | |
| const MappingHexahedron3d * | map () const |
| Returns the element map. | |
| MappingQuad3d * | faceMap (uint face) const |
| void | setStrategy (const Hex3dSubdivision *strategy=0) |
| const Hex3dSubdivision * | getStrategy () const |
| bool | hasChildren () const |
| Returns true if there is a least one child. | |
| virtual Real3d | elemMap (const Real coord_local) const |
| Element map from point local coordinates in 1D. | |
| virtual Real3d | elemMap (const Real2d &coord_local) const |
| Element map from point local coordinates in 2D. | |
Static Public Attributes | |
| static uint | MAX_LEVEL |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
Friends | |
| class | Hex3dSubdivision |
| class | Hex3dSubdiv8 |
| class | Hex3dSubdiv2x |
| class | Hex3dSubdiv2y |
| class | Hex3dSubdiv2z |
| class | Hex3dSubdiv4x |
| class | Hex3dSubdiv4y |
| class | Hex3dSubdiv4z |
| std::ostream & | operator<< (std::ostream &os, const Hexahedron3d::Index &i) |
A 3D cell: hexahedron. This cell contains a reference to the topological information of the hexahedron in cntr_. If a hexahedron is subdivided, two, four or eight new hexahedra are created. This happens automatically, if a child is requested, depending on the strategy that has been set.
The faces of the hexahedron have the following local coordinates in the element:
| concepts::Hexahedron3d::Hexahedron3d | ( | Hexahedron & | cntr, |
| const MappingHexahedron3d & | map | ||
| ) |
Constructor. Takes the connector cntr and the element map map and creates a cell.
| cntr | Topological information of the hexadron |
| map | Element map of the hexahedron |
|
inlinevirtual |
Returns the center of the cell.
Implements concepts::Cell3.
The element map. Maps a point from the unit cube ![$[0,1]^3$](form_333.png)
| xi | |
| eta | |
| zeta |
|
virtual |
Returns a pointer to the ith child. Children are created if they do not already exist.
Implements concepts::Cell3.
|
virtual |
Returns a pointer to the ith child. Children are not created if they do not already exist, instead 0 is returned.
Implements concepts::Cell3.
|
inlinevirtual |
Element map from point local coordinates in 1D.
Reimplemented in concepts::SphericalSurface3d, concepts::Sphere3d, concepts::Edge1d, and concepts::Edge2d.
Element map from point local coordinates in 2D.
Reimplemented in concepts::Triangle2d, concepts::Quad2d, concepts::InfiniteRect2d, concepts::Triangle3d, concepts::Quad3d, concepts::Cell2, concepts::SphericalSurface3d, concepts::Sphere3d, concepts::Edge1d, and concepts::Edge2d.
Element map from point local coordinates in 3D.
Reimplemented from concepts::Cell.
| MappingQuad3d * concepts::Hexahedron3d::faceMap | ( | uint | face | ) | const |
Returns the mapping of a face. Constructs a cell for a face of this Hexahedron.
|
inline |
|
inlineinherited |
|
protectedvirtual |
Returns information in an output stream.
Implements concepts::Cell.
Computes the Jacobian for xi, eta, zeta ![$\in [0,1]$](form_334.png)



![\[F_K : \hat K' \rightarrow K' \quad \text{and} \quad
F_K \circ H = F_{K'}. \]](form_344.png)
The subdivision map H in reference coordinates is
![\[H : \vec\xi \mapsto
\begin{pmatrix} a & 0 & 0 \\ 0 & b & 0 \\ 0 & 0 & c \end{pmatrix}
\vec \xi \]](form_359.png)
where 




Then, the Jacobian of 
![\[dF_{K'} = dF_K \circ H \cdot dH. \]](form_351.png)
The part 

jacobian().
|
inline |
|
inline |
| void concepts::Hexahedron3d::setStrategy | ( | const Hex3dSubdivision * | strategy = 0 | ) |
Sets the subdivision strategy of this hexahedron.
If the parameter is set to 0 (or if the method is called without parameter) the strategy is set to the default (if not already set). The default subdivision strategy is subdivision into 8 children.
@param strategy Pointer to an instance of a subdivision strategy.
| StrategyChange | if the change is not allowed (the change is not allowed if there are children present or the topological strategy is set). |
Returns the coordinates of the ith vertex.
Implements concepts::Cell3.
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |
|
friend |