Removed unnecessary global reduce in AMG interface coarsening

This commit is contained in:
Hrvoje Jasak 2016-06-09 18:17:33 +01:00
parent b8f2798408
commit 4d454840d5
2 changed files with 8 additions and 11 deletions

View file

@ -46,11 +46,9 @@ void Foam::GGIBlockAMGInterfaceField<Type>::agglomerateBlockType
const ggiLduInterface& fineGgiInterface = ggiInterface_.fineGgiInterface();
// Reassemble fine coefficients to full fine zone size
Field<Type2> zoneFineCoeffs
(
fineGgiInterface.zoneSize(),
pTraits<Type2>::zero
);
// No need to initialise to zero, as only local coefficients
// are used. HJ, 9/Jun/2016
Field<Type2> zoneFineCoeffs(fineGgiInterface.zoneSize());
const labelList& fineZa = fineGgiInterface.zoneAddressing();
@ -59,11 +57,8 @@ void Foam::GGIBlockAMGInterfaceField<Type>::agglomerateBlockType
zoneFineCoeffs[fineZa[i]] = fineCoeffs[i];
}
// Reduce zone data
if (!ggiInterface_.localParallel())
{
reduce(zoneFineCoeffs, sumOp<Field<Type2> >());
}
// Reduce zone data is not required: all coefficients are local
// HJ, 9/Jun/2016
Field<Type2> zoneCoarseCoeffs
(

View file

@ -723,7 +723,9 @@ Foam::tmp<Foam::scalarField> Foam::ggiAMGInterface::agglomerateCoeffs
// HJ, 16/Mar/2016
// Reassemble fine coefficients to full fine zone size
scalarField zoneFineCoeffs(fineGgiInterface_.zoneSize(), 0);
// No need to initialise to zero, as only local coefficients
// are used. HJ, 9/Jun/2016
scalarField zoneFineCoeffs(fineGgiInterface_.zoneSize());
const labelList& fineZa = fineGgiInterface_.zoneAddressing();