7#ifndef elementMaps3D_hh
8#define elementMaps3D_hh
17#define geoMapTetrahedron3dAppl_D 0
28 std::ostream&
info(std::ostream&
os)
const {
return os <<
"Map3d()";};
111 return Real3d(map_, scx_ * x, scy_ * y, scz_ * z);
113 Real3d xi(x*(1.0-y)*(1.0-z), y*(1.0-z), z);
116 DEBUGL(geoMapTetrahedron3dAppl_D,
'(' << x <<
", " << y
117 <<
", " << z <<
") -> " <<
xi <<
" -> " <<
res);
213 virtual std::ostream&
info(std::ostream&
os)
const = 0;
286 std::ostream&
info(std::ostream&
os)
const override;
289 std::array<std::unique_ptr<MappingQuad3d>,6> quadmap_;
291 std::array<std::unique_ptr<MappingEdge3d>,12> edgemap_;
293 std::array<Real3d,8> vtx_;
331 std::ostream&
info(std::ostream&
os)
const override;
334 std::unique_ptr<MappingHexahedron3d> map_;
342 return x0_ +
Real3d(x * d_[0], y * d_[1], z * d_[2]);
434 return Real3d(map_, scx_ * x, scy_ * y, scz_* z);
437 res += comp_[1]*(x*y);
438 res += comp_[2]*(x*z);
439 res += comp_[3]*(y*z);
481 virtual std::ostream&
info(std::ostream&
os)
const;
524 return (B1_ ^ B2_) * B3_;
#define conceptsException(exc)
Real3d operator()(Real x, Real y, Real z) const override
MappingHexahedron3d * part(const Real3d xi0, const Real3d xi1) const override
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const override
std::ostream & info(std::ostream &os) const override
Returns information in an output stream.
MapReal3d jacobian(const Real x, const Real y, const Real z) const override
MappingQuad3d * face(const uint face) const override
BlendingHexahedron3d * clone() const override
Returns a copy of the map.
BlendingHexahedron3d(const Sequence< const MappingQuad3d * > quadmap, const Hexahedron &hex)
std::ostream & info(std::ostream &os) const
Returns information in an output stream.
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const
MapHexahedron3d * part(const Real3d x0, const Real3d z0) const
MapHexahedron3d * clone() const
Returns a copy of the map.
MappingQuad3d * face(uint face) const
Real jacobianDeterminant(const Real x, const Real y, const Real z) const
Returns the determinant of the Jacobian.
MapHexahedron3d(char *map, Real scX, Real scY, Real scZ)
MapHexahedron3d(const MapHexahedron3d &map)
Copy constructor.
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
MapReal3d jacobianInverse(const Real x, const Real y, const Real z) const
Real3d operator()(Real x, Real y, Real z) const
MapReal3d jacobian(const Real x, const Real y, const Real z) const
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)
MapParallelepiped3d * clone() const
Returns a copy of the map.
Real jacobian() const
Returns the jacobian.
MapParallelepiped3d(Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
MapParallelepiped3d(const MapParallelepiped3d &map)
Copy constructor.
Real3d operator()(Real x, Real y, Real z) const
MapTetrahedron3d(char *map, Real scX, Real scY, Real scZ)
MapTetrahedron3d(Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
MapTetrahedron3d(const MapTetrahedron3d &map)
Copy constructor.
Real jacobian() const
Returns the jacobian.
Real3d operator()(Real x, Real y, Real z) const
MapTetrahedron3d * clone() const
Returns a copy of the map.
virtual MappingQuad3d * face(const uint face) const =0
virtual MappingHexahedron3d * clone() const =0
Returns a copy of the map.
virtual MapReal3d jacobianInverse(const Real x, const Real y, const Real z) const
virtual MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const =0
virtual std::ostream & info(std::ostream &os) const =0
Returns information in an output stream.
virtual MapReal3d jacobian(const Real x, const Real y, const Real z) const =0
virtual Real jacobianDeterminant(const Real x, const Real y, const Real z) const
Returns the determinant of the Jacobian.
virtual Real3d operator()(Real x, Real y, Real z) const =0
virtual MappingHexahedron3d * part(const Real3d xi0, const Real3d xi1) const =0
Mapping< F, DimX, DimY > inverse() const
Returns the inverse of the matrix.
F determinant() const
Returns the determinant of the matrix (only valid for square matrices)
PartMappingHexahedron3d(const MappingHexahedron3d &map, const Real3d x0, const Real3d x1)
Real3d operator()(Real x, Real y, Real z) const override
MapReal3d hessian(uint i, const Real x, const Real y, const Real z) const override
std::ostream & info(std::ostream &os) const override
Returns information in an output stream.
PartMappingHexahedron3d * clone() const override
Returns a copy of the map.
PartMappingHexahedron3d * part(const Real3d x0, const Real3d x1) const override
MappingQuad3d * face(const uint face) const override
MapReal3d jacobian(const Real x, const Real y, const Real z) const override
#define conceptsAssert(cond, exc)
#define DEBUGL(doit, msg)
Set< F > makeSet(uint n, const F &first,...)
unsigned char uchar
Abbreviation for unsigned char.