diff --git a/src/randomProcesses/noise/noiseFFT/noiseFFT.C b/src/randomProcesses/noise/noiseFFT/noiseFFT.C index 3a61c9b0dd..e82d25b90f 100644 --- a/src/randomProcesses/noise/noiseFFT/noiseFFT.C +++ b/src/randomProcesses/noise/noiseFFT/noiseFFT.C @@ -127,10 +127,13 @@ void Foam::noiseFFT::octaveBandInfo fBandIDs = bandIDs.toc(); - // Remove the last centre frequency (beyond upper frequency limit) - fc.remove(); + if (fc.size()) + { + // Remove the last centre frequency (beyond upper frequency limit) + fc.remove(); - fCentre.transfer(fc); + fCentre.transfer(fc); + } } diff --git a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C index b8e312c0ce..92a3df57fd 100644 --- a/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C +++ b/src/randomProcesses/noise/noiseModels/surfaceNoise/surfaceNoise.C @@ -494,8 +494,21 @@ void surfaceNoise::calculate() octave13FreqCentre ); - List surfPSD13f(octave13BandIDs.size() - 1); - List surfPrms13f2(octave13BandIDs.size() - 1); + label bandSize = 0; + if (octave13BandIDs.empty()) + { + WarningInFunction + << "Ocatve band calculation failed (zero sized). " + << "please check your input data" + << endl; + } + else + { + bandSize = octave13BandIDs.size() - 1; + } + + List surfPSD13f(bandSize); + List surfPrms13f2(bandSize); forAll(surfPSD13f, freqI) { surfPSD13f[freqI].setSize(nLocalFace);