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(), Pstream::myProcNo(),
nbrProc[bFaceI] nbrProc[bFaceI]
); );
procPatchID[procI].insert procPatchID[procI].insert
( (
referPatchID[bFaceI], referPatchID[bFaceI],
@ -952,9 +953,9 @@ void Foam::fvMeshDistribute::addProcPatches
( (
mesh_, mesh_,
pp, pp,
dictionary(), dictionary(), // optional per field patchField
processorFvPatchField<scalar>::typeName, processorFvPatchField<scalar>::typeName,
false // not parallel sync false // not parallel sync
) )
); );
} }
@ -985,6 +986,7 @@ void Foam::fvMeshDistribute::addProcPatches
nbrProc[bFaceI], nbrProc[bFaceI],
cycName cycName
); );
procPatchID[procI].insert procPatchID[procI].insert
( (
referPatchID[bFaceI], 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 insertPatchI = polyPatches.size();
label startFaceI = mesh.nFaces(); label startFaceI = mesh.nFaces();
forAll(polyPatches, patchI) if (!isA<processorPolyPatch>(patch))
{ {
const polyPatch& pp = polyPatches[patchI]; forAll(polyPatches, patchI)
if (isA<processorPolyPatch>(pp))
{ {
insertPatchI = patchI; const polyPatch& pp = polyPatches[patchI];
startFaceI = pp.start();
break; if (isA<processorPolyPatch>(pp))
{
insertPatchI = patchI;
startFaceI = pp.start();
break;
}
} }
} }

View File

@ -36,7 +36,6 @@ SourceFiles
#define fvMeshTools_H #define fvMeshTools_H
#include "fvMesh.H" #include "fvMesh.H"
//#include "HashSet.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -89,9 +88,10 @@ class fvMeshTools
public: 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 // 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 static label addPatch
( (
fvMesh& mesh, fvMesh& mesh,