diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H index 0ed207057a347a07612bb089c2575777aeaf88f8..e394f679d042dd0c425f6fa7a869ebafeb5f2a4a 100644 --- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H +++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndex.H @@ -106,6 +106,15 @@ public: //- Global sum of localSizes inline label size() const; + //- Size of procI data + inline label localSize(const label procI) const; + + //- From local to global on procI + inline label toGlobal(const label procI, const label i) const; + + //- Is on processor procI + inline bool isLocal(const label procI, const label i) const; + //- From global to local on procI inline label toLocal(const label procI, const label i) const; @@ -115,9 +124,6 @@ public: //- Start of procI data inline label offset(const label procI) const; - //- Size of procI data - inline label localSize(const label procI) const; - // IOstream Operators diff --git a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexI.H b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexI.H index f9444fe54b0291f32f3d19b9476bf21dfbcf8618..d7c44107c665e29d0fd38900b2767e116b5e1b57 100644 --- a/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexI.H +++ b/src/OpenFOAM/meshes/polyMesh/globalMeshData/globalIndexI.H @@ -63,27 +63,39 @@ inline Foam::label Foam::globalIndex::size() const } +inline Foam::label Foam::globalIndex::toGlobal +( + const label procI, + const label i +) const +{ + return(procI == 0 ? i : i + offsets_[procI-1]); +} + + inline Foam::label Foam::globalIndex::toGlobal(const label i) const { - return - ( - Pstream::myProcNo() == 0 - ? i - : i + offsets_[Pstream::myProcNo()-1] - ); + return toGlobal(Pstream::myProcNo(), i); } + //- Is on local processor -inline bool Foam::globalIndex::isLocal(const label i) const +inline bool Foam::globalIndex::isLocal(const label procI, const label i) const { return - (i < offsets_[Pstream::myProcNo()]) - && (i >= (Pstream::myProcNo() == 0 ? 0 : offsets_[Pstream::myProcNo()-1])); + (i < offsets_[procI]) + && (i >= (procI == 0 ? 0 : offsets_[procI-1])); +} + + +inline bool Foam::globalIndex::isLocal(const label i) const +{ + return isLocal(Pstream::myProcNo(), i); } inline Foam::label Foam::globalIndex::toLocal(const label procI, const label i) - const +const { label localI = (procI == 0 ? i : i - offsets_[procI-1]);