41 template <
typename TAAPos>
54 template <
typename TAAPos>
69 if (sideLength02 < thresholdRatio * sideLength13)
71 if (sideLength13 < thresholdRatio * sideLength02)
79 template <
typename TAAPos>
97 template <
typename TAAPos>
116 number ratio = width ? 2.0*length/width : std::numeric_limits<number>::max();
119 if (ratio < thresholdRatio)
123 if (ratio*thresholdRatio > 1)
131 template <
typename TAAPos>
156 if (length1 < thresholdRatio * length2 || length1 < thresholdRatio * length3)
159 if (length2 < thresholdRatio * length1 || length2 < thresholdRatio * length3)
162 if (length3 < thresholdRatio * length1 || length3 < thresholdRatio * length2)
189 template <
typename TAAPos>
213 template <
typename TAAPos>
220 std::vector<Vertex*>& sidesOut
227 template <
typename TAAPos>
234 std::vector<Edge*>& sidesOut
251 sidesOut.push_back(assEd[1]);
252 sidesOut.push_back(assEd[3]);
261 sidesOut.push_back(assEd[0]);
262 sidesOut.push_back(assEd[2]);
272 template <
typename TAAPos>
279 std::vector<Face*>& sidesOut
295 sidesOut.push_back(side);
299 sidesOut.push_back(side);
307 sidesOut.push_back(side);
311 sidesOut.push_back(side);
315 sidesOut.push_back(side);
336 sidesOut.push_back(side);
340 sidesOut.push_back(side);
348 sidesOut.push_back(side);
352 sidesOut.push_back(side);
360 sidesOut.push_back(side);
364 sidesOut.push_back(side);
379 template <
typename TAAPos>
386 std::vector<Edge*>& longEdges
393 template <
typename TAAPos>
400 std::vector<Edge*>& longEdges
407 template <
typename TAAPos>
414 std::vector<Edge*>& longEdges
432 << assEd.
size() <<
" found.");
434 longEdges.reserve(longEdges.size() + 6);
435 longEdges.push_back(assEd[0]);
436 longEdges.push_back(assEd[1]);
437 longEdges.push_back(assEd[2]);
438 longEdges.push_back(assEd[6]);
439 longEdges.push_back(assEd[7]);
440 longEdges.push_back(assEd[8]);
452 << assEd.
size() <<
" found.");
454 longEdges.reserve(longEdges.size() + 3);
455 longEdges.push_back(assEd[3]);
456 longEdges.push_back(assEd[4]);
457 longEdges.push_back(assEd[5]);
482 << assEd.
size() <<
" found.");
484 longEdges.reserve(longEdges.size() + 8);
485 longEdges.push_back(assEd[1]);
486 longEdges.push_back(assEd[3]);
487 longEdges.push_back(assEd[4]);
488 longEdges.push_back(assEd[5]);
489 longEdges.push_back(assEd[6]);
490 longEdges.push_back(assEd[7]);
491 longEdges.push_back(assEd[8]);
492 longEdges.push_back(assEd[11]);
504 << assEd.
size() <<
" found.");
506 longEdges.reserve(longEdges.size() + 8);
507 longEdges.push_back(assEd[0]);
508 longEdges.push_back(assEd[2]);
509 longEdges.push_back(assEd[4]);
510 longEdges.push_back(assEd[5]);
511 longEdges.push_back(assEd[6]);
512 longEdges.push_back(assEd[7]);
513 longEdges.push_back(assEd[8]);
514 longEdges.push_back(assEd[10]);
526 << assEd.
size() <<
" found.");
528 longEdges.reserve(longEdges.size() + 8);
529 longEdges.push_back(assEd[0]);
530 longEdges.push_back(assEd[1]);
531 longEdges.push_back(assEd[2]);
532 longEdges.push_back(assEd[3]);
533 longEdges.push_back(assEd[8]);
534 longEdges.push_back(assEd[9]);
535 longEdges.push_back(assEd[10]);
536 longEdges.push_back(assEd[11]);
548 << assEd.
size() <<
" found.");
550 longEdges.reserve(longEdges.size() + 4);
551 longEdges.push_back(assEd[4]);
552 longEdges.push_back(assEd[5]);
553 longEdges.push_back(assEd[6]);
554 longEdges.push_back(assEd[7]);
566 << assEd.
size() <<
" found.");
568 longEdges.reserve(longEdges.size() + 4);
569 longEdges.push_back(assEd[1]);
570 longEdges.push_back(assEd[3]);
571 longEdges.push_back(assEd[9]);
572 longEdges.push_back(assEd[11]);
584 << assEd.
size() <<
" found.");
586 longEdges.reserve(longEdges.size() + 4);
587 longEdges.push_back(assEd[0]);
588 longEdges.push_back(assEd[2]);
589 longEdges.push_back(assEd[8]);
590 longEdges.push_back(assEd[10]);
virtual Vertex * vertex(size_t index) const
Definition: grid_objects_2d.h:265
Base-class for edges.
Definition: grid_base_objects.h:397
Faces are 2-dimensional objects.
Definition: grid_base_objects.h:510
Manages the elements of a grid and their interconnection.
Definition: grid.h:132
Vertex::side * get_side(Vertex *obj, size_t side)
This method returns the i-th side of an Edge, Face or Volume.
Definition: grid.cpp:1170
void associated_elements_sorted(traits< Vertex >::secure_container &elemsOut, TElem *e)
Puts all elements of type TAss which are contained in 'e' into elemsOut in the reference elements ord...
Definition: grid_impl.hpp:503
A volume element with 6 quadrilateral sides.
Definition: grid_objects_3d.h:227
virtual Vertex * vertex(size_t index) const
Definition: grid_objects_3d.h:243
Container which holds an array of pointers.
Definition: pointer_const_array.h:84
size_t size() const
returns the size of the associated array.
Definition: pointer_const_array_impl.hpp:106
A volume element with 2 triangle and 3 quadrilateral sides.
Definition: grid_objects_3d.h:360
a face with four points.
Definition: grid_objects_2d.h:323
Volumes are 3-dimensional objects.
Definition: grid_base_objects.h:754
UG_API number VertexDistance(Vertex *v0, Vertex *v1, TAAPos &aaPos)
Returns the distance between two vertices.
Definition: vertex_util_impl.hpp:54
#define UG_COND_THROW(cond, msg)
UG_COND_THROW(cond, msg) : performs a UG_THROW(msg) if cond == true.
Definition: error.h:61
double number
Definition: types.h:124
AnisotropyState is_anisotropic(Edge *elem, const TAAPos &aaPos, number thresholdRatio)
Definition: anisotropy_util_impl.h:43
AnisotropyState
Definition: anisotropy_util.h:48
@ HEX_SHORTY
Definition: anisotropy_util.h:55
@ QUAD_SHORTX
Definition: anisotropy_util.h:50
@ HEX_SHORTXZ
Definition: anisotropy_util.h:58
@ QUAD_SHORTY
Definition: anisotropy_util.h:51
@ HEX_SHORTX
Definition: anisotropy_util.h:54
@ PRISM_LONG
Definition: anisotropy_util.h:53
@ HEX_SHORTXY
Definition: anisotropy_util.h:57
@ PRISM_FLAT
Definition: anisotropy_util.h:52
@ HEX_SHORTYZ
Definition: anisotropy_util.h:59
@ ISOTROPIC
Definition: anisotropy_util.h:49
@ HEX_SHORTZ
Definition: anisotropy_util.h:56
AnisotropyState long_edges_of_anisotropic_elem(Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Edge * > &longEdges)
Definition: anisotropy_util_impl.h:381
AnisotropyState close_sides_of_anisotropic_elem(Edge *elem, Grid &grid, const TAAPos &aaPos, number thresholdRatio, std::vector< Vertex * > &sidesOut)
Definition: anisotropy_util_impl.h:215