A 3D element map for a restriction of a given hexahedron element mapping. More...

#include <elementMaps3D.hh>

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

Public Member Functions

PartMappingHexahedron3dclone () const override
 Returns a copy of the map. More...
 
MappingQuad3d * face (const uint face) const override
 Returns the mapping of the given face. More...
 
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. More...
 
MapReal3d jacobian (const Real x, const Real y, const Real z) const override
 Returns the jacobian of the element map. More...
 
virtual Real jacobianDeterminant (const Real x, const Real y, const Real z) const
 Returns the determinant of the Jacobian. More...
 
virtual MapReal3d jacobianInverse (const Real x, const Real y, const Real z) const
 Computes the inverse of the jacobian: More...
 
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. More...
 
PartMappingHexahedron3dpart (const Real3d x0, const Real3d x1) const override
 Returns a part of the mapping. More...
 
 PartMappingHexahedron3d (const MappingHexahedron3d &map, const Real3d x0, const Real3d x1)
 Constructor. More...
 
 PartMappingHexahedron3d (const PartMappingHexahedron3d &other)
 
 ~PartMappingHexahedron3d () override
 

Protected Member Functions

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

Private Member Functions

const Real3d xi_ (const Real x, const Real y, const Real z) const
 Embedding of local coordinates to parent hexahedron reference domain. More...
 

Private Attributes

const Real3d d_
 Widths of the restricted hexahedron in coordinates of the parent map. More...
 
std::unique_ptr< MappingHexahedron3dmap_
 Parent hexahedron map. More...
 
const Real3d x0_
 Coordinate of the lower left front vertex in the reference domain of the parent map. More...
 

Detailed Description

A 3D element map for a restriction of a given hexahedron element mapping.

Let $ F^p_K $ be the parent hexahedron. Then this element mapping is defined by

\[ F_K(s,t,u) = F^p_K(x_{0,0} (1-s) + x_{1,0} s, x_{0,1} (1-t) + x_{1,1} t, x_{0,2} (1-u) + x_{1,2} u). \]

Todo:
Possibly avoid copying the parent element (switch from unique_ptr to shared_ptr internally)
Author
, Lukas Drescher, 2014

Definition at line 313 of file elementMaps3D.hh.

Constructor & Destructor Documentation

◆ PartMappingHexahedron3d() [1/2]

concepts::PartMappingHexahedron3d::PartMappingHexahedron3d ( const MappingHexahedron3d map,
const Real3d  x0,
const Real3d  x1 
)

Constructor.

Parameters
mapParent hexahedron element map
x0,x1lower left front and upper right back corner of the restricted domain in coordinates of the parent hexahedron

◆ PartMappingHexahedron3d() [2/2]

concepts::PartMappingHexahedron3d::PartMappingHexahedron3d ( const PartMappingHexahedron3d other)

◆ ~PartMappingHexahedron3d()

concepts::PartMappingHexahedron3d::~PartMappingHexahedron3d ( )
inlineoverride

Definition at line 323 of file elementMaps3D.hh.

Member Function Documentation

◆ clone()

PartMappingHexahedron3d* concepts::PartMappingHexahedron3d::clone ( ) const
overridevirtual

Returns a copy of the map.

Implements concepts::MappingHexahedron3d.

◆ face()

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

Returns the mapping of the given face.

Implements concepts::MappingHexahedron3d.

◆ hessian()

MapReal3d concepts::PartMappingHexahedron3d::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::PartMappingHexahedron3d::info ( std::ostream &  os) const
overrideprotectedvirtual

Returns information in an output stream.

Implements concepts::MappingHexahedron3d.

◆ jacobian()

MapReal3d concepts::PartMappingHexahedron3d::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::PartMappingHexahedron3d::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()

PartMappingHexahedron3d* concepts::PartMappingHexahedron3d::part ( const Real3d  xi0,
const Real3d  xi1 
) const
overridevirtual

Returns a part of the mapping.

Implements concepts::MappingHexahedron3d.

◆ xi_()

const Real3d concepts::PartMappingHexahedron3d::xi_ ( const Real  x,
const Real  y,
const Real  z 
) const
inlineprivate

Embedding of local coordinates to parent hexahedron reference domain.

Definition at line 341 of file elementMaps3D.hh.

Member Data Documentation

◆ d_

const Real3d concepts::PartMappingHexahedron3d::d_
private

Widths of the restricted hexahedron in coordinates of the parent map.

Definition at line 338 of file elementMaps3D.hh.

◆ map_

std::unique_ptr<MappingHexahedron3d> concepts::PartMappingHexahedron3d::map_
private

Parent hexahedron map.

Definition at line 334 of file elementMaps3D.hh.

◆ x0_

const Real3d concepts::PartMappingHexahedron3d::x0_
private

Coordinate of the lower left front vertex in the reference domain of the parent map.

Definition at line 336 of file elementMaps3D.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich