|
double | reference_points (const std::size_t &i, const std::size_t &j) const |
|
template<typename Point > |
bool | is_contained (const Point &p, const double tol) const |
|
template<typename Point , typename Points > |
bool | solve_inverse (const Point &x, Point &xi, const Points &points, const double tol=1.e-6) const |
|
template<typename Point , typename Points > |
Point & | evaluate (const Point &p, const Points &points, Point &f) const |
|
template<typename Point , typename Field > |
double | evaluate_scalar_field (const Point &p, const Field &field) const |
|
template<typename Field , typename Points > |
double | integrate_scalar_field (const Points &p, const Field &field_values) const |
|
template<typename Point , typename Points > |
Matrix & | jacobian (const Point &p, const Points &, Matrix &J) const |
|
template<typename _Matrix>
class moab::element_utility::Quadratic_hex_map< _Matrix >
Definition at line 51 of file quadratic_hex_map.hpp.
template<typename _Matrix >
template<typename Point , typename Points >
Definition at line 118 of file quadratic_hex_map.hpp.
120 const double error_tol_sqr = tol * tol;
121 Point delta( 3, 0.0 );
124 vec_subtract( delta, x );
125 std::size_t num_iterations = 0;
126 #ifdef QUADRATIC_HEX_DEBUG
127 std::stringstream ss;
129 ss << x[0] <<
", " << x[1] <<
", " << x[2] << std::endl;
131 for(
int i = 0; i < 8; ++i )
133 ss << points[i][0] <<
", " << points[i][1] <<
", " << points[i][2] << std::endl;
137 while( normsq( delta ) > error_tol_sqr )
139 #ifdef QUADRATIC_HEX_DEBUG
140 ss <<
"Iter #: " << num_iterations <<
" Err: " << sqrt( normsq( delta ) ) <<
" Iterate: ";
141 ss << xi[0] <<
", " << xi[1] <<
", " << xi[2] << std::endl;
143 if( ++num_iterations >= 5 )
149 double det = moab::Matrix::determinant3( J );
150 if( fabs( det ) < 1.e-10 )
152 #ifdef QUADRATIC_HEX_DEBUG
153 std::cerr << ss.str();
155 #ifndef QUADRATIC_HEX_DEBUG
156 std::cerr << x[0] <<
", " << x[1] <<
", " << x[2] << std::endl;
158 std::cerr <<
"inverse solve failure: det: " << det << std::endl;
163 vec_subtract( delta, x );
References moab::element_utility::Quadratic_hex_map< _Matrix >::evaluate(), moab::Matrix::inverse(), and moab::element_utility::Quadratic_hex_map< _Matrix >::jacobian().
Referenced by moab::element_utility::Quadratic_hex_map< _Matrix >::operator()().