diff --git a/src/sampling/sampledSet/cloud/cloudSet.C b/src/sampling/sampledSet/cloud/cloudSet.C index 0600ad98dc..dddf730fab 100644 --- a/src/sampling/sampledSet/cloud/cloudSet.C +++ b/src/sampling/sampledSet/cloud/cloudSet.C @@ -151,20 +151,4 @@ Foam::cloudSet::~cloudSet() {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::cloudSet::getRefPoint(const List& pts) const -{ - if (pts.size()) - { - // Use first samplePt as starting point - return pts[0]; - } - else - { - return vector::zero; - } -} - - // ************************************************************************* // diff --git a/src/sampling/sampledSet/cloud/cloudSet.H b/src/sampling/sampledSet/cloud/cloudSet.H index c5a3ea21fa..dfe2732f98 100644 --- a/src/sampling/sampledSet/cloud/cloudSet.H +++ b/src/sampling/sampledSet/cloud/cloudSet.H @@ -75,6 +75,7 @@ class cloudSet //- Uses calcSamples to obtain samples. Copies them into *this. void genSamples(); + public: //- Runtime type information @@ -104,14 +105,7 @@ public: // Destructor - - virtual ~cloudSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List&) const; + virtual ~cloudSet(); }; diff --git a/src/sampling/sampledSet/coordSet/coordSet.C b/src/sampling/sampledSet/coordSet/coordSet.C index 7960bf768c..7df0286c70 100644 --- a/src/sampling/sampledSet/coordSet/coordSet.C +++ b/src/sampling/sampledSet/coordSet/coordSet.C @@ -25,6 +25,22 @@ License #include "coordSet.H" +// * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * * * // + +template<> +const char* Foam::NamedEnum::names[] = +{ + "xyz", + "x", + "y", + "z", + "distance" +}; + +const Foam::NamedEnum + Foam::coordSet::coordFormatNames_; + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // //- Construct from components @@ -36,8 +52,8 @@ Foam::coordSet::coordSet : pointField(0), name_(name), - axis_(axis), - refPoint_(vector::zero) + axis_(coordFormatNames_[axis]), + curveDist_(0) {} @@ -47,62 +63,21 @@ Foam::coordSet::coordSet const word& name, const word& axis, const List& points, - const point& refPoint + const scalarList& curveDist ) : pointField(points), name_(name), - axis_(axis), - refPoint_(refPoint) + axis_(coordFormatNames_[axis]), + curveDist_(curveDist) {} -//- Construct from components -Foam::coordSet::coordSet -( - const word& name, - const word& axis, - const scalarField& points, - const scalar refPoint -) -: - pointField(points.size(), point::zero), - name_(name), - axis_(axis), - refPoint_(point::zero) -{ - if (axis_ == "x" || axis_ == "distance") - { - refPoint_.x() = refPoint; - replace(point::X, points); - } - else if (axis_ == "y") - { - replace(point::Y, points); - } - else if (axis_ == "z") - { - replace(point::Z, points); - } - else - { - FatalErrorIn - ( - "coordSet::coordSet(const word& name," - "const word& axis, const List& points," - "const scalar refPoint)" - ) << "Illegal axis specification " << axis_ - << " for sampling line " << name_ - << exit(FatalError); - } -} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // bool Foam::coordSet::hasVectorAxis() const { - return axis_ == "xyz"; + return axis_ == XYZ; } @@ -113,22 +88,22 @@ Foam::scalar Foam::coordSet::scalarCoord { const point& p = operator[](index); - if (axis_ == "x") + if (axis_ == X) { return p.x(); } - else if (axis_ == "y") + else if (axis_ == Y) { return p.y(); } - else if (axis_ == "z") + else if (axis_ == Z) { return p.z(); } - else if (axis_ == "distance") + else if (axis_ == DISTANCE) { // Use distance to reference point - return mag(p - refPoint_); + return curveDist_[index]; } else { @@ -154,7 +129,7 @@ Foam::point Foam::coordSet::vectorCoord(const label index) const Foam::Ostream& Foam::coordSet::write(Ostream& os) const { - os << "name:" << name_ << " axis:" << axis_ << " reference:" << refPoint_ + os << "name:" << name_ << " axis:" << axis_ << endl << endl << "\t(coord)" << endl; diff --git a/src/sampling/sampledSet/coordSet/coordSet.H b/src/sampling/sampledSet/coordSet/coordSet.H index 2c67793a30..c8fd066ec7 100644 --- a/src/sampling/sampledSet/coordSet/coordSet.H +++ b/src/sampling/sampledSet/coordSet/coordSet.H @@ -52,16 +52,38 @@ class coordSet public pointField { +public: + + // Public data types + + //- Enumeration defining the output format for coordinates + enum coordFormat + { + XYZ, + X, + Y, + Z, + DISTANCE + }; + + +private: + + //- String representation of coordFormat enums + static const NamedEnum coordFormatNames_; + + protected: //- Name const word name_; //- Axis write type - const word axis_; + const coordFormat axis_; + + //- Cumulative distance "distance" write specifier. + scalarList curveDist_; - //- Reference point for "distance" write specifier. - point refPoint_; public: @@ -81,16 +103,7 @@ public: const word& name, const word& axis, const List& points, - const point& refPoint = point::zero - ); - - //- Construct from components - coordSet - ( - const word& name, - const word& axis, - const scalarField& points, - const scalar refPoint = 0.0 + const scalarList& curveDist ); @@ -101,33 +114,26 @@ public: return name_; } - const word& axis() const + word axis() const { - return axis_; + return coordFormatNames_[axis_]; } - const point& refPoint() const + //- Cumulative distance + const scalarList& curveDist() const { - return refPoint_; + return curveDist_; } //- Is axis specification a vector bool hasVectorAxis() const; //- Get coordinate of point according to axis specification. - // If axis="distance" can be: -distance to starting point (e.g. - // uniformSet) or -distance to first sampling point - // (e.g. cloudSet) - scalar scalarCoord - ( - const label index - ) const; + // If axis="distance" is the curveDist[index] + scalar scalarCoord(const label index) const; - //- Get point according to axis="full" specification - vector vectorCoord - ( - const label index - ) const; + //- Get point according to axis="xyz" specification + vector vectorCoord(const label index) const; Ostream& write(Ostream& os) const; }; diff --git a/src/sampling/sampledSet/face/faceOnlySet.C b/src/sampling/sampledSet/face/faceOnlySet.C index b6f8b30ace..bcc30e3ec1 100644 --- a/src/sampling/sampledSet/face/faceOnlySet.C +++ b/src/sampling/sampledSet/face/faceOnlySet.C @@ -64,7 +64,7 @@ bool Foam::faceOnlySet::trackToBoundary // Alias const point& trackPt = singleParticle.position(); - while (true) + while(true) { point oldPoint = trackPt; @@ -198,7 +198,7 @@ void Foam::faceOnlySet::calcSamples // index in bHits; current boundary intersection label bHitI = 1; - while (true) + while(true) { if (trackFaceI != -1) { @@ -229,7 +229,7 @@ void Foam::faceOnlySet::calcSamples ); // fill sampleSegments - for (label i = samplingPts.size() - 1; i >= startSegmentI; --i) + for(label i = samplingPts.size() - 1; i >= startSegmentI; --i) { samplingSegments.append(segmentI); } @@ -380,12 +380,4 @@ Foam::faceOnlySet::~faceOnlySet() {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::faceOnlySet::getRefPoint(const List& pts) const -{ - return start_; -} - - // ************************************************************************* // diff --git a/src/sampling/sampledSet/face/faceOnlySet.H b/src/sampling/sampledSet/face/faceOnlySet.H index 56667e2054..bdb1e240dc 100644 --- a/src/sampling/sampledSet/face/faceOnlySet.H +++ b/src/sampling/sampledSet/face/faceOnlySet.H @@ -47,7 +47,7 @@ class passiveParticle; template class Particle; /*---------------------------------------------------------------------------*\ - Class faceOnlySet Declaration + Class faceOnlySet Declaration \*---------------------------------------------------------------------------*/ class faceOnlySet @@ -92,6 +92,7 @@ class faceOnlySet //- Uses calcSamples to obtain samples. Copies them into *this. void genSamples(); + public: //- Runtime type information @@ -121,8 +122,7 @@ public: // Destructor - - virtual ~faceOnlySet(); + virtual ~faceOnlySet(); // Member Functions @@ -136,9 +136,6 @@ public: { return end_; } - - //- Get reference point - virtual point getRefPoint(const List&) const; }; diff --git a/src/sampling/sampledSet/midPoint/midPointSet.C b/src/sampling/sampledSet/midPoint/midPointSet.C index 919d7c4021..4b25485afa 100644 --- a/src/sampling/sampledSet/midPoint/midPointSet.C +++ b/src/sampling/sampledSet/midPoint/midPointSet.C @@ -53,7 +53,7 @@ void Foam::midPointSet::genSamples() label sampleI = 0; - while (true) + while(true) { // calculate midpoint between sampleI and sampleI+1 (if in same segment) while diff --git a/src/sampling/sampledSet/midPoint/midPointSet.H b/src/sampling/sampledSet/midPoint/midPointSet.H index 47d3d33a11..2fff452e12 100644 --- a/src/sampling/sampledSet/midPoint/midPointSet.H +++ b/src/sampling/sampledSet/midPoint/midPointSet.H @@ -58,6 +58,7 @@ class midPointSet void genSamples(); + public: //- Runtime type information @@ -88,8 +89,7 @@ public: // Destructor - - virtual ~midPointSet(); + virtual ~midPointSet(); }; diff --git a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C index 5a182c4dd8..59dde9db30 100644 --- a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C +++ b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.C @@ -55,7 +55,7 @@ void Foam::midPointAndFaceSet::genSamples() label sampleI = 0; - while (true) + while(true) { // sampleI is start of segment diff --git a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.H b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.H index 2a928e1ce4..ddf84a58dc 100644 --- a/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.H +++ b/src/sampling/sampledSet/midPointAndFace/midPointAndFaceSet.H @@ -59,6 +59,7 @@ class midPointAndFaceSet void genSamples(); + public: //- Runtime type information @@ -89,8 +90,7 @@ public: // Destructor - - virtual ~midPointAndFaceSet(); + virtual ~midPointAndFaceSet(); }; diff --git a/src/sampling/sampledSet/polyLine/polyLineSet.C b/src/sampling/sampledSet/polyLine/polyLineSet.C index 1783d227a0..a70e61e847 100644 --- a/src/sampling/sampledSet/polyLine/polyLineSet.C +++ b/src/sampling/sampledSet/polyLine/polyLineSet.C @@ -394,20 +394,4 @@ Foam::polyLineSet::~polyLineSet() {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - -Foam::point Foam::polyLineSet::getRefPoint(const List& pts) const -{ - if (pts.size()) - { - // Use first samplePt as starting point - return pts[0]; - } - else - { - return vector::zero; - } -} - - // ************************************************************************* // diff --git a/src/sampling/sampledSet/polyLine/polyLineSet.H b/src/sampling/sampledSet/polyLine/polyLineSet.H index 5b976a8e49..91e3478ab7 100644 --- a/src/sampling/sampledSet/polyLine/polyLineSet.H +++ b/src/sampling/sampledSet/polyLine/polyLineSet.H @@ -121,12 +121,6 @@ public: // Destructor virtual ~polyLineSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List&) const; }; diff --git a/src/sampling/sampledSet/sampledSet/sampledSet.C b/src/sampling/sampledSet/sampledSet/sampledSet.C index 516c7fc80d..152016b7a3 100644 --- a/src/sampling/sampledSet/sampledSet/sampledSet.C +++ b/src/sampling/sampledSet/sampledSet/sampledSet.C @@ -354,10 +354,11 @@ void Foam::sampledSet::setSamples { operator[](sampleI) = samplingPts[sampleI]; } + curveDist_ = samplingCurveDist; + cells_ = samplingCells; faces_ = samplingFaces; segments_ = samplingSegments; - curveDist_ = samplingCurveDist; } @@ -375,7 +376,6 @@ Foam::sampledSet::sampledSet mesh_(mesh), searchEngine_(searchEngine), segments_(0), - curveDist_(0), cells_(0), faces_(0) {} @@ -393,7 +393,6 @@ Foam::sampledSet::sampledSet mesh_(mesh), searchEngine_(searchEngine), segments_(0), - curveDist_(0), cells_(0), faces_(0) {} diff --git a/src/sampling/sampledSet/sampledSet/sampledSet.H b/src/sampling/sampledSet/sampledSet/sampledSet.H index c1ac605230..da77332359 100644 --- a/src/sampling/sampledSet/sampledSet/sampledSet.H +++ b/src/sampling/sampledSet/sampledSet/sampledSet.H @@ -41,13 +41,10 @@ SourceFiles #ifndef sampledSet_H #define sampledSet_H -#include "pointField.H" -#include "word.H" -#include "labelList.H" +#include "coordSet.H" #include "typeInfo.H" #include "runTimeSelectionTables.H" #include "autoPtr.H" -#include "coordSet.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -80,10 +77,6 @@ protected: //- Segment numbers labelList segments_; - //- Parameter along sample curve. Uniquely identifies position - // along sampling. Used for combining parallel results. - scalarList curveDist_; - //- Cell numbers labelList cells_; @@ -245,8 +238,7 @@ public: // Destructor - - virtual ~sampledSet(); + virtual ~sampledSet(); // Member Functions @@ -266,11 +258,6 @@ public: return segments_; } - const scalarList& curveDist() const - { - return curveDist_; - } - const labelList& cells() const { return cells_; @@ -281,9 +268,6 @@ public: return faces_; } - //- Given all sampling points (on all processors) return reference point - virtual point getRefPoint(const List&) const = 0; - //- Output for debugging Ostream& write(Ostream&) const; }; diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.C b/src/sampling/sampledSet/sampledSets/sampledSets.C index 1c18fa4cd3..bc2c6a7dc4 100644 --- a/src/sampling/sampledSet/sampledSets/sampledSets.C +++ b/src/sampling/sampledSet/sampledSets/sampledSets.C @@ -100,19 +100,6 @@ void Foam::sampledSets::combineSampledSets SortableList sortedDist(allCurveDist); indexSets[setI] = sortedDist.indices(); - // Get reference point (note: only master has all points) - point refPt; - - if (allPts.size()) - { - refPt = samplePts.getRefPoint(allPts); - } - else - { - refPt = vector::zero; - } - - masterSampledSets.set ( setI, @@ -121,7 +108,7 @@ void Foam::sampledSets::combineSampledSets samplePts.name(), samplePts.axis(), List(UIndirectList(allPts, indexSets[setI])), - refPt + allCurveDist ) ); } diff --git a/src/sampling/sampledSet/sampledSets/sampledSets.H b/src/sampling/sampledSet/sampledSets/sampledSets.H index bde7d087b3..ce180900e7 100644 --- a/src/sampling/sampledSet/sampledSets/sampledSets.H +++ b/src/sampling/sampledSet/sampledSets/sampledSets.H @@ -268,8 +268,7 @@ public: // Destructor - - virtual ~sampledSets(); + virtual ~sampledSets(); // Member Functions diff --git a/src/sampling/sampledSet/triSurfaceMeshPointSet/triSurfaceMeshPointSet.H b/src/sampling/sampledSet/triSurfaceMeshPointSet/triSurfaceMeshPointSet.H index 23e9639a58..f9396fe8bf 100644 --- a/src/sampling/sampledSet/triSurfaceMeshPointSet/triSurfaceMeshPointSet.H +++ b/src/sampling/sampledSet/triSurfaceMeshPointSet/triSurfaceMeshPointSet.H @@ -57,7 +57,6 @@ class triSurfaceMeshPointSet //- Name of triSurfaceMesh const word surface_; - //- Sampling points List sampleCoords_; @@ -77,6 +76,7 @@ class triSurfaceMeshPointSet //- Uses calcSamples to obtain samples. Copies them into *this. void genSamples(); + public: //- Runtime type information @@ -96,8 +96,7 @@ public: // Destructor - - virtual ~triSurfaceMeshPointSet(); + virtual ~triSurfaceMeshPointSet(); // Member Functions diff --git a/src/sampling/sampledSet/uniform/uniformSet.C b/src/sampling/sampledSet/uniform/uniformSet.C index 9b56ee9295..877ec14392 100644 --- a/src/sampling/sampledSet/uniform/uniformSet.C +++ b/src/sampling/sampledSet/uniform/uniformSet.C @@ -64,7 +64,7 @@ bool Foam::uniformSet::nextSample samplePt += offset; sampleI++; - for (; sampleI < nPoints_; sampleI++) + for(; sampleI < nPoints_; sampleI++) { scalar s = (samplePt - currentPt) & normOffset; @@ -102,7 +102,7 @@ bool Foam::uniformSet::trackToBoundary // Alias const point& trackPt = singleParticle.position(); - while (true) + while(true) { // Find next samplePt on/after trackPt. Update samplePt, sampleI if (!nextSample(trackPt, offset, smallDist, samplePt, sampleI)) @@ -304,7 +304,7 @@ void Foam::uniformSet::calcSamples // index in bHits; current boundary intersection label bHitI = 1; - while (true) + while(true) { // Initialize tracking starting from trackPt Cloud particles(mesh(), IDLList()); @@ -328,7 +328,7 @@ void Foam::uniformSet::calcSamples ); // fill sampleSegments - for (label i = samplingPts.size() - 1; i >= startSegmentI; --i) + for(label i = samplingPts.size() - 1; i >= startSegmentI; --i) { samplingSegments.append(segmentI); } @@ -483,14 +483,4 @@ Foam::uniformSet::~uniformSet() {} -// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // - - -Foam::point Foam::uniformSet::getRefPoint(const List& pts) const -{ - // Use start point as reference for 'distance' - return start_; -} - - // ************************************************************************* // diff --git a/src/sampling/sampledSet/uniform/uniformSet.H b/src/sampling/sampledSet/uniform/uniformSet.H index 1c1a070be0..f7489b46a3 100644 --- a/src/sampling/sampledSet/uniform/uniformSet.H +++ b/src/sampling/sampledSet/uniform/uniformSet.H @@ -139,14 +139,7 @@ public: // Destructor - - virtual ~uniformSet(); - - - // Member Functions - - //- Get reference point - virtual point getRefPoint(const List&) const; + virtual ~uniformSet(); };