Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include "RosinRammler.H"
00027 #include <OpenFOAM/addToRunTimeSelectionTable.H>
00028
00029
00030
00031 namespace Foam
00032 {
00033 namespace pdfs
00034 {
00035 defineTypeNameAndDebug(RosinRammler, 0);
00036 addToRunTimeSelectionTable(pdf, RosinRammler, dictionary);
00037 }
00038 }
00039
00040
00041
00042 Foam::pdfs::RosinRammler::RosinRammler(const dictionary& dict, Random& rndGen)
00043 :
00044 pdf(typeName, dict, rndGen),
00045 minValue_(readScalar(pdfDict_.lookup("minValue"))),
00046 maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
00047 d_(readScalar(pdfDict_.lookup("d"))),
00048 n_(readScalar(pdfDict_.lookup("n")))
00049 {
00050 check();
00051 }
00052
00053
00054
00055
00056 Foam::pdfs::RosinRammler::~RosinRammler()
00057 {}
00058
00059
00060
00061
00062 Foam::scalar Foam::pdfs::RosinRammler::sample() const
00063 {
00064
00065 scalar K = 1.0 - exp(-pow((maxValue_ - minValue_)/d_, n_));
00066 scalar y = rndGen_.scalar01();
00067 scalar x = minValue_ + d_*::pow(-log(1.0 - y*K), 1.0/n_);
00068 return x;
00069 }
00070
00071
00072 Foam::scalar Foam::pdfs::RosinRammler::minValue() const
00073 {
00074 return minValue_;
00075 }
00076
00077
00078 Foam::scalar Foam::pdfs::RosinRammler::maxValue() const
00079 {
00080 return maxValue_;
00081 }
00082
00083
00084