Class documentation of Concepts

Loading...
Searching...
No Matches
concepts::BlendingHexahedron3d Class Reference

#include <elementMaps3D.hh>

Inheritance diagram for concepts::BlendingHexahedron3d:
concepts::MappingHexahedron3d concepts::Map3d concepts::OutputOperator

Public Member Functions

 BlendingHexahedron3d (const Sequence< const MappingQuad3d * > quadmap, const Hexahedron &hex)
 
 BlendingHexahedron3d (const MappingQuad3d *quadmap0, const MappingQuad3d *quadmap1, const MappingQuad3d *quadmap2, const MappingQuad3d *quadmap3, const MappingQuad3d *quadmap4, const MappingQuad3d *quadmap5, const Hexahedron &hex)
 
 BlendingHexahedron3d (const BlendingHexahedron3d &v)
 
BlendingHexahedron3dclone () const override
 Returns a copy of the map.
 
Real3d operator() (Real x, Real y, Real z) const override
 
MapReal3d jacobian (const Real x, const Real y, const Real z) const override
 
MapReal3d hessian (uint i, const Real x, const Real y, const Real z) const override
 
MappingQuad3dface (const uint face) const override
 
MappingEdge3dedge (const uint edge) const
 
MappingHexahedron3dpart (const Real3d xi0, const Real3d xi1) const override
 
virtual MapReal3d jacobianInverse (const Real x, const Real y, const Real z) const
 
virtual Real jacobianDeterminant (const Real x, const Real y, const Real z) const
 Returns the determinant of the Jacobian.
 

Protected Member Functions

std::ostream & info (std::ostream &os) const override
 Returns information in an output stream.
 

Detailed Description

A 3D hexahedral element map for interpolation between arbitrary curved boundary quadrilateral elements according to the Linear Blending Function Method (Gordon and Hall, 1971). Element parametrization:

\[ F_K (s,t,u) = \Pi_0 \oplus \Pi_1 \oplus \Pi_2 [F_K] (s,t,u), \]

where $ \Pi_0 \oplus \Pi_1 \oplus \Pi_2 $ denotes a boolean operator sum of coordinate interpolation operators, e.g.

\[ \Pi_1 [f](s,t,u) = (1-t) f(s,0,u) + t f(s,1,u), \]

See also
BlendingQuad3d for a detailed explanation
Author
, Lukas Drescher, 2014
Todo:

move invertOrientation documentation to MappingQuad3d

homogenize construction with MappingQuad3d-iterators template <typename MappingQuad3dIterator> BlendingHexahedron3d( MappingQuad3dIterator begin, MappingQuad3dIterator end, const Hexahedron& hex);

Definition at line 242 of file elementMaps3D.hh.

Constructor & Destructor Documentation

◆ BlendingHexahedron3d()

concepts::BlendingHexahedron3d::BlendingHexahedron3d ( const Sequence< const MappingQuad3d * >  quadmap,
const Hexahedron hex 
)

Constructor. Every element of a given sequence of boundary quadrilateral mappings is cloned and reoriented from the quadrilateral orientations in the topological hexahedron to those induced by the coordinate directions in the hexahedral reference domain. IMPORTANT: The orientation of the quadrilateral element mappings in the input sequence must be aligned with the corresponding topological quadrilaterals. That is: The topological complex must be consistent with the geometric complex.

Parameters
quadmapboundary element mappings forming the images of

\[
                  ( [0,1]  \times  [0,1]  \times \{ 0 \}, \quad
                    [0,1]  \times \{ 0 \} \times  [0,1], \quad
                   \{ 1 \} \times  [0,1]  \times  [0,1], \quad
                    [0,1]  \times \{ 1 \} \times  [0,1], \quad
                   \{ 0 \} \times  [0,1]  \times  [0,1], \quad
                    [0,1]  \times  [0,1]  \times \{ 1 \} )
               \]

of the element mapping to be constructed consistent with the orientation flags in the parameter hex
hextopological object corresponding to the element mapping to be constructed. Orientations in topological cell complex must be consistent with passed boundary element mappings in quadmap

Member Function Documentation

◆ clone()

BlendingHexahedron3d * concepts::BlendingHexahedron3d::clone ( ) const
inlineoverridevirtual

Returns a copy of the map.

Implements concepts::MappingHexahedron3d.

Definition at line 276 of file elementMaps3D.hh.

◆ face()

MappingQuad3d * concepts::BlendingHexahedron3d::face ( const uint  face) const
overridevirtual

Returns the mapping of the given face.

Implements concepts::MappingHexahedron3d.

◆ hessian()

MapReal3d concepts::BlendingHexahedron3d::hessian ( uint  i,
const Real  x,
const Real  y,
const Real  z 
) const
overridevirtual

Returns the Hessian, the integer indicates which 3x3 submap of the 3x3xi (i=1..3) tensor is required

Implements concepts::MappingHexahedron3d.

◆ info()

std::ostream & concepts::BlendingHexahedron3d::info ( std::ostream &  os) const
overrideprotectedvirtual

Returns information in an output stream.

Implements concepts::MappingHexahedron3d.

◆ jacobian()

MapReal3d concepts::BlendingHexahedron3d::jacobian ( const Real  x,
const Real  y,
const Real  z 
) const
overridevirtual

Returns the jacobian of the element map

\[ \left(\frac{\partial F_K}{\partial\vec\xi}\right) =
\left\{\frac{\partial x^i}{\partial \xi_j}\right\}_{i,j=1}^3 \]

Implements concepts::MappingHexahedron3d.

◆ jacobianDeterminant()

virtual Real concepts::MappingHexahedron3d::jacobianDeterminant ( const Real  x,
const Real  y,
const Real  z 
) const
inlinevirtualinherited

Returns the determinant of the Jacobian.

Reimplemented in concepts::MapHexahedron3d.

Definition at line 200 of file elementMaps3D.hh.

◆ jacobianInverse()

virtual MapReal3d concepts::MappingHexahedron3d::jacobianInverse ( const Real  x,
const Real  y,
const Real  z 
) const
inlinevirtualinherited

Computes the inverse of the jacobian:

\[ \left(\frac{\partial F_K}{\partial\vec\xi}\right)^{-1} =
\left\{\frac{\partial \xi_i}{\partial x^j}\right\}_{i,j=1}^3 \]

Reimplemented in concepts::MapHexahedron3d.

Definition at line 196 of file elementMaps3D.hh.

◆ operator()()

Real3d concepts::BlendingHexahedron3d::operator() ( Real  x,
Real  y,
Real  z 
) const
overridevirtual

Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in physical 3d space.

Returns
$F_K(x,y,z)$

Implements concepts::MappingHexahedron3d.

◆ part()

MappingHexahedron3d * concepts::BlendingHexahedron3d::part ( const Real3d  xi0,
const Real3d  xi1 
) const
overridevirtual
Todo:
part supposed to be implemented for parent class

Implements concepts::MappingHexahedron3d.


The documentation for this class was generated from the following file: