Class documentation of Concepts

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

#include <elementMaps3D.hh>

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

Public Member Functions

 MapTetrahedron3d (char *map, Real scX, Real scY, Real scZ)
 
 MapTetrahedron3d (Real3d vtx0, Real3d vtx1, Real3d vtx2, Real3d vtx3)
 
 MapTetrahedron3d (const MapTetrahedron3d &map)
 Copy constructor.
 
Real3d operator() (Real x, Real y, Real z) const
 
Real jacobian () const
 Returns the jacobian.
 
MapTetrahedron3dclone () const
 Returns a copy of the map.
 
std::ostream & info (std::ostream &os) const
 Returns information in an output stream.
 

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/2]

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/2]

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()

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::MapHexahedron3d, concepts::MappingHexahedron3d, and concepts::PartMappingHexahedron3d.

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.


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