mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
ENH: splitMeshRegions: write region map
This commit is contained in:
@ -55,8 +55,10 @@ Description
|
|||||||
this if you don't mind having disconnected domains in a single region.
|
this if you don't mind having disconnected domains in a single region.
|
||||||
This option requires all cells to be in one (and one only) cellZone.
|
This option requires all cells to be in one (and one only) cellZone.
|
||||||
|
|
||||||
|
|
||||||
- Should work in parallel.
|
- Should work in parallel.
|
||||||
cellZones can differ on either side of processor boundaries in which case
|
cellZones can differ on either side of processor boundaries in which case
|
||||||
|
the faces get moved from processor patch to directMapped patch. Not
|
||||||
the faces get moved from processor patch to mapped patch. Not
|
the faces get moved from processor patch to mapped patch. Not
|
||||||
very well tested.
|
very well tested.
|
||||||
|
|
||||||
@ -79,6 +81,8 @@ Description
|
|||||||
- faceRegionAddressing : ,, face ,, face in
|
- faceRegionAddressing : ,, face ,, face in
|
||||||
the original mesh + 'turning index'. For a face in the same orientation
|
the original mesh + 'turning index'. For a face in the same orientation
|
||||||
this is the original facelabel+1, for a turned face this is -facelabel-1
|
this is the original facelabel+1, for a turned face this is -facelabel-1
|
||||||
|
- boundaryRegionAddressing : for every patch in this region the
|
||||||
|
patch in the original mesh (or -1 if added patch)
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
#include "SortableList.H"
|
#include "SortableList.H"
|
||||||
@ -1231,6 +1235,36 @@ void createAndWriteRegion
|
|||||||
<< " from region" << regionI
|
<< " from region" << regionI
|
||||||
<< " cells back to base mesh." << endl;
|
<< " cells back to base mesh." << endl;
|
||||||
cellProcAddressing.write();
|
cellProcAddressing.write();
|
||||||
|
|
||||||
|
labelIOList boundaryProcAddressing
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"boundaryRegionAddressing",
|
||||||
|
newMesh().facesInstance(),
|
||||||
|
newMesh().meshSubDir,
|
||||||
|
newMesh(),
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
labelList(nNewPatches, -1)
|
||||||
|
);
|
||||||
|
forAll(oldToNew, i)
|
||||||
|
{
|
||||||
|
if (!addedPatches.found(i))
|
||||||
|
{
|
||||||
|
label newI = oldToNew[i];
|
||||||
|
if (newI >= 0 && newI < nNewPatches)
|
||||||
|
{
|
||||||
|
boundaryProcAddressing[oldToNew[i]] = i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Info<< "Writing map " << boundaryProcAddressing.name()
|
||||||
|
<< " from region" << regionI
|
||||||
|
<< " boundary back to base mesh." << endl;
|
||||||
|
boundaryProcAddressing.write();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user