elementMaps3D.hh
Go to the documentation of this file.
MappingQuad3d * face(uint face) const
Returns the mapping of the given face.
Mapping< F, DimX, DimY > inverse() const
Returns the inverse of the matrix.
std::ostream & info(std::ostream &os) const override
Returns information in an output stream.
virtual MapReal3d jacobian(const Real x, const Real y, const Real z) const =0
Returns the jacobian of the element map.
virtual MappingHexahedron3d * part(const Real3d xi0, const Real3d xi1) const =0
Returns a part of the mapping.
MapTetrahedron3d(const MapTetrahedron3d &map)
Copy constructor.
F determinant() const
Returns the determinant of the matrix (only valid for square matrices)
BlendingHexahedron3d * clone() const override
Returns a copy of the map.
Definition: elementMaps3D.hh:276
MapHexahedron3d(const MapHexahedron3d &map)
Copy constructor.
PartMappingHexahedron3d * clone() const override
Returns a copy of the map.
MappingHexahedron3d * part(const Real3d xi0, const Real3d xi1) const override
PartMappingHexahedron3d(const MappingHexahedron3d &map, const Real3d x0, const Real3d x1)
Constructor.
~PartMappingHexahedron3d() override
Definition: elementMaps3D.hh:323
MapReal3d jacobian(const Real x, const Real y, const Real z) const
Returns the jacobian of the element map.
MapHexahedron3d * part(const Real3d x0, const Real3d z0) const
Returns a part of the mapping.
MapHexahedron3d(char *map, Real scX, Real scY, Real scZ)
Constructor.
virtual std::ostream & info(std::ostream &os) const =0
Returns information in an output stream.
#define conceptsAssert(cond, exc)
Assert that a certain condition is fulfilled.
Definition: exceptions.hh:394
MappingQuad3d * face(const uint face) const override
Returns the mapping of the given face.
Real3d operator()(Real x, Real y, Real z) const override
Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in physical 3d space.
Real3d operator()(Real x, Real y, Real z) const
Returns a point in 3D mapped from the unit cube onto the element in the original mesh.
Definition: elementMaps3D.hh:426
Real3d operator()(Real x, Real y, Real z) const
Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in the original mesh.
Definition: elementMaps3D.hh:109
Interface for the element map of a hexahedron embedded in R^3 (analogous to the design of MappingQuad...
Definition: elementMaps3D.hh:171
#define DEBUGL(doit, msg)
PartMappingHexahedron3d(const PartMappingHexahedron3d &other)
Real jacobianDeterminant(const Real x, const Real y, const Real z) const
Returns the determinant of the Jacobian.
Definition: elementMaps3D.hh:467
MapParallelepiped3d(Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
Constructor.
A 3D hexahedral element map for interpolation between arbitrary curved boundary quadrilateral element...
Definition: elementMaps3D.hh:242
~BlendingHexahedron3d() override
virtual Real jacobianDeterminant(const Real x, const Real y, const Real z) const
Returns the determinant of the Jacobian.
Definition: elementMaps3D.hh:200
MapTetrahedron3d(char *map, Real scX, Real scY, Real scZ)
Constructor.
std::array< std::unique_ptr< MappingEdge3d >, 12 > edgemap_
Definition: elementMaps3D.hh:291
Real3d operator()(Real x, Real y, Real z) const
Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in the original mesh.
Definition: elementMaps3D.hh:516
const Real3d x0_
Coordinate of the lower left front vertex in the reference domain of the parent map.
Definition: elementMaps3D.hh:336
MapReal3d jacobian(const Real x, const Real y, const Real z) const override
Returns the jacobian of the element map.
void construct_(const std::array< const MappingQuad3d *, 6 > &quadmap, const Hexahedron &hex)
Sequence with operations, output operator, and method of the particular element types.
Definition: sequence.hh:39
const Real3d xi_(const Real x, const Real y, const Real z) const
Embedding of local coordinates to parent hexahedron reference domain.
Definition: elementMaps3D.hh:341
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual MapReal3d jacobianInverse(const Real x, const Real y, const Real z) const
Computes the inverse of the jacobian:
Definition: elementMaps3D.hh:196
MapParallelepiped3d(const MapParallelepiped3d &map)
Copy constructor.
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const override
Returns the Hessian, the integer indicates which 3x3 submap of the 3x3xi (i=1..3) tensor is required.
MapHexahedron3d(const Real3d &vtx0, const Real3d &vtx1, const Real3d &vtx2, const Real3d &vtx3, const Real3d &vtx4, const Real3d &vtx5, const Real3d &vtx6, const Real3d &vtx7)
Constructor.
const Real3d d_
Widths of the restricted hexahedron in coordinates of the parent map.
Definition: elementMaps3D.hh:338
virtual MappingHexahedron3d * clone() const =0
Returns a copy of the map.
BlendingHexahedron3d(const BlendingHexahedron3d &v)
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const
Returns the hessian of the element map.
MapReal3d jacobianInverse(const Real x, const Real y, const Real z) const
Computes the inverse of the jacobian:
Definition: elementMaps3D.hh:462
std::array< std::unique_ptr< MappingQuad3d >, 6 > quadmap_
Definition: elementMaps3D.hh:289
std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Definition: elementMaps3D.hh:28
MapTetrahedron3d(Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
Constructor.
Real3d operator()(Real x, Real y, Real z) const override
Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in physical 3d space.
MappingEdge3d * edge(const uint edge) const
virtual ~MappingHexahedron3d()
Definition: elementMaps3D.hh:174
A 3D element map for a restriction of a given hexahedron element mapping.
Definition: elementMaps3D.hh:313
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const override
Returns the Hessian, the integer indicates which 3x3 submap of the 3x3xi (i=1..3) tensor is required.
BlendingHexahedron3d(const MappingQuad3d *quadmap0, const MappingQuad3d *quadmap1, const MappingQuad3d *quadmap2, const MappingQuad3d *quadmap3, const MappingQuad3d *quadmap4, const MappingQuad3d *quadmap5, const Hexahedron &hex)
void operator=(const MapParallelepiped3d &)
Private assignement operator.
PartMappingHexahedron3d * part(const Real3d x0, const Real3d x1) const override
Returns a part of the mapping.
MapReal3d jacobian(const Real x, const Real y, const Real z) const override
Returns the jacobian of the element map.
MappingQuad3d * face(const uint face) const override
Returns the mapping of the given face.
void operator=(const MapTetrahedron3d &)
Private assignement operator.
void operator=(const MapHexahedron3d &)
Private assignement operator.
virtual MappingQuad3d * face(const uint face) const =0
Returns the mapping of the given face.
virtual MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const =0
Returns the Hessian, the integer indicates which 3x3 submap of the 3x3xi (i=1..3) tensor is required.
virtual Real3d operator()(Real x, Real y, Real z) const =0
Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in physical 3d space.
std::ostream & info(std::ostream &os) const override
Returns information in an output stream.
BlendingHexahedron3d(const Sequence< const MappingQuad3d * > quadmap, const Hexahedron &hex)
Constructor.