mirror of
https://github.com/OpenFOAM/OpenFOAM-6.git
synced 2025-12-08 06:57:46 +00:00
This is faster than the library functionality that it replaces, as it allows the compiler to do inlining. It also does not utilise any static state so generators do not interfere with each other. It is also faster than the the array lookup in cachedRandom. The cachedRandom class therefore offers no advantage over Random and has been removed.
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
IOdictionary pdfDictionary
|
|
(
|
|
IOobject
|
|
(
|
|
"pdfDict",
|
|
runTime.constant(),
|
|
runTime,
|
|
IOobject::MUST_READ_IF_MODIFIED,
|
|
IOobject::NO_WRITE
|
|
)
|
|
);
|
|
|
|
const label nIntervals(readLabel(pdfDictionary.lookup("nIntervals")));
|
|
|
|
const label nSamples(readLabel(pdfDictionary.lookup("nSamples")));
|
|
|
|
const bool writeData(readBool(pdfDictionary.lookup("writeData")));
|
|
|
|
|
|
const fileName pdfPath = runTime.path()/"pdf";
|
|
mkDir(pdfPath);
|
|
|
|
Random rndGen(label(0));
|
|
|
|
autoPtr<distributionModel> p
|
|
(
|
|
distributionModel::New
|
|
(
|
|
pdfDictionary,
|
|
rndGen
|
|
)
|
|
);
|
|
|
|
const scalar xMin = p->minValue();
|
|
const scalar xMax = p->maxValue();
|
|
|
|
autoPtr<OFstream> filePtr(nullptr);
|
|
if (writeData)
|
|
{
|
|
fileName fName = pdfPath/(p->type() + ".data");
|
|
Info<< "Writing " << p->type() << " data samples to file:" << nl
|
|
<< fName << nl << endl;
|
|
|
|
filePtr.reset(new OFstream(fName));
|
|
}
|
|
|
|
scalarField samples(nIntervals, 0);
|