BUG: fvMeshTools: append, not insert, processor patches

This commit is contained in:
mattijs
2012-12-04 10:43:46 +00:00
parent d1d6421b49
commit 93aa05103f
3 changed files with 18 additions and 12 deletions

View File

@ -945,6 +945,7 @@ void Foam::fvMeshDistribute::addProcPatches
Pstream::myProcNo(),
nbrProc[bFaceI]
);
procPatchID[procI].insert
(
referPatchID[bFaceI],
@ -952,9 +953,9 @@ void Foam::fvMeshDistribute::addProcPatches
(
mesh_,
pp,
dictionary(),
dictionary(), // optional per field patchField
processorFvPatchField<scalar>::typeName,
false // not parallel sync
false // not parallel sync
)
);
}
@ -985,6 +986,7 @@ void Foam::fvMeshDistribute::addProcPatches
nbrProc[bFaceI],
cycName
);
procPatchID[procI].insert
(
referPatchID[bFaceI],

View File

@ -48,18 +48,22 @@ Foam::label Foam::fvMeshTools::addPatch
}
// Append at end unless there are processor patches
label insertPatchI = polyPatches.size();
label startFaceI = mesh.nFaces();
forAll(polyPatches, patchI)
if (!isA<processorPolyPatch>(patch))
{
const polyPatch& pp = polyPatches[patchI];
if (isA<processorPolyPatch>(pp))
forAll(polyPatches, patchI)
{
insertPatchI = patchI;
startFaceI = pp.start();
break;
const polyPatch& pp = polyPatches[patchI];
if (isA<processorPolyPatch>(pp))
{
insertPatchI = patchI;
startFaceI = pp.start();
break;
}
}
}

View File

@ -36,7 +36,6 @@ SourceFiles
#define fvMeshTools_H
#include "fvMesh.H"
//#include "HashSet.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -89,9 +88,10 @@ class fvMeshTools
public:
//- Add patch. Supply per field the new patchField per field as a
//- Add patch. Inserts patch before all processor patches.
// Supply per field the new patchField per field as a
// subdictionary or a default type. If validBoundary call is parallel
// synced and all add the same patch with same settings
// synced and all add the same patch with same settings.
static label addPatch
(
fvMesh& mesh,