Implements operations for modifying the determinant of the Jacobian. More...
#include <SimplexModDet.h>
Public Types | |
| typedef T | Number |
| The number type. | |
Static Public Member Functions | |
Mathematical functions | |
| static Number | getEpsilon () |
| Return epsilon. | |
| static Number | getDelta (const Number minDeterminant) |
| Return delta. | |
| static Number | getH (Number determinant, Number minDeterminant) |
| Return a number that is close to the determinant when it is positive and small and positive when the determinant is negative. | |
Implements operations for modifying the determinant of the Jacobian.
| T | is the number type. By default it is double. |
This class cannot be constructed. Its member data and public member functions are static.
The Modified Determinant
See the documentation of the geom::SimplexJac class for information on the Jacobian matrix of a simplex. When the content of a simplex vanishes, its Jacobian matrix becomes singular. That is, its determinant vanishes. This presents a problem for some algebraic quality metrics. The condition number metric and the mean ratio metric (implemented in geom::SimplexCondNum and geom::SimplexMeanRatio) become singular as the content vanishes. In order to define these metrics for simplices with vanishing and negative content, we use a modified value
of the Jacobian determinant
which has the following properties:
is close to
when
is positive and
.
is small and positive when the determinant is negative.
is differentiable.Let
be a number that is a little bigger than the machine precision. (We use 100 times the machine precision.) Define
The modified value of the determinant is
Usage
Consider a complex of simplices. (Perhaps the tetrahedra that are adjacent to a vertex.) Let minDeterminant be the minimum determinant of the simplices in the complex and determinant be the determinant of a given simplex. h(determinant,minDeterminant) returns the modified determinant. If the minimum determinant is no less than
then h() returns the un-modified determinant.
| static Number SimplexModDet< T >::getH | ( | Number | determinant, | |
| Number | minDeterminant | |||
| ) | [static] |
Return a number that is close to the determinant when it is positive and small and positive when the determinant is negative.
be the value of epsilon() and
be the Jacobian determinant. Define
1.6.3