Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev

This commit is contained in:
mattijs
2010-03-30 08:28:19 +01:00
186 changed files with 910 additions and 814 deletions

View File

@ -94,6 +94,8 @@ int main(int argc, char *argv[])
kappa = (runTime.deltaT() + tc)/(runTime.deltaT()+tc+tk); kappa = (runTime.deltaT() + tc)/(runTime.deltaT()+tc+tk);
} }
chemistrySh = kappa*chemistry.Sh()();
#include "rhoEqn.H" #include "rhoEqn.H"
#include "UEqn.H" #include "UEqn.H"

View File

@ -10,9 +10,32 @@
) )
); );
label nIntervals(readLabel(pdfDictionary.lookup("nIntervals"))); const label nIntervals(readLabel(pdfDictionary.lookup("nIntervals")));
label nSamples(readLabel(pdfDictionary.lookup("nSamples"))); 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<pdfs::pdf> p(pdfs::pdf::New(pdfDictionary, rndGen));
const scalar xMin = p->minValue();
const scalar xMax = p->maxValue();
autoPtr<OFstream> filePtr(NULL);
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); scalarField samples(nIntervals, 0);

View File

@ -23,6 +23,10 @@ nSamples 10000;
// Type of pdf // Type of pdf
pdfType RosinRammler; pdfType RosinRammler;
// Write data flag
writeData true;
// PDF model coefficients
RosinRammlerPDF RosinRammlerPDF
{ {
minValue 1e-06; minValue 1e-06;

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -30,6 +30,7 @@ Description
#include "fvCFD.H" #include "fvCFD.H"
#include "pdf.H" #include "pdf.H"
#include "makeGraph.H" #include "makeGraph.H"
#include "OFstream.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
// Main program: // Main program:
@ -40,16 +41,6 @@ int main(int argc, char *argv[])
#include "createTime.H" #include "createTime.H"
#include "createFields.H" #include "createFields.H"
fileName pdfPath = runTime.path()/"pdf";
mkDir(pdfPath);
Random rndGen(label(0));
autoPtr<pdf> p(pdf::New(pdfDictionary, rndGen));
scalar xMin = p->minValue();
scalar xMax = p->maxValue();
label iCheck = 100; label iCheck = 100;
for (label i=1; i<=nSamples; i++) for (label i=1; i<=nSamples; i++)
{ {
@ -57,6 +48,11 @@ int main(int argc, char *argv[])
label n = label((ps - xMin)*nIntervals/(xMax - xMin)); label n = label((ps - xMin)*nIntervals/(xMax - xMin));
samples[n]++; samples[n]++;
if (writeData)
{
filePtr() << ps << nl;
}
if (i % iCheck == 0) if (i % iCheck == 0)
{ {
Info<< " processed " << i << " samples" << endl; Info<< " processed " << i << " samples" << endl;

View File

@ -26,8 +26,8 @@ Class
Foam::interpolationTable Foam::interpolationTable
Description Description
A list of times and values. An interpolation/look-up table of scalar vs <Type> values.
The time values must be positive and monotonically increasing. The reference scalar values must be positive and monotonically increasing.
The handling of out-of-bounds values depends on the current setting The handling of out-of-bounds values depends on the current setting
of @a outOfBounds. of @a outOfBounds.

View File

@ -30,7 +30,8 @@ License
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * //
void Foam::bound(volScalarField& vsf, const dimensionedScalar& lowerBound) Foam::volScalarField&
Foam::bound(volScalarField& vsf, const dimensionedScalar& lowerBound)
{ {
const scalar minVsf = min(vsf).value(); const scalar minVsf = min(vsf).value();
@ -55,6 +56,8 @@ void Foam::bound(volScalarField& vsf, const dimensionedScalar& lowerBound)
vsf.boundaryField() = max(vsf.boundaryField(), lowerBound.value()); vsf.boundaryField() = max(vsf.boundaryField(), lowerBound.value());
} }
return vsf;
} }

View File

@ -50,8 +50,9 @@ namespace Foam
// * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Global Functions * * * * * * * * * * * * * //
//- Bound the given scalar field if it has gone unbounded. //- Bound the given scalar field if it has gone unbounded.
// Return the bounded field.
// Used extensively in RAS and LES turbulence models. // Used extensively in RAS and LES turbulence models.
void bound(volScalarField&, const dimensionedScalar& lowerBound); volScalarField& bound(volScalarField&, const dimensionedScalar& lowerBound);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -55,7 +55,7 @@ Foam::ChomiakInjector::ChomiakInjector
ChomiakDict_(dict.subDict(typeName + "Coeffs")), ChomiakDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_ dropletPDF_
( (
pdf::New pdfs::pdf::New
( (
ChomiakDict_.subDict("dropletPDF"), ChomiakDict_.subDict("dropletPDF"),
sm.rndGen() sm.rndGen()

View File

@ -64,7 +64,7 @@ private:
dictionary ChomiakDict_; dictionary ChomiakDict_;
autoPtr<pdf> dropletPDF_; autoPtr<pdfs::pdf> dropletPDF_;
scalarList maxSprayAngle_; scalarList maxSprayAngle_;

View File

@ -55,7 +55,7 @@ Foam::definedHollowConeInjector::definedHollowConeInjector
definedHollowConeDict_(dict.subDict(typeName + "Coeffs")), definedHollowConeDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_ dropletPDF_
( (
pdf::New pdfs::pdf::New
( (
definedHollowConeDict_.subDict("dropletPDF"), definedHollowConeDict_.subDict("dropletPDF"),
sm.rndGen() sm.rndGen()

View File

@ -61,7 +61,7 @@ private:
typedef VectorSpace<Vector<scalar>, scalar, 2> pair; typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
dictionary definedHollowConeDict_; dictionary definedHollowConeDict_;
autoPtr<pdf> dropletPDF_; autoPtr<pdfs::pdf> dropletPDF_;
// inner and outer cone angle time histories // inner and outer cone angle time histories
// 2 column vectors = (time, coneAngle) // 2 column vectors = (time, coneAngle)

View File

@ -55,7 +55,7 @@ Foam::hollowConeInjector::hollowConeInjector
hollowConeDict_(dict.subDict(typeName + "Coeffs")), hollowConeDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_ dropletPDF_
( (
pdf::New pdfs::pdf::New
( (
hollowConeDict_.subDict("dropletPDF"), hollowConeDict_.subDict("dropletPDF"),
sm.rndGen() sm.rndGen()

View File

@ -59,7 +59,7 @@ private:
dictionary hollowConeDict_; dictionary hollowConeDict_;
autoPtr<pdf> dropletPDF_; autoPtr<pdfs::pdf> dropletPDF_;
scalarList innerAngle_; scalarList innerAngle_;
scalarList outerAngle_; scalarList outerAngle_;

View File

@ -120,7 +120,7 @@ Foam::ConeInjection<CloudType>::ConeInjection
), ),
parcelPDF_ parcelPDF_
( (
pdf::New pdfs::pdf::New
( (
this->coeffDict().subDict("parcelPDF"), this->coeffDict().subDict("parcelPDF"),
owner.rndGen() owner.rndGen()

View File

@ -97,7 +97,7 @@ class ConeInjection
const autoPtr<DataEntry<scalar> > thetaOuter_; const autoPtr<DataEntry<scalar> > thetaOuter_;
//- Parcel size PDF model //- Parcel size PDF model
const autoPtr<pdf> parcelPDF_; const autoPtr<pdfs::pdf> parcelPDF_;
// Tangential vectors to the direction vector // Tangential vectors to the direction vector

View File

@ -151,7 +151,7 @@ Foam::ConeInjectionMP<CloudType>::ConeInjectionMP
), ),
parcelPDF_ parcelPDF_
( (
pdf::New pdfs::pdf::New
( (
this->coeffDict().subDict("parcelPDF"), this->coeffDict().subDict("parcelPDF"),
owner.rndGen() owner.rndGen()

View File

@ -104,7 +104,7 @@ class ConeInjectionMP
const autoPtr<DataEntry<scalar> > thetaOuter_; const autoPtr<DataEntry<scalar> > thetaOuter_;
//- Parcel size PDF model //- Parcel size PDF model
const autoPtr<pdf> parcelPDF_; const autoPtr<pdfs::pdf> parcelPDF_;
//- Number of parcels per injector already injected //- Number of parcels per injector already injected
mutable label nInjected_; mutable label nInjected_;

View File

@ -115,7 +115,7 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
diameters_(positions_.size()), diameters_(positions_.size()),
parcelPDF_ parcelPDF_
( (
pdf::New pdfs::pdf::New
( (
this->coeffDict().subDict("parcelPDF"), this->coeffDict().subDict("parcelPDF"),
owner.rndGen() owner.rndGen()

View File

@ -106,7 +106,7 @@ class FieldActivatedInjection
scalarList diameters_; scalarList diameters_;
//- Parcel size PDF model //- Parcel size PDF model
const autoPtr<pdf> parcelPDF_; const autoPtr<pdfs::pdf> parcelPDF_;
protected: protected:

View File

@ -94,7 +94,7 @@ Foam::ManualInjection<CloudType>::ManualInjection
U0_(this->coeffDict().lookup("U0")), U0_(this->coeffDict().lookup("U0")),
parcelPDF_ parcelPDF_
( (
pdf::New pdfs::pdf::New
( (
this->coeffDict().subDict("parcelPDF"), this->coeffDict().subDict("parcelPDF"),
owner.rndGen() owner.rndGen()

View File

@ -75,7 +75,7 @@ class ManualInjection
const vector U0_; const vector U0_;
//- Parcel size PDF model //- Parcel size PDF model
const autoPtr<pdf> parcelPDF_; const autoPtr<pdfs::pdf> parcelPDF_;
//- Number of particles represented by each parcel //- Number of particles represented by each parcel
scalar nParticlesPerParcel_; scalar nParticlesPerParcel_;

View File

@ -93,7 +93,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
), ),
parcelPDF_ parcelPDF_
( (
pdf::New pdfs::pdf::New
( (
this->coeffDict().subDict("parcelPDF"), this->coeffDict().subDict("parcelPDF"),
owner.rndGen() owner.rndGen()

View File

@ -84,7 +84,7 @@ class PatchInjection
const autoPtr<DataEntry<scalar> > volumeFlowRate_; const autoPtr<DataEntry<scalar> > volumeFlowRate_;
//- Parcel size PDF model //- Parcel size PDF model
const autoPtr<pdf> parcelPDF_; const autoPtr<pdfs::pdf> parcelPDF_;
//- Cell owners //- Cell owners
labelList cellOwners_; labelList cellOwners_;

View File

@ -1,17 +1,12 @@
pdf = pdf pdf/pdf.C
uniform = uniform pdf/newPdf.C
normal = normal
general = general
exponential = exponential
RosinRammler = RosinRammler
$(pdf)/pdf.C exponential/exponential.C
$(pdf)/newPdf.C fixedValue/fixedValue.C
general/general.C
$(uniform)/uniform.C multiNormal/multiNormal.C
$(normal)/normal.C normal/normal.C
$(general)/general.C RosinRammler/RosinRammler.C
$(exponential)/exponential.C uniform/uniform.C
$(RosinRammler)/RosinRammler.C
LIB = $(FOAM_LIBBIN)/libpdf LIB = $(FOAM_LIBBIN)/libpdf

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,106 +31,52 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(RosinRammler, 0); namespace pdfs
{
addToRunTimeSelectionTable(pdf, RosinRammler, dictionary); defineTypeNameAndDebug(RosinRammler, 0);
addToRunTimeSelectionTable(pdf, RosinRammler, dictionary);
}
} }
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::RosinRammler::RosinRammler(const dictionary& dict, Random& rndGen) Foam::pdfs::RosinRammler::RosinRammler(const dictionary& dict, Random& rndGen)
: :
pdf(dict, rndGen), pdf(typeName, dict, rndGen),
pdfDict_(dict.subDict(typeName + "PDF")),
minValue_(readScalar(pdfDict_.lookup("minValue"))), minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))), maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
d_(pdfDict_.lookup("d")), d_(readScalar(pdfDict_.lookup("d"))),
n_(pdfDict_.lookup("n")), n_(readScalar(pdfDict_.lookup("n")))
ls_(d_),
range_(maxValue_ - minValue_)
{ {
if (minValue_<0) check();
{
FatalErrorIn
(
"RosinRammler::RosinRammler(const dictionary& dict)"
) << " minValue = " << minValue_ << ", it must be >0." << nl
<< abort(FatalError);
}
if (maxValue_<minValue_)
{
FatalErrorIn
(
"RosinRammler::RosinRammler(const dictionary& dict)"
) << " maxValue is smaller than minValue." << nl
<< abort(FatalError);
}
// find max value so that it can be normalized to 1.0
scalar sMax = 0;
label n = d_.size();
for (label i=0; i<n; i++)
{
scalar s = exp(-1.0);
for (label j=0; j<n; j++)
{
if (i!=j)
{
scalar xx = pow(d_[j]/d_[i], n_[j]);
scalar y = xx*exp(-xx);
s += y;
}
}
sMax = max(sMax, s);
}
for (label i=0; i<n; i++)
{
ls_[i] /= sMax;
}
} }
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::RosinRammler::~RosinRammler() Foam::pdfs::RosinRammler::~RosinRammler()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::RosinRammler::sample() const Foam::scalar Foam::pdfs::RosinRammler::sample() const
{ {
scalar y = 0;
scalar x = 0;
scalar p = 0.0;
do
{
x = minValue_ + range_*rndGen_.scalar01();
y = rndGen_.scalar01();
p = 0.0;
forAll(d_, i)
{
scalar xx = pow(x/d_[i], n_[i]);
p += ls_[i]*xx*exp(-xx);
}
} while (y>p);
scalar K = 1.0 - exp(-pow((maxValue_ - minValue_)/d_, n_));
scalar y = rndGen_.scalar01();
scalar x = minValue_ + d_*::pow(-log(1.0 - y*K), 1.0/n_);
return x; return x;
} }
Foam::scalar Foam::RosinRammler::minValue() const Foam::scalar Foam::pdfs::RosinRammler::minValue() const
{ {
return minValue_; return minValue_;
} }
Foam::scalar Foam::RosinRammler::maxValue() const Foam::scalar Foam::pdfs::RosinRammler::maxValue() const
{ {
return maxValue_; return maxValue_;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -29,14 +29,12 @@ Description
Rosin-Rammler pdf Rosin-Rammler pdf
@f[ @f[
pdf = ( x/d )^n \exp ( -( x/d )^n ) cumulative pdf = (1.0 - exp( -((x - d0)/d)^n ) / (1.0 - exp( -((d1 - d0)/d)^n )
@f] @f]
SourceFiles SourceFiles
RosinRammlerI.H
RosinRammler.C RosinRammler.C
RosinRammlerIO.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -49,9 +47,11 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class RosinRammler Declaration Class RosinRammler Declaration
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
class RosinRammler class RosinRammler
@ -60,17 +60,16 @@ class RosinRammler
{ {
// Private data // Private data
dictionary pdfDict_; //- Distribution minimum
//- min and max values of the distribution
scalar minValue_; scalar minValue_;
//- Distribution maximum
scalar maxValue_; scalar maxValue_;
List<scalar> d_; // Model coefficients
List<scalar> n_;
List<scalar> ls_;
scalar range_; scalar d_;
scalar n_;
public: public:
@ -108,6 +107,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -24,7 +24,6 @@ License
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
#include "exponential.H" #include "exponential.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
@ -32,92 +31,49 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(exponential, 0); namespace pdfs
addToRunTimeSelectionTable(pdf, exponential, dictionary); {
defineTypeNameAndDebug(exponential, 0);
addToRunTimeSelectionTable(pdf, exponential, dictionary);
}
} }
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::exponential::exponential(const dictionary& dict, Random& rndGen) Foam::pdfs::exponential::exponential(const dictionary& dict, Random& rndGen)
: :
pdf(dict, rndGen), pdf(typeName, dict, rndGen),
pdfDict_(dict.subDict(typeName + "PDF")),
minValue_(readScalar(pdfDict_.lookup("minValue"))), minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))), maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
lambda_(pdfDict_.lookup("lambda")), lambda_(readScalar(pdfDict_.lookup("lambda")))
ls_(lambda_),
range_(maxValue_ - minValue_)
{ {
if (minValue_<0) check();
{
FatalErrorIn
(
"exponential::exponential(const dictionary& dict)"
) << " minValue = " << minValue_ << ", it must be >0." << nl
<< abort(FatalError);
}
scalar sMax = 0;
label n = lambda_.size();
for (label i=0; i<n; i++)
{
scalar s = lambda_[i]*exp(-lambda_[i]*minValue_);
for (label j=0; j<n; j++)
{
if (i!=j)
{
scalar y = lambda_[j]*exp(-lambda_[j]*minValue_);
s += y;
}
}
sMax = max(sMax, s);
}
for (label i=0; i<n; i++)
{
ls_[i] /= sMax;
}
} }
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::exponential::~exponential() Foam::pdfs::exponential::~exponential()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::exponential::sample() const Foam::scalar Foam::pdfs::exponential::sample() const
{ {
scalar y = 0.0; scalar y = rndGen_.scalar01();
scalar x = 0.0; scalar K = exp(-lambda_*maxValue_) - exp(-lambda_*minValue_);
scalar p = 0.0; return -(1.0/lambda_)*log(exp(-lambda_*minValue_) + y*K);
do
{
x = minValue_ + range_*rndGen_.scalar01();
y = rndGen_.scalar01();
p = 0.0;
forAll(lambda_, i)
{
p += ls_[i]*exp(-lambda_[i]*x);
}
} while (p>y);
return x;
} }
Foam::scalar Foam::exponential::minValue() const Foam::scalar Foam::pdfs::exponential::minValue() const
{ {
return minValue_; return minValue_;
} }
Foam::scalar Foam::exponential::maxValue() const Foam::scalar Foam::pdfs::exponential::maxValue() const
{ {
return maxValue_; return maxValue_;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -29,9 +29,7 @@ Description
exponential pdf exponential pdf
SourceFiles SourceFiles
exponentialI.H
exponential.C exponential.C
exponentialIO.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -44,6 +42,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class exponential Declaration Class exponential Declaration
@ -55,16 +55,17 @@ class exponential
{ {
// Private data // Private data
dictionary pdfDict_; //- Distribution minimum
//- min and max values of the distribution
scalar minValue_; scalar minValue_;
//- Distribution maximum
scalar maxValue_; scalar maxValue_;
List<scalar> lambda_;
List<scalar> ls_;
scalar range_; // Model coefficients
scalar lambda_;
public: public:
@ -101,14 +102,11 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//#include "exponentialI.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif #endif
// ************************************************************************* // // ************************************************************************* //

View File

@ -0,0 +1,76 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "fixedValue.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
{
defineTypeNameAndDebug(fixedValue, 0);
addToRunTimeSelectionTable(pdf, fixedValue, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::fixedValue::fixedValue(const dictionary& dict, Random& rndGen)
:
pdf(typeName, dict, rndGen),
value_(readScalar(pdfDict_.lookup("value")))
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::fixedValue::~fixedValue()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::fixedValue::fixedValue::sample() const
{
return value_;
}
Foam::scalar Foam::pdfs::fixedValue::fixedValue::minValue() const
{
return -VGREAT;
}
Foam::scalar Foam::pdfs::fixedValue::fixedValue::maxValue() const
{
return VGREAT;
}
// ************************************************************************* //

View File

@ -0,0 +1,103 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::fixedValue
Description
Returns a fixed value
SourceFiles
fixedValue.C
\*---------------------------------------------------------------------------*/
#ifndef pdfFixedValue_H
#define pdfFixedValue_H
#include "pdf.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
{
/*---------------------------------------------------------------------------*\
Class fixedValue Declaration
\*---------------------------------------------------------------------------*/
class fixedValue
:
public pdf
{
// Private data
//- Fixed value
scalar value_;
public:
//- Runtime type information
TypeName("fixedValue");
// Constructors
//- Construct from components
fixedValue
(
const dictionary& dict,
Random& rndGen
);
//- Destructor
virtual ~fixedValue();
// Member Functions
//- Sample the pdf
virtual scalar sample() const;
//- Return the minimum value
virtual scalar minValue() const;
//- Return the maximum value
virtual scalar maxValue() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,84 +31,109 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(general, 0); namespace pdfs
addToRunTimeSelectionTable(pdf, general, dictionary); {
defineTypeNameAndDebug(general, 0);
addToRunTimeSelectionTable(pdf, general, dictionary);
}
} }
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::general::general(const dictionary& dict, Random& rndGen) Foam::pdfs::general::general(const dictionary& dict, Random& rndGen)
: :
pdf(dict, rndGen), pdf(typeName, dict, rndGen),
pdfDict_(dict.subDict(typeName + "PDF")),
xy_(pdfDict_.lookup("distribution")), xy_(pdfDict_.lookup("distribution")),
nEntries_(xy_.size()), nEntries_(xy_.size()),
minValue_(xy_[0][0]), minValue_(xy_[0][0]),
maxValue_(xy_[nEntries_-1][0]), maxValue_(xy_[nEntries_-1][0]),
range_(maxValue_ - minValue_) integral_(nEntries_)
{ {
// normalize the pdf check();
scalar yMax = 0;
for (label i=0; i<nEntries_; i++) // normalize the cumulative pdf
integral_[0] = 0.0;
for (label i=1; i<nEntries_; i++)
{ {
yMax = max(yMax, xy_[i][1]);
scalar k = (xy_[i][1] - xy_[i-1][1])/(xy_[i][0] - xy_[i-1][0]);
scalar d = xy_[i-1][1] - k*xy_[i-1][0];
scalar y1 = xy_[i][0]*(0.5*k*xy_[i][0] + d);
scalar y0 = xy_[i-1][0]*(0.5*k*xy_[i-1][0] + d);
scalar area = y1 - y0;
integral_[i] = area + integral_[i-1];
} }
for (label i=0; i<nEntries_; i++) for (label i=0; i<nEntries_; i++)
{ {
xy_[i][1] /= yMax; xy_[i][1] /= integral_[nEntries_-1];
integral_[i] /= integral_[nEntries_-1];
} }
} }
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::general::~general() Foam::pdfs::general::~general()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::general::sample() const Foam::scalar Foam::pdfs::general::sample() const
{ {
scalar x = 0.0; scalar y = rndGen_.scalar01();
scalar y = 0.0;
scalar p = 0.0;
do // find the interval where y is in the table
label n=1;
while (integral_[n] <= y)
{ {
x = minValue_ + range_*rndGen_.scalar01(); n++;
y = rndGen_.scalar01(); }
bool intervalFound = false; scalar k = (xy_[n][1] - xy_[n-1][1])/(xy_[n][0] - xy_[n-1][0]);
label i = -1; scalar d = xy_[n-1][1] - k*xy_[n-1][0];
while (!intervalFound)
scalar alpha = y + xy_[n-1][0]*(0.5*k*xy_[n-1][0] + d) - integral_[n-1];
scalar x = 0.0;
// if k is small it's a linear equation, otherwise it's of second order
if (mag(k) > SMALL)
{
scalar p = 2.0*d/k;
scalar q = -2.0*alpha/k;
scalar sqrtEr = sqrt(0.25*p*p - q);
scalar x1 = -0.5*p + sqrtEr;
scalar x2 = -0.5*p - sqrtEr;
if ((x1 >= xy_[n-1][0]) && (x1 <= xy_[n][0]))
{ {
i++; x = x1;
if ((x>xy_[i][0]) && (x<xy_[i+1][0]))
{
intervalFound = true;
}
} }
else
p = xy_[i][1] {
+ (x - xy_[i][0]) x = x2;
*(xy_[i+1][1] - xy_[i][1]) }
/(xy_[i+1][0] - xy_[i][0]); }
} while (p>y); else
{
x = alpha/d;
}
return x; return x;
} }
Foam::scalar Foam::general::minValue() const Foam::scalar Foam::pdfs::general::minValue() const
{ {
return minValue_; return minValue_;
} }
Foam::scalar Foam::general::maxValue() const Foam::scalar Foam::pdfs::general::maxValue() const
{ {
return maxValue_; return maxValue_;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -29,9 +29,7 @@ Description
general pdf general pdf
SourceFiles SourceFiles
generalI.H
general.C general.C
generalIO.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -44,6 +42,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class general Declaration Class general Declaration
@ -55,8 +55,6 @@ class general
{ {
// Private data // Private data
dictionary pdfDict_;
typedef VectorSpace<Vector<scalar>, scalar, 2> pair; typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
List<pair> xy_; List<pair> xy_;
@ -67,7 +65,7 @@ class general
scalar minValue_; scalar minValue_;
scalar maxValue_; scalar maxValue_;
scalar range_; List<scalar> integral_;
public: public:
@ -105,6 +103,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -0,0 +1,133 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
\*---------------------------------------------------------------------------*/
#include "multiNormal.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
{
defineTypeNameAndDebug(multiNormal, 0);
addToRunTimeSelectionTable(pdf, multiNormal, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::multiNormal::multiNormal(const dictionary& dict, Random& rndGen)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
range_(maxValue_ - minValue_),
expectation_(pdfDict_.lookup("expectation")),
variance_(pdfDict_.lookup("variance")),
strength_(pdfDict_.lookup("strength"))
{
check();
scalar sMax = 0;
label n = strength_.size();
for (label i=0; i<n; i++)
{
scalar x = expectation_[i];
scalar s = strength_[i];
for (label j=0; j<n; j++)
{
if (i!=j)
{
scalar x2 = (x - expectation_[j])/variance_[j];
scalar y = exp(-0.5*x2*x2);
s += strength_[j]*y;
}
}
sMax = max(sMax, s);
}
for (label i=0; i<n; i++)
{
strength_[i] /= sMax;
}
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::multiNormal::~multiNormal()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::multiNormal::sample() const
{
scalar y = 0;
scalar x = 0;
label n = expectation_.size();
bool success = false;
while (!success)
{
x = minValue_ + range_*rndGen_.scalar01();
y = rndGen_.scalar01();
scalar p = 0.0;
for (label i=0; i<n; i++)
{
scalar nu = expectation_[i];
scalar sigma = variance_[i];
scalar s = strength_[i];
scalar v = (x - nu)/sigma;
p += s*exp(-0.5*v*v);
}
if (y<p)
{
success = true;
}
}
return x;
}
Foam::scalar Foam::pdfs::multiNormal::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::multiNormal::maxValue() const
{
return maxValue_;
}
// ************************************************************************* //

View File

@ -0,0 +1,122 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
OpenFOAM is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
for more details.
You should have received a copy of the GNU General Public License
along with OpenFOAM; if not, write to the Free Software Foundation,
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Class
Foam::multiNormal
Description
A multiNormal pdf
@verbatim
pdf = sum_i strength_i * exp(-0.5*((x - expectation_i)/variance_i)^2 )
@endverbatim
SourceFiles
multiNormal.C
\*---------------------------------------------------------------------------*/
#ifndef multiNormal_H
#define multiNormal_H
#include "pdf.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
{
/*---------------------------------------------------------------------------*\
Class multiNormal Declaration
\*---------------------------------------------------------------------------*/
class multiNormal
:
public pdf
{
// Private data
//- Distribution minimum
scalar minValue_;
//- Distribution maximum
scalar maxValue_;
//- Distribution range
scalar range_;
// Model coefficients
List<scalar> expectation_;
List<scalar> variance_;
List<scalar> strength_;
public:
//- Runtime type information
TypeName("multiNormal");
// Constructors
//- Construct from components
multiNormal
(
const dictionary& dict,
Random& rndGen
);
//- Destructor
virtual ~multiNormal();
// Member Functions
//- Sample the pdf
virtual scalar sample() const;
//- Return the minimum value
virtual scalar minValue() const;
//- Return the maximum value
virtual scalar maxValue() const;
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -26,98 +26,97 @@ License
#include "normal.H" #include "normal.H"
#include "addToRunTimeSelectionTable.H" #include "addToRunTimeSelectionTable.H"
#include "mathematicalConstants.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(normal, 0); namespace pdfs
addToRunTimeSelectionTable(pdf, normal, dictionary); {
defineTypeNameAndDebug(normal, 0);
addToRunTimeSelectionTable(pdf, normal, dictionary);
}
} }
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::normal::normal(const dictionary& dict, Random& rndGen) Foam::pdfs::normal::normal(const dictionary& dict, Random& rndGen)
: :
pdf(dict, rndGen), pdf(typeName, dict, rndGen),
pdfDict_(dict.subDict(typeName + "PDF")),
minValue_(readScalar(pdfDict_.lookup("minValue"))), minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))), maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
expectation_(pdfDict_.lookup("expectation")), expectation_(readScalar(pdfDict_.lookup("expectation"))),
variance_(pdfDict_.lookup("variance")), variance_(readScalar(pdfDict_.lookup("variance"))),
strength_(pdfDict_.lookup("strength")), a_(0.147)
range_(maxValue_ - minValue_)
{ {
scalar sMax = 0; if (minValue_ < 0)
label n = strength_.size();
for (label i=0; i<n; i++)
{ {
scalar x = expectation_[i]; FatalErrorIn("normal::normal(const dictionary&, Random&)")
scalar s = strength_[i]; << "Minimum value must be greater than zero. "
for (label j=0; j<n; j++) << "Supplied minValue = " << minValue_
{ << abort(FatalError);
if (i!=j)
{
scalar x2 = (x-expectation_[j])/variance_[j];
scalar y = exp(-0.5*x2*x2);
s += strength_[j]*y;
}
}
sMax = max(sMax, s);
} }
for (label i=0; i<n; i++) if (maxValue_ < minValue_)
{ {
strength_[i] /= sMax; FatalErrorIn("normal::normal(const dictionary&, Random&)")
<< "Maximum value is smaller than the minimum value:"
<< " maxValue = " << maxValue_ << ", minValue = " << minValue_
<< abort(FatalError);
} }
} }
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::normal::~normal() Foam::pdfs::normal::~normal()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::normal::sample() const Foam::scalar Foam::pdfs::normal::sample() const
{ {
scalar x = 0.0;
scalar y = 0.0;
scalar p = 0.0;
do scalar a = erf((minValue_ - expectation_)/variance_);
{ scalar b = erf((maxValue_ - expectation_)/variance_);
x = minValue_ + range_*rndGen_.scalar01();
y = rndGen_.scalar01();
p = 0.0;
forAll(expectation_, i) scalar y = rndGen_.scalar01();
{ scalar x = erfInv(y*(b - a) + a)*variance_ + expectation_;
scalar nu = expectation_[i];
scalar sigma = variance_[i]; // Note: numerical approximation of the inverse function yields slight
scalar s = strength_[i]; // inaccuracies
scalar v = (x - nu)/sigma;
p += s*exp(-0.5*v*v); x = min(max(x, minValue_), maxValue_);
}
} while (p>y);
return x; return x;
} }
Foam::scalar Foam::normal::minValue() const Foam::scalar Foam::pdfs::normal::minValue() const
{ {
return minValue_; return minValue_;
} }
Foam::scalar Foam::normal::maxValue() const Foam::scalar Foam::pdfs::normal::maxValue() const
{ {
return maxValue_; return maxValue_;
} }
Foam::scalar Foam::pdfs::normal::erfInv(const scalar y) const
{
scalar k = 2.0/(constant::mathematical::pi*a_) + 0.5*log(1.0 - y*y);
scalar h = log(1.0 - y*y)/a_;
scalar x = sqrt(-k + sqrt(k*k - h));
if (y < 0.0)
{
x *= -1.0;
}
return x;
}
// ************************************************************************* // // ************************************************************************* //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -35,9 +35,7 @@ Description
strength only has meaning if there's more than one pdf strength only has meaning if there's more than one pdf
SourceFiles SourceFiles
normalI.H
normal.C normal.C
normalIO.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -50,6 +48,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class normal Declaration Class normal Declaration
@ -61,17 +61,20 @@ class normal
{ {
// Private data // Private data
dictionary pdfDict_;
//- min and max values of the distribution //- Distribution minimum
scalar minValue_; scalar minValue_;
//- Distribution maximum
scalar maxValue_; scalar maxValue_;
List<scalar> expectation_;
List<scalar> variance_;
List<scalar> strength_;
scalar range_; // Model coefficients
scalar expectation_;
scalar variance_;
scalar a_;
public: public:
@ -104,11 +107,14 @@ public:
//- Return the maximum value //- Return the maximum value
virtual scalar maxValue() const; virtual scalar maxValue() const;
scalar erfInv(const scalar y) const;
}; };
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -28,7 +28,7 @@ License
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::pdf> Foam::pdf::New Foam::autoPtr<Foam::pdfs::pdf> Foam::pdfs::pdf::New
( (
const dictionary& dict, const dictionary& dict,
Random& rndGen Random& rndGen
@ -43,7 +43,7 @@ Foam::autoPtr<Foam::pdf> Foam::pdf::New
if (cstrIter == dictionaryConstructorTablePtr_->end()) if (cstrIter == dictionaryConstructorTablePtr_->end())
{ {
FatalErrorIn("pdf::New(const dictionary&, Random&)") FatalErrorIn("pdfs::pdf::New(const dictionary&, Random&)")
<< "unknown pdf type " << pdfType << nl << nl << "unknown pdf type " << pdfType << nl << nl
<< "Valid pdf types are:" << nl << "Valid pdf types are:" << nl
<< dictionaryConstructorTablePtr_->sortedToc() << dictionaryConstructorTablePtr_->sortedToc()

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -30,22 +30,48 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(pdf, 0); namespace pdfs
defineRunTimeSelectionTable(pdf, dictionary); {
defineTypeNameAndDebug(pdf, 0);
defineRunTimeSelectionTable(pdf, dictionary);
}
} }
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void Foam::pdfs::pdf::check() const
{
if (minValue() < 0)
{
FatalErrorIn("pdfs::pdf::check() const")
<< type() << "PDF: Minimum value must be greater than zero." << nl
<< "Supplied minValue = " << minValue()
<< abort(FatalError);
}
if (maxValue() < minValue())
{
FatalErrorIn("pdfs::pdf::check() const")
<< type() << "PDF: Maximum value is smaller than the minimum value:"
<< nl << " maxValue = " << maxValue()
<< ", minValue = " << minValue()
<< abort(FatalError);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdf::pdf(const dictionary& dict, Random& rndGen) Foam::pdfs::pdf::pdf(const word& name, const dictionary& dict, Random& rndGen)
: :
dict_(dict), pdfDict_(dict.subDict(name + "PDF")),
rndGen_(rndGen) rndGen_(rndGen)
{} {}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdf::~pdf() Foam::pdfs::pdf::~pdf()
{} {}

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -26,37 +26,27 @@ Class
Foam::pdf Foam::pdf
Description Description
A library of runtime-selectable pdf's. A library of runtime-selectable PDF's.
Returns a sampled value given the expectation (nu) and variance (sigma^2) Returns a sampled value given the expectation (nu) and variance (sigma^2)
Sample of planned pdfs (beta p. 374-375): Current PDF's include:
- binomial
- geometric
- Poisson
- hypergeometric
- Pascal
- uniform
- exponential - exponential
- fixedValue
- general
- multi-normal
- normal - normal
- Gamma - Rosin-Rammler
- chi - uniform
- t?
- F?
- beta
- Weibull
- Rayleigh
- Cauchy?
The pdf is tabulated in equidistant nPoints, in an interval. The pdf is tabulated in equidistant nPoints, in an interval.
These values are integrated to obtain the cumulated pdf, These values are integrated to obtain the cumulated PDF,
which is then used to change the distribution from unifrom to which is then used to change the distribution from unifrom to
the actual pdf. the actual pdf.
SourceFiles SourceFiles
pdfI.H
pdf.C pdf.C
pdfIO.C newPdf.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -71,6 +61,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class pdf Declaration Class pdf Declaration
@ -83,11 +75,19 @@ protected:
// Protected data // Protected data
const dictionary& dict_; //- Coefficients dictionary
const dictionary pdfDict_;
//- Reference to the randmo number generator
Random& rndGen_; Random& rndGen_;
// Protected member functions
//- Check that the PDF is valid
virtual void check() const;
public: public:
//-Runtime type information //-Runtime type information
@ -111,7 +111,7 @@ public:
// Constructors // Constructors
//- Construct from dictionary //- Construct from dictionary
pdf(const dictionary& dict, Random& rndGen); pdf(const word& name, const dictionary& dict, Random& rndGen);
//- Selector //- Selector
@ -137,6 +137,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -31,43 +31,47 @@ License
namespace Foam namespace Foam
{ {
defineTypeNameAndDebug(uniform, 0); namespace pdfs
addToRunTimeSelectionTable(pdf, uniform, dictionary); {
defineTypeNameAndDebug(uniform, 0);
addToRunTimeSelectionTable(pdf, uniform, dictionary);
}
} }
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::uniform::uniform(const dictionary& dict, Random& rndGen) Foam::pdfs::uniform::uniform(const dictionary& dict, Random& rndGen)
: :
pdf(dict, rndGen), pdf(typeName, dict, rndGen),
pdfDict_(dict.subDict(typeName + "PDF")),
minValue_(readScalar(pdfDict_.lookup("minValue"))), minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))), maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
range_(maxValue_ - minValue_) range_(maxValue_ - minValue_)
{} {
check();
}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::uniform::~uniform() Foam::pdfs::uniform::~uniform()
{} {}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::uniform::sample() const Foam::scalar Foam::pdfs::uniform::sample() const
{ {
return (minValue_ + rndGen_.scalar01()*range_); return (minValue_ + rndGen_.scalar01()*range_);
} }
Foam::scalar Foam::uniform::minValue() const Foam::scalar Foam::pdfs::uniform::minValue() const
{ {
return minValue_; return minValue_;
} }
Foam::scalar Foam::uniform::maxValue() const Foam::scalar Foam::pdfs::uniform::maxValue() const
{ {
return maxValue_; return maxValue_;
} }

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 1991-2009 OpenCFD Ltd. \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd.
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -29,9 +29,7 @@ Description
uniform pdf uniform pdf
SourceFiles SourceFiles
uniformI.H
uniform.C uniform.C
uniformIO.C
\*---------------------------------------------------------------------------*/ \*---------------------------------------------------------------------------*/
@ -44,6 +42,8 @@ SourceFiles
namespace Foam namespace Foam
{ {
namespace pdfs
{
/*---------------------------------------------------------------------------*\ /*---------------------------------------------------------------------------*\
Class uniform Declaration Class uniform Declaration
@ -55,13 +55,13 @@ class uniform
{ {
// Private data // Private data
dictionary pdfDict_; //- Distribution minimum
//- min and max values of the distribution
scalar minValue_; scalar minValue_;
//- Distribution maximum
scalar maxValue_; scalar maxValue_;
// help-variable to avoid always having to calculate max-min //- Distribution range
scalar range_; scalar range_;
@ -100,6 +100,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace Foam } // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -83,7 +83,7 @@ LESModel::LESModel
delta_(LESdelta::New("delta", U.mesh(), *this)) delta_(LESdelta::New("delta", U.mesh(), *this))
{ {
readIfPresent("kMin", kMin_); kMin_.readIfPresent(*this);
// Force the construction of the mesh deltaCoeffs which may be needed // Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs // for the construction of the derived models and BCs

View File

@ -87,6 +87,10 @@ RASModel::RASModel
y_(mesh_) y_(mesh_)
{ {
kMin_.readIfPresent(*this);
epsilonMin_.readIfPresent(*this);
omegaMin_.readIfPresent(*this);
// Force the construction of the mesh deltaCoeffs which may be needed // Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs // for the construction of the derived models and BCs
mesh_.deltaCoeffs(); mesh_.deltaCoeffs();

View File

@ -81,7 +81,7 @@ LESModel::LESModel
kMin_("kMin", sqr(dimVelocity), SMALL), kMin_("kMin", sqr(dimVelocity), SMALL),
delta_(LESdelta::New("delta", U.mesh(), *this)) delta_(LESdelta::New("delta", U.mesh(), *this))
{ {
readIfPresent("kMin", kMin_); kMin_.readIfPresent(*this);
// Force the construction of the mesh deltaCoeffs which may be needed // Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs // for the construction of the derived models and BCs

View File

@ -323,6 +323,8 @@ kOmegaSSTSAS::kOmegaSSTSAS
mesh_ mesh_
) )
{ {
omegaMin_.readIfPresent(*this);
bound(k_, kMin_); bound(k_, kMin_);
bound(omega_, omegaMin_); bound(omega_, omegaMin_);
@ -458,6 +460,8 @@ bool kOmegaSSTSAS::read()
zetaTilda2_.readIfPresent(coeffDict()); zetaTilda2_.readIfPresent(coeffDict());
FSAS_.readIfPresent(coeffDict()); FSAS_.readIfPresent(coeffDict());
omegaMin_.readIfPresent(*this);
return true; return true;
} }
else else

View File

@ -119,7 +119,7 @@ LamBremhorstKE::LamBremhorstKE
y_(mesh_), y_(mesh_),
Rt_(sqr(k_)/(nu()*epsilon_)), Rt_(sqr(k_)/(nu()*bound(epsilon_, epsilonMin_))),
fMu_ fMu_
( (
@ -141,7 +141,7 @@ LamBremhorstKE::LamBremhorstKE
) )
{ {
bound(k_, kMin_); bound(k_, kMin_);
bound(epsilon_, epsilonMin_); // already bounded: bound(epsilon_, epsilonMin_);
nut_ = Cmu_*fMu_*sqr(k_)/epsilon_; nut_ = Cmu_*fMu_*sqr(k_)/epsilon_;
nut_.correctBoundaryConditions(); nut_.correctBoundaryConditions();

View File

@ -173,12 +173,12 @@ LienCubicKE::LienCubicKE
gradU_(fvc::grad(U)), gradU_(fvc::grad(U)),
eta_ eta_
( (
k_/(epsilon_ + epsilonMin_) k_/bound(epsilon_, epsilonMin_)
*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))
), ),
ksi_ ksi_
( (
k_/(epsilon_ + epsilonMin_) k_/epsilon_
*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))
), ),
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
@ -235,7 +235,7 @@ LienCubicKE::LienCubicKE
) )
{ {
bound(k_, kMin_); bound(k_, kMin_);
bound(epsilon_, epsilonMin_); // already bounded: bound(epsilon_, epsilonMin_);
nut_ = Cmu_*sqr(k_)/epsilon_ + C5viscosity_; nut_ = Cmu_*sqr(k_)/epsilon_ + C5viscosity_;
nut_.correctBoundaryConditions(); nut_.correctBoundaryConditions();

View File

@ -222,12 +222,12 @@ LienCubicKELowRe::LienCubicKELowRe
gradU_(fvc::grad(U)), gradU_(fvc::grad(U)),
eta_ eta_
( (
k_/(epsilon_ + epsilonMin_) k_/bound(epsilon_, epsilonMin_)
*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))
), ),
ksi_ ksi_
( (
k_/(epsilon_ + epsilonMin_) k_/epsilon_
*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))
), ),
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
@ -235,7 +235,7 @@ LienCubicKELowRe::LienCubicKELowRe
C5viscosity_ C5viscosity_
( (
-2.0*pow3(Cmu_)*pow4(k_)/pow3(epsilon_ + epsilonMin_) -2.0*pow3(Cmu_)*pow4(k_)/pow3(epsilon_)
*(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T())) *(magSqr(gradU_ + gradU_.T()) - magSqr(gradU_ - gradU_.T()))
), ),
@ -260,7 +260,7 @@ LienCubicKELowRe::LienCubicKELowRe
symm symm
( (
// quadratic terms // quadratic terms
pow3(k_)/sqr(epsilon_ + epsilonMin_) pow3(k_)/sqr(epsilon_)
*( *(
Ctau1_/fEta_ Ctau1_/fEta_
*( *(
@ -271,7 +271,7 @@ LienCubicKELowRe::LienCubicKELowRe
+ Ctau3_/fEta_*(gradU_.T() & gradU_) + Ctau3_/fEta_*(gradU_.T() & gradU_)
) )
// cubic term C4 // cubic term C4
- 20.0*pow4(k_)/pow3(epsilon_ + epsilonMin_) - 20.0*pow4(k_)/pow3(epsilon_)
*pow3(Cmu_) *pow3(Cmu_)
*( *(
((gradU_ & gradU_) & gradU_.T()) ((gradU_ & gradU_) & gradU_.T())
@ -289,7 +289,7 @@ LienCubicKELowRe::LienCubicKELowRe
) )
{ {
bound(k_, kMin_); bound(k_, kMin_);
bound(epsilon_, epsilonMin_); // already bounded: bound(epsilon_, epsilonMin_);
nut_ = Cmu_ nut_ = Cmu_
* (scalar(1) - exp(-Am_*yStar_)) * (scalar(1) - exp(-Am_*yStar_))

View File

@ -192,25 +192,25 @@ NonlinearKEShih::NonlinearKEShih
gradU_(fvc::grad(U)), gradU_(fvc::grad(U)),
eta_ eta_
( (
k_/(epsilon_ + epsilonMin_) k_/bound(epsilon_, epsilonMin_)
*sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ + gradU_.T())))
), ),
ksi_ ksi_
( (
k_/(epsilon_+ epsilonMin_) k_/epsilon_
*sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T()))) *sqrt(2.0*magSqr(0.5*(gradU_ - gradU_.T())))
), ),
Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))), Cmu_(2.0/(3.0*(A1_ + eta_ + alphaKsi_*ksi_))),
fEta_(A2_ + pow(eta_, 3.0)), fEta_(A2_ + pow(eta_, 3.0)),
nut_("nut", Cmu_*sqr(k_)/(epsilon_ + epsilonMin_)), nut_("nut", Cmu_*sqr(k_)/epsilon_),
nonlinearStress_ nonlinearStress_
( (
"nonlinearStress", "nonlinearStress",
symm symm
( (
pow3(k_)/sqr(epsilon_ + epsilonMin_) pow3(k_)/sqr(epsilon_)
*( *(
Ctau1_/fEta_ Ctau1_/fEta_
*( *(
@ -224,7 +224,7 @@ NonlinearKEShih::NonlinearKEShih
) )
{ {
bound(k_, kMin_); bound(k_, kMin_);
bound(epsilon_, epsilonMin_); // already bounded: bound(epsilon_, epsilonMin_);
#include "wallNonlinearViscosityI.H" #include "wallNonlinearViscosityI.H"

View File

@ -86,6 +86,10 @@ RASModel::RASModel
y_(mesh_) y_(mesh_)
{ {
kMin_.readIfPresent(*this);
epsilonMin_.readIfPresent(*this);
omegaMin_.readIfPresent(*this);
// Force the construction of the mesh deltaCoeffs which may be needed // Force the construction of the mesh deltaCoeffs which may be needed
// for the construction of the derived models and BCs // for the construction of the derived models and BCs
mesh_.deltaCoeffs(); mesh_.deltaCoeffs();

View File

@ -179,7 +179,7 @@ qZeta::qZeta
IOobject::NO_READ, IOobject::NO_READ,
IOobject::AUTO_WRITE IOobject::AUTO_WRITE
), ),
epsilon_/(2.0*q_), epsilon_/(2.0*bound(q_, qMin_)),
epsilon_.boundaryField().types() epsilon_.boundaryField().types()
), ),
@ -198,7 +198,7 @@ qZeta::qZeta
{ {
bound(k_, kMin_); bound(k_, kMin_);
bound(epsilon_, epsilonMin_); bound(epsilon_, epsilonMin_);
bound(q_, qMin_); // already bounded: bound(q_, qMin_);
bound(zeta_, zetaMin_); bound(zeta_, zetaMin_);
nut_ = Cmu_*fMu()*sqr(k_)/epsilon_; nut_ = Cmu_*fMu()*sqr(k_)/epsilon_;

5
wmake/rules/General/X Normal file
View File

@ -0,0 +1,5 @@
# X11 includes and libraries in the standard location
#
XFLAGS =
XINC = $(XFLAGS) -I/usr/include/X11
XLIBS = -lXext -lX11

View File

@ -1,6 +1,6 @@
.SUFFIXES: .l .SUFFIXES: .l
ltoo = flex $$SOURCE ; mv lex.yy.c $*.c ; $(cc) $(cFLAGS) -c $*.c -o $@ ltoo = flex -o $*.c $$SOURCE ; $(cc) $(cFLAGS) -c $*.c -o $@
.l.dep: .l.dep:
$(MAKE_DEP) $(MAKE_DEP)

View File

@ -1,6 +1,6 @@
.SUFFIXES: .L .SUFFIXES: .L
Ltoo = flex -+ -f $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@ Ltoo = flex -+ -o $*.C -f $$SOURCE ; $(CC) $(c++FLAGS) -c $*.C -o $@
.L.dep: .L.dep:
$(MAKE_DEP) $(MAKE_DEP)

View File

@ -1,6 +0,0 @@
.SUFFIXES: .L
Ltoo = flex++ $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@
.L.dep:
$(MAKE_DEP)

View File

@ -1,6 +1,7 @@
AR = ar AR = ar
ARFLAGS = cr ARFLAGS = cr
RANLIB = ranlib RANLIB = ranlib
CPP = cpp
LD = ld LD = ld
GFLAGS = -D$(WM_ARCH) -DWM_$(WM_PRECISION_OPTION) GFLAGS = -D$(WM_ARCH) -DWM_$(WM_PRECISION_OPTION)

View File

@ -1,3 +1,3 @@
PFLAGS = PFLAGS = -DMPICH_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt

View File

@ -1,3 +1,4 @@
PFLAGS = -DOMPI_SKIP_MPICXX PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi

View File

@ -1,6 +0,0 @@
.SUFFIXES: .L
Ltoo = flex --c++ -f $$SOURCE ; mv lex.yy.cc $*.C ; $(CC) $(c++FLAGS) -c $*.C -o $@
.L.dep:
$(MAKE_DEP)

View File

@ -1,4 +1,3 @@
CPP = /lib/cpp $(GFLAGS)
LD = ld -A64 LD = ld -A64
PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC =
PLIBS =

View File

@ -0,0 +1 @@
../General/mplib

View File

@ -1,4 +1,4 @@
CPP = /lib/cpp $(GFLAGS) CPP = /lib/cpp
LD = ld -64 LD = ld -64
PROJECT_LIBS = -l$(WM_PROJECT) -liberty -lnsl -lsocket -L$(FOAM_LIBBIN)/dummy -lPstream PROJECT_LIBS = -l$(WM_PROJECT) -liberty -lnsl -lsocket -L$(FOAM_LIBBIN)/dummy -lPstream

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC =
PLIBS =

View File

@ -0,0 +1 @@
../General/mplib

View File

@ -1,3 +0,0 @@
PFLAGS = -DOMPI_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi

View File

@ -0,0 +1 @@
../General/mplibOPENMPI

View File

@ -1,3 +0,0 @@
XFLAGS =
XINC = $(XFLAGS) -I/usr/include/X11
XLIBS = -L/usr/lib64 -lXext -lX11

1
wmake/rules/linux64Gcc/X Symbolic link
View File

@ -0,0 +1 @@
../General/X

Binary file not shown.

View File

@ -1,6 +1,3 @@
CPP = /lib/cpp $(GFLAGS)
LD = ld
PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
include $(GENERAL_RULES)/standard include $(GENERAL_RULES)/standard

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC =
PLIBS =

View File

@ -0,0 +1 @@
../General/mplib

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lgamma

View File

@ -0,0 +1 @@
../General/mplibGAMMA

View File

@ -1,3 +0,0 @@
PFLAGS = -DMPICH_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt

View File

@ -0,0 +1 @@
../General/mplibMPICH

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpich -L$(GM_LIB_PATH) -lgm

View File

@ -0,0 +1 @@
../General/mplibMPICH-GM

View File

@ -1,3 +0,0 @@
PFLAGS = -DOMPI_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi

View File

@ -0,0 +1 @@
../General/mplibOPENMPI

View File

@ -1,4 +0,0 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpi

View File

@ -0,0 +1 @@
../General/mplibQSMPI

Binary file not shown.

View File

@ -1,3 +0,0 @@
XFLAGS =
XINC = $(XFLAGS) -I/usr/X11R6/include
XLIBS = -L/usr/X11R6/lib64 -lXext -lX11

View File

@ -1,16 +0,0 @@
.SUFFIXES: .c .h
cWARN = -Wall
cc = gcc -m64
include $(RULES)/c$(WM_COMPILE_OPTION)
cFLAGS = $(GFLAGS) $(cWARN) $(cOPT) $(cDBUG) $(LIB_HEADER_DIRS) -fPIC
ctoo = $(WM_SCHEDULER) $(cc) $(cFLAGS) -c $$SOURCE -o $@
LINK_LIBS = $(cDBUG)
LINKLIBSO = $(cc) -shared
LINKEXE = $(cc) -Xlinker -z -Xlinker nodefs

View File

@ -1,21 +0,0 @@
.SUFFIXES: .C .cxx .cc .cpp
c++WARN = -Wall -Wno-strict-aliasing -Wextra -Wno-unused-parameter -Wold-style-cast
CC = g++ -m64
include $(RULES)/c++$(WM_COMPILE_OPTION)
ptFLAGS = -DNoRepository -ftemplate-depth-60
c++FLAGS = $(GFLAGS) $(c++WARN) $(c++OPT) $(c++DBUG) $(ptFLAGS) $(LIB_HEADER_DIRS) -fPIC
Ctoo = $(WM_SCHEDULER) $(CC) $(c++FLAGS) -c $$SOURCE -o $@
cxxtoo = $(Ctoo)
cctoo = $(Ctoo)
cpptoo = $(Ctoo)
LINK_LIBS = $(c++DBUG)
LINKLIBSO = $(CC) $(c++FLAGS) -shared
LINKEXE = $(CC) $(c++FLAGS)

View File

@ -1,2 +0,0 @@
c++DBUG = -ggdb3 -DFULLDEBUG
c++OPT = -O0 -fdefault-inline

View File

@ -1,4 +0,0 @@
c++DBUG =
c++OPT = -O3
#c++OPT = -march=nocona -O3
# -ftree-vectorize -ftree-vectorizer-verbose=3

View File

@ -1,2 +0,0 @@
c++DBUG = -pg
c++OPT = -O2

View File

@ -1,2 +0,0 @@
cDBUG = -ggdb -DFULLDEBUG
cOPT = -O1 -fdefault-inline -finline-functions

View File

@ -1,2 +0,0 @@
cDBUG =
cOPT = -O3

View File

@ -1,2 +0,0 @@
cDBUG = -pg
cOPT = -O2

Binary file not shown.

View File

@ -1,10 +0,0 @@
CPP = /lib/cpp $(GFLAGS)
LD = ld -A64
PROJECT_LIBS = -l$(WM_PROJECT) -liberty -ldl
include $(GENERAL_RULES)/standard
include $(RULES)/X
include $(RULES)/c
include $(RULES)/c++

View File

@ -1,3 +0,0 @@
PFLAGS =
PINC = -I$(MPI_ARCH_PATH)/include -D_MPICC_H
PLIBS = -L$(MPI_ARCH_PATH)/lib/linux_amd64 -lmpi

View File

@ -1,3 +0,0 @@
PFLAGS = -DMPICH_SKIP_MPICXX
PINC = -I$(MPI_ARCH_PATH)/include
PLIBS = -L$(MPI_ARCH_PATH)/lib -lmpich -lrt

Some files were not shown because too many files have changed in this diff Show More