91 const bool oldToNewHasFlip,
92 const bool lstHasFlip,
96 if (!lstHasFlip && !oldToNewHasFlip)
107 label val = lst[elemI];
123 <<
"Problem : zero value " << val
124 <<
" at index " << elemI <<
" out of " << lst.
size()
131 label newVal = oldToNew[val];
147 <<
"Problem : zero value " << newVal
148 <<
" at index " << elemI <<
" out of "
156 lst[elemI] =
sign*(newVal+1);
164 const bool selectEqual,
173 if (selectEqual == (values[i] == value))
184 if (selectEqual == (values[i] == value))
201 allNames[Pstream::myProcNo()] = lst;
202 Pstream::gatherList(allNames);
203 Pstream::scatterList(allNames);
205 for (
label procI = 1; procI < Pstream::nProcs(); procI++)
207 if (allNames[procI] != allNames[0])
210 <<
"When checking for equal " << msg.c_str() <<
" :" <<
endl
211 <<
"processor0 has:" << allNames[0] <<
endl
212 <<
"processor" << procI <<
" has:" << allNames[procI] <<
endl
213 << msg.c_str() <<
" need to be synchronised on all processors."
230 forAll(allNames[procI], i)
232 mergedNames.
insert(allNames[procI][i]);
235 return mergedNames.
toc();
242 Pout<<
"Primitives:" <<
nl
256 Pout<<
" " << patchI <<
" name:" << pp.
name()
257 <<
" size:" << pp.size()
258 <<
" start:" << pp.
start()
259 <<
" type:" << pp.type()
269 Pout<<
" " << zoneI <<
" name:" << pz.
name()
270 <<
" size:" << pz.
size()
280 Pout<<
" " << zoneI <<
" name:" << fz.
name()
281 <<
" size:" << fz.
size()
291 Pout<<
" " << zoneI <<
" name:" << cz.
name()
292 <<
" size:" << cz.
size()
309 <<
"Current coupling info:"
312 forAll(sourceFace, bFaceI)
316 Pout<<
" meshFace:" << meshFaceI
318 <<
" connects to proc:" << sourceProc[bFaceI]
319 <<
"/face:" << sourceFace[bFaceI]
320 <<
" which will move to proc:" << sourceNewNbrProc[bFaceI]
331 label nonEmptyPatchI = -1;
337 if (!isA<emptyPolyPatch>(pp) && !pp.
coupled())
339 nonEmptyPatchI = patchI;
344 if (nonEmptyPatchI == -1)
347 <<
"Cannot find a patch which is neither of type empty nor"
348 <<
" coupled in patches " <<
patches.names() <<
endl
349 <<
"There has to be at least one such patch for"
355 Pout<<
"findNonEmptyPatch : using patch " << nonEmptyPatchI
356 <<
" name:" <<
patches[nonEmptyPatchI].name()
357 <<
" type:" <<
patches[nonEmptyPatchI].type()
358 <<
" to put exposed faces into." <<
endl;
364 label procPatchI = -1;
368 if (isA<processorPolyPatch>(
patches[patchI]))
372 else if (procPatchI != -1)
375 <<
"Processor patches should be at end of patch list."
377 <<
"Have processor patch " << procPatchI
378 <<
" followed by non-processor patch " << patchI
379 <<
" in patches " <<
patches.names()
384 return nonEmptyPatchI;
393 vector testNormal(1, 1, 1);
394 testNormal /=
mag(testNormal);
418 fld[faceI] = (
n[faceI] & testNormal);
427 newPfld[i] = (
n.boundaryField()[patchI][i] & testNormal);
440 vector testNormal(1, 1, 1);
441 testNormal /=
mag(testNormal);
447 scalar
cos = (
n[faceI] & testNormal);
453 <<
"On internal face " << faceI <<
" at "
455 <<
" the field value is " <<
fld[faceI]
456 <<
" whereas cos angle of " << testNormal
457 <<
" with mesh normal " <<
n[faceI]
470 scalar
cos = (np[i] & testNormal);
477 <<
"On face " << faceI
480 <<
" the field value is " << fvp[i]
481 <<
" whereas cos angle of " << testNormal
482 <<
" with mesh normal " << np[i]
496 const label destinationPatch
501 labelList newPatchID(mesh_.nFaces() - mesh_.nInternalFaces(), -1);
503 label nProcPatches = 0;
505 forAll(mesh_.boundaryMesh(), patchI)
509 if (isA<processorPolyPatch>(pp))
513 Pout<<
"Moving all faces of patch " << pp.
name()
514 <<
" into patch " << destinationPatch
518 label offset = pp.
start() - mesh_.nInternalFaces();
522 newPatchID[offset+i] = destinationPatch;
541 forAll(mesh_.boundaryMesh(), patchI)
543 if (!isA<processorPolyPatch>(mesh_.boundaryMesh()[patchI]))
545 oldToNew[patchI] = newI++;
548 label nNonProcPatches = newI;
551 forAll(mesh_.boundaryMesh(), patchI)
553 if (isA<processorPolyPatch>(mesh_.boundaryMesh()[patchI]))
555 oldToNew[patchI] = newI++;
574 forAll(newPatchID, bFaceI)
576 if (newPatchID[bFaceI] != -1)
578 label faceI = mesh_.nInternalFaces() + bFaceI;
580 label zoneID = mesh_.faceZones().whichZone(faceI);
581 bool zoneFlip =
false;
585 const faceZone& fZone = mesh_.faceZones()[zoneID];
593 mesh_.faces()[faceI],
595 mesh_.faceOwner()[faceI],
613 saveBoundaryFields<scalar, surfaceMesh>(sFlds);
615 saveBoundaryFields<vector, surfaceMesh>(vFlds);
617 saveBoundaryFields<sphericalTensor, surfaceMesh>(sptFlds);
619 saveBoundaryFields<symmTensor, surfaceMesh>(sytFlds);
621 saveBoundaryFields<tensor, surfaceMesh>(tFlds);
633 mesh_.updateMesh(map);
637 mapBoundaryFields<scalar, surfaceMesh>(map, sFlds);
638 mapBoundaryFields<vector, surfaceMesh>(map, vFlds);
639 mapBoundaryFields<sphericalTensor, surfaceMesh>(map, sptFlds);
640 mapBoundaryFields<symmTensor, surfaceMesh>(map, sytFlds);
641 mapBoundaryFields<tensor, surfaceMesh>(map, tFlds);
645 if (map().hasMotionPoints())
647 mesh_.movePoints(map().preMotionPoints());
659 <<
"reverseFaceMap contains -1 at index:"
661 <<
"This means that the repatch operation was not just"
666 forAll(constructFaceMap, procI)
668 inplaceRenumberWithFlip
670 map().reverseFaceMap(),
673 constructFaceMap[procI]
715 mesh_.updateMesh(map);
718 forAll(constructPointMap, procI)
720 labelList& constructMap = constructPointMap[procI];
724 label oldPointI = constructMap[i];
726 label newPointI = map().reversePointMap()[oldPointI];
730 constructMap[i] = -newPointI-2;
732 else if (newPointI >= 0)
734 constructMap[i] = newPointI;
739 <<
"Problem. oldPointI:" << oldPointI
758 label nBnd = mesh_.nFaces() - mesh_.nInternalFaces();
762 sourceNewNbrProc.
setSize(nBnd);
776 label offset = pp.
start() - mesh_.nInternalFaces();
781 label bndI = offset + i;
782 nbrFaces[bndI] = pp.
start()+i;
802 label offset = pp.
start() - mesh_.nInternalFaces();
804 if (isA<processorPolyPatch>(pp))
807 refCast<const processorPolyPatch>(pp);
811 if (procPatch.
owner())
816 label bndI = offset + i;
817 sourceFace[bndI] = pp.
start()+i;
819 sourceNewNbrProc[bndI] = nbrNewNbrProc[bndI];
827 label bndI = offset + i;
828 sourceFace[bndI] = nbrFaces[bndI];
830 sourceNewNbrProc[bndI] = nbrNewNbrProc[bndI];
836 if (isA<processorCyclicPolyPatch>(pp))
838 patchI = refCast<const processorCyclicPolyPatch>
846 label bndI = offset + i;
847 sourcePatch[bndI] = patchI;
850 else if (isA<cyclicPolyPatch>(pp))
858 label bndI = offset + i;
859 sourceFace[bndI] = pp.
start()+i;
861 sourcePatch[bndI] = patchI;
862 sourceNewNbrProc[bndI] = nbrNewNbrProc[bndI];
869 label bndI = offset + i;
870 sourceFace[bndI] = nbrFaces[bndI];
872 sourcePatch[bndI] = patchI;
873 sourceNewNbrProc[bndI] = nbrNewNbrProc[bndI];
882 label bndI = offset + i;
883 sourceFace[bndI] = -1;
884 sourceProc[bndI] = -1;
885 sourcePatch[bndI] = patchI;
886 sourceNewNbrProc[bndI] = -1;
903 const label oldInternalFaces,
921 forAll(subFace, newBFaceI)
928 if (oldFaceI < oldInternalFaces)
930 subFace[newBFaceI] = oldFaceI;
932 subPatch[newBFaceI] = -1;
934 label oldOwn = oldFaceOwner[oldFaceI];
935 label oldNei = oldFaceNeighbour[oldFaceI];
940 subNewNbrProc[newBFaceI] = oldDistribution[oldNei];
945 subNewNbrProc[newBFaceI] = oldDistribution[oldOwn];
951 label oldBFaceI = oldFaceI - oldInternalFaces;
953 subFace[newBFaceI] = sourceFace[oldBFaceI];
954 subProc[newBFaceI] = sourceProc[oldBFaceI];
955 subPatch[newBFaceI] = sourcePatch[oldBFaceI];
956 subNewNbrProc[newBFaceI] = sourceNewNbrProc[oldBFaceI];
985 forAll(domainProc, bFaceI)
987 if (domainProc[bFaceI] != -1 && domainPatch[bFaceI] == -1)
991 labelPair(domainFace[bFaceI], domainProc[bFaceI]),
1004 forAll(sourceFace, bFaceI)
1006 if (sourceProc[bFaceI] != -1 && sourcePatch[bFaceI] == -1)
1008 labelPair myData(sourceFace[bFaceI], sourceProc[bFaceI]);
1011 iter = map.
find(myData);
1013 if (iter != map.end())
1015 label nbrBFaceI = iter();
1018 slaveCoupledFaces[coupledI] =
1027 masterCoupledFaces.
setSize(coupledI);
1028 slaveCoupledFaces.
setSize(coupledI);
1032 Pout<<
"findCouples : found " << coupledI
1033 <<
" faces that will be stitched" <<
nl <<
endl;
1044 const label nInternalFaces1,
1050 forAll(boundaryData0, oldBFaceI)
1058 boundaryData0[oldBFaceI];
1062 forAll(boundaryData1, addedBFaceI)
1069 boundaryData1[addedBFaceI];
1073 return newBoundaryData;
1081 const label oldInternalPatchI
1111 saveInternalFields(sFlds);
1113 saveInternalFields(vFlds);
1115 saveInternalFields(sptFlds);
1117 saveInternalFields(sytFlds);
1119 saveInternalFields(tFlds);
1125 mesh_.updateMesh(map);
1132 mapExposedFaces(map(), sFlds);
1133 mapExposedFaces(map(), vFlds);
1134 mapExposedFaces(map(), sptFlds);
1135 mapExposedFaces(map(), sytFlds);
1136 mapExposedFaces(map(), tFlds);
1144 if (map().hasMotionPoints())
1146 mesh_.movePoints(map().preMotionPoints());
1178 label bFaceI = indices[i];
1179 label procI = nbrProc[bFaceI];
1183 if (!procPatchID[procI].
found(referPatchID[bFaceI]))
1188 if (referPatchID[bFaceI] == -1)
1192 const word patchName =
1203 mesh_.boundaryMesh().size(),
1204 mesh_.boundaryMesh(),
1209 procPatchID[procI].insert
1211 referPatchID[bFaceI],
1225 = refCast<const coupledPolyPatch>
1227 mesh_.boundaryMesh()[referPatchID[bFaceI]]
1231 const word& cycName = pcPatch.
name();
1233 const word patchName =
1246 mesh_.boundaryMesh().size(),
1247 mesh_.boundaryMesh(),
1254 procPatchID[procI].insert
1256 referPatchID[bFaceI],
1287 label origPatchI = referPatchID[bFaceI];
1288 patchIDs[bFaceI] = origPatchI;
1290 else if (nbrProc[bFaceI] != -1)
1292 label origPatchI = referPatchID[bFaceI];
1293 patchIDs[bFaceI] = procPatchID[nbrProc[bFaceI]][origPatchI];
1297 patchIDs[bFaceI] = -1;
1323 Pout<<
"Sending to domain " << domain <<
nl
1339 forAll(pointZoneNames, nameI)
1345 rowSizes[nameI] = pointZones[myZoneID].size();
1350 forAll(pointZoneNames, nameI)
1356 zonePoints[nameI].assign(pointZones[myZoneID]);
1369 forAll(faceZoneNames, nameI)
1375 rowSizes[nameI] = faceZones[myZoneID].size();
1380 zoneFaceFlip.
setSize(rowSizes);
1382 forAll(faceZoneNames, nameI)
1388 zoneFaces[nameI].assign(faceZones[myZoneID]);
1389 zoneFaceFlip[nameI].assign(faceZones[myZoneID].flipMap());
1401 forAll(cellZoneNames, nameI)
1407 rowSizes[nameI] = cellZones[myZoneID].size();
1413 forAll(cellZoneNames, nameI)
1419 zoneCells[nameI].assign(cellZones[myZoneID]);
1454 << sourceNewNbrProc;
1459 Pout<<
"Started sending mesh to domain " << domain
1472 const Time& runTime,
1494 >> domainSourcePatch
1495 >> domainSourceNewNbrProc;
1516 fvMesh& domainMesh = domainMeshPtr();
1520 forAll(patchEntries, patchI)
1524 patchEntries[patchI].keyword(),
1525 patchEntries[patchI].
dict(),
1570 domainMesh.
addZones(pZonePtrs, fZonePtrs, cZonePtrs);
1572 return domainMeshPtr;
1603 <<
"At index " << cellI <<
" distribution:" << newProc
1621 <<
"Size of distribution:"
1622 <<
distribution.size() <<
" mesh nCells:" << mesh_.nCells()
1630 if (
patches.checkParallelSync(
true))
1633 <<
"This application requires all non-processor patches"
1634 <<
" to be present in the same order on all patches" <<
nl
1635 <<
"followed by the processor patches (which of course are unique)."
1637 <<
"Local patches:" << mesh_.boundaryMesh().names()
1642 const label nOldPoints(mesh_.nPoints());
1643 const label nOldFaces(mesh_.nFaces());
1644 const label nOldCells(mesh_.nCells());
1649 oldPatchStarts[patchI] =
patches[patchI].start();
1650 oldPatchNMeshPoints[patchI] =
patches[patchI].nPoints();
1668 oldPatchStarts.
xfer(),
1669 oldPatchNMeshPoints.
xfer(),
1686 const wordList pointZoneNames(mergeWordList(mesh_.pointZones().names()));
1687 const wordList faceZoneNames(mergeWordList(mesh_.faceZones().names()));
1688 const wordList cellZoneNames(mergeWordList(mesh_.cellZones().names()));
1750 mesh_.resetMotion();
1753 const wordList volScalars(mesh_.names(volScalarField::typeName));
1754 checkEqualWordList(
"volScalarFields", volScalars);
1755 const wordList volVectors(mesh_.names(volVectorField::typeName));
1756 checkEqualWordList(
"volVectorFields", volVectors);
1759 mesh_.names(volSphericalTensorField::typeName)
1761 checkEqualWordList(
"volSphericalTensorFields", volSphereTensors);
1762 const wordList volSymmTensors(mesh_.names(volSymmTensorField::typeName));
1763 checkEqualWordList(
"volSymmTensorFields", volSymmTensors);
1764 const wordList volTensors(mesh_.names(volTensorField::typeName));
1765 checkEqualWordList(
"volTensorField", volTensors);
1767 const wordList surfScalars(mesh_.names(surfaceScalarField::typeName));
1768 checkEqualWordList(
"surfaceScalarFields", surfScalars);
1769 const wordList surfVectors(mesh_.names(surfaceVectorField::typeName));
1770 checkEqualWordList(
"surfaceVectorFields", surfVectors);
1773 mesh_.names(surfaceSphericalTensorField::typeName)
1775 checkEqualWordList(
"surfaceSphericalTensorFields", surfSphereTensors);
1778 mesh_.names(surfaceSymmTensorField::typeName)
1780 checkEqualWordList(
"surfaceSymmTensorFields", surfSymmTensors);
1781 const wordList surfTensors(mesh_.names(surfaceTensorField::typeName));
1782 checkEqualWordList(
"surfaceTensorFields", surfTensors);
1785 const wordList dimScalars(mesh_.names(dimScalType::typeName));
1786 checkEqualWordList(
"volScalarField::DimensionedInternalField", dimScalars);
1789 const wordList dimVectors(mesh_.names(dimVecType::typeName));
1790 checkEqualWordList(
"volVectorField::DimensionedInternalField", dimVectors);
1793 const wordList dimSphereTensors(mesh_.names(dimSphereType::typeName));
1796 "volSphericalTensorField::DimensionedInternalField",
1801 const wordList dimSymmTensors(mesh_.names(dimSymmTensorType::typeName));
1804 "volSymmTensorField::DimensionedInternalField",
1809 const wordList dimTensors(mesh_.names(dimTensorType::typeName));
1810 checkEqualWordList(
"volTensorField::DimensionedInternalField", dimTensors);
1814 label oldInternalPatchI = findNonEmptyPatch();
1825 repatchFaceMap = repatchMap().faceMap();
1832 repatchMap().reverseFaceMap(),
1833 mesh_.nFaces() - mesh_.nInternalFaces(),
1834 mesh_.nInternalFaces()
1836 - mesh_.nInternalFaces()
1850 Pout<<
nl <<
"MESH WITH PROC PATCHES DELETED:" <<
endl;
1851 printMeshInfo(mesh_);
1852 printFieldInfo<volScalarField>(mesh_);
1853 printFieldInfo<volVectorField>(mesh_);
1854 printFieldInfo<volSphericalTensorField>(mesh_);
1855 printFieldInfo<volSymmTensorField>(mesh_);
1856 printFieldInfo<volTensorField>(mesh_);
1857 printFieldInfo<surfaceScalarField>(mesh_);
1858 printFieldInfo<surfaceVectorField>(mesh_);
1859 printFieldInfo<surfaceSphericalTensorField>(mesh_);
1860 printFieldInfo<surfaceSymmTensorField>(mesh_);
1861 printFieldInfo<surfaceTensorField>(mesh_);
1913 <<
"SUBSETTING FOR DOMAIN " << recvProc
1914 <<
" cells to send:"
1935 subCellMap[recvProc] = subsetter.
cellMap();
1937 inplaceRenumberWithFlip
1942 subFaceMap[recvProc]
1944 subPointMap[recvProc] = subsetter.
pointMap();
1945 subPatchMap[recvProc] = subsetter.
patchMap();
1962 mesh_.faceNeighbour(),
1963 mesh_.nInternalFaces(),
1973 procSourceNewNbrProc
1991 procSourceNewNbrProc,
1996 sendFields<volScalarField>(recvProc, volScalars, subsetter, str);
1997 sendFields<volVectorField>(recvProc, volVectors, subsetter, str);
1998 sendFields<volSphericalTensorField>
2005 sendFields<volSymmTensorField>
2012 sendFields<volTensorField>(recvProc, volTensors, subsetter, str);
2015 sendFields<surfaceScalarField>
2022 sendFields<surfaceVectorField>
2029 sendFields<surfaceSphericalTensorField>
2036 sendFields<surfaceSymmTensorField>
2043 sendFields<surfaceTensorField>
2052 sendFields<volScalarField::DimensionedInternalField>
2059 sendFields<volVectorField::DimensionedInternalField>
2066 sendFields<volSphericalTensorField::DimensionedInternalField>
2073 sendFields<volSymmTensorField::DimensionedInternalField>
2080 sendFields<volTensorField::DimensionedInternalField>
2103 const labelList oldFaceOwner(mesh_.faceOwner());
2104 const labelList oldFaceNeighbour(mesh_.faceNeighbour());
2105 const label oldInternalFaces = mesh_.nInternalFaces();
2133 label faceI = iter.key();
2171 domainSourceNewNbrProc
2174 sourceFace.
transfer(domainSourceFace);
2175 sourceProc.
transfer(domainSourceProc);
2176 sourcePatch.
transfer(domainSourcePatch);
2177 sourceNewNbrProc.
transfer(domainSourceNewNbrProc);
2185 printMeshInfo(mesh_);
2186 printFieldInfo<volScalarField>(mesh_);
2187 printFieldInfo<volVectorField>(mesh_);
2188 printFieldInfo<volSphericalTensorField>(mesh_);
2189 printFieldInfo<volSymmTensorField>(mesh_);
2190 printFieldInfo<volTensorField>(mesh_);
2191 printFieldInfo<surfaceScalarField>(mesh_);
2192 printFieldInfo<surfaceVectorField>(mesh_);
2193 printFieldInfo<surfaceSphericalTensorField>(mesh_);
2194 printFieldInfo<surfaceSymmTensorField>(mesh_);
2195 printFieldInfo<surfaceTensorField>(mesh_);
2207 forAll(nSendCells, sendProc)
2219 <<
"RECEIVING FROM DOMAIN " << sendProc
2220 <<
" cells to receive:"
2259 domainMeshPtr = receiveMesh
2266 const_cast<Time&
>(mesh_.time()),
2270 domainSourceNewNbrProc,
2273 fvMesh& domainMesh = domainMeshPtr();
2283 receiveFields<volScalarField>
2289 fieldDicts.
subDict(volScalarField::typeName)
2291 receiveFields<volVectorField>
2297 fieldDicts.
subDict(volVectorField::typeName)
2299 receiveFields<volSphericalTensorField>
2305 fieldDicts.
subDict(volSphericalTensorField::typeName)
2307 receiveFields<volSymmTensorField>
2313 fieldDicts.
subDict(volSymmTensorField::typeName)
2315 receiveFields<volTensorField>
2321 fieldDicts.
subDict(volTensorField::typeName)
2325 receiveFields<surfaceScalarField>
2331 fieldDicts.
subDict(surfaceScalarField::typeName)
2333 receiveFields<surfaceVectorField>
2339 fieldDicts.
subDict(surfaceVectorField::typeName)
2341 receiveFields<surfaceSphericalTensorField>
2347 fieldDicts.
subDict(surfaceSphericalTensorField::typeName)
2349 receiveFields<surfaceSymmTensorField>
2355 fieldDicts.
subDict(surfaceSymmTensorField::typeName)
2357 receiveFields<surfaceTensorField>
2363 fieldDicts.
subDict(surfaceTensorField::typeName)
2367 receiveFields<volScalarField::DimensionedInternalField>
2375 volScalarField::DimensionedInternalField::typeName
2378 receiveFields<volVectorField::DimensionedInternalField>
2386 volVectorField::DimensionedInternalField::typeName
2389 receiveFields<volSphericalTensorField::DimensionedInternalField>
2401 receiveFields<volSymmTensorField::DimensionedInternalField>
2409 volSymmTensorField::DimensionedInternalField::typeName
2412 receiveFields<volTensorField::DimensionedInternalField>
2420 volTensorField::DimensionedInternalField::typeName
2424 const fvMesh& domainMesh = domainMeshPtr();
2430 constructPatchMap[sendProc] =
2437 Pout<<
nl <<
"RECEIVED MESH FROM:" << sendProc <<
endl;
2438 printMeshInfo(domainMesh);
2439 printFieldInfo<volScalarField>(domainMesh);
2440 printFieldInfo<volVectorField>(domainMesh);
2441 printFieldInfo<volSphericalTensorField>(domainMesh);
2442 printFieldInfo<volSymmTensorField>(domainMesh);
2443 printFieldInfo<volTensorField>(domainMesh);
2444 printFieldInfo<surfaceScalarField>(domainMesh);
2445 printFieldInfo<surfaceVectorField>(domainMesh);
2446 printFieldInfo<surfaceSphericalTensorField>(domainMesh);
2447 printFieldInfo<surfaceSymmTensorField>(domainMesh);
2448 printFieldInfo<surfaceTensorField>(domainMesh);
2506 sourceFace = mapBoundaryData
2514 sourceProc = mapBoundaryData
2522 sourcePatch = mapBoundaryData
2530 sourceNewNbrProc = mapBoundaryData
2536 domainSourceNewNbrProc
2541 const labelList& oldCellMap = map().oldCellMap();
2542 const labelList& oldFaceMap = map().oldFaceMap();
2543 const labelList& oldPointMap = map().oldPointMap();
2544 const labelList& oldPatchMap = map().oldPatchMap();
2547 forAll(constructPatchMap, procI)
2549 if (procI != sendProc && constructPatchMap[procI].size())
2553 inplaceRenumberWithFlip
2558 constructFaceMap[procI]
2571 flippedAddedFaces.
resize(nBnd/4);
2576 domainFaceI < domainMesh.
nFaces();
2580 label newFaceI = map().addedFaceMap()[domainFaceI];
2581 label newCellI = mesh_.faceOwner()[newFaceI];
2585 if (newCellI != map().addedCellMap()[domainCellI])
2587 flippedAddedFaces.
insert(domainFaceI);
2598 label domainFaceI = iter.key();
2599 label& val = constructFaceMap[sendProc][domainFaceI];
2602 inplaceRenumberWithFlip
2604 map().addedFaceMap(),
2607 constructFaceMap[sendProc]
2614 Pout<<
nl <<
"MERGED MESH FROM:" << sendProc <<
endl;
2615 printMeshInfo(mesh_);
2616 printFieldInfo<volScalarField>(mesh_);
2617 printFieldInfo<volVectorField>(mesh_);
2618 printFieldInfo<volSphericalTensorField>(mesh_);
2619 printFieldInfo<volSymmTensorField>(mesh_);
2620 printFieldInfo<volTensorField>(mesh_);
2621 printFieldInfo<surfaceScalarField>(mesh_);
2622 printFieldInfo<surfaceVectorField>(mesh_);
2623 printFieldInfo<surfaceSphericalTensorField>(mesh_);
2624 printFieldInfo<surfaceSymmTensorField>(mesh_);
2625 printFieldInfo<surfaceTensorField>(mesh_);
2637 printMeshInfo(mesh_);
2638 printFieldInfo<volScalarField>(mesh_);
2639 printFieldInfo<volVectorField>(mesh_);
2640 printFieldInfo<volSphericalTensorField>(mesh_);
2641 printFieldInfo<volSymmTensorField>(mesh_);
2642 printFieldInfo<volTensorField>(mesh_);
2643 printFieldInfo<surfaceScalarField>(mesh_);
2644 printFieldInfo<surfaceVectorField>(mesh_);
2645 printFieldInfo<surfaceSphericalTensorField>(mesh_);
2646 printFieldInfo<surfaceSymmTensorField>(mesh_);
2647 printFieldInfo<surfaceTensorField>(mesh_);
2662 addProcPatches(sourceNewNbrProc, sourcePatch, procPatchID);
2685 repatch(newPatchID, constructFaceMap);
2693 initPatchFields<volScalarField, processorFvPatchField<scalar> >
2697 initPatchFields<volVectorField, processorFvPatchField<vector> >
2709 initPatchFields<volSymmTensorField, processorFvPatchField<symmTensor> >
2713 initPatchFields<volTensorField, processorFvPatchField<tensor> >
2719 mesh_.setInstance(mesh_.time().timeName());
2726 printMeshInfo(mesh_);
2727 printFieldInfo<volScalarField>(mesh_);
2728 printFieldInfo<volVectorField>(mesh_);
2729 printFieldInfo<volSphericalTensorField>(mesh_);
2730 printFieldInfo<volSymmTensorField>(mesh_);
2731 printFieldInfo<volTensorField>(mesh_);
2732 printFieldInfo<surfaceScalarField>(mesh_);
2733 printFieldInfo<surfaceVectorField>(mesh_);
2734 printFieldInfo<surfaceSphericalTensorField>(mesh_);
2735 printFieldInfo<surfaceSymmTensorField>(mesh_);
2736 printFieldInfo<surfaceTensorField>(mesh_);
2750 oldPatchStarts.
xfer(),
2751 oldPatchNMeshPoints.
xfer(),
2758 constructPointMap.
xfer(),
2759 constructFaceMap.
xfer(),
2760 constructCellMap.
xfer(),
2761 constructPatchMap.
xfer(),