BUG: cyclics handled inconsistently

This commit is contained in:
mattijs
2010-04-29 18:51:28 +01:00
parent b9032abd28
commit 84af8ef75a

View File

@ -289,16 +289,25 @@ void Foam::decompositionMethod::calcCSR
forAll(pbm, patchI)
{
if (isA<cyclicPolyPatch>(pbm[patchI]))
if
(
isA<cyclicPolyPatch>(pbm[patchI])
&& refCast<const cyclicPolyPatch>(pbm[patchI]).owner()
)
{
const unallocLabelList& faceCells = pbm[patchI].faceCells();
const cyclicPolyPatch& cycPatch = refCast<const cyclicPolyPatch>
(
pbm[patchI]
);
label sizeby2 = faceCells.size()/2;
const unallocLabelList& faceCells = cycPatch.faceCells();
const unallocLabelList& nbrCells =
cycPatch.neighbPatch().faceCells();
for (label faceI=0; faceI<sizeby2; faceI++)
forAll(faceCells, facei)
{
label own = faceCells[faceI];
label nei = faceCells[faceI + sizeby2];
label own = faceCells[facei];
label nei = nbrCells[facei];
if (cellPair.insert(edge(own, nei)))
{
@ -370,8 +379,11 @@ void Foam::decompositionMethod::calcCSR
label own = faceCells[facei];
label nei = nbrCells[facei];
adjncy[xadj[own] + nFacesPerCell[own]++] = nei;
adjncy[xadj[nei] + nFacesPerCell[nei]++] = own;
if (cellPair.insert(edge(own, nei)))
{
adjncy[xadj[own] + nFacesPerCell[own]++] = nei;
adjncy[xadj[nei] + nFacesPerCell[nei]++] = own;
}
}
}
}