From a3b126318468abd97c0d6ef2457cda6669f8849f Mon Sep 17 00:00:00 2001 From: graham <g.macpherson@opencfd.co.uk> Date: Fri, 18 Feb 2011 16:17:49 +0000 Subject: [PATCH] ENH: Using enhancedFeatureEdgeMesh. --- .../surfaceBooleanFeatures.C | 13 ++-- .../surfaceFeatureExtract.C | 6 +- .../conformalVoronoiMesh.C | 62 +++++++++++-------- .../conformalVoronoiMesh.H | 14 ++--- ...alVoronoiMeshFeaturePointSpecialisations.C | 20 +++--- .../conformationSurfaces.C | 16 ++--- .../conformationSurfaces.H | 11 ++-- .../conformationSurfacesI.H | 2 +- 8 files changed, 79 insertions(+), 65 deletions(-) diff --git a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C index 446ee70619f..cec4826f6ef 100644 --- a/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C +++ b/applications/utilities/surface/surfaceBooleanFeatures/surfaceBooleanFeatures.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -26,8 +26,9 @@ Application Description - Generates the featureEdgeMesh for the interface between a boolean operation - on two surfaces. Assumes that the orientation of the surfaces is correct: + Generates the extendedFeatureEdgeMesh for the interface between a boolean + operation on two surfaces. Assumes that the orientation of the surfaces is + correct: + if the operation is union or intersection, that both surface's normals (n) have the same orientation with respect to a point, i.e. surfaces and b @@ -70,7 +71,7 @@ Description #include "triSurface.H" #include "argList.H" #include "Time.H" -#include "featureEdgeMesh.H" +#include "extendedFeatureEdgeMesh.H" #include "triSurfaceSearch.H" #include "OFstream.H" #include "booleanSurface.H" @@ -420,11 +421,11 @@ int main(int argc, char *argv[]) // Flat, open or multiple edges are assumed to be impossible // Region edges are not explicitly supported by surfaceIntersection - featureEdgeMesh feMesh + extendedFeatureEdgeMesh feMesh ( IOobject ( - sFeatFileName + ".featureEdgeMesh", + sFeatFileName + ".extendedFeatureEdgeMesh", runTime.constant(), "featureEdgeMesh", runTime, diff --git a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C index 1ce3f4032c2..3078920c8d4 100644 --- a/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C +++ b/applications/utilities/surface/surfaceFeatureExtract/surfaceFeatureExtract.C @@ -348,7 +348,7 @@ int main(int argc, char *argv[]) argList::addBoolOption ( "writeObj", - "write featureEdgeMesh obj files" + "write extendedFeatureEdgeMesh obj files" ); argList::addOption ( @@ -536,13 +536,13 @@ int main(int argc, char *argv[]) << " internal edges : " << newSet.nInternalEdges() << nl << endl; - // Extracting and writing a featureEdgeMesh + // Extracting and writing a extendedFeatureEdgeMesh extendedFeatureEdgeMesh feMesh ( IOobject ( - sFeatFileName + ".featureEdgeMesh", + sFeatFileName + ".extendedFeatureEdgeMesh", runTime.constant(), "featureEdgeMesh", runTime, diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C index b96d8c52bf8..d7d624d4d9e 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.C @@ -277,7 +277,7 @@ void Foam::conformalVoronoiMesh::insertEdgePointGroups forAll(edgeHits, i) { - const featureEdgeMesh& feMesh + const extendedFeatureEdgeMesh& feMesh ( geometryToConformTo_.features()[featuresHit[i]] ); @@ -301,42 +301,42 @@ void Foam::conformalVoronoiMesh::insertEdgePointGroups void Foam::conformalVoronoiMesh::insertEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { label edgeI = edHit.index(); - featureEdgeMesh::edgeStatus edStatus = feMesh.getEdgeStatus(edgeI); + extendedFeatureEdgeMesh::edgeStatus edStatus = feMesh.getEdgeStatus(edgeI); switch (edStatus) { - case featureEdgeMesh::EXTERNAL: + case extendedFeatureEdgeMesh::EXTERNAL: { insertExternalEdgePointGroup(feMesh, edHit); break; } - case featureEdgeMesh::INTERNAL: + case extendedFeatureEdgeMesh::INTERNAL: { insertInternalEdgePointGroup(feMesh, edHit); break; } - case featureEdgeMesh::FLAT: + case extendedFeatureEdgeMesh::FLAT: { insertFlatEdgePointGroup(feMesh, edHit); break; } - case featureEdgeMesh::OPEN: + case extendedFeatureEdgeMesh::OPEN: { insertOpenEdgePointGroup(feMesh, edHit); break; } - case featureEdgeMesh::MULTIPLE: + case extendedFeatureEdgeMesh::MULTIPLE: { insertMultipleEdgePointGroup(feMesh, edHit); break; } - case featureEdgeMesh::NONE: + case extendedFeatureEdgeMesh::NONE: { break; } @@ -346,7 +346,7 @@ void Foam::conformalVoronoiMesh::insertEdgePointGroup void Foam::conformalVoronoiMesh::insertExternalEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { @@ -380,7 +380,7 @@ void Foam::conformalVoronoiMesh::insertExternalEdgePointGroup void Foam::conformalVoronoiMesh::insertInternalEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { @@ -447,7 +447,7 @@ void Foam::conformalVoronoiMesh::insertInternalEdgePointGroup void Foam::conformalVoronoiMesh::insertFlatEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { @@ -478,7 +478,7 @@ void Foam::conformalVoronoiMesh::insertFlatEdgePointGroup void Foam::conformalVoronoiMesh::insertOpenEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { @@ -488,7 +488,7 @@ void Foam::conformalVoronoiMesh::insertOpenEdgePointGroup void Foam::conformalVoronoiMesh::insertMultipleEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ) { @@ -558,11 +558,14 @@ void Foam::conformalVoronoiMesh::createFeaturePoints() void Foam::conformalVoronoiMesh::insertConvexFeaturePoints() { - const PtrList<featureEdgeMesh>& feMeshes(geometryToConformTo_.features()); + const PtrList<extendedFeatureEdgeMesh>& feMeshes + ( + geometryToConformTo_.features() + ); forAll(feMeshes, i) { - const featureEdgeMesh& feMesh(feMeshes[i]); + const extendedFeatureEdgeMesh& feMesh(feMeshes[i]); for ( @@ -602,11 +605,14 @@ void Foam::conformalVoronoiMesh::insertConvexFeaturePoints() void Foam::conformalVoronoiMesh::insertConcaveFeaturePoints() { - const PtrList<featureEdgeMesh>& feMeshes(geometryToConformTo_.features()); + const PtrList<extendedFeatureEdgeMesh>& feMeshes + ( + geometryToConformTo_.features() + ); forAll(feMeshes, i) { - const featureEdgeMesh& feMesh(feMeshes[i]); + const extendedFeatureEdgeMesh& feMesh(feMeshes[i]); for ( @@ -649,11 +655,14 @@ void Foam::conformalVoronoiMesh::insertConcaveFeaturePoints() void Foam::conformalVoronoiMesh::insertMixedFeaturePoints() { - const PtrList<featureEdgeMesh>& feMeshes(geometryToConformTo_.features()); + const PtrList<extendedFeatureEdgeMesh>& feMeshes + ( + geometryToConformTo_.features() + ); forAll(feMeshes, i) { - const featureEdgeMesh& feMesh(feMeshes[i]); + const extendedFeatureEdgeMesh& feMesh(feMeshes[i]); for ( @@ -678,13 +687,13 @@ void Foam::conformalVoronoiMesh::insertMixedFeaturePoints() { label edgeI = pEds[e]; - featureEdgeMesh::edgeStatus edStatus = + extendedFeatureEdgeMesh::edgeStatus edStatus = feMesh.getEdgeStatus(edgeI); if ( - edStatus == featureEdgeMesh::OPEN - || edStatus == featureEdgeMesh::MULTIPLE + edStatus == extendedFeatureEdgeMesh::OPEN + || edStatus == extendedFeatureEdgeMesh::MULTIPLE ) { Info<< "Edge type " << edStatus @@ -728,11 +737,14 @@ void Foam::conformalVoronoiMesh::constructFeaturePointLocations() { DynamicList<Foam::point> ftPtLocs; - const PtrList<featureEdgeMesh>& feMeshes(geometryToConformTo_.features()); + const PtrList<extendedFeatureEdgeMesh>& feMeshes + ( + geometryToConformTo_.features() + ); forAll(feMeshes, i) { - const featureEdgeMesh& feMesh(feMeshes[i]); + const extendedFeatureEdgeMesh& feMesh(feMeshes[i]); for ( diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H index cc422a40aa5..417eba94e52 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMesh.H @@ -281,42 +281,42 @@ private: //- Call the appropriate function to conform to an edge void insertEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); //- Insert points to conform to an external edge void insertExternalEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); //- Insert points to conform to an internal edge void insertInternalEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); //- Insert points to conform to a flat edge void insertFlatEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); //- Insert points to conform to an open edge void insertOpenEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); //- Insert points to conform to multiply connected edge void insertMultipleEdgePointGroup ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, const pointIndexHit& edHit ); @@ -336,7 +336,7 @@ private: // structure bool insertSpecialisedFeaturePoint ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, label ptI ); diff --git a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshFeaturePointSpecialisations.C b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshFeaturePointSpecialisations.C index 59e920da4f1..3322afc0775 100644 --- a/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshFeaturePointSpecialisations.C +++ b/src/mesh/conformalVoronoiMesh/conformalVoronoiMesh/conformalVoronoiMeshFeaturePointSpecialisations.C @@ -29,7 +29,7 @@ License bool Foam::conformalVoronoiMesh::insertSpecialisedFeaturePoint ( - const featureEdgeMesh& feMesh, + const extendedFeatureEdgeMesh& feMesh, label ptI ) { @@ -48,44 +48,44 @@ bool Foam::conformalVoronoiMesh::insertSpecialisedFeaturePoint label nOpen = 0; label nMultiple = 0; - List<featureEdgeMesh::edgeStatus> allEdStat(pEds.size()); + List<extendedFeatureEdgeMesh::edgeStatus> allEdStat(pEds.size()); forAll(pEds, i) { label edgeI = pEds[i]; - featureEdgeMesh::edgeStatus& eS = allEdStat[i]; + extendedFeatureEdgeMesh::edgeStatus& eS = allEdStat[i]; eS = feMesh.getEdgeStatus(edgeI); switch (eS) { - case featureEdgeMesh::EXTERNAL: + case extendedFeatureEdgeMesh::EXTERNAL: { nExternal++; break; } - case featureEdgeMesh::INTERNAL: + case extendedFeatureEdgeMesh::INTERNAL: { nInternal++; break; } - case featureEdgeMesh::FLAT: + case extendedFeatureEdgeMesh::FLAT: { nFlat++; break; } - case featureEdgeMesh::OPEN: + case extendedFeatureEdgeMesh::OPEN: { nOpen++; break; } - case featureEdgeMesh::MULTIPLE: + case extendedFeatureEdgeMesh::MULTIPLE: { nMultiple++; break; } - case featureEdgeMesh::NONE: + case extendedFeatureEdgeMesh::NONE: { break; } @@ -106,7 +106,7 @@ bool Foam::conformalVoronoiMesh::insertSpecialisedFeaturePoint // label concaveEdgeI = pEds // [ - // findIndex(allEdStat, featureEdgeMesh::INTERNAL) + // findIndex(allEdStat, extendedFeatureEdgeMesh::INTERNAL) // ]; // // // Find which planes are joined to the concave edge diff --git a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C index bdd82a79246..4d55cfeee30 100644 --- a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C +++ b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.C @@ -120,7 +120,7 @@ Foam::conformationSurfaces::conformationSurfaces features_.set ( featureI++, - new featureEdgeMesh + new extendedFeatureEdgeMesh ( IOobject ( @@ -153,7 +153,7 @@ Foam::conformationSurfaces::conformationSurfaces // features_.set // ( // featureI++, - // new featureEdgeMesh + // new extendedFeatureEdgeMesh // ( // IOobject // ( @@ -210,7 +210,7 @@ Foam::conformationSurfaces::conformationSurfaces features_.set ( featureI++, - new featureEdgeMesh + new extendedFeatureEdgeMesh ( IOobject ( @@ -693,13 +693,13 @@ void Foam::conformationSurfaces::findEdgeNearestByType ) const { // Initialise - featuresHit.setSize(featureEdgeMesh::nEdgeTypes); + featuresHit.setSize(extendedFeatureEdgeMesh::nEdgeTypes); featuresHit = -1; - edgeHits.setSize(featureEdgeMesh::nEdgeTypes); + edgeHits.setSize(extendedFeatureEdgeMesh::nEdgeTypes); // Work arrays - scalarField minDistSqr(featureEdgeMesh::nEdgeTypes, nearestDistSqr); - List<pointIndexHit> hitInfo(featureEdgeMesh::nEdgeTypes); + scalarField minDistSqr(extendedFeatureEdgeMesh::nEdgeTypes, nearestDistSqr); + List<pointIndexHit> hitInfo(extendedFeatureEdgeMesh::nEdgeTypes); forAll(features_, testI) { @@ -733,7 +733,7 @@ void Foam::conformationSurfaces::writeFeatureObj(const fileName& prefix) const forAll(features_, i) { - const featureEdgeMesh& fEM(features_[i]); + const extendedFeatureEdgeMesh& fEM(features_[i]); const pointField pts(fEM.points()); const edgeList eds(fEM.edges()); diff --git a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H index ad472812b3a..6b9a5455d11 100644 --- a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H +++ b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfaces.H @@ -37,7 +37,7 @@ SourceFiles #include "searchableSurfaces.H" #include "searchableSurfacesQueries.H" -#include "featureEdgeMesh.H" +#include "extendedFeatureEdgeMesh.H" #include "triSurface.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -63,8 +63,8 @@ class conformationSurfaces //- Reference to the searchableSurfaces object holding all geometry data const searchableSurfaces& allGeometry_; - //- A list of featureEdge meshes - PtrList<featureEdgeMesh> features_; + //- A list of extendedFeatureEdgeMesh + PtrList<extendedFeatureEdgeMesh> features_; //- The location in the mesh that specifies which portion of surfaces is // to be meshed. @@ -140,7 +140,7 @@ public: inline const searchableSurfaces& geometry() const; //- Return the object holding the feature points and edges - inline const PtrList<featureEdgeMesh>& features() const; + inline const PtrList<extendedFeatureEdgeMesh>& features() const; //- Return the surface indices inline const labelList& surfaces() const; @@ -295,7 +295,8 @@ public: // Write - //- Write all components of all the featureEdgeMeshes as an obj file + //- Write all components of all the extendedFeatureEdgeMeshes as + // an obj file void writeFeatureObj(const fileName& prefix) const; }; diff --git a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfacesI.H b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfacesI.H index 1dfa14f16ab..796875504fa 100644 --- a/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfacesI.H +++ b/src/mesh/conformalVoronoiMesh/conformationSurfaces/conformationSurfacesI.H @@ -31,7 +31,7 @@ const Foam::searchableSurfaces& Foam::conformationSurfaces::geometry() const } -const Foam::PtrList<Foam::featureEdgeMesh>& +const Foam::PtrList<Foam::extendedFeatureEdgeMesh>& Foam::conformationSurfaces::features() const { return features_; -- GitLab