diff --git a/src/sampling/sampledSurface/distanceSurface/distanceSurface.C b/src/sampling/sampledSurface/distanceSurface/distanceSurface.C index 2df4a9b4ba..ebb16d8e37 100644 --- a/src/sampling/sampledSurface/distanceSurface/distanceSurface.C +++ b/src/sampling/sampledSurface/distanceSurface/distanceSurface.C @@ -3,7 +3,7 @@ \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | \\ / A nd | Copyright (C) 2011-2016 OpenFOAM Foundation - \\/ M anipulation | + \\/ M anipulation | Copyright (C) 2016 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -49,7 +49,6 @@ void Foam::distanceSurface::createGeometry() } // Clear any stored topologies - facesPtr_.clear(); isoSurfCellPtr_.clear(); isoSurfPtr_.clear(); @@ -339,8 +338,7 @@ Foam::distanceSurface::distanceSurface zoneKey_(keyType::null), needsUpdate_(true), isoSurfCellPtr_(nullptr), - isoSurfPtr_(nullptr), - facesPtr_(nullptr) + isoSurfPtr_(nullptr) { // dict.readIfPresent("zone", zoneKey_); // @@ -395,8 +393,7 @@ Foam::distanceSurface::distanceSurface zoneKey_(keyType::null), needsUpdate_(true), isoSurfCellPtr_(nullptr), - isoSurfPtr_(nullptr), - facesPtr_(nullptr) + isoSurfPtr_(nullptr) {} @@ -419,13 +416,9 @@ bool Foam::distanceSurface::expire() if (debug) { Pout<< "distanceSurface::expire :" - << " have-facesPtr_:" << facesPtr_.valid() - << " needsUpdate_:" << needsUpdate_ << endl; + << " needsUpdate:" << needsUpdate_ << endl; } - // Clear any stored topologies - facesPtr_.clear(); - // Clear derived data clearGeom(); @@ -445,8 +438,7 @@ bool Foam::distanceSurface::update() if (debug) { Pout<< "distanceSurface::update :" - << " have-facesPtr_:" << facesPtr_.valid() - << " needsUpdate_:" << needsUpdate_ << endl; + << " needsUpdate:" << needsUpdate_ << endl; } if (!needsUpdate_) diff --git a/src/sampling/sampledSurface/distanceSurface/distanceSurface.H b/src/sampling/sampledSurface/distanceSurface/distanceSurface.H index 0ca56d0808..4f28ad9acd 100644 --- a/src/sampling/sampledSurface/distanceSurface/distanceSurface.H +++ b/src/sampling/sampledSurface/distanceSurface/distanceSurface.H @@ -97,9 +97,6 @@ class distanceSurface //- Constructed iso surface autoPtr isoSurfPtr_; - //- Triangles converted to faceList - mutable autoPtr facesPtr_; - // Private Member Functions @@ -179,18 +176,7 @@ public: //- Faces of surface virtual const faceList& faces() const { - if (facesPtr_.empty()) - { - const triSurface& s = surface(); - - facesPtr_.reset(new faceList(s.size())); - - forAll(s, i) - { - facesPtr_()[i] = s[i].triFaceFace(); - } - } - return facesPtr_; + return surface().surfFaces(); } //- Const access to per-face zone/region information @@ -219,7 +205,7 @@ public: //- The underlying surface - const triSurface& surface() const + const meshedSurface& surface() const { if (cell_) { @@ -231,6 +217,7 @@ public: } } + //- Sample field on surface virtual tmp sample ( diff --git a/src/sampling/sampledSurface/isoSurface/isoSurface.C b/src/sampling/sampledSurface/isoSurface/isoSurface.C index d5d8b7fbde..4bb5d1549e 100644 --- a/src/sampling/sampledSurface/isoSurface/isoSurface.C +++ b/src/sampling/sampledSurface/isoSurface/isoSurface.C @@ -37,6 +37,7 @@ License #include "surfaceIntersection.H" #include "intersectedSurface.H" #include "searchableBox.H" +#include "triSurface.H" #include "triSurfaceMesh.H" #include "triPoints.H" @@ -687,7 +688,6 @@ void Foam::isoSurface::calcSnappedPoint pointField collapsedPoint(mesh_.nPoints(), point::max); - // Work arrays DynamicList localTriPoints(100); @@ -1342,6 +1342,7 @@ Foam::isoSurface::isoSurface const scalar mergeTol ) : + MeshStorage(), mesh_(cVals.mesh()), pVals_(pVals), iso_(iso), @@ -1582,6 +1583,9 @@ Foam::isoSurface::isoSurface } + // Use a triSurface as a temporary for various operations + triSurface tmpsurf; + { DynamicList triPoints(3*nCutCells_); DynamicList