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) 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 own = faceCells[facei];
label nei = faceCells[faceI + sizeby2]; label nei = nbrCells[facei];
if (cellPair.insert(edge(own, nei))) if (cellPair.insert(edge(own, nei)))
{ {
@ -370,8 +379,11 @@ void Foam::decompositionMethod::calcCSR
label own = faceCells[facei]; label own = faceCells[facei];
label nei = nbrCells[facei]; label nei = nbrCells[facei];
adjncy[xadj[own] + nFacesPerCell[own]++] = nei; if (cellPair.insert(edge(own, nei)))
adjncy[xadj[nei] + nFacesPerCell[nei]++] = own; {
adjncy[xadj[own] + nFacesPerCell[own]++] = nei;
adjncy[xadj[nei] + nFacesPerCell[nei]++] = own;
}
} }
} }
} }