From 0d899d924af19366b2badc817fcec8a30202bb4b Mon Sep 17 00:00:00 2001 From: mattijs <mattijs@hunt.opencfd.co.uk> Date: Thu, 26 Feb 2009 17:59:12 +0000 Subject: [PATCH] instance searching --- .../distributedTriSurfaceMesh.C | 79 +++++++++++++++---- .../distributedTriSurfaceMesh.H | 5 +- .../searchableSurface/searchableSphere.C | 9 ++- .../searchableSurface/triSurfaceMesh.C | 52 ++++++------ .../searchableSurface/triSurfaceMesh.H | 1 - 5 files changed, 100 insertions(+), 46 deletions(-) diff --git a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C index 870f7e8324b..501998cafcd 100644 --- a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C +++ b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.C @@ -1341,27 +1341,53 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh dict_(io, dict) { read(); + + if (debug) + { + Info<< "Constructed from triSurface:" << endl; + writeStats(Info); + } } Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh(const IOobject& io) : - triSurfaceMesh(io), + //triSurfaceMesh(io), + triSurfaceMesh + ( + IOobject + ( + io.name(), + io.time().findInstance(io.local(), word::null), + io.local(), + io.db(), + io.readOpt(), + io.writeOpt(), + io.registerObject() + ) + ), dict_ ( IOobject ( - searchableSurface::name() + "Dict", - searchableSurface::instance(), - searchableSurface::local(), - searchableSurface::db(), - searchableSurface::readOpt(), - searchableSurface::writeOpt(), - searchableSurface::registerObject() + triSurfaceMesh::name() + "Dict", + triSurfaceMesh::instance(), + triSurfaceMesh::local(), + triSurfaceMesh::db(), + triSurfaceMesh::readOpt(), + triSurfaceMesh::writeOpt(), + triSurfaceMesh::registerObject() ) ) { read(); + + if (debug) + { + Info<< "Read distributedTriSurface from " << io.objectPath() + << ':' << endl; + writeStats(Info); + } } @@ -1371,22 +1397,43 @@ Foam::distributedTriSurfaceMesh::distributedTriSurfaceMesh const dictionary& dict ) : - triSurfaceMesh(io, dict), + //triSurfaceMesh(io, dict), + triSurfaceMesh + ( + IOobject + ( + io.name(), + io.time().findInstance(io.local(), word::null), + io.local(), + io.db(), + io.readOpt(), + io.writeOpt(), + io.registerObject() + ), + dict + ), dict_ ( IOobject ( - searchableSurface::name() + "Dict", - searchableSurface::instance(), - searchableSurface::local(), - searchableSurface::db(), - searchableSurface::readOpt(), - searchableSurface::writeOpt(), - searchableSurface::registerObject() + triSurfaceMesh::name() + "Dict", + triSurfaceMesh::instance(), + triSurfaceMesh::local(), + triSurfaceMesh::db(), + triSurfaceMesh::readOpt(), + triSurfaceMesh::writeOpt(), + triSurfaceMesh::registerObject() ) ) { read(); + + if (debug) + { + Info<< "Read distributedTriSurface from " << io.objectPath() + << " and dictionary:" << endl; + writeStats(Info); + } } diff --git a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.H b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.H index 733cd24891e..678f1199d4c 100644 --- a/src/meshTools/searchableSurface/distributedTriSurfaceMesh.H +++ b/src/meshTools/searchableSurface/distributedTriSurfaceMesh.H @@ -317,10 +317,11 @@ public: const dictionary& dict ); - //- Construct read + //- Construct read. Does findInstance to find io.local(). distributedTriSurfaceMesh(const IOobject& io); - //- Construct from dictionary (used by searchableSurface) + //- Construct from dictionary (used by searchableSurface). + // Does read. Does findInstance to find io.local(). distributedTriSurfaceMesh ( const IOobject& io, diff --git a/src/meshTools/searchableSurface/searchableSphere.C b/src/meshTools/searchableSurface/searchableSphere.C index ba5a1888cfb..287ae6743c2 100644 --- a/src/meshTools/searchableSurface/searchableSphere.C +++ b/src/meshTools/searchableSurface/searchableSphere.C @@ -53,7 +53,14 @@ Foam::pointIndexHit Foam::searchableSphere::findNearest if (nearestDistSqr > sqr(magN-radius_)) { - info.rawPoint() = centre_ + n/magN*radius_; + if (magN < ROOTVSMALL) + { + info.rawPoint() = centre_ + vector(1,0,0)/magN*radius_; + } + else + { + info.rawPoint() = centre_ + n/magN*radius_; + } info.setHit(); info.setIndex(0); } diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.C b/src/meshTools/searchableSurface/triSurfaceMesh.C index 121762d7c4e..9958afd1b15 100644 --- a/src/meshTools/searchableSurface/triSurfaceMesh.C +++ b/src/meshTools/searchableSurface/triSurfaceMesh.C @@ -228,19 +228,19 @@ Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io, const triSurface& s) Foam::triSurfaceMesh::triSurfaceMesh(const IOobject& io) : // Find instance for triSurfaceMesh - searchableSurface - ( - IOobject - ( - io.name(), - io.time().findInstance(io.local(), word::null), - io.local(), - io.db(), - io.readOpt(), - io.writeOpt(), - io.registerObject() - ) - ), + searchableSurface(io), + //( + // IOobject + // ( + // io.name(), + // io.time().findInstance(io.local(), word::null), + // io.local(), + // io.db(), + // io.readOpt(), + // io.writeOpt(), + // io.registerObject() + // ) + //), // Reused found instance in objectRegistry objectRegistry ( @@ -273,19 +273,19 @@ Foam::triSurfaceMesh::triSurfaceMesh const dictionary& dict ) : - searchableSurface - ( - IOobject - ( - io.name(), - io.time().findInstance(io.local(), word::null), - io.local(), - io.db(), - io.readOpt(), - io.writeOpt(), - io.registerObject() - ) - ), + searchableSurface(io), + //( + // IOobject + // ( + // io.name(), + // io.time().findInstance(io.local(), word::null), + // io.local(), + // io.db(), + // io.readOpt(), + // io.writeOpt(), + // io.registerObject() + // ) + //), // Reused found instance in objectRegistry objectRegistry ( diff --git a/src/meshTools/searchableSurface/triSurfaceMesh.H b/src/meshTools/searchableSurface/triSurfaceMesh.H index d7aa33cfca4..4f98f37064d 100644 --- a/src/meshTools/searchableSurface/triSurfaceMesh.H +++ b/src/meshTools/searchableSurface/triSurfaceMesh.H @@ -117,7 +117,6 @@ public: triSurfaceMesh(const IOobject& io); //- Construct from IO and dictionary (used by searchableSurface). - // Does timeInstance search. // Dictionary may contain a 'scale' entry (eg, 0.001: mm -> m) triSurfaceMesh ( -- GitLab