36 virtual std::ostream&
info(std::ostream&
os)
const throw();
55 typedef uint index_type;
59 static uint MAX_LEVEL;
85 inline Index(
uchar l, index_type i, index_type j, index_type k) :
87 inline std::ostream& info(std::ostream&
os)
const;
115 virtual std::ostream&
info(std::ostream&
os)
const;
139 inline std::ostream& Tetrahedron3d::Index::info(std::ostream&
os)
const {
140 return os <<
'(' << (
uint)
l_ <<
", "
141 <<
i_ <<
", " <<
j_ <<
", " <<
k_ <<
')';
184 virtual std::ostream&
info(std::ostream& os)
const;
186 static std::unique_ptr<Hex3dSubdiv8> instance_;
202 virtual std::ostream&
info(std::ostream& os)
const;
204 static std::unique_ptr<Hex3dSubdiv2x> instance_;
220 virtual std::ostream&
info(std::ostream& os)
const;
222 static std::unique_ptr<Hex3dSubdiv2y> instance_;
238 virtual std::ostream&
info(std::ostream& os)
const;
240 static std::unique_ptr<Hex3dSubdiv2z> instance_;
255 virtual std::ostream&
info(std::ostream& os)
const;
257 static std::unique_ptr<Hex3dSubdiv4x> instance_;
272 virtual std::ostream&
info(std::ostream& os)
const;
274 static std::unique_ptr<Hex3dSubdiv4y> instance_;
289 virtual std::ostream&
info(std::ostream& os)
const;
291 static std::unique_ptr<Hex3dSubdiv4z> instance_;
333 typedef uint index_type;
337 static uint MAX_LEVEL;
362 inline Index() : level_(0), i_(0), j_(0), k_(0) {}
364 level_(l), i_(i), j_(j), k_(k) { level_.
l_[1] = m; level_.
l_[2] = n; }
365 inline Index(
const Index& i) : level_(i.level_), i_(i.i_), j_(i.j_),
369 friend std::ostream& operator<<(std::ostream& os,
370 const Hexahedron3d::Index& i);
396 return chi(coord_local[0], coord_local[1], coord_local[2]);
440 const Real zeta)
const {
441 return jacobian(xi, eta, zeta).
inverse();
448 const Real zeta)
const {
449 return jacobian(xi, eta, zeta).determinant();
487 virtual std::ostream&
info(std::ostream& os)
const;
531 typedef uint index_type;
535 static uint MAX_LEVEL;
560 inline Index() : l_(0), i_(0), j_(0), k_(0) {}
561 inline Index(
uchar l, index_type i, index_type j, index_type k) :
562 l_(l), i_(i), j_(j), k_(k) {}
563 inline std::ostream& info(std::ostream& os)
const;
591 virtual std::ostream&
info(std::ostream& os)
const;
615 inline std::ostream& Parallelepiped3d::Index::info(std::ostream&
os)
const {
616 return os <<
'(' << (
uint)l_ <<
", "
617 << i_ <<
", " << j_ <<
", " << k_ <<
')';
virtual const HexSubdiv2x * topologicalStrategy() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual void createChildren(Hexahedron3d &h) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv2y * topologicalStrategy() const
virtual void createChildren(Hexahedron3d &h) const
virtual void createChildren(Hexahedron3d &h) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv2z * topologicalStrategy() const
virtual const HexSubdiv4x * topologicalStrategy() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual void createChildren(Hexahedron3d &h) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv4y * topologicalStrategy() const
virtual void createChildren(Hexahedron3d &h) const
virtual void createChildren(Hexahedron3d &h) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv4z * topologicalStrategy() const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual const HexSubdiv8 * topologicalStrategy() const
virtual void createChildren(Hexahedron3d &h) const
virtual void removeChildren(Hexahedron3d &h) const
virtual void createChildren(Hexahedron3d &h) const =0
virtual const HexSubdivision * topologicalStrategy() const =0
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
const Level< 3 > & level() const
Returns the level of the cell.
Hexahedron & connector() const
Returns the connector.
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
Real3d vertex(uint i) const
Returns the coordinates of the ith vertex.
Hexahedron3d(Hexahedron &cntr, const MappingHexahedron3d &map)
void setStrategy(const Hex3dSubdivision *strategy=0)
Real3d center() const
Returns the center of the cell.
const MappingHexahedron3d * map() const
Returns the element map.
MapReal3d jacobianInverse(const Real xi, const Real eta, const Real zeta) const
Real3d chi(Real xi, Real eta, Real zeta) const
const Hex3dSubdivision * getStrategy() const
virtual const Hexahedron3d * child(uint i) const
virtual Hexahedron3d * child(uint i)
Real jacobianDeterminant(const Real xi, const Real eta, const Real zeta) const
MappingQuad3d * faceMap(uint face) const
Mapping< F, DimX, DimY > inverse() const
Returns the inverse of the matrix.
NegativeJacobian(const std::string &errMsg)
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Real3d chi(Real xi, Real eta, Real zeta) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
virtual Parallelepiped3d * child(uint c)
Real3d center() const
Returns the center of the cell.
Parallelepiped3d(Hexahedron &cntr, const MapParallelepiped3d &map)
Real3d vertex(uint i) const
Returns the coordinates of the ith vertex.
Hexahedron & connector() const
Returns the connector.
virtual const Parallelepiped3d * child(uint c) const
virtual const Tetrahedron3d * child(uint i) const
Tetrahedron3d(Tetrahedron &cntr, const MapTetrahedron3d &map)
Real3d chi(Real xi, Real eta, Real zeta) const
virtual std::ostream & info(std::ostream &os) const
Returns information in an output stream.
Tetrahedron & connector() const
Returns the connector.
Real3d center() const
Returns the center of the cell.
Real3d vertex(uint i) const
Returns the coordinates of the ith vertex.
virtual Tetrahedron3d * child(uint i)
Set< F > makeSet(uint n, const F &first,...)
unsigned char uchar
Abbreviation for unsigned char.
Subclass of Hexahedron3d representing its index.
Level< 3 > level_
Level of this element.
Subclass of Tetrahedron3d representing its index.
uchar l_
Level of this element.
Subclass of Tetrahedron3d representing its index.
uchar l_
Level of this element.