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.
returning validCollapse as the status of the faceCollapse was wrong,
it didn't necessarily mean the face was collapsed.
Adding mpre filtering controls to cvContol and using them in the
filtering functions.
Removing minimumEdgeLength(const point& pt) - not needed, always using
the stored vertex size.
Moving removeUnusedPoints to calcDualMesh from
createFacesOwnerNeighbourAndPatches to allow the latter to be used to
build an intermediate mesh.
Adding the use of motionSmoother::checkMesh (as per snappyHexMesh) to
a new function: checkPolyMeshQuality. Will be the analysis component
of a filtering back-tracking scheme.
longest edge as the collapse direction. Discovered that, for long
thin faces, det(J)*aspectRatio^2 ~= 0.35. Could probably analyse this
to see what the actual value is, but it gives a good empirical measure
for the moment.
Using the middle of the line of all the projected vertices as the
split and applying the guardFraction- gives better handling of
triangles.
Making collapseFace use the cvMeshControls minimumEdgeLengthCoeff
value.
aggressive to take out line-like faces. Normalising the inertia tensor
is essential for small faces to avoid the calculation of eigenvectors
from falling off the bottom of SMALL. Normalsing by mag(J) instead of
cmptMax(J).
Moving face point merge, surface smoothing and face filtering
do-while loops to seprate functions.
Implementing point grouping and collapsing for collapseFaceToEdge.
- Rewrote globalPoints to use globalIndex class so now only transfers
single label instead of labelPair
- Added addressing in globalMeshData
- from coupled master points to slave points
- ,, edges ,, edges
- from coupled points (master or slave) to uncoupled boundary faces
- ,, ,, cells
- See test/globalMeshData for simple test
Scotch is now built using its own build system which builds
an additional metis.h which conflicts with the metis one so
to have separate include directory settings we also need separate
Make/ structures.
Previously Fstreams had stdStream() as a public member and the other
streams had stream() as a protected member.
All serial streams now have public method stdStream() and the stream()
method has been eliminated. This is not only more consistent, but also
avoids confusion (for the programmer, not the compiler) with the
ITstream::stream() method.
http://www.geometrictools.com/LibPhysics/RigidBody/RigidBody.html
in surfaceInertia utility. Allows calculation of shell or solid
properties of a triSurface, with optionally specified volumetric or
surface density. Default behaviour is to calculate inertia around
centre of mass, with option to specify reference point.
Various test surfaces supplied and tested against analytical results.
- Previously had just 'Warning' instead of '::Foam::Warning', which
meant that an identically named class method would inadvertently be
used - resulting in a compile failure.
When faceZones are present one has to decide whether to have zone faces
only on the edge of cellZones or also freestanding.
The setting for minMedialAxisAngle was corrected since the calculation
has also been corrected.
According to the openmpi release information:
- Use GNU Libtool 2.2.6b to build Open MPI, which updates the
embedded "libltdl" library to fix a potential security
vulnerability. There are no other changes compared to Open MPI
v1.3.4.
For development purposes it should thus be adequate to simply
( cd $WM_THIRD_PARTY_DIR && mv openmpi-1.3.4 openmpi-1.4 )
if you don't wish to recompile things.