A 3D element map for a tetrahedron. More...

#include <elementMaps3D.hh>

Inheritance diagram for concepts::MapTetrahedron3d:
concepts::Map3d concepts::OutputOperator

Public Member Functions

MapTetrahedron3dclone () const
 Returns a copy of the map. More...
 
std::ostream & info (std::ostream &os) const
 Returns information in an output stream. More...
 
Real jacobian () const
 Returns the jacobian. More...
 
 MapTetrahedron3d (char *map, Real scX, Real scY, Real scZ)
 Constructor. More...
 
 MapTetrahedron3d (const MapTetrahedron3d &map)
 Copy constructor. More...
 
 MapTetrahedron3d (Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
 Constructor. More...
 
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. More...
 
 ~MapTetrahedron3d ()
 

Private Member Functions

void operator= (const MapTetrahedron3d &)
 Private assignement operator. More...
 

Private Attributes

MapReal3d B_
 Computed map, matrix part. More...
 
Real3d b_
 Computed map, vector part. More...
 
ucharmap_
 Parsed formula for the map. More...
 
Real scx_
 Right border of the x parameter domain. More...
 
Real scy_
 Right border of the y parameter domain. More...
 
Real scz_
 Right border of the z parameter domain. More...
 
uint sz_
 Length of the parsed formula. More...
 

Detailed Description

A 3D element map for a tetrahedron.

The reference element is the unit cube.

There are two ways to fix the map of the tetrahedron: give the mapping explicitly or give the four corners and the map is computed internally.

Giving the map explicitly needs a few precautions: The reference element is the unit cube. For easier construction of the element map, a rectangle $[0,a] \times [0,b] \times [0,c]$ can be given as the parameter domain. To map this onto a tetrahedron, two sides have to degenerate using a so called Duffy transformation.

With a arbitrary Duffy transformation, one can choose the side which sould collapse. Here, the top face of the cube and the back edge of the bottom face should degenerate to a point, ie. the unit cube maps onto the unit simplex. This can be done with three Duffy transformations:

  1. Collapse the top face against the 2 direction.
  2. Collapse the resulting egde against the 1 direction.
  3. Collapse the back edge of the bottom face against the 1 direction.

When giving the four corners, the first three have to be in the normal orientation of the first triangle of the tetrahedron, see Tetrahedron for the explanation of "normal orientation".

The application operator maps a point from the unit square onto the physical domain taking into account the parameter domain given in the constructor.

Definition at line 66 of file elementMaps3D.hh.

Constructor & Destructor Documentation

◆ MapTetrahedron3d() [1/3]

concepts::MapTetrahedron3d::MapTetrahedron3d ( char *  map,
Real  scX,
Real  scY,
Real  scZ 
)

Constructor.

The values of scX, scY and scZ are only for the map, they are not needed by the user for mapping a point from the reference element onto the Real element.

Parameters
mapThe element map for this tetrehdron as a string, x, y and z are the allowed variables, the component are separated by a comma.
scXThe range of x is [0, scX].
scYThe range of y is [0, scY].
scZThe range of z is [0, scZ].

◆ MapTetrahedron3d() [2/3]

concepts::MapTetrahedron3d::MapTetrahedron3d ( Real3d  vtx0,
Real3d  vtx1,
Real3d  vtx2,
Real3d  vtx3 
)

Constructor.

Takes the four physical corners of the tetrahedron and computes the element map: $F_K : S \rightarrow K$ with $\vec x = F_K(\xi) = B \cdot \vec \xi + \vec b$, where $\vec b = \mbox{vtx0}$ and $B = [ (\mbox{vtx1} - \vec b) (\mbox{vtx2} - \vec b) (\mbox{vtx3} - \vec b) ]$.

◆ MapTetrahedron3d() [3/3]

concepts::MapTetrahedron3d::MapTetrahedron3d ( const MapTetrahedron3d map)

Copy constructor.

◆ ~MapTetrahedron3d()

concepts::MapTetrahedron3d::~MapTetrahedron3d ( )
inline

Definition at line 91 of file elementMaps3D.hh.

Member Function Documentation

◆ clone()

MapTetrahedron3d* concepts::MapTetrahedron3d::clone ( ) const
inline

Returns a copy of the map.

Definition at line 129 of file elementMaps3D.hh.

◆ info()

std::ostream& concepts::Map3d::info ( std::ostream &  os) const
inlinevirtualinherited

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

Reimplemented in concepts::PartMappingHexahedron3d, concepts::BlendingHexahedron3d, concepts::MappingHexahedron3d, and concepts::MapHexahedron3d.

Definition at line 28 of file elementMaps3D.hh.

◆ jacobian()

Real concepts::MapTetrahedron3d::jacobian ( ) const
inline

Returns the jacobian.

Definition at line 123 of file elementMaps3D.hh.

◆ operator()()

Real3d concepts::MapTetrahedron3d::operator() ( Real  x,
Real  y,
Real  z 
) const
inline

Returns a point in 3D mapped from the unit cube [0,1]3 onto the element in the original mesh.

If the map was given as formula in the constructor, the parameters are directly inserted into the formula. If the map was given by the four corners of the physical tetrahedron, then the point is first mapped from the unit cube ( $\eta$) onto the unit simplex ( $\xi$) using $\xi_1 = \eta_1(1-\eta_3)(1-\eta_2(1-\eta_3))$, $\xi_2 = \eta_2(1-\eta_3)$ and $\xi_3 = \eta_3$.

Returns
$F_K(x,y,z)$
Parameters
x$\in [0, 1]$
y$\in [0, 1]$
z$\in [0, 1]$

Definition at line 109 of file elementMaps3D.hh.

◆ operator=()

void concepts::MapTetrahedron3d::operator= ( const MapTetrahedron3d )
private

Private assignement operator.

Member Data Documentation

◆ B_

MapReal3d concepts::MapTetrahedron3d::B_
private

Computed map, matrix part.

Definition at line 150 of file elementMaps3D.hh.

◆ b_

Real3d concepts::MapTetrahedron3d::b_
private

Computed map, vector part.

Definition at line 153 of file elementMaps3D.hh.

◆ map_

uchar* concepts::MapTetrahedron3d::map_
private

Parsed formula for the map.

Definition at line 135 of file elementMaps3D.hh.

◆ scx_

Real concepts::MapTetrahedron3d::scx_
private

Right border of the x parameter domain.

Definition at line 141 of file elementMaps3D.hh.

◆ scy_

Real concepts::MapTetrahedron3d::scy_
private

Right border of the y parameter domain.

Definition at line 144 of file elementMaps3D.hh.

◆ scz_

Real concepts::MapTetrahedron3d::scz_
private

Right border of the z parameter domain.

Definition at line 147 of file elementMaps3D.hh.

◆ sz_

uint concepts::MapTetrahedron3d::sz_
private

Length of the parsed formula.

Definition at line 138 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