|
template<typename Iterator , int spacedim> |
double | objective_function (const Iterator &object, const Point< spacedim > &object_mid_point) |
|
template<typename Iterator > |
Point< Iterator::AccessorType::space_dimension > | get_face_midpoint (const Iterator &object, const unsigned int f, std::integral_constant< int, 1 >) |
|
template<typename Iterator > |
Point< Iterator::AccessorType::space_dimension > | get_face_midpoint (const Iterator &object, const unsigned int f, std::integral_constant< int, 2 >) |
|
template<typename Iterator > |
Point< Iterator::AccessorType::space_dimension > | get_face_midpoint (const Iterator &object, const unsigned int f, std::integral_constant< int, 3 >) |
|
template<typename Iterator > |
double | minimal_diameter (const Iterator &object) |
|
template<typename Iterator > |
bool | fix_up_object (const Iterator &object) |
|
template<int dim, int spacedim> |
void | fix_up_faces (const typename ::Triangulation< dim, spacedim >::cell_iterator &cell, std::integral_constant< int, dim >, std::integral_constant< int, spacedim >) |
|
template<typename Iterator >
double GridTools::internal::FixUpDistortedChildCells::minimal_diameter |
( |
const Iterator & |
object | ) |
|
|
private |
Compute the minimal diameter of an object by looking for the minimal distance between the mid-points of its faces. This minimal diameter is used to determine the step length for our grid cell improvement algorithm, and it should be small enough that the point moves around within the cell even if it is highly elongated – thus, the diameter of the object is not a good measure, while the minimal diameter is. Note that the algorithm below works for both cells that are long rectangles with parallel sides where the nearest distance is between opposite edges as well as highly slanted parallelograms where the shortest distance is between neighboring edges.
Definition at line 2488 of file grid_tools.cc.