ORGANIZE_DistanceToBoundary_Version

define version number for distance-to-boundary computations

Default: ORGANIZE_DistanceToBoundary_Version = 3 The newest version is ORGANIZE_DistanceToBoundary_Version = 4. It works the same way as version 3. Additionally, it tries to remove some bugs regarding DROPLETPHASE. For DROPLETPHASE points:
  • Allow touch down to boundaries ONLY if a point actually penetrated the wall.
  • No removal if a point is too far behind a wall, always try to reproject it.
Note: ORGANIZE_DistanceToBoundary_Version = 4 has to be set if %TOUCH_reflection% boundaries are used for DROPLETPHASE.

Additional Options for Versions 3 and 4

ORGANIZE_DistanceToBoundary_Version = (3, radiusBig, radiusSmall, TrianglePreselection, TouchDownIrreduciblePoints )
Default: ORGANIZE_DistanceToBoundary_Version = (3, 100, 50, 2, 0 )
Entry Description
radiusBig integer value to be GIVEN IN PERCENT!
A point "i" looks within a ball of radius (radiusBig/100)*SMOOTH_LENGTH for boundary elements (BE) like trias, quads, etc., and computes the boundary distance based on the found BE-list.
Neighbor points of "i" closer than (radiusBig/100 - radiusSmall/100)*SMOOTH_LENGTH use the same neighbor list. This saves a lot of compution time as retrieving the BE-list from the search tree might be costly if the geometry is of much finer resolution than the local SMOOTH_LENGTH. The computed distance is valid only if it is smaller than (radiusSmall/100)*SMOOTH_LENGTH.
radiusSmall integer value to be GIVEN IN PERCENT!
effective radius of BE-search and distance-to-boundary computation
TrianglePreselection = 2, then use a preselection of triangles of the list that is delivered from the triangle search tree. The preselection is based on the Cartesian boxes of the triangles.
= 3, then use the preselection and, additionally, try to use a faster implementation (vectorized loop). First tests on INTEL processors show that this does not speed up the computation.
Put a minus sign in front of this entry in order to additionally trigger a time measurement for the distance-point-to-triangle computations, appearing in the secreen output.
TouchDownIrreduciblePoints = 1, then allow touch down of irreducible points (Y%ind_MARKER% > 0) to regular boundaries (such as walls).
= 0, then strictly push back irreducible points such that touch down to walls is not possible. Handle this option with care: if all points are irreducible, no touch down of a free surface to walls would be possible.

Specific Examples for radiusBig and radiusSmall

ORGANIZE_DistanceToBoundary_Version = (3, 100, 100, 0) -> original idea of deprecated version 2, slighly better in performance ORGANIZE_DistanceToBoundary_Version = (3, 50, 50, 0) -> keeps the neighbor lists smaller than 100, 100 resulting in much less computational effort, but the BE-list has to be computed for every point ORGANIZE_DistanceToBoundary_Version = (3, 100, 50, 0) -> BE-list has to be computed for only a few points, exclusion of points that do not need explicit distance computation ORGANIZE_DistanceToBoundary_Version = (3, 60, 30, 0) -> can be even more efficient, but make sure that MESHFREE points do not move more than 30 percent of the SMOOTH_LENGTH per time step
Here should be a picture
Schematic representation of the interaction of radiusBig and radiusSmall.