void Foam::syncTools::syncPointMap ( const polyMesh& mesh, Map<T>& pointValues, // from mesh point label to value const CombineOp& cop, const TransformOp& top ) { const polyBoundaryMesh& patches = mesh.boundaryMesh(); // Synchronize multiple shared points. const globalMeshData& pd = mesh.globalData(); // Values on shared points. Keyed on global shared index. Map<T> sharedPointValues(0); if (pd.nGlobalPoints() > 0) { // meshPoint per local index const labelList& sharedPtLabels = pd.sharedPointLabels(); // global shared index per local index const labelList& sharedPtAddr = pd.sharedPointAddr(); sharedPointValues.resize(sharedPtAddr.size()); // Fill my entries in the shared points forAll(sharedPtLabels, i) { label meshPointi = sharedPtLabels[i]; typename Map<T>::const_iterator fnd = pointValues.find(meshPointi); if (fnd != pointValues.end()) { combine ( sharedPointValues, cop, sharedPtAddr[i], // index fnd() // value ); } } }