From a2f54aef3cb34b2006e5bfc2d62445ea6baea69c Mon Sep 17 00:00:00 2001
From: Andrew Heather <a.heather@opencfd.co.uk>
Date: Mon, 6 Mar 2017 12:09:05 +0000
Subject: [PATCH] ENH: surfaceNoise - warn if no data available to process

---
 .../noiseModels/surfaceNoise/surfaceNoise.C   | 99 ++++++++++---------
 1 file changed, 54 insertions(+), 45 deletions(-)

diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
index 1d0703d2248..48bf385d044 100644
--- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
+++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C
@@ -617,53 +617,62 @@ void surfaceNoise::calculate()
             scalarField PSDfAve(nFreq, 0);
             scalarField fOut(nFreq, 0);
 
-            for (label i = f0; i <= f1; ++i)
+            if (nFreq == 0)
             {
-                label freqI = i*fftWriteInterval_;
-                fOut[i] = freq1[freqI];
-                const word gName = "fft";
-
-                PrmsfAve[i] = writeSurfaceData
-                (
-                    fNameBase,
-                    gName,
-                    "Prmsf",
-                    freq1[freqI],
-                    surfPrmsf[i],
-                    procFaceOffset,
-                    writePrmsf_
-                );
+                WarningInFunction
+                    << "No surface data available using a fftWriteInterval of "
+                    << fftWriteInterval_ << endl;
+            }
+            else
+            {
+                for (label i = f0; i <= f1; ++i)
+                {
+                    label freqI = i*fftWriteInterval_;
+                    fOut[i] = freq1[freqI];
+                    const word gName = "fft";
 
-                PSDfAve[i] = writeSurfaceData
-                (
-                    fNameBase,
-                    gName,
-                    "PSDf",
-                    freq1[freqI],
-                    surfPSDf[i],
-                    procFaceOffset,
-                    writePSDf_
-                );
-                writeSurfaceData
-                (
-                    fNameBase,
-                    gName,
-                    "PSD",
-                    freq1[freqI],
-                    noiseFFT::PSD(surfPSDf[i]),
-                    procFaceOffset,
-                    writePSD_
-                );
-                writeSurfaceData
-                (
-                    fNameBase,
-                    gName,
-                    "SPL",
-                    freq1[freqI],
-                    noiseFFT::SPL(surfPSDf[i]*deltaf),
-                    procFaceOffset,
-                    writeSPL_
-                );
+                    PrmsfAve[i] = writeSurfaceData
+                    (
+                        fNameBase,
+                        gName,
+                        "Prmsf",
+                        freq1[freqI],
+                        surfPrmsf[i],
+                        procFaceOffset,
+                        writePrmsf_
+                    );
+
+                    PSDfAve[i] = writeSurfaceData
+                    (
+                        fNameBase,
+                        gName,
+                        "PSDf",
+                        freq1[freqI],
+                        surfPSDf[i],
+                        procFaceOffset,
+                        writePSDf_
+                    );
+                    writeSurfaceData
+                    (
+                        fNameBase,
+                        gName,
+                        "PSD",
+                        freq1[freqI],
+                        noiseFFT::PSD(surfPSDf[i]),
+                        procFaceOffset,
+                        writePSD_
+                    );
+                    writeSurfaceData
+                    (
+                        fNameBase,
+                        gName,
+                        "SPL",
+                        freq1[freqI],
+                        noiseFFT::SPL(surfPSDf[i]*deltaf),
+                        procFaceOffset,
+                        writeSPL_
+                    );
+                }
             }
 
             graph Prmsfg
-- 
GitLab