cell3D.hh
virtual Tetrahedron3d * child(uint i)
Returns a pointer to the ith child.
virtual void removeChildren(Hexahedron3d &h) const
If there are chilren, they are removed.
index_type j_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:354
Parallelepiped3d(Hexahedron &cntr, MapParallelepiped3d *map, const Index &idx)
Private constructor.
Mapping< F, DimX, DimY > inverse() const
Returns the inverse of the matrix.
MappingQuad3d * faceMap(uint face) const
Returns the mapping of a face.
virtual ~Hex3dSubdiv2y()
Subdivision strategy for hexahedrons which generates 2 children perpendicular the y direction.
Definition: hexsubdiv.hh:211
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual ~Hex3dSubdiv8()
Subdivision strategy for hexahedrons which generates 2 children.
Definition: cell3D.hh:195
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
static const Hex3dSubdiv2z * instance()
Subclass of Tetrahedron3d representing its index.
Definition: cell3D.hh:62
static std::unique_ptr< Hex3dSubdiv8 > instance_
Definition: cell3D.hh:186
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Interface for topological subdivision strategies for hexahedrons.
Definition: hexsubdiv.hh:40
Real jacobianDeterminant(const Real xi, const Real eta, const Real zeta) const
Returns the determinant of the Jacobian for xi, eta, zeta .
Definition: cell3D.hh:447
Tetrahedron3d(Tetrahedron &cntr, const MapTetrahedron3d &map)
Constructor.
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
Subdivision strategy for hexahedrons which generates 4 children.
Definition: cell3D.hh:248
virtual ~Hexahedron3d()
virtual Parallelepiped3d * child(uint c)
Returns a pointer to the ith child.
virtual ~Hex3dSubdiv4z()
virtual ~Hex3dSubdiv4y()
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
Hexahedron3d(Hexahedron &cntr, const MappingHexahedron3d &map)
Constructor.
index_type k_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:82
MapReal3d jacobian(const concepts::Real3d &p) const
static const Hex3dSubdiv2y * instance()
virtual const Parallelepiped3d * child(uint c) const
Returns a pointer to the ith child.
static std::unique_ptr< Hex3dSubdiv2y > instance_
Definition: cell3D.hh:222
Subclass of Hexahedron3d representing its index.
Definition: cell3D.hh:340
Real3d elemMap(const Real3d &coord_local) const
Element map from point local coordinates in 3D.
Definition: cell3D.hh:394
Subdivision strategy for hexahedrons which generates 4 children along the x direction.
Definition: hexsubdiv.hh:255
Exception indicating that changing the subdivision strategy is not allowed (but was tried anyway).
Definition: strategyChange.hh:25
Index(uchar l, index_type i, index_type j, index_type k)
Definition: cell3D.hh:562
Interface for the element map of a hexahedron embedded in R^3 (analogous to the design of MappingQuad...
Definition: elementMaps3D.hh:171
virtual const Hexahedron3d * child(uint i) const
Returns a pointer to the ith child.
static std::unique_ptr< Hex3dSubdiv4y > instance_
Definition: cell3D.hh:274
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Subdivision strategy for hexahedrons which generates 2 children perpendicular to the x direction.
Definition: hexsubdiv.hh:189
index_type k_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:360
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Parallelepiped3d(Hexahedron &cntr, const MapParallelepiped3d &map)
Constructor.
virtual const HexSubdivision * topologicalStrategy() const =0
Returns the respective topological subdivision strategy.
static const Hex3dSubdiv4z * instance()
Subdivision strategy for hexahedrons which generates 2 children.
Definition: cell3D.hh:231
Subdivision strategy for hexahedrons which generates 8 children.
Definition: hexsubdiv.hh:167
static std::unique_ptr< Hex3dSubdiv4z > instance_
Definition: cell3D.hh:291
MapReal3d hessian(const uint i, const concepts::Real3d &p) const
MapReal3d jacobianInverse(const Real xi, const Real eta, const Real zeta) const
Returns the inverse of the Jacobian for xi, eta, zeta .
Definition: cell3D.hh:439
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
index_type i_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:348
MapReal3d jacobian(const Real xi, const Real eta, const Real zeta) const
Computes the Jacobian for xi, eta, zeta .
virtual const HexSubdiv2x * topologicalStrategy() const
Returns the respective topological subdivision strategy.
Real3d vertex(uint i) const
Returns the coordinates of the ith vertex.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const Hex3dSubdivision * subdivStrategy_
Subdivision strategy for the hexahedron.
Definition: cell3D.hh:508
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
MapReal3d hessian(const uint i, const Real xi, const Real eta, const Real zeta) const
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
Subdivision strategy for hexahedrons which generates 4 children.
Definition: cell3D.hh:282
virtual ~Hex3dSubdiv2z()
index_type j_
Index of this element on the local level with respect to the element and the y axis.
Definition: cell3D.hh:553
Real3d vertex(uint i) const
Returns the coordinates of the ith vertex.
Subdivision strategy for hexahedrons which generates 8 children.
Definition: cell3D.hh:177
virtual const HexSubdiv2y * topologicalStrategy() const
Returns the respective topological subdivision strategy.
static const Hex3dSubdiv4y * instance()
static const Hex3dSubdiv4x * instance()
index_type i_
Index of this element on the local level with respect to the element and the x axis.
Definition: cell3D.hh:547
virtual const HexSubdiv4y * topologicalStrategy() const
Returns the respective topological subdivision strategy.
virtual const Tetrahedron3d * child(uint i) const
Returns a pointer to the ith child.
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Subdivision strategy for hexahedrons which generates 2 children.
Definition: cell3D.hh:213
Subdivision strategy for hexahedrons which generates 4 children along the z direction.
Definition: hexsubdiv.hh:299
Index(uchar l, index_type i, index_type j, index_type k)
Definition: cell3D.hh:85
virtual const HexSubdiv4x * topologicalStrategy() const
Returns the respective topological subdivision strategy.
index_type i_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:70
virtual Hexahedron3d * child(uint i)
Returns a pointer to the ith child.
Tetrahedron3d(Tetrahedron &cntr, MapTetrahedron3d *map, const Index &idx)
Private constructor.
virtual const HexSubdiv2z * topologicalStrategy() const
Returns the respective topological subdivision strategy.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv4z * topologicalStrategy() const
Returns the respective topological subdivision strategy.
Index(uchar l, uchar m, uchar n, index_type i, index_type j, index_type k)
Definition: cell3D.hh:363
index_type j_
Index of this element on the local level with respect to the element in the original mesh.
Definition: cell3D.hh:76
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
static std::unique_ptr< Hex3dSubdiv2x > instance_
Definition: cell3D.hh:204
Subdivision strategy for hexahedrons which generates 4 children.
Definition: cell3D.hh:265
virtual void createChildren(Hexahedron3d &h) const =0
If no children of h exist, they are created.
Subdivision strategy for hexahedrons which generates 2 children perpendicular to the z direction.
Definition: hexsubdiv.hh:233
virtual ~Hex3dSubdiv2x()
Hexahedron3d(Hexahedron &cntr, MappingHexahedron3d *map, const Index &idx)
Private constructor.
friend std::ostream & operator<<(std::ostream &os, const Hexahedron3d::Index &i)
Exception which indicates that a negative Jacobian was found.
Definition: cell3D.hh:28
Subclass of Tetrahedron3d representing its index.
Definition: cell3D.hh:539
static const Hex3dSubdiv2x * instance()
virtual ~Hex3dSubdiv4x()
virtual ~Tetrahedron3d()
static const Hex3dSubdiv8 * instance()
virtual ~Parallelepiped3d()
virtual const HexSubdiv8 * topologicalStrategy() const
Returns the respective topological subdivision strategy.
static std::unique_ptr< Hex3dSubdiv4x > instance_
Definition: cell3D.hh:257
std::ostream & info(std::ostream &os) const
Definition: cell3D.hh:139
static std::unique_ptr< Hex3dSubdiv2z > instance_
Definition: cell3D.hh:240
Subdivision strategy for hexahedrons which generates 4 children along the y direction.
Definition: hexsubdiv.hh:277
Interface for geometrical subdivision strategies for hexahedrons.
Definition: cell3D.hh:159
void setStrategy(const Hex3dSubdivision *strategy=0)
Sets the subdivision strategy of this hexahedron.
index_type k_
Index of this element on the local level with respect to the element and the z axis.
Definition: cell3D.hh:559
virtual void createChildren(Hexahedron3d &h) const
If no children of h exist, they are created.
std::ostream & info(std::ostream &os) const
Definition: cell3D.hh:616