BUG: wrong cellZone addressing in uniformityCellZone
Summary
The mean value, variance and volume fields for each zone are accessed using the wrong indices in objectiveUniformityCellZone.C
Possible fixes
For instance
for (const label zI : zones_)
{
const cellZone& zoneI = mesh_.cellZones()[zI];
scalarField VZone(V, zoneI);
vectorField UZone(U.primitiveField(), zoneI);
volZone_[zI] = gSum(VZone);
UMean_[zI] = gSum(UZone*VZone)/volZone_[zI];
UVar_[zI] = gSum(magSqr(UZone - UMean_[zI])*VZone)/volZone_[zI];
J_ += 0.5*UVar_[zI];
}
should become
forAll(zones_, zI)
{
const cellZone& zoneI = mesh_.cellZones()[zones_[zI]];
scalarField VZone(V, zoneI);
vectorField UZone(U.primitiveField(), zoneI);
volZone_[zI] = gSum(VZone);
UMean_[zI] = gSum(UZone*VZone)/volZone_[zI];
UVar_[zI] = gSum(magSqr(UZone - UMean_[zI])*VZone)/volZone_[zI];
J_ += 0.5*UVar_[zI];
}