mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
BUG: cyclics handled inconsistently
This commit is contained in:
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user