src/ mesh/conformalVoronoiMesh - all the meshing. See separate section below. polyMeshGeometry: - disabled tetquality check on face-center decomp tet. Check only minTetDecomp tet. limits face filtering if enabled. So cv3d can generate neg. (face-centre decomp) tets but pyramid volumes are still positive! indexedOctree: - findSphere routine closedTriSurfaceMesh : triSurface which is defined closed even though topologically it isn't. searchableSurface : - bounds_ member data - bool overlaps() const routine searchableSurfaces, searhcableSurfacesQueries : - findNearestIntersection routine - bounds routines surfaceFeatures: - trimFeatures function returns trimmed bits triSurfaceTools: - surfaceSide. the edge code is irrelevant. Use dev bits. indexedOctree: - findSphere polyMeshTetDecomposition: - disabled face-centre tet quality check (but kept minTetDecomp) polyMesh.C: - read cell centres if present. Can be scrapped. Not useful. Does not write cell centres, does not do decomposition, reconstruction, moving meshes. primitiveMesh: - overrideCellCentres triangleI.H: - stabilised triangle quality. Ok. memInfo: - added I/O operators. Useful. distributedTrisurfaceMesh: - additional reduce on boundBox. Can be removed only on the one constructed from boundBox (line 2300) Utilities/ cvMesh: - top level mesher checkMesh: - override cellCentres. Remove if the polyMesh stuff gets removed. surfaceCheck: - moved triSurface quality into triangle. Use cvm. surfaceBooleanFeatures: - new application. Determines features straight from intersection. More stable than surfaceBooleanOp. Used to e.g. get the features between the wheels and wind tunnel. So if surfaceBooleanOp fails: - use this to extract features - use snappyHexMesh to defeature - use cvMesh with extracted features This does not work very well! Since there might still be overlapping bits of triSurface that will be meshed. surfaceFeatureExtract: - uses cgal only for curvature calculation. See cgal. - writes a triSurfaceField of 'curvature' and 'internal closeness' and 'external closeness'. This is just a normal intersection, not a nearest point. These fields get used by cvMesh. Or not yet - is part of proposal to seed points according to curvature. - detects features that are near? surfaceSplitByTopology: - for fuel tank of Brawn. Detects baffles (markZones) and splits it accordingly. conformalVoronoiMesh/ -------------------- - Make sure the surface does not have any sliver triangles. These are hard to get the surface normal correct for so might cause bleeding. - Use surfaceCheck to find out triangle quality and size of smallest edges - Use surfaceClean .. 1e-5 .. to get rid of any edges < 1e-5m. - If you get bleeding you might see in face filtering: ... cells with with zero or one non-boundary face : 1 ... Initial check before face collapse, found 48 bad quality faces but this was real - the cell that got created inside the cone and sphere by the bad triangle was actually attached to a lot of faces. This screwed up the subsequent filtering as it stopped too early. I ran: surfaceClean coneAndSphere.obj 1e-5 coneAndSphere_clean.obj and re-ran with that surface and got ... cells with with zero or one non-boundary face : 0 ... Initial check before face collapse, found 0 bad quality faces and the bad cells inside are gone. That group of cells would be picked up at the end of the meshing as the cvMesh_remainingProtrusions cellSet which can be deleted.