ENH: surfaceNoise - added option to specify area-weighted|ensemble average
This commit is contained in:
parent
2dbdac109e
commit
93befa4f63
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2015-2020 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -310,9 +310,14 @@ scalar surfaceNoise::writeSurfaceData
|
||||
writerPtr_->clear();
|
||||
}
|
||||
|
||||
// TO BE VERIFIED: area-averaged values
|
||||
// areaAverage = sum(allData*surf.magSf())/sum(surf.magSf());
|
||||
areaAverage = sum(allData)/(allData.size() + ROOTVSMALL);
|
||||
if (areaAverage_)
|
||||
{
|
||||
areaAverage = sum(allData*surf.magSf())/sum(surf.magSf());
|
||||
}
|
||||
else
|
||||
{
|
||||
areaAverage = sum(allData)/(allData.size() + ROOTVSMALL);
|
||||
}
|
||||
}
|
||||
Pstream::scatter(areaAverage);
|
||||
|
||||
@ -342,9 +347,14 @@ scalar surfaceNoise::writeSurfaceData
|
||||
writerPtr_->clear();
|
||||
}
|
||||
|
||||
// TO BE VERIFIED: area-averaged values
|
||||
// return sum(data*surf.magSf())/sum(surf.magSf());
|
||||
return sum(data)/(data.size() + ROOTVSMALL);
|
||||
if (areaAverage_)
|
||||
{
|
||||
return sum(data*surf.magSf())/sum(surf.magSf());
|
||||
}
|
||||
else
|
||||
{
|
||||
return sum(data)/(data.size() + ROOTVSMALL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -426,6 +436,7 @@ surfaceNoise::surfaceNoise(const dictionary& dict, const bool readFields)
|
||||
startTimeIndex_(0),
|
||||
nFace_(0),
|
||||
fftWriteInterval_(1),
|
||||
areaAverage_(false),
|
||||
readerType_(word::null),
|
||||
readerPtr_(nullptr),
|
||||
writerPtr_(nullptr)
|
||||
@ -449,8 +460,22 @@ bool surfaceNoise::read(const dictionary& dict)
|
||||
dict.readEntry("file", inputFileNames_.first());
|
||||
}
|
||||
|
||||
dict.readIfPresent("fftWriteInterval", fftWriteInterval_);
|
||||
dict.readIfPresent("p", pName_);
|
||||
dict.readIfPresent("fftWriteInterval", fftWriteInterval_);
|
||||
|
||||
Info<< " Pressure field name: " << pName_ << nl
|
||||
<< " FFT write interval: " << fftWriteInterval_ << nl;
|
||||
|
||||
dict.readIfPresent("areaAverage", areaAverage_);
|
||||
|
||||
if (areaAverage_)
|
||||
{
|
||||
Info<< " Averaging: area weighted" << endl;
|
||||
}
|
||||
else
|
||||
{
|
||||
Info<< " Averaging: ensemble" << endl;
|
||||
}
|
||||
|
||||
readerType_ = dict.get<word>("reader");
|
||||
|
||||
@ -465,6 +490,8 @@ bool surfaceNoise::read(const dictionary& dict)
|
||||
// Use outputDir/TIME/surface-name
|
||||
writerPtr_->useTimeDir(true);
|
||||
|
||||
Info << endl;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2015-2019 OpenCFD Ltd.
|
||||
Copyright (C) 2015-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -60,11 +60,15 @@ Description
|
||||
// Write interval for FFT data, default = 1
|
||||
fftWriteInterval 100;
|
||||
|
||||
// Area-weighted averaging switch, default = no (ensemble) for backwards
|
||||
// compatibility
|
||||
areaAverage yes;
|
||||
|
||||
// Surface reader
|
||||
reader ensight;
|
||||
reader ensight;
|
||||
|
||||
// Surface writer
|
||||
writer ensight;
|
||||
writer ensight;
|
||||
|
||||
// Collate times for ensight output - ensures geometry is only written once
|
||||
writeOptions
|
||||
@ -159,6 +163,10 @@ protected:
|
||||
// result in a very large number of output files (1 per frequency)
|
||||
label fftWriteInterval_;
|
||||
|
||||
//- Apply area average; default = no (ensemble average) for backwards
|
||||
//- compatibility
|
||||
bool areaAverage_;
|
||||
|
||||
//- Reader type
|
||||
word readerType_;
|
||||
|
||||
|
@ -36,6 +36,8 @@ surfaceNoiseCoeffs
|
||||
// Input file
|
||||
file "postProcessing/curleSurface/surface/surface.case";
|
||||
|
||||
areaAverage yes;
|
||||
|
||||
// Surface reader
|
||||
reader ensight;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user