moab
|
Class representing a 3-D mapping function (e.g. shape function for volume element) More...
Public Member Functions | |
virtual CartVect | center_xi () const =0 |
Return $ $ corresponding to logical center of element. | |
virtual CartVect | evaluate (const CartVect &xi) const =0 |
Evaluate mapping function (calculate $ x = F($ )$ ) | |
virtual Matrix3 | jacobian (const CartVect &xi) const =0 |
Evaluate Jacobian of mapping function. | |
bool | solve_inverse (const CartVect &x, CartVect &xi, double tol) const |
Evaluate inverse of mapping function (calculate $ = F^-1($ x)$ ) |
Class representing a 3-D mapping function (e.g. shape function for volume element)
Definition at line 1432 of file GeomUtil.cpp.
virtual CartVect moab::GeomUtil::VolMap::center_xi | ( | ) | const [pure virtual] |
Return $ $ corresponding to logical center of element.
Implemented in moab::GeomUtil::LinearHexMap.
virtual CartVect moab::GeomUtil::VolMap::evaluate | ( | const CartVect & | xi | ) | const [pure virtual] |
Evaluate mapping function (calculate $ x = F($ )$ )
Implemented in moab::GeomUtil::LinearHexMap.
virtual Matrix3 moab::GeomUtil::VolMap::jacobian | ( | const CartVect & | xi | ) | const [pure virtual] |
Evaluate Jacobian of mapping function.
Implemented in moab::GeomUtil::LinearHexMap.
bool moab::GeomUtil::VolMap::solve_inverse | ( | const CartVect & | x, |
CartVect & | xi, | ||
double | tol | ||
) | const |
Evaluate inverse of mapping function (calculate $ = F^-1($ x)$ )
Definition at line 1444 of file GeomUtil.cpp.
{ const double error_tol_sqr = tol*tol; double det; xi = center_xi(); CartVect delta = evaluate(xi) - x; Matrix3 J; while (delta % delta > error_tol_sqr) { J = jacobian(xi); det = J.determinant(); if (det < std::numeric_limits<double>::epsilon()) return false; xi -= J.inverse(1.0/det) * delta; delta = evaluate( xi ) - x; } return true; }