diff --git a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerTemplates.C b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerTemplates.C index e43b26eeb4..417bb0ff78 100644 --- a/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerTemplates.C +++ b/applications/utilities/parallelProcessing/decomposePar/fvFieldDecomposerTemplates.C @@ -252,44 +252,50 @@ Foam::fvFieldDecomposer::decomposeVolField refCast(procPatch) .referPatch().nbrPatchID(); + // Use `fvPatchField::New` rather than + // `new processorCyclicFvPatchField` so that derivations + // (such as non-conformal processor cyclics) are constructed bf.set ( procPatchi, - new processorCyclicFvPatchField + fvPatchField::New ( + procPatch.type(), procPatch, - vf(), - mapCellToFace - ( - labelUList(), - completeMesh_.lduAddr().patchAddr - ( - nbrCompletePatchi - ), - field.primitiveField(), - faceProcAddressingBf_[proci][procPatchi] - ) + vf() ) ); + + bf[procPatchi] = + mapCellToFace + ( + labelUList(), + completeMesh_.lduAddr().patchAddr(nbrCompletePatchi), + field.primitiveField(), + faceProcAddressingBf_[proci][procPatchi] + ); } else if (isA(procPatch)) { bf.set ( procPatchi, - new processorFvPatchField + fvPatchField::New ( + procPatch.type(), procPatch, - vf(), - mapCellToFace - ( - completeMesh_.owner(), - completeMesh_.neighbour(), - field.primitiveField(), - faceProcAddressingBf_[proci][procPatchi] - ) + vf() ) ); + + bf[procPatchi] = + mapCellToFace + ( + completeMesh_.owner(), + completeMesh_.neighbour(), + field.primitiveField(), + faceProcAddressingBf_[proci][procPatchi] + ); } else {