From f6e02c19c76b9352f893ecad8c489002b148f478 Mon Sep 17 00:00:00 2001 From: andy Date: Thu, 22 Nov 2012 12:15:56 +0000 Subject: [PATCH] BUG: Updated fieldMinMax function object to handle empty patches --- .../field/fieldMinMax/fieldMinMaxTemplates.C | 63 +++++++++++-------- 1 file changed, 38 insertions(+), 25 deletions(-) diff --git a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C index 33564024b1..6bd6102b2e 100644 --- a/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C +++ b/src/postProcessing/functionObjects/field/fieldMinMax/fieldMinMaxTemplates.C @@ -75,20 +75,23 @@ void Foam::fieldMinMax::calcMinMaxFields forAll(magFieldBoundary, patchI) { const scalarField& mfp = magFieldBoundary[patchI]; - const vectorField& Cfp = CfBoundary[patchI]; - - label minPI = findMin(mfp); - if (mfp[minPI] < minVs[procI]) + if (mfp.size()) { - minVs[procI] = mfp[minPI]; - minCs[procI] = Cfp[minPI]; - } + const vectorField& Cfp = CfBoundary[patchI]; - label maxPI = findMax(mfp); - if (mfp[maxPI] > maxVs[procI]) - { - maxVs[procI] = mfp[maxPI]; - maxCs[procI] = Cfp[maxPI]; + label minPI = findMin(mfp); + if (mfp[minPI] < minVs[procI]) + { + minVs[procI] = mfp[minPI]; + minCs[procI] = Cfp[minPI]; + } + + label maxPI = findMax(mfp); + if (mfp[maxPI] > maxVs[procI]) + { + maxVs[procI] = mfp[maxPI]; + maxCs[procI] = Cfp[maxPI]; + } } } @@ -173,20 +176,23 @@ void Foam::fieldMinMax::calcMinMaxFields forAll(fieldBoundary, patchI) { const Field& fp = fieldBoundary[patchI]; - const vectorField& Cfp = CfBoundary[patchI]; - - label minPI = findMin(fp); - if (fp[minPI] < minVs[procI]) + if (fp.size()) { - minVs[procI] = fp[minPI]; - minCs[procI] = Cfp[minPI]; - } + const vectorField& Cfp = CfBoundary[patchI]; - label maxPI = findMax(fp); - if (fp[maxPI] > maxVs[procI]) - { - maxVs[procI] = fp[maxPI]; - maxCs[procI] = Cfp[maxPI]; + label minPI = findMin(fp); + if (fp[minPI] < minVs[procI]) + { + minVs[procI] = fp[minPI]; + minCs[procI] = Cfp[minPI]; + } + + label maxPI = findMax(fp); + if (fp[maxPI] > maxVs[procI]) + { + maxVs[procI] = fp[maxPI]; + maxCs[procI] = Cfp[maxPI]; + } } } @@ -250,7 +256,14 @@ void Foam::fieldMinMax::calcMinMaxFields } default: { - FatalErrorIn("Foam::fieldMinMax::calcMinMaxFields(const word&)") + FatalErrorIn + ( + "Foam::fieldMinMax::calcMinMaxFields" + "(" + "const word&, " + "const modeType&" + ")" + ) << "Unknown min/max mode: " << modeTypeNames_[mode_] << exit(FatalError); }