void Foam::SurfaceFilmModel<CloudType>::cacheFilmFields ( const label filmPatchI, const label primaryPatchI, const mapDistribute& distMap, const regionModels::surfaceFilmModels::surfaceFilmModel& filmModel ) { massParcelPatch_ = filmModel.cloudMassTrans().boundaryField()[filmPatchI]; distMap.distribute(massParcelPatch_); diameterParcelPatch_ = filmModel.cloudDiameterTrans().boundaryField()[filmPatchI]; distMap.distribute(diameterParcelPatch_); UFilmPatch_ = filmModel.U().boundaryField()[filmPatchI]; distMap.distribute(UFilmPatch_); rhoFilmPatch_ = filmModel.rho().boundaryField()[filmPatchI]; distMap.distribute(rhoFilmPatch_); deltaFilmPatch_[primaryPatchI] = filmModel.delta().boundaryField()[filmPatchI]; distMap.distribute(deltaFilmPatch_[primaryPatchI]); }
void Foam::distributedTriSurfaceMesh::distributeFields ( const mapDistribute& map ) { typedef DimensionedField<Type, triSurfaceGeoMesh> DimensionedSurfField; HashTable<DimensionedSurfField*> fields ( objectRegistry::lookupClass<DimensionedSurfField>() ); for ( typename HashTable<DimensionedSurfField*>::iterator fieldIter = fields.begin(); fieldIter != fields.end(); ++fieldIter ) { DimensionedSurfField& field = *fieldIter(); label oldSize = field.size(); map.distribute(field); if (debug) { Info<< "Mapped " << field.typeName << ' ' << field.name() << " from size " << oldSize << " to size " << field.size() << endl; } } }
void Foam::AMIInterpolation<SourcePatch, TargetPatch>::distributePatches ( const mapDistribute& map, const TargetPatch& pp, const globalIndex& gi, List<faceList>& faces, List<pointField>& points, List<labelList>& faceIDs ) const { PstreamBuffers pBufs(Pstream::nonBlocking); for (label domain = 0; domain < Pstream::nProcs(); domain++) { const labelList& sendElems = map.subMap()[domain]; if (domain != Pstream::myProcNo() && sendElems.size()) { labelList globalElems(sendElems.size()); forAll(sendElems, i) { globalElems[i] = gi.toGlobal(sendElems[i]); } faceList subFaces(UIndirectList<face>(pp, sendElems)); primitivePatch subPatch ( SubList<face>(subFaces, subFaces.size()), pp.points() ); if (debug & 2) { Pout<< "distributePatches: to processor " << domain << " sending faces " << subPatch.faceCentres() << endl; } UOPstream toDomain(domain, pBufs); toDomain << subPatch.localFaces() << subPatch.localPoints() << globalElems; }