moab
moab::GeomUtil::VolMap Class Reference

Class representing a 3-D mapping function (e.g. shape function for volume element) More...

Inheritance diagram for moab::GeomUtil::VolMap:
moab::GeomUtil::LinearHexMap

List of all members.

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

Detailed Description

Class representing a 3-D mapping function (e.g. shape function for volume element)

Definition at line 1432 of file GeomUtil.cpp.


Member Function Documentation

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;
}

The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines