diff --git a/applications/test/parallel/Test-parallel.C b/applications/test/parallel/Test-parallel.C index 69fcb2d9ddab0bf0705c293288d220f4577083c1..c0742ceaee4bc3e5da07ecb57def20ace1e51f53 100644 --- a/applications/test/parallel/Test-parallel.C +++ b/applications/test/parallel/Test-parallel.C @@ -129,15 +129,7 @@ int main(int argc, char *argv[]) mapDistribute map(constructSize, sendMap.xfer(), recvMap.xfer()); // Distribute complexData - mapDistribute::distribute - ( - Pstream::nonBlocking, - List<labelPair>(), - map.constructSize(), - map.subMap(), - map.constructMap(), - complexData - ); + mapDistribute::distribute(complexData); Pout<< "complexData:" << complexData << endl; } diff --git a/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C index 0fb5b64b7806d332d0f54647e4311b75289aa93e..8bfb3a05f86379ae9cdbfd75d1c81b0121d1a121 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/directMappedFixedValue/directMappedFixedValueFvPatchField.C @@ -272,15 +272,7 @@ void directMappedFixedValueFvPatchField<Type>::updateCoeffs() newValues = sampleField(); } - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - newValues - ); + distMap.distribute(newValues); break; } @@ -305,15 +297,7 @@ void directMappedFixedValueFvPatchField<Type>::updateCoeffs() const fieldType& nbrField = sampleField(); newValues = nbrField.boundaryField()[nbrPatchID]; - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - newValues - ); + distMap.distribute(newValues); break; } @@ -335,16 +319,7 @@ void directMappedFixedValueFvPatchField<Type>::updateCoeffs() } } - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - allValues - ); - + distMap.distribute(allValues); newValues.transfer(allValues); break; diff --git a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C index 8f64aedc7eb165bd0539f1c3a36218a412da2303..6405ab78b4bd698667c20dbc5f52eba4777aac5e 100644 --- a/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C +++ b/src/finiteVolume/fields/fvPatchFields/derived/directMappedVelocityFluxFixedValue/directMappedVelocityFluxFixedValueFvPatchField.C @@ -212,26 +212,10 @@ void directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs() } } - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - allUValues - ); + distMap.distribute(allUValues); newUValues.transfer(allUValues); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - allPhiValues - ); + distMap.distribute(allPhiValues); newPhiValues.transfer(allPhiValues); break; @@ -244,28 +228,10 @@ void directMappedVelocityFluxFixedValueFvPatchField::updateCoeffs() ); newUValues = UField.boundaryField()[nbrPatchID]; - - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - newUValues - ); + distMap.distribute(newUValues); newPhiValues = phiField.boundaryField()[nbrPatchID]; - - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), - distMap.constructMap(), - newPhiValues - ); + distMap.distribute(newPhiValues); break; } diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.C b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.C index 957fd0281bc5b7ab13624aa1e678c5cea981dc01..6418c8c8c542e371f3e67e5144591e37e5db63f9 100644 --- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.C +++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.C @@ -527,13 +527,14 @@ void Foam::directMappedPatchBase::calcMapping() const constructMap[procI] ); - if (debug) - { - Pout<< "To proc:" << procI << " sending values of cells/faces:" - << subMap[procI] << endl; - Pout<< "From proc:" << procI << " receiving values of patch faces:" - << constructMap[procI] << endl; - } + //if (debug) + //{ + // Pout<< "To proc:" << procI << " sending values of cells/faces:" + // << subMap[procI] << endl; + // Pout<< "From proc:" << procI + // << " receiving values of patch faces:" + // << constructMap[procI] << endl; + //} } // Redo constructSize @@ -644,6 +645,28 @@ Foam::directMappedPatchBase::directMappedPatchBase {} +Foam::directMappedPatchBase::directMappedPatchBase +( + const polyPatch& pp, + const word& sampleRegion, + const sampleMode mode, + const word& samplePatch, + const scalar distance +) +: + patch_(pp), + sampleRegion_(sampleRegion), + mode_(mode), + samplePatch_(samplePatch), + offsetMode_(NORMAL), + offset_(vector::zero), + offsets_(0), + distance_(distance), + sameRegion_(sampleRegion_ == patch_.boundaryMesh().mesh().name()), + mapPtr_(NULL) +{} + + Foam::directMappedPatchBase::directMappedPatchBase ( const polyPatch& pp, diff --git a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.H b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.H index 96ac05bf7c26bfae4bbe0ad8d0a8006842179559..6b3513f374cb0d4c4d766c17035bbdf0fc4cb8bd 100644 --- a/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.H +++ b/src/meshTools/directMapped/directMappedPolyPatch/directMappedPatchBase.H @@ -206,15 +206,15 @@ public: const vector& offset ); - ////- Construct from normal and distance - //directMappedPatchBase - //( - // const polyPatch& pp, - // const word& sampleRegion, - // const word& samplePatch, - // const sampleMode sampleMode, - // const vector& offset - //); + //- Construct from offsetMode=normal and distance + directMappedPatchBase + ( + const polyPatch& pp, + const word& sampleRegion, + const sampleMode sampleMode, + const word& samplePatch, + const scalar distance + ); //- Construct from dictionary directMappedPatchBase(const polyPatch&, const dictionary&); diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C index accee92b3f77325c0fa0a54b06b94b3f4ba9610b..740c2184d5ca0c31c118c33454eda2ba2ff48a90 100644 --- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C +++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMesh.C @@ -440,15 +440,7 @@ void Foam::distributedTriSurfaceMesh::findLine // Exchange the segments // ~~~~~~~~~~~~~~~~~~~~~ - map.distribute - ( - Pstream::nonBlocking, //Pstream::scheduled, - List<labelPair>(0), //map.schedule(), - map.constructSize(), - map.subMap(), // what to send - map.constructMap(), // what to receive - allSegments - ); + map.distribute(allSegments); // Do tests I need to do @@ -490,21 +482,7 @@ void Foam::distributedTriSurfaceMesh::findLine // Exchange the intersections (opposite to segments) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule // Note reverse schedule - //( - // map.constructMap(), - // map.subMap() - //), - Pstream::nonBlocking, - List<labelPair>(0), - nOldAllSegments, - map.constructMap(), // what to send - map.subMap(), // what to receive - intersections - ); + map.reverseDistribute(nOldAllSegments, intersections); // Extract the hits @@ -657,17 +635,7 @@ Foam::distributedTriSurfaceMesh::calcLocalQueries // Send over queries // ~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule(), - Pstream::nonBlocking, - List<labelPair>(0), - map.constructSize(), - map.subMap(), // what to send - map.constructMap(), // what to receive - triangleIndex - ); + map.distribute(triangleIndex); return mapPtr; @@ -1594,28 +1562,8 @@ void Foam::distributedTriSurfaceMesh::findNearest // swap samples to local processor // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule(), - Pstream::nonBlocking, - List<labelPair>(0), - map.constructSize(), - map.subMap(), // what to send - map.constructMap(), // what to receive - allCentres - ); - map.distribute - ( - //Pstream::scheduled, - //map.schedule(), - Pstream::nonBlocking, - List<labelPair>(0), - map.constructSize(), - map.subMap(), // what to send - map.constructMap(), // what to receive - allRadiusSqr - ); + map.distribute(allCentres); + map.distribute(allRadiusSqr); // Do my tests @@ -1639,21 +1587,7 @@ void Foam::distributedTriSurfaceMesh::findNearest // Send back results // ~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule // note reverse schedule - //( - // map.constructMap(), - // map.subMap() - //), - Pstream::nonBlocking, - List<labelPair>(0), - allSegmentMap.size(), - map.constructMap(), // what to send - map.subMap(), // what to receive - allInfo - ); + map.reverseDistribute(allSegmentMap.size(), allInfo); // Extract information @@ -1892,21 +1826,7 @@ void Foam::distributedTriSurfaceMesh::getRegion // Send back results // ~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule // note reverse schedule - //( - // map.constructMap(), - // map.subMap() - //), - Pstream::nonBlocking, - List<labelPair>(0), - info.size(), - map.constructMap(), // what to send - map.subMap(), // what to receive - region - ); + map.reverseDistribute(info.size(), region); } @@ -1956,21 +1876,7 @@ void Foam::distributedTriSurfaceMesh::getNormal // Send back results // ~~~~~~~~~~~~~~~~~ - map.distribute - ( - //Pstream::scheduled, - //map.schedule // note reverse schedule - //( - // map.constructMap(), - // map.subMap() - //), - Pstream::nonBlocking, - List<labelPair>(0), - info.size(), - map.constructMap(), // what to send - map.subMap(), // what to receive - normal - ); + map.reverseDistribute(info.size(), normal); } @@ -2024,15 +1930,7 @@ void Foam::distributedTriSurfaceMesh::getField // Send back results // ~~~~~~~~~~~~~~~~~ - map.distribute - ( - Pstream::nonBlocking, - List<labelPair>(0), - info.size(), - map.constructMap(), // what to send - map.subMap(), // what to receive - values - ); + map.reverseDistribute(info.size(), values); } } diff --git a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMeshTemplates.C b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMeshTemplates.C index dca179bb72dcf4225ee995ca8df6c96b3e73fdf0..0871645154ab5e9075751e35498037e1aa57dc63 100644 --- a/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMeshTemplates.C +++ b/src/parallel/distributed/distributedTriSurfaceMesh/distributedTriSurfaceMeshTemplates.C @@ -76,15 +76,7 @@ License // // Send back results // // ~~~~~~~~~~~~~~~~~ // -// map.distribute -// ( -// Pstream::nonBlocking, -// List<labelPair>(0), -// info.size(), -// map.constructMap(), // what to send -// map.subMap(), // what to receive -// values -// ); +// map.reverseDistribute(info.size(), values); //} @@ -115,15 +107,7 @@ void Foam::distributedTriSurfaceMesh::distributeFields label oldSize = field.size(); - map.distribute - ( - Pstream::nonBlocking, - List<labelPair>(0), - map.constructSize(), - map.subMap(), - map.constructMap(), - field - ); + map.distribute(field); if (debug) { diff --git a/src/postProcessing/functionObjects/field/streamLine/streamLine.C b/src/postProcessing/functionObjects/field/streamLine/streamLine.C index 42b324e8d27b1390ebdff14bc6be3f51111daecb..22b50232a6a6b7e6b801c536ab7b73b0c0401765 100644 --- a/src/postProcessing/functionObjects/field/streamLine/streamLine.C +++ b/src/postProcessing/functionObjects/field/streamLine/streamLine.C @@ -426,7 +426,8 @@ void Foam::streamLine::write() ); - // Distribute the track positions + // Distribute the track positions. Note: use scheduled comms + // to prevent buffering. mapDistribute::distribute ( Pstream::scheduled, diff --git a/src/surfaceFilmModels/derivedFvPatchFields/directMappedFixedInternalValue/directMappedFixedInternalValueFvPatchField.C b/src/surfaceFilmModels/derivedFvPatchFields/directMappedFixedInternalValue/directMappedFixedInternalValueFvPatchField.C index 9c84101d853ce3d247013d327aa773bfbc66e2db..c524491307e7ac22a58db4aa56609590731577e1 100644 --- a/src/surfaceFilmModels/derivedFvPatchFields/directMappedFixedInternalValue/directMappedFixedInternalValueFvPatchField.C +++ b/src/surfaceFilmModels/derivedFvPatchFields/directMappedFixedInternalValue/directMappedFixedInternalValueFvPatchField.C @@ -132,15 +132,7 @@ void directMappedFixedInternalValueFvPatchField<Type>::updateCoeffs() // Retrieve the neighbour patch internal field Field<Type> nbrIntFld = nbrField.patchInternalField(); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), // what to send - distMap.constructMap(), // what to receive - nbrIntFld - ); + distMap.distribute(nbrIntFld); // Assign (this) patch internal field to its neighbour values Field<Type>& intFld = const_cast<Field<Type>&>(this->internalField()); diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C index e417067ce125f7446c07e90d88cb0588996b80e3..3d6a68a0f4c1d72a3ede9d3b6b9e904453470443 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffle/turbulentTemperatureCoupledBaffleFvPatchScalarField.C @@ -222,27 +222,11 @@ void Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs() // Swap to obtain full local values of neighbour internal field scalarField nbrIntFld = nbrField.patchInternalField(); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), // what to send - distMap.constructMap(), // what to receive - nbrIntFld - ); + distMap.distribute(nbrIntFld); // Swap to obtain full local values of neighbour K*delta scalarField nbrKDelta = nbrField.K(nbrField)*nbrPatch.deltaCoeffs(); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), // what to send - distMap.constructMap(), // what to receive - nbrKDelta - ); + distMap.distribute(nbrKDelta); tmp<scalarField> myKDelta = K(*this)*patch().deltaCoeffs(); @@ -255,15 +239,7 @@ void Foam::turbulentTemperatureCoupledBaffleFvPatchScalarField::updateCoeffs() // Assign to me fvPatchScalarField::operator=(Twall); // Distribute back and assign to neighbour - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - nbrField.size(), - distMap.constructMap(), // reverse : what to send - distMap.subMap(), - Twall - ); + distMap.reverseDistribute(nbrField.size(), Twall); const_cast<turbulentTemperatureCoupledBaffleFvPatchScalarField&> ( nbrField diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C index 2a66378751a267858f83b8da9899ee4f9802f521..dc62bfd4e6477518e04edc2502642f38e8884dd4 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/turbulentTemperatureCoupledBaffleMixed/turbulentTemperatureCoupledBaffleMixedFvPatchScalarField.C @@ -179,27 +179,11 @@ void turbulentTemperatureCoupledBaffleMixedFvPatchScalarField::updateCoeffs() // Swap to obtain full local values of neighbour internal field scalarField nbrIntFld = nbrField.patchInternalField(); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), // what to send - distMap.constructMap(), // what to receive - nbrIntFld - ); + distMap.distribute(nbrIntFld); // Swap to obtain full local values of neighbour K*delta scalarField nbrKDelta = nbrField.K(nbrField)*nbrPatch.deltaCoeffs(); - mapDistribute::distribute - ( - Pstream::defaultCommsType, - distMap.schedule(), - distMap.constructSize(), - distMap.subMap(), // what to send - distMap.constructMap(), // what to receive - nbrKDelta - ); + distMap.distribute(nbrKDelta); tmp<scalarField> myKDelta = K(*this)*patch().deltaCoeffs();