Targeting all building and linking to CGAL and boost installed to
$WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER.
Reverting to CGAL 3.5.1, waiting for 3.6.1 - problem in 3.6 with boost
1.42.0.
Removing MPFR_HOME variable, not needed as include and link is done
with the $WM_THIRD_PARTY_DIR/platforms/$WM_ARCH$WM_COMPILER_ARCH
versions.
the fact that some points are on the boundary.
When there is more than one boundary point on the face, it is
arbitrarily picking one, which can distort the surface. Need to give
information about which points are features and decide how to
arbitrate when multiple boundary or feature points are seeking to be
collapsed together.
closer than SMALL when a pointFile is read (and perhaps other
situations). When this is detected, deleting one or both of the points.
Also adding a check that both Delaunay vertices are internal before
looking at them in pointToBeRetained, otherwise there is a risk of a
seg-fault or undefined behaviour.
to a timestep. Passing an instance to the writeMesh functions rather
than a bool.
Adding infrastructure to record and use the fact that some dual
vertices are on the surface, so when points are merged and faces are
collapsed, the boundary points are preferred.
default whern surface does not support volumeType.
BUG: conformalVoronoiMesh. Making test "totalHits >= hitLimit" rather than
"totalHits = hitLimit" to be strictly consistent and always trigger
the iteration termination message.
No longer reading or writing edgeDirections - calculating them on
read.
Properly initialising data in featureEdgeMesh constructor.
Fixing use of extend for treeBoundBox.
Removing writeObj from featureEdgeMesh constructor - calling
explicitly from surfaceFeatureExtract.
Some tools now output sets at the pointsInstance (if relating to geometry),
some at the facesInstance (if relating to topology).
So when loading them we now search for them from current time down
to facesInstance. They cannot be beyond facesInstance.
Adapted Time::findInstance to take optional limiting instance. Adapted
topoSet to use this. Adapted all uses of IOobjectList on sets to do the
same.
square. The subdeterminants in the eigenvector calculation in
tensor.C ran off the bottom of SMALL. Handling by identifying the
longest edge as the collapseAxis.
Adding function to return the index of the longest edge for a face.
a dual vertex has been limited.
Allowing the face filtering to continue after warning that mesh
quality cannot be satisfied based on a control Switch. The filtering
terminates when the number of wrongFaces is less than or equal to the
intial number.
There is a possiblity that the filtering will never converge in this
mode (or in fact, any other). For example, if a face is on the brink
of being "wrong" and a face motion on the other side of the cell moves
the cell centre enough to make it "wrong", then the limiting mechanism
won't be able to pick this up and stop it, unless limiting is applied
to all points of all cells that are connected to a point that is on a
wrong face. This can be done if a vertex on a face has been limited
many (say > 4) times.
check, identifying faces that have bad quality, identifying the points
that support the faces, and 'limiting' them.
Wrong faces are also those that are attached to a cell with 1-3 faces.
At each iteration of filtering, the Delaunay cells are all reindexed.
Now a separate function.
Currently 'limiting' means: do not collapse any face that has any
vertex that has been limited at all and do not move a vertex to the
boundary during the surface smooth if it has been limited. This is
the most agressive form of limiting and leaves faces in the mesh that
might be safely removed with an less aggressive filter.
Limiting of all points connected to a cell which has a limited
point could be used (comment out code).
Removed some redundant code from indexedCell.
area faces). The intention is that if checkMesh returns a non zero
number of bad faces, then no amount of collapsing and backtracking can
satisfy the criteria (as long as the value of mergeClosenessCoeff is
appropriate - a more rigorous zero area face collapse may be
appropriate) and the mesher will halt (or at least not filter at
all). The mesh quality criteria and the surface conformation controls
can be altered and the internalDelaunayVertices read in to try again,
or more cell size resolution can be applied in areas where problems
are occuring.
collapsed to a single edge had their vertices aligned and were just
not created. This causes topolgical nonclosedness, and can cause
geometrical nonclosedness - not a good plan.
Fixed return logic error in smoothSurfaceDualFaces.
Not moving points for deferredCollapseFaces during collapseFace.
Gives the ability to make a a decision about the face at the polyMesh
level and only move the points then.
Adding function for extracting the owner and neighbour for a dual
face, and a bool on when to reverse.
Returning faceCollapseMode from collapseFace to allow decisions to be
made.
Adding removeUnusedCells function to get rid of cells with no faces.
Adding an early collapse to point option for faces that are 0.2 of the
maxCollapseFaceToPointSideLengthCoeff.
Adding a HashSet<labelPair... to record the faces that are to be
collapsed to edges. Using owner and neighbour labels to index. WIP
for all mentions.
Decisions to skip faces with an already indexed point was wrong, the
continue would be operating on the while loop, not the for loop over
the face, adding a bool to be used afterwards.
limitToQuadsOrTris logic would not work when it was false, it would
never operate regardless of the size of the face.