Go to the documentation of this file.
35 namespace distributionModels
49 void Foam::distributionModels::binned::initialise()
51 const label nSample(xy_.size());
54 for (label bini = 1; bini < nSample; ++bini)
56 xy_[bini][1] += xy_[bini - 1][1];
60 scalar sumProb = xy_.last()[1];
65 <<
type() <<
"distribution: "
66 <<
"The sum of elements in the second column cannot be zero." <<
nl
67 <<
"sum = " << sumProb
73 xy_[bini][1] /= sumProb;
87 meanValue_ = xy_[bini][1];
100 xy_(distributionModelDict_.
lookup(
"distribution")),
115 const scalar binWidth,
131 const label bin0 = floor(
minValue_/binWidth);
132 const label bin1 = ceil(
maxValue_/binWidth);
133 const label nBin = bin1 - bin0;
138 <<
"Data cannot be binned - zero bins generated" <<
nl
139 <<
" Bin width : " << binWidth <<
nl
140 <<
" Sample data : " << sampleData
150 xy_[bini][0] = (bin0 + bini)*binWidth;
158 label bini = floor(sampleData[i]/binWidth) - bin0;
159 label binii =
min(bini + 1, nBin - 1);
161 scalar d1 =
mag(sampleData[i] - xy_[bini][0]);
162 scalar d2 =
mag(xy_[binii][0] - sampleData[i]);
180 distributionModel(
p),
182 meanValue_(
p.meanValue_)
190 const scalar u = rndGen_.sample01<scalar>();
192 for (label i = 0; i < xy_.size() - 1; ++i)
231 dict.add(
"distribution", xy_);
240 dict.readEntry(
"distribution", xy_);
247 const distributionModels::binned&
b
virtual void check() const
virtual void readDict(const dictionary &dict)
virtual void writeData(Ostream &os) const
A class for handling words, derived from Foam::string.
const word dictName("faMeshDefinition")
virtual void readData(Istream &os)
addToRunTimeSelectionTable(distributionModel, binned, dictionary)
Particle-size distribution model wherein random samples are drawn from a given discrete set of (bin,...
Istream & operator>>(Istream &, directionInfo &)
Ostream & endl(Ostream &os)
A library of runtime-selectable doubly-truncated probability distribution models. Returns random samp...
label min(const labelHashSet &set, label minValue=labelMax)
static const dictionary null
virtual scalar meanValue() const
virtual scalar sample() const
static void check(const int retVal, const char *what)
const dimensionedScalar b
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
label max(const labelHashSet &set, label maxValue=labelMin)
Lookup type of boundary radiation properties.
virtual bool check(const char *operation) const
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
OBJstream os(runTime.globalPath()/outputName)
Macros for easy insertion into run-time selection tables.
static const char * header
errorManipArg< error, int > exit(error &err, const int errNo=1)
binned(const dictionary &dict, Random &rndGen)
#define FatalErrorInFunction
dimensioned< typename typeOfMag< Type >::type > mag(const dimensioned< Type > &dt)
fileName::Type type(const fileName &name, const bool followLink=true)
defineTypeNameAndDebug(binned, 0)
A 1D vector of objects of type <T>, where the size of the vector is known and can be used for subscri...
virtual dictionary writeDict(const word &dictName) const
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
#define WarningInFunction