Loading web-font TeX/Math/Italic
Mesh Oriented datABase  (version 5.5.1)
An array-based unstructured mesh library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
moab::GeomUtil::VolMap Class Referenceabstract

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

+ Inheritance diagram for moab::GeomUtil::VolMap:

Public Member Functions

virtual CartVect center_xi () const =0
 Return \vec \xi corresponding to logical center of element. More...
 
virtual CartVect evaluate (const CartVect &xi) const =0
 Evaluate mapping function (calculate \vec x = F($\vec \xi) ) More...
 
virtual Matrix3 jacobian (const CartVect &xi) const =0
 Evaluate Jacobian of mapping function. More...
 
bool solve_inverse (const CartVect &x, CartVect &xi, double tol) const
 Evaluate inverse of mapping function (calculate \vec \xi = F^-1($\vec x) ) More...
 

Detailed Description

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

Definition at line 1427 of file GeomUtil.cpp.

Member Function Documentation

◆ center_xi()

virtual CartVect moab::GeomUtil::VolMap::center_xi ( ) const
pure virtual

Return \vec \xi corresponding to logical center of element.

Implemented in moab::GeomUtil::LinearHexMap.

Referenced by solve_inverse().

◆ evaluate()

virtual CartVect moab::GeomUtil::VolMap::evaluate ( const CartVect xi) const
pure virtual

Evaluate mapping function (calculate \vec x = F($\vec \xi) )

Implemented in moab::GeomUtil::LinearHexMap.

Referenced by solve_inverse().

◆ jacobian()

virtual Matrix3 moab::GeomUtil::VolMap::jacobian ( const CartVect xi) const
pure virtual

Evaluate Jacobian of mapping function.

Implemented in moab::GeomUtil::LinearHexMap.

Referenced by solve_inverse().

◆ solve_inverse()

bool moab::GeomUtil::VolMap::solve_inverse ( const CartVect x,
CartVect xi,
double  tol 
) const

Evaluate inverse of mapping function (calculate \vec \xi = F^-1($\vec x) )

Definition at line 1440 of file GeomUtil.cpp.

1441  { 1442  const double error_tol_sqr = tol * tol; 1443  double det; 1444  xi = center_xi(); 1445  CartVect delta = evaluate( xi ) - x; 1446  Matrix3 J; 1447  while( delta % delta > error_tol_sqr ) 1448  { 1449  J = jacobian( xi ); 1450  det = J.determinant(); 1451  if( det < std::numeric_limits< double >::epsilon() ) return false; 1452  xi -= J.inverse() * delta; 1453  delta = evaluate( xi ) - x; 1454  } 1455  return true; 1456  }

References center_xi(), moab::Matrix3::determinant(), evaluate(), moab::Matrix3::inverse(), and jacobian().

Referenced by moab::GeomUtil::nat_coords_trilinear_hex().


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