#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 onto the element.
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
. The Jacobian of a cell in the initial mesh is computed by the element map. The Jacobian of a subdivided cell is computed as follows. Let be the subdivision map in the reference coordinates (0,1)3 and , the element maps of K and K' respectively. Then,
The subdivision map H in reference coordinates is
where , , is the level of the cell with respect to the cell in the initial mesh. The derivative of H is .
Then, the Jacobian of is
The part (without H) is computed by the element map and the part is computed in 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 |