concepts::MapTetrahedron3d Class Reference
A 3D element map for a tetrahedron. More...
#include <elementMaps3D.hh>
Public Member Functions | |
MapTetrahedron3d * | clone () 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... | |
uchar * | map_ |
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 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:
- Collapse the top face against the 2 direction.
- Collapse the resulting egde against the 1 direction.
- 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]
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
-
map The element map for this tetrehdron as a string, x, y and z are the allowed variables, the component are separated by a comma. scX The range of x is [0, scX]. scY The range of y is [0, scY]. scZ The range of z is [0, scZ].
◆ MapTetrahedron3d() [2/3]
Constructor.
Takes the four physical corners of the tetrahedron and computes the element map: with , where and .
◆ MapTetrahedron3d() [3/3]
concepts::MapTetrahedron3d::MapTetrahedron3d | ( | const MapTetrahedron3d & | map | ) |
Copy constructor.
◆ ~MapTetrahedron3d()
|
inline |
Definition at line 91 of file elementMaps3D.hh.
Member Function Documentation
◆ clone()
|
inline |
Returns a copy of the map.
Definition at line 129 of file elementMaps3D.hh.
◆ info()
|
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()
|
inline |
Returns the jacobian.
Definition at line 123 of file elementMaps3D.hh.
◆ operator()()
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 ( ) onto the unit simplex ( ) using , and .
- Returns
- Parameters
-
x y z
Definition at line 109 of file elementMaps3D.hh.
◆ operator=()
|
private |
Private assignement operator.
Member Data Documentation
◆ B_
|
private |
Computed map, matrix part.
Definition at line 150 of file elementMaps3D.hh.
◆ b_
|
private |
Computed map, vector part.
Definition at line 153 of file elementMaps3D.hh.
◆ map_
|
private |
Parsed formula for the map.
Definition at line 135 of file elementMaps3D.hh.
◆ scx_
|
private |
Right border of the x parameter domain.
Definition at line 141 of file elementMaps3D.hh.
◆ scy_
|
private |
Right border of the y parameter domain.
Definition at line 144 of file elementMaps3D.hh.
◆ scz_
|
private |
Right border of the z parameter domain.
Definition at line 147 of file elementMaps3D.hh.
◆ 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:
- geometry/elementMaps3D.hh