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

This commit is contained in:
mattijs
2011-02-02 12:44:59 +00:00
253 changed files with 852 additions and 545 deletions

View File

@ -4,8 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
@ -35,4 +35,4 @@ EXE_LIBS = \
-llaminarFlameSpeedModels \
-lchemistryModel \
-lODE \
-lpdf
-ldistributionModels

View File

@ -5,8 +5,8 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/dieselSpray/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
@ -32,5 +32,5 @@ EXE_LIBS = \
-llaminarFlameSpeedModels \
-lchemistryModel \
-lODE \
-lpdf \
-ldistributionModels \
-lfiniteVolume

View File

@ -5,7 +5,7 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude
EXE_LIBS = \
@ -17,4 +17,4 @@ EXE_LIBS = \
-lcompressibleTurbulenceModel \
-lcompressibleLESModels \
-lcompressibleRASModels \
-lradiation
-lradiationModels

View File

@ -1,7 +1,7 @@
EXE_INC = \
-I../buoyantSimpleFoam \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
-I$(LIB_SRC)/turbulenceModels/RAS \
@ -11,7 +11,7 @@ EXE_INC = \
EXE_LIBS = \
-lbasicThermophysicalModels \
-lspecie \
-lradiation \
-lradiationModels \
-lcompressibleTurbulenceModel \
-lcompressibleRASModels \
-lfiniteVolume \

View File

@ -5,18 +5,18 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude
@ -39,6 +39,6 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lsurfaceFilmModels \
-lODE

View File

@ -4,7 +4,7 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
@ -21,7 +21,7 @@ EXE_LIBS = \
-lthermophysicalFunctions \
-lbasicThermophysicalModels \
-lspecie \
-lradiation \
-lradiationModels \
-lincompressibleRASModels \
-lincompressibleLESModels \
-lincompressibleTransportModels \

View File

@ -4,7 +4,7 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels/incompressible/turbulenceModel \
-I$(LIB_SRC)/transportModels \
-I$(LIB_SRC)/transportModels/incompressible/singlePhaseTransportModel \
@ -18,7 +18,7 @@ EXE_LIBS = \
-lthermophysicalFunctions \
-lbasicThermophysicalModels \
-lspecie \
-lradiation \
-lradiationModels \
-lincompressibleRASModels \
-lincompressibleLESModels \
-lincompressibleTransportModels \

View File

@ -5,18 +5,18 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/surfaceFilmModels/lnInclude
@ -38,6 +38,6 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lODE \
-lsurfaceFilmModels

View File

@ -2,18 +2,18 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I${LIB_SRC}/meshTools/lnInclude \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/surfaceFilmModels/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
@ -32,7 +32,7 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lsurfaceFilmModels \
-llagrangianIntermediate \
-lODE

View File

@ -4,18 +4,18 @@ EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/surfaceFilmModels/lnInclude
@ -37,6 +37,6 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lODE \
-lsurfaceFilmModels

View File

@ -5,18 +5,18 @@ EXE_INC = \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/lagrangian/coalCombustion/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/chemistryModel/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/ODE/lnInclude \
-I$(LIB_SRC)/surfaceFilmModels/lnInclude
@ -38,6 +38,6 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lODE \
-lsurfaceFilmModels

View File

@ -4,7 +4,7 @@ EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
@ -16,7 +16,7 @@ EXE_LIBS = \
-lthermophysicalFunctions \
-lbasicThermophysicalModels \
-lspecie \
-lradiation \
-lradiationModels \
-lcompressibleTurbulenceModel \
-lcompressibleRASModels \
-lcompressibleLESModels \

View File

@ -1,11 +1,11 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-llagrangianIntermediate \
-lradiation \
-lradiationModels \
-lthermophysicalFunctions

View File

@ -34,22 +34,22 @@ EXE_LIBS = \
-llaminarFlameSpeedModels \
-lLESdeltas \
-lLESfilters \
-lliquidMixture \
-lliquids \
-lliquidMixtureProperties \
-lliquidProperties \
-lmeshTools \
-lmolecularMeasurements \
-lmolecule \
-lODE \
-lOpenFOAM \
-lpdf \
-ldistributionModels \
-lpotential \
-lradiation \
-lradiationModels \
-lrandomProcesses \
-lreactionThermophysicalModels \
-lsampling \
-lpointSolidMixture \
-lsolidMixtureProperties \
-lsolidParticle \
-lpointSolids \
-lsolidProperties \
-lspecie \
-lsurfMesh \
-lsystemCall \

View File

@ -1,8 +1,8 @@
EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/sampling/lnInclude
EXE_LIBS = \
-lpdf \
-ldistributionModels \
-lsampling

View File

@ -22,7 +22,14 @@
cachedRandom rndGen(label(0), -1);
autoPtr<pdfs::pdf> p(pdfs::pdf::New(pdfDictionary, rndGen));
autoPtr<distributionModels::distributionModel> p
(
distributionModels::distributionModel::New
(
pdfDictionary,
rndGen
)
);
const scalar xMin = p->minValue();
const scalar xMax = p->maxValue();

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Description
\*---------------------------------------------------------------------------*/
#include "fvCFD.H"
#include "pdf.H"
#include "distributionModel.H"
#include "makeGraph.H"
#include "OFstream.H"

View File

@ -37,13 +37,33 @@ namespace Foam
Foam::polynomial::polynomial(const word& entryName, Istream& is)
:
DataEntry<scalar>(entryName),
coeffs_(is)
coeffs_(is),
canIntegrate_(true)
{
if (!coeffs_.size())
{
FatalErrorIn("Foam::polynomial::polynomial(const word&, Istream&)")
<< "polynomial coefficients for entry " << this->name_
<< " is invalid (empty)" << nl << exit(FatalError);
<< " are invalid (empty)" << nl << exit(FatalError);
}
forAll(coeffs_, i)
{
if (mag(coeffs_[i].second() + 1) < ROOTVSMALL)
{
canIntegrate_ = false;
break;
}
}
if (debug)
{
if (!canIntegrate_)
{
WarningIn("Foam::polynomial::polynomial(const word&, Istream&)")
<< "Polynomial " << this->name_ << " cannot be integrated"
<< endl;
}
}
}
@ -51,7 +71,8 @@ Foam::polynomial::polynomial(const word& entryName, Istream& is)
Foam::polynomial::polynomial(const polynomial& poly)
:
DataEntry<scalar>(poly),
coeffs_(poly.coeffs_)
coeffs_(poly.coeffs_),
canIntegrate_(poly.canIntegrate_)
{}
@ -65,13 +86,10 @@ Foam::polynomial::~polynomial()
Foam::scalar Foam::polynomial::value(const scalar x) const
{
scalar y = coeffs_[0].first();
scalar powX = x;
for (label i = 1; i < coeffs_.size(); i++)
scalar y = 0.0;
forAll(coeffs_, i)
{
y += coeffs_[i].first()*powX;
powX *= x;
y += coeffs_[i].first()*pow(x, coeffs_[i].second());
}
return y;
@ -82,14 +100,17 @@ Foam::scalar Foam::polynomial::integrate(const scalar x1, const scalar x2) const
{
scalar intx = 0.0;
forAll(coeffs_, i)
if (canIntegrate_)
{
intx +=
coeffs_[i].first()/(coeffs_[i].second() + 1)
*(
pow(x2, coeffs_[i].second() + 1)
- pow(x1, coeffs_[i].second() + 1)
);
forAll(coeffs_, i)
{
intx +=
coeffs_[i].first()/(coeffs_[i].second() + 1)
*(
pow(x2, coeffs_[i].second() + 1)
- pow(x1, coeffs_[i].second() + 1)
);
}
}
return intx;

View File

@ -76,6 +76,9 @@ class polynomial
//- Polynomial coefficients - list of prefactor, exponent
List<Tuple2<scalar, scalar> > coeffs_;
//- Flag to indicate whether poly can be integrated
bool canIntegrate_;
// Private Member Functions

View File

@ -243,13 +243,14 @@ $(schemes)/cubicUpwindFit/cubicUpwindFit.C
$(schemes)/quadraticLinearPureUpwindFit/quadraticLinearPureUpwindFit.C
*/
$(schemes)/linearPureUpwindFit/linearPureUpwindFit.C
$(schemes)/linearUpwind/linearUpwind.C
$(schemes)/linearUpwind/linearUpwindV.C
$(schemes)/quadraticUpwind/quadraticUpwind.C
limitedSchemes = $(surfaceInterpolation)/limitedSchemes
$(limitedSchemes)/limitedSurfaceInterpolationScheme/limitedSurfaceInterpolationSchemes.C
$(limitedSchemes)/upwind/upwind.C
$(limitedSchemes)/blended/blended.C
$(limitedSchemes)/linearUpwind/linearUpwind.C
$(limitedSchemes)/linearUpwind/linearUpwindV.C
$(limitedSchemes)/Gamma/Gamma.C
$(limitedSchemes)/SFCD/SFCD.C
$(limitedSchemes)/Minmod/Minmod.C

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,6 @@ License
#include "linearUpwind.H"
#include "fvMesh.H"
#include "zeroGradientFvPatchField.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -85,16 +84,8 @@ Foam::linearUpwind<Type>::correction
forAll(faceFlux, facei)
{
if (faceFlux[facei] > 0)
{
label own = owner[facei];
sfCorr[facei] = (Cf[facei] - C[own]) & gradVf[own];
}
else
{
label nei = neighbour[facei];
sfCorr[facei] = (Cf[facei] - C[nei]) & gradVf[nei];
}
label celli = (faceFlux[facei] > 0) ? owner[facei] : neighbour[facei];
sfCorr[facei] = (Cf[facei] - C[celli]) & gradVf[celli];
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -26,7 +26,8 @@ Class
Description
linearUpwind interpolation scheme class derived from upwind and returns
upwind weighting factors but also applies an explicit correction.
upwind weighting factors and also applies a gradient-based explicit
correction.
SourceFiles
linearUpwind.C
@ -67,6 +68,12 @@ class linearUpwind
//- Disallow default bitwise assignment
void operator=(const linearUpwind&);
//- Hide the limiter because this is not formally a limited scheme
virtual tmp<surfaceScalarField> limiter
(
const GeometricField<Type, fvPatchField, volMesh>&
) const;
public:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License

View File

@ -0,0 +1,38 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2011 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 "quadraticUpwind.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
//makeSurfaceInterpolationScheme(quadraticUpwind);
makeSurfaceInterpolationTypeScheme(quadraticUpwind, scalar);
makeSurfaceInterpolationTypeScheme(quadraticUpwind, vector);
}
// ************************************************************************* //

View File

@ -0,0 +1,134 @@
/*---------------------------------------------------------------------------*\
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2011 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 3 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, see <http://www.gnu.org/licenses/>.
Class
quadraticUpwind
Description
quadraticUpwind interpolation scheme class derived from linearUpwind and
returns blended linear/upwind weighting factors and also applies a explicit
gradient-based correction obtained from the linearUpwind scheme.
SourceFiles
quadraticUpwind.C
\*---------------------------------------------------------------------------*/
#ifndef quadraticUpwind_H
#define quadraticUpwind_H
#include "linearUpwind.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
/*---------------------------------------------------------------------------*\
Class quadraticUpwind Declaration
\*---------------------------------------------------------------------------*/
template<class Type>
class quadraticUpwind
:
public linearUpwind<Type>
{
// Private Member Functions
//- Disallow default bitwise copy construct
quadraticUpwind(const quadraticUpwind&);
//- Disallow default bitwise assignment
void operator=(const quadraticUpwind&);
public:
//- Runtime type information
TypeName("quadraticUpwind");
// Constructors
//- Construct from mesh and Istream
quadraticUpwind
(
const fvMesh& mesh,
Istream& schemeData
)
:
linearUpwind<Type>(mesh, schemeData)
{}
//- Construct from mesh, faceFlux and Istream
quadraticUpwind
(
const fvMesh& mesh,
const surfaceScalarField& faceFlux,
Istream& schemeData
)
:
linearUpwind<Type>(mesh, faceFlux, schemeData)
{}
// Member Functions
//- Return the interpolation weighting factors
virtual tmp<surfaceScalarField> weights
(
const GeometricField<Type, fvPatchField, volMesh>&
) const
{
return
0.75*this->mesh().surfaceInterpolation::weights()
+ 0.25*linearUpwind<Type>::weights();
}
//- Return true if this scheme uses an explicit correction
virtual bool corrected() const
{
return true;
}
//- Return the explicit correction to the face-interpolate
virtual tmp<GeometricField<Type, fvsPatchField, surfaceMesh> >
correction
(
const GeometricField<Type, fvPatchField, volMesh>& vf
) const
{
return 0.25*linearUpwind<Type>::correction(vf);
}
};
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
#endif
// ************************************************************************* //

View File

@ -3,6 +3,7 @@ cd ${0%/*} || exit 1 # run from this directory
[ $# -ge 1 ] && makeOption=$1 || makeOption=libso
set -x
wmake $makeOption distributionModels
wmake $makeOption basic
wmake $makeOption solidParticle
wmake $makeOption intermediate

View File

@ -3,16 +3,16 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/lagrangian/intermediate/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
@ -25,7 +25,7 @@ LIB_LIBS = \
-lmeshTools \
-llagrangian \
-llagrangianIntermediate \
-lpdf \
-ldistributionModels \
-lspecie \
-lbasicThermophysicalModels \
-lliquidProperties \

View File

@ -8,12 +8,12 @@ EXE_INC = \
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
-I$(LIB_SRC)/turbulenceModels/compressible/LES/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude
LIB_LIBS = \
-llagrangian \
@ -26,4 +26,4 @@ LIB_LIBS = \
-lliquidMixtureProperties \
-lthermophysicalFunctions \
-lspecie \
-lpdf
-ldistributionModels

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,11 +52,11 @@ Foam::ChomiakInjector::ChomiakInjector
:
injectorModel(dict, sm),
ChomiakDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
ChomiakDict_.subDict("dropletPDF"),
ChomiakDict_.subDict("sizeDistribution"),
sm.rndGen()
)
),
@ -101,7 +101,7 @@ Foam::scalar Foam::ChomiakInjector::d0
const scalar
) const
{
return dropletPDF_->sample();
return sizeDistribution_->sample();
}
@ -113,8 +113,8 @@ Foam::vector Foam::ChomiakInjector::direction
const scalar d
) const
{
scalar dMin = dropletPDF_->minValue();
scalar dMax = dropletPDF_->maxValue();
scalar dMin = sizeDistribution_->minValue();
scalar dMax = sizeDistribution_->maxValue();
scalar angle =
(d - dMax)*maxSprayAngle_[n]

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -27,7 +27,7 @@ Class
Description
Injector model based on an idea of Jerzy Chomiak.
Given the initial droplet size pdf in an interval d = (d0, d1),
Given the initial droplet size distribution in an interval d = (d0, d1),
the spray angle phi = phi(d), such that
the largest droplets have zero spray angle
and the smallest droplets have maximum spray angle.
@ -41,7 +41,7 @@ Description
#include "injectorModel.H"
#include "scalarList.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -63,7 +63,7 @@ private:
dictionary ChomiakDict_;
autoPtr<pdfs::pdf> dropletPDF_;
autoPtr<distributionModels::distributionModel> sizeDistribution_;
scalarList maxSprayAngle_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,11 +52,11 @@ Foam::definedHollowConeInjector::definedHollowConeInjector
:
injectorModel(dict, sm),
definedHollowConeDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
definedHollowConeDict_.subDict("dropletPDF"),
definedHollowConeDict_.subDict("sizeDistribution"),
sm.rndGen()
)
),
@ -137,8 +137,8 @@ Foam::scalar Foam::definedHollowConeInjector::d0
) const
{
// swallow function arguments - not used
// return value sampled from PDF
return dropletPDF_->sample();
// return value sampled from distribution model
return sizeDistribution_->sample();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -29,7 +29,7 @@ Description
- user defined:
- inner/outer cone angle vs. time
- droplet PDF
- droplet distribution model
\*---------------------------------------------------------------------------*/
@ -38,7 +38,7 @@ Description
#include "injectorModel.H"
#include "vector.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -60,7 +60,7 @@ private:
typedef VectorSpace<Vector<scalar>, scalar, 2> pair;
dictionary definedHollowConeDict_;
autoPtr<pdfs::pdf> dropletPDF_;
autoPtr<distributionModels::distributionModel> sizeDistribution_;
// inner and outer cone angle time histories
// 2 column vectors = (time, coneAngle)

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -52,11 +52,11 @@ Foam::hollowConeInjector::hollowConeInjector
:
injectorModel(dict, sm),
hollowConeDict_(dict.subDict(typeName + "Coeffs")),
dropletPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
hollowConeDict_.subDict("dropletPDF"),
hollowConeDict_.subDict("sizeDistribution"),
sm.rndGen()
)
),
@ -112,7 +112,7 @@ Foam::scalar Foam::hollowConeInjector::d0
const scalar
) const
{
return dropletPDF_->sample();
return sizeDistribution_->sample();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -37,7 +37,7 @@ Description
#include "injectorModel.H"
#include "scalarList.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -58,7 +58,7 @@ private:
dictionary hollowConeDict_;
autoPtr<pdfs::pdf> dropletPDF_;
autoPtr<distributionModels::distributionModel> sizeDistribution_;
scalarList innerAngle_;
scalarList outerAngle_;

View File

@ -1,5 +1,5 @@
pdf/pdf.C
pdf/pdfNew.C
distributionModel/distributionModel.C
distributionModel/distributionModelNew.C
exponential/exponential.C
fixedValue/fixedValue.C
@ -9,4 +9,4 @@ normal/normal.C
RosinRammler/RosinRammler.C
uniform/uniform.C
LIB = $(FOAM_LIBBIN)/libpdf
LIB = $(FOAM_LIBBIN)/libdistributionModels

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,34 +30,34 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(RosinRammler, 0);
addToRunTimeSelectionTable(pdf, RosinRammler, dictionary);
addToRunTimeSelectionTable(distributionModel, RosinRammler, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::RosinRammler::RosinRammler
Foam::distributionModels::RosinRammler::RosinRammler
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
d_(readScalar(pdfDict_.lookup("d"))),
n_(readScalar(pdfDict_.lookup("n")))
distributionModel(typeName, dict, rndGen),
minValue_(readScalar(distributionModelDict_.lookup("minValue"))),
maxValue_(readScalar(distributionModelDict_.lookup("maxValue"))),
d_(readScalar(distributionModelDict_.lookup("d"))),
n_(readScalar(distributionModelDict_.lookup("n")))
{
check();
}
Foam::pdfs::RosinRammler::RosinRammler(const RosinRammler& p)
Foam::distributionModels::RosinRammler::RosinRammler(const RosinRammler& p)
:
pdf(p),
distributionModel(p),
minValue_(p.minValue_),
maxValue_(p.maxValue_),
d_(p.d_),
@ -67,13 +67,13 @@ Foam::pdfs::RosinRammler::RosinRammler(const RosinRammler& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::RosinRammler::~RosinRammler()
Foam::distributionModels::RosinRammler::~RosinRammler()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::RosinRammler::sample() const
Foam::scalar Foam::distributionModels::RosinRammler::sample() const
{
scalar K = 1.0 - exp(-pow((maxValue_ - minValue_)/d_, n_));
scalar y = rndGen_.sample01<scalar>();
@ -82,13 +82,13 @@ Foam::scalar Foam::pdfs::RosinRammler::sample() const
}
Foam::scalar Foam::pdfs::RosinRammler::minValue() const
Foam::scalar Foam::distributionModels::RosinRammler::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::RosinRammler::maxValue() const
Foam::scalar Foam::distributionModels::RosinRammler::maxValue() const
{
return maxValue_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,10 +25,10 @@ Class
Foam::RosinRammler
Description
Rosin-Rammler pdf
Rosin-Rammler distributionModel
@f[
cumulative pdf =
cumulative model =
(1.0 - exp( -(( x - d0)/d)^n )
/ (1.0 - exp( -((d1 - d0)/d)^n )
@f]
@ -42,13 +42,13 @@ SourceFiles
#ifndef RosinRammler_H
#define RosinRammler_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -57,7 +57,7 @@ namespace pdfs
class RosinRammler
:
public pdf
public distributionModel
{
// Private data
@ -88,9 +88,9 @@ public:
RosinRammler(const RosinRammler& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new RosinRammler(*this));
return autoPtr<distributionModel>(new RosinRammler(*this));
}
@ -100,7 +100,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -113,7 +113,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,36 +23,36 @@ License
\*---------------------------------------------------------------------------*/
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(pdf, 0);
defineRunTimeSelectionTable(pdf, dictionary);
defineTypeNameAndDebug(distributionModel, 0);
defineRunTimeSelectionTable(distributionModel, dictionary);
}
}
// * * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * //
void Foam::pdfs::pdf::check() const
void Foam::distributionModels::distributionModel::check() const
{
if (minValue() < 0)
{
FatalErrorIn("pdfs::pdf::check() const")
<< type() << "PDF: Minimum value must be greater than zero." << nl
<< "Supplied minValue = " << minValue()
FatalErrorIn("distributionModels::distributionModel::check() const")
<< type() << "distribution: 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()
FatalErrorIn("distributionModels::distributionModel::check() const")
<< type() << "distribution: Maximum value is smaller than the "
<< "minimum value:" << nl << " maxValue = " << maxValue()
<< ", minValue = " << minValue()
<< abort(FatalError);
}
@ -61,50 +61,65 @@ void Foam::pdfs::pdf::check() const
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::pdf::pdf
Foam::distributionModels::distributionModel::distributionModel
(
const word& name,
const dictionary& dict,
cachedRandom& rndGen
)
:
pdfDict_(dict.subDict(name + "PDF")),
distributionModelDict_(dict.subDict(name + "Distribution")),
rndGen_(rndGen)
{}
Foam::pdfs::pdf::pdf(const pdf& p)
Foam::distributionModels::distributionModel::distributionModel
(
const distributionModel& p
)
:
pdfDict_(p.pdfDict_),
distributionModelDict_(p.distributionModelDict_),
rndGen_(p.rndGen_)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::pdf::~pdf()
Foam::distributionModels::distributionModel::~distributionModel()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::pdf::sample() const
Foam::scalar Foam::distributionModels::distributionModel::sample() const
{
notImplemented("Foam::scalar Foam::pdfs::pdf::sample() const");
notImplemented
(
"Foam::scalar "
"Foam::distributionModels::distributionModel::sample() const"
);
return 0.0;
}
Foam::scalar Foam::pdfs::pdf::minValue() const
Foam::scalar Foam::distributionModels::distributionModel::minValue() const
{
notImplemented("Foam::scalar Foam::pdfs::pdf::minValue() const");
notImplemented
(
"Foam::scalar "
"Foam::distributionModels::distributionModel::minValue() const"
);
return 0.0;
}
Foam::scalar Foam::pdfs::pdf::maxValue() const
Foam::scalar Foam::distributionModels::distributionModel::maxValue() const
{
notImplemented("Foam::scalar Foam::pdfs::pdf::maxValue() const");
notImplemented
(
"Foam::scalar "
"Foam::distributionModels::distributionModel::maxValue() const"
);
return 0.0;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -22,14 +22,14 @@ License
along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
Class
Foam::pdf
Foam::distributionModel
Description
A library of runtime-selectable PDF's.
A library of runtime-selectable distribution models.
Returns a sampled value given the expectation (nu) and variance (sigma^2)
Current PDF's include:
Current distribution models include:
- exponential
- fixedValue
- general
@ -38,19 +38,19 @@ Description
- Rosin-Rammler
- uniform
The pdf is tabulated in equidistant nPoints, in an interval.
These values are integrated to obtain the cumulated PDF,
The distributionModel is tabulated in equidistant nPoints, in an interval.
These values are integrated to obtain the cumulated distribution model,
which is then used to change the distribution from unifrom to
the actual pdf.
the actual distributionModel.
SourceFiles
pdf.C
pdfNew.C
distributionModel.C
distributionModelNew.C
\*---------------------------------------------------------------------------*/
#ifndef pdf_H
#define pdf_H
#ifndef distributionModel_H
#define distributionModel_H
#include "IOdictionary.H"
#include "autoPtr.H"
@ -60,14 +60,14 @@ SourceFiles
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
Class pdf Declaration
Class distributionModel Declaration
\*---------------------------------------------------------------------------*/
class pdf
class distributionModel
{
protected:
@ -75,7 +75,7 @@ protected:
// Protected data
//- Coefficients dictionary
const dictionary pdfDict_;
const dictionary distributionModelDict_;
//- Reference to the random number generator
cachedRandom& rndGen_;
@ -83,21 +83,21 @@ protected:
// Protected Member Functions
//- Check that the PDF is valid
//- Check that the distribution model is valid
virtual void check() const;
public:
//-Runtime type information
TypeName("pdf");
TypeName("distributionModel");
//- Declare runtime constructor selection table
declareRunTimeSelectionTable
(
autoPtr,
pdf,
distributionModel,
dictionary,
(
const dictionary& dict,
@ -110,29 +110,38 @@ public:
// Constructors
//- Construct from dictionary
pdf(const word& name, const dictionary& dict, cachedRandom& rndGen);
distributionModel
(
const word& name,
const dictionary& dict,
cachedRandom& rndGen
);
//- Construct copy
pdf(const pdf& p);
distributionModel(const distributionModel& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new pdf(*this));
return autoPtr<distributionModel>(new distributionModel(*this));
}
//- Selector
static autoPtr<pdf> New(const dictionary& dict, cachedRandom& rndGen);
static autoPtr<distributionModel> New
(
const dictionary& dict,
cachedRandom& rndGen
);
//- Destructor
virtual ~pdf();
virtual ~distributionModel();
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -145,7 +154,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -23,33 +23,41 @@ License
\*---------------------------------------------------------------------------*/
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * * //
Foam::autoPtr<Foam::pdfs::pdf> Foam::pdfs::pdf::New
Foam::autoPtr<Foam::distributionModels::distributionModel>
Foam::distributionModels::distributionModel::New
(
const dictionary& dict,
cachedRandom& rndGen
)
{
const word modelType(dict.lookup("pdfType"));
const word modelType(dict.lookup("distributionModelType"));
Info<< "Selecting pdfType " << modelType << endl;
Info<< "Selecting distributionModelType " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
{
FatalErrorIn("pdfs::pdf::New(const dictionary&, cachedRandom&)")
<< "Unknown pdf type " << modelType << nl << nl
<< "Valid pdf types are:" << nl
FatalErrorIn
(
"distributionModels::distributionModel::New"
"("
"const dictionary&, "
"cachedRandom&"
")"
)
<< "Unknown distributionModel type " << modelType << nl << nl
<< "Valid distributionModel types are:" << nl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
}
return autoPtr<pdf>(cstrIter()(dict, rndGen));
return autoPtr<distributionModel>(cstrIter()(dict, rndGen));
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,33 +30,33 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(exponential, 0);
addToRunTimeSelectionTable(pdf, exponential, dictionary);
addToRunTimeSelectionTable(distributionModel, exponential, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::exponential::exponential
Foam::distributionModels::exponential::exponential
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
lambda_(readScalar(pdfDict_.lookup("lambda")))
distributionModel(typeName, dict, rndGen),
minValue_(readScalar(distributionModelDict_.lookup("minValue"))),
maxValue_(readScalar(distributionModelDict_.lookup("maxValue"))),
lambda_(readScalar(distributionModelDict_.lookup("lambda")))
{
check();
}
Foam::pdfs::exponential::exponential(const exponential& p)
Foam::distributionModels::exponential::exponential(const exponential& p)
:
pdf(p),
distributionModel(p),
minValue_(p.minValue_),
maxValue_(p.maxValue_),
lambda_(p.lambda_)
@ -65,13 +65,13 @@ Foam::pdfs::exponential::exponential(const exponential& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::exponential::~exponential()
Foam::distributionModels::exponential::~exponential()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::exponential::sample() const
Foam::scalar Foam::distributionModels::exponential::sample() const
{
scalar y = rndGen_.sample01<scalar>();
scalar K = exp(-lambda_*maxValue_) - exp(-lambda_*minValue_);
@ -79,13 +79,13 @@ Foam::scalar Foam::pdfs::exponential::sample() const
}
Foam::scalar Foam::pdfs::exponential::minValue() const
Foam::scalar Foam::distributionModels::exponential::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::exponential::maxValue() const
Foam::scalar Foam::distributionModels::exponential::maxValue() const
{
return maxValue_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::exponential
Description
exponential pdf
exponential distribution model
SourceFiles
exponential.C
@ -35,13 +35,13 @@ SourceFiles
#ifndef exponential_H
#define exponential_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -50,7 +50,7 @@ namespace pdfs
class exponential
:
public pdf
public distributionModel
{
// Private data
@ -81,9 +81,9 @@ public:
exponential(const exponential& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new exponential(*this));
return autoPtr<distributionModel>(new exponential(*this));
}
@ -93,7 +93,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -106,7 +106,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,50 +30,54 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(fixedValue, 0);
addToRunTimeSelectionTable(pdf, fixedValue, dictionary);
addToRunTimeSelectionTable(distributionModel, fixedValue, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::fixedValue::fixedValue(const dictionary& dict, cachedRandom& rndGen)
Foam::distributionModels::fixedValue::fixedValue
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
value_(readScalar(pdfDict_.lookup("value")))
distributionModel(typeName, dict, rndGen),
value_(readScalar(distributionModelDict_.lookup("value")))
{}
Foam::pdfs::fixedValue::fixedValue(const fixedValue& p)
Foam::distributionModels::fixedValue::fixedValue(const fixedValue& p)
:
pdf(p),
distributionModel(p),
value_(p.value_)
{}
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::fixedValue::~fixedValue()
Foam::distributionModels::fixedValue::~fixedValue()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::fixedValue::fixedValue::sample() const
Foam::scalar Foam::distributionModels::fixedValue::fixedValue::sample() const
{
return value_;
}
Foam::scalar Foam::pdfs::fixedValue::fixedValue::minValue() const
Foam::scalar Foam::distributionModels::fixedValue::fixedValue::minValue() const
{
return value_;
}
Foam::scalar Foam::pdfs::fixedValue::fixedValue::maxValue() const
Foam::scalar Foam::distributionModels::fixedValue::fixedValue::maxValue() const
{
return value_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -32,16 +32,16 @@ SourceFiles
\*---------------------------------------------------------------------------*/
#ifndef pdfFixedValue_H
#define pdfFixedValue_H
#ifndef distributionModelFixedValue_H
#define distributionModelFixedValue_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
Class fixedValue Declaration
@ -49,7 +49,7 @@ namespace pdfs
class fixedValue
:
public pdf
public distributionModel
{
// Private data
@ -72,9 +72,9 @@ public:
fixedValue(const fixedValue& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new fixedValue(*this));
return autoPtr<distributionModel>(new fixedValue(*this));
}
@ -84,7 +84,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -97,7 +97,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,19 +30,23 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(general, 0);
addToRunTimeSelectionTable(pdf, general, dictionary);
addToRunTimeSelectionTable(distributionModel, general, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::general::general(const dictionary& dict, cachedRandom& rndGen)
Foam::distributionModels::general::general
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
xy_(pdfDict_.lookup("distribution")),
distributionModel(typeName, dict, rndGen),
xy_(distributionModelDict_.lookup("distribution")),
nEntries_(xy_.size()),
minValue_(xy_[0][0]),
maxValue_(xy_[nEntries_-1][0]),
@ -50,7 +54,7 @@ Foam::pdfs::general::general(const dictionary& dict, cachedRandom& rndGen)
{
check();
// normalize the cumulative pdf
// normalize the cumulative distributionModel
integral_[0] = 0.0;
for (label i=1; i<nEntries_; i++)
@ -74,9 +78,9 @@ Foam::pdfs::general::general(const dictionary& dict, cachedRandom& rndGen)
}
Foam::pdfs::general::general(const general& p)
Foam::distributionModels::general::general(const general& p)
:
pdf(p),
distributionModel(p),
xy_(p.xy_),
nEntries_(p.nEntries_),
minValue_(p.minValue_),
@ -87,13 +91,13 @@ Foam::pdfs::general::general(const general& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::general::~general()
Foam::distributionModels::general::~general()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::general::sample() const
Foam::scalar Foam::distributionModels::general::sample() const
{
scalar y = rndGen_.sample01<scalar>();
@ -137,13 +141,13 @@ Foam::scalar Foam::pdfs::general::sample() const
}
Foam::scalar Foam::pdfs::general::minValue() const
Foam::scalar Foam::distributionModels::general::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::general::maxValue() const
Foam::scalar Foam::distributionModels::general::maxValue() const
{
return maxValue_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::general
Description
general pdf
general distribution model
SourceFiles
general.C
@ -35,7 +35,7 @@ SourceFiles
#ifndef general_H
#define general_H
#include "pdf.H"
#include "distributionModel.H"
#include "Vector.H"
#include "VectorSpace.H"
@ -43,7 +43,7 @@ SourceFiles
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -52,7 +52,7 @@ namespace pdfs
class general
:
public pdf
public distributionModel
{
// Private data
@ -84,9 +84,9 @@ public:
general(const general& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new general(*this));
return autoPtr<distributionModel>(new general(*this));
}
@ -96,7 +96,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -109,7 +109,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,28 +30,28 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(multiNormal, 0);
addToRunTimeSelectionTable(pdf, multiNormal, dictionary);
addToRunTimeSelectionTable(distributionModel, multiNormal, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::multiNormal::multiNormal
Foam::distributionModels::multiNormal::multiNormal
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
distributionModel(typeName, dict, rndGen),
minValue_(readScalar(distributionModelDict_.lookup("minValue"))),
maxValue_(readScalar(distributionModelDict_.lookup("maxValue"))),
range_(maxValue_ - minValue_),
expectation_(pdfDict_.lookup("expectation")),
variance_(pdfDict_.lookup("variance")),
strength_(pdfDict_.lookup("strength"))
expectation_(distributionModelDict_.lookup("expectation")),
variance_(distributionModelDict_.lookup("variance")),
strength_(distributionModelDict_.lookup("strength"))
{
check();
@ -81,9 +81,9 @@ Foam::pdfs::multiNormal::multiNormal
}
Foam::pdfs::multiNormal::multiNormal(const multiNormal& p)
Foam::distributionModels::multiNormal::multiNormal(const multiNormal& p)
:
pdf(p),
distributionModel(p),
minValue_(p.minValue_),
maxValue_(p.maxValue_),
range_(p.range_),
@ -95,13 +95,13 @@ Foam::pdfs::multiNormal::multiNormal(const multiNormal& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::multiNormal::~multiNormal()
Foam::distributionModels::multiNormal::~multiNormal()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::multiNormal::sample() const
Foam::scalar Foam::distributionModels::multiNormal::sample() const
{
scalar y = 0;
scalar x = 0;
@ -133,13 +133,13 @@ Foam::scalar Foam::pdfs::multiNormal::sample() const
}
Foam::scalar Foam::pdfs::multiNormal::minValue() const
Foam::scalar Foam::distributionModels::multiNormal::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::multiNormal::maxValue() const
Foam::scalar Foam::distributionModels::multiNormal::maxValue() const
{
return maxValue_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,10 +25,10 @@ Class
Foam::multiNormal
Description
A multiNormal pdf
A multiNormal distribution model
@verbatim
pdf = sum_i strength_i * exp(-0.5*((x - expectation_i)/variance_i)^2 )
model = sum_i strength_i * exp(-0.5*((x - expectation_i)/variance_i)^2 )
@endverbatim
@ -40,13 +40,13 @@ SourceFiles
#ifndef multiNormal_H
#define multiNormal_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -55,7 +55,7 @@ namespace pdfs
class multiNormal
:
public pdf
public distributionModel
{
// Private data
@ -91,9 +91,9 @@ public:
multiNormal(const multiNormal& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new multiNormal(*this));
return autoPtr<distributionModel>(new multiNormal(*this));
}
@ -103,7 +103,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -116,7 +116,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,22 +31,26 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(normal, 0);
addToRunTimeSelectionTable(pdf, normal, dictionary);
addToRunTimeSelectionTable(distributionModel, normal, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::normal::normal(const dictionary& dict, cachedRandom& rndGen)
Foam::distributionModels::normal::normal
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
expectation_(readScalar(pdfDict_.lookup("expectation"))),
variance_(readScalar(pdfDict_.lookup("variance"))),
distributionModel(typeName, dict, rndGen),
minValue_(readScalar(distributionModelDict_.lookup("minValue"))),
maxValue_(readScalar(distributionModelDict_.lookup("maxValue"))),
expectation_(readScalar(distributionModelDict_.lookup("expectation"))),
variance_(readScalar(distributionModelDict_.lookup("variance"))),
a_(0.147)
{
if (minValue_ < 0)
@ -67,9 +71,9 @@ Foam::pdfs::normal::normal(const dictionary& dict, cachedRandom& rndGen)
}
Foam::pdfs::normal::normal(const normal& p)
Foam::distributionModels::normal::normal(const normal& p)
:
pdf(p),
distributionModel(p),
minValue_(p.minValue_),
maxValue_(p.maxValue_),
expectation_(p.expectation_),
@ -80,13 +84,13 @@ Foam::pdfs::normal::normal(const normal& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::normal::~normal()
Foam::distributionModels::normal::~normal()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::normal::sample() const
Foam::scalar Foam::distributionModels::normal::sample() const
{
scalar a = erf((minValue_ - expectation_)/variance_);
@ -104,19 +108,19 @@ Foam::scalar Foam::pdfs::normal::sample() const
}
Foam::scalar Foam::pdfs::normal::minValue() const
Foam::scalar Foam::distributionModels::normal::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::normal::maxValue() const
Foam::scalar Foam::distributionModels::normal::maxValue() const
{
return maxValue_;
}
Foam::scalar Foam::pdfs::normal::erfInv(const scalar y) const
Foam::scalar Foam::distributionModels::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_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,13 +25,13 @@ Class
Foam::normal
Description
A normal pdf
A normal distribution model
@verbatim
pdf = strength * exp(-0.5*((x - expectation)/variance)^2 )
model = strength * exp(-0.5*((x - expectation)/variance)^2 )
@endverbatim
strength only has meaning if there's more than one pdf
strength only has meaning if there's more than one distribution model
SourceFiles
normal.C
@ -41,13 +41,13 @@ SourceFiles
#ifndef normal_H
#define normal_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -56,7 +56,7 @@ namespace pdfs
class normal
:
public pdf
public distributionModel
{
// Private data
@ -91,9 +91,9 @@ public:
normal(const normal& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new normal(*this));
return autoPtr<distributionModel>(new normal(*this));
}
@ -103,7 +103,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -118,7 +118,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -30,29 +30,33 @@ License
namespace Foam
{
namespace pdfs
namespace distributionModels
{
defineTypeNameAndDebug(uniform, 0);
addToRunTimeSelectionTable(pdf, uniform, dictionary);
addToRunTimeSelectionTable(distributionModel, uniform, dictionary);
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::pdfs::uniform::uniform(const dictionary& dict, cachedRandom& rndGen)
Foam::distributionModels::uniform::uniform
(
const dictionary& dict,
cachedRandom& rndGen
)
:
pdf(typeName, dict, rndGen),
minValue_(readScalar(pdfDict_.lookup("minValue"))),
maxValue_(readScalar(pdfDict_.lookup("maxValue"))),
distributionModel(typeName, dict, rndGen),
minValue_(readScalar(distributionModelDict_.lookup("minValue"))),
maxValue_(readScalar(distributionModelDict_.lookup("maxValue"))),
range_(maxValue_ - minValue_)
{
check();
}
Foam::pdfs::uniform::uniform(const uniform& p)
Foam::distributionModels::uniform::uniform(const uniform& p)
:
pdf(p),
distributionModel(p),
minValue_(p.minValue_),
maxValue_(p.maxValue_)
{}
@ -60,25 +64,25 @@ Foam::pdfs::uniform::uniform(const uniform& p)
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::pdfs::uniform::~uniform()
Foam::distributionModels::uniform::~uniform()
{}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
Foam::scalar Foam::pdfs::uniform::sample() const
Foam::scalar Foam::distributionModels::uniform::sample() const
{
return rndGen_.position<scalar>(minValue_, maxValue_);
}
Foam::scalar Foam::pdfs::uniform::minValue() const
Foam::scalar Foam::distributionModels::uniform::minValue() const
{
return minValue_;
}
Foam::scalar Foam::pdfs::uniform::maxValue() const
Foam::scalar Foam::distributionModels::uniform::maxValue() const
{
return maxValue_;
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ Class
Foam::uniform
Description
uniform pdf
Uniform/equally-weighted distribution model
SourceFiles
uniform.C
@ -35,13 +35,13 @@ SourceFiles
#ifndef uniform_H
#define uniform_H
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
{
namespace pdfs
namespace distributionModels
{
/*---------------------------------------------------------------------------*\
@ -50,7 +50,7 @@ namespace pdfs
class uniform
:
public pdf
public distributionModel
{
// Private data
@ -79,9 +79,9 @@ public:
uniform(const uniform& p);
//- Construct and return a clone
virtual autoPtr<pdf> clone() const
virtual autoPtr<distributionModel> clone() const
{
return autoPtr<pdf>(new uniform(*this));
return autoPtr<distributionModel>(new uniform(*this));
}
@ -91,7 +91,7 @@ public:
// Member Functions
//- Sample the pdf
//- Sample the distributionModel
virtual scalar sample() const;
//- Return the minimum value
@ -104,7 +104,7 @@ public:
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
} // End namespace pdfs
} // End namespace distributionModels
} // End namespace Foam
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

View File

@ -2,16 +2,16 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/lagrangian/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiation/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
@ -24,7 +24,7 @@ LIB_LIBS = \
-lfiniteVolume \
-lmeshTools \
-llagrangian \
-lpdf \
-ldistributionModels \
-lliquidProperties \
-lliquidMixtureProperties \
-lsolidProperties \
@ -34,7 +34,7 @@ LIB_LIBS = \
-lreactionThermophysicalModels \
-lSLGThermo \
-lchemistryModel \
-lradiation \
-lradiationModels \
-lODE \
-lcompressibleRASModels \
-lcompressibleLESModels \

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -95,9 +95,12 @@ Foam::ConeInjection<CloudType>::ConeInjection
Umag_(DataEntry<scalar>::New("Umag", this->coeffDict())),
thetaInner_(DataEntry<scalar>::New("thetaInner", this->coeffDict())),
thetaOuter_(DataEntry<scalar>::New("thetaOuter", this->coeffDict())),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New(this->coeffDict().subDict("parcelPDF"), owner.rndGen())
distributionModels::distributionModel::New
(
this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
)
),
tanVec1_(vector::zero),
tanVec2_(vector::zero)
@ -153,7 +156,7 @@ Foam::ConeInjection<CloudType>::ConeInjection
Umag_(im.Umag_().clone().ptr()),
thetaInner_(im.thetaInner_().clone().ptr()),
thetaOuter_(im.thetaOuter_().clone().ptr()),
parcelPDF_(im.parcelPDF_().clone().ptr()),
sizeDistribution_(im.sizeDistribution_().clone().ptr()),
tanVec1_(im.tanVec1_),
tanVec2_(im.tanVec2_)
{}
@ -222,7 +225,7 @@ void Foam::ConeInjection<CloudType>::setProperties
parcel.U() = Umag_().value(t)*dirVec;
// set particle diameter
parcel.d() = parcelPDF_().sample();
parcel.d() = sizeDistribution_().sample();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -34,7 +34,7 @@ Description
- parcel flow rate
- parcel velocity
- inner and outer cone angles
- Parcel diameters obtained by PDF model
- Parcel diameters obtained by distribution model model
SourceFiles
ConeInjection.C
@ -45,7 +45,7 @@ SourceFiles
#define ConeInjection_H
#include "InjectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -101,8 +101,8 @@ class ConeInjection
//- Outer cone angle relative to SOI [deg]
const autoPtr<DataEntry<scalar> > thetaOuter_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
// Tangential vectors to the direction vector

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -126,9 +126,12 @@ Foam::ConeInjectionMP<CloudType>::ConeInjectionMP
Umag_(DataEntry<scalar>::New("Umag", this->coeffDict())),
thetaInner_(DataEntry<scalar>::New("thetaInner", this->coeffDict())),
thetaOuter_(DataEntry<scalar>::New("thetaOuter", this->coeffDict())),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New(this->coeffDict().subDict("parcelPDF"), owner.rndGen())
distributionModels::distributionModel::New
(
this->coeffDict().subDict("sizeDistribution"), owner.rndGen()
)
),
nInjected_(this->parcelsAddedTotal()),
tanVec1_(positions_.size()),
@ -193,7 +196,7 @@ Foam::ConeInjectionMP<CloudType>::ConeInjectionMP
Umag_(im.Umag_().clone().ptr()),
thetaInner_(im.thetaInner_().clone().ptr()),
thetaOuter_(im.thetaOuter_().clone().ptr()),
parcelPDF_(im.parcelPDF_().clone().ptr()),
sizeDistribution_(im.sizeDistribution_().clone().ptr()),
nInjected_(im.nInjected_),
tanVec1_(im.tanVec1_),
tanVec2_(im.tanVec2_)
@ -268,7 +271,7 @@ void Foam::ConeInjectionMP<CloudType>::setProperties
parcel.U() = Umag_().value(t)*dirVec;
// set particle diameter
parcel.d() = parcelPDF_().sample();
parcel.d() = sizeDistribution_().sample();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -34,7 +34,7 @@ Description
- parcel flow rate
- parcel velocities
- inner and outer cone angles
- Parcel diameters obtained by PDF model
- Parcel diameters obtained by distribution model model
SourceFiles
ConeInjectionMP.C
@ -45,7 +45,7 @@ SourceFiles
#define ConeInjectionMP_H
#include "InjectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
#include "vectorList.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -108,8 +108,8 @@ class ConeInjectionMP
//- Outer cone angle relative to SOI [deg]
const autoPtr<DataEntry<scalar> > thetaOuter_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
//- Number of parcels per injector already injected
mutable label nInjected_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -114,11 +114,11 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
nParcelsInjected_(positions_.size(), 0),
U0_(this->coeffDict().lookup("U0")),
diameters_(positions_.size()),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
this->coeffDict().subDict("parcelPDF"),
this->coeffDict().subDict("sizeDistribution"),
owner.rndGen()
)
)
@ -126,7 +126,7 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
// Construct parcel diameters - one per injector cell
forAll(diameters_, i)
{
diameters_[i] = parcelPDF_->sample();
diameters_[i] = sizeDistribution_->sample();
}
// Determine total volume of particles to inject
@ -166,7 +166,7 @@ Foam::FieldActivatedInjection<CloudType>::FieldActivatedInjection
nParcelsInjected_(im.nParcelsInjected_),
U0_(im.U0_),
diameters_(im.diameters_),
parcelPDF_(im.parcelPDF_().clone().ptr())
sizeDistribution_(im.sizeDistribution_().clone().ptr())
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2008-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -47,7 +47,7 @@ SourceFiles
#define FieldActivatedInjection_H
#include "InjectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
#include "volFieldsFwd.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -110,8 +110,9 @@ class FieldActivatedInjection
//- List of parcel diameters
scalarList diameters_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel>
sizeDistribution_;
protected:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -90,7 +90,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
(
1,
(10*volumeAccumulator_)
/CloudType::parcelType::volume(parcelPDF_().minValue())
/CloudType::parcelType::volume(sizeDistribution_().minValue())
);
label iterationNo = 0;
@ -128,7 +128,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
{
if (selfSeed_ && !cellCentresUsed.found(cI))
{
scalar dNew = parcelPDF_().sample();
scalar dNew = sizeDistribution_().sample();
newParticles_.append
(
@ -191,7 +191,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
scalar R = sqrt(3.0)*a/(2.0*sqrt(2.0));
scalar d = a/(2.0*sqrt(3.0));
scalar dNew = parcelPDF_().sample();
scalar dNew = sizeDistribution_().sample();
scalar volNew = CloudType::parcelType::volume(dNew);
newParticles_.append
@ -204,7 +204,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
);
volumeAccumulator_ -= volNew;
dNew = parcelPDF_().sample();
dNew = sizeDistribution_().sample();
newParticles_.append
(
vectorPairScalarPair
@ -215,7 +215,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
);
volumeAccumulator_ -= volNew;
dNew = parcelPDF_().sample();
dNew = sizeDistribution_().sample();
newParticles_.append
(
vectorPairScalarPair
@ -226,7 +226,7 @@ Foam::label Foam::InflationInjection<CloudType>::parcelsToInject
);
volumeAccumulator_ -= volNew;
dNew = parcelPDF_().sample();
dNew = sizeDistribution_().sample();
newParticles_.append
(
vectorPairScalarPair
@ -341,11 +341,11 @@ Foam::InflationInjection<CloudType>::InflationInjection
fraction_(1.0),
selfSeed_(this->coeffDict().lookupOrDefault("selfSeed", false)),
dSeed_(SMALL),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
this->coeffDict().subDict("parcelPDF"),
this->coeffDict().subDict("sizeDistribution"),
owner.rndGen()
)
)
@ -409,7 +409,7 @@ Foam::InflationInjection<CloudType>::InflationInjection
fraction_(im.fraction_),
selfSeed_(im.selfSeed_),
dSeed_(im.dSeed_),
parcelPDF_(im.parcelPDF_().clone().ptr())
sizeDistribution_(im.sizeDistribution_().clone().ptr())
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2010-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2010-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -39,7 +39,7 @@ SourceFiles
#define InflationInjection_H
#include "InjectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
#include "Switch.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -107,8 +107,8 @@ class InflationInjection
//- Diameter with which to create new seed particles
scalar dSeed_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
protected:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -96,11 +96,11 @@ Foam::ManualInjection<CloudType>::ManualInjection
injectorTetFaces_(positions_.size(), -1),
injectorTetPts_(positions_.size(), -1),
U0_(this->coeffDict().lookup("U0")),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New
distributionModels::distributionModel::New
(
this->coeffDict().subDict("parcelPDF"),
this->coeffDict().subDict("sizeDistribution"),
owner.rndGen()
)
)
@ -149,7 +149,7 @@ Foam::ManualInjection<CloudType>::ManualInjection
// Construct parcel diameters
forAll(diameters_, i)
{
diameters_[i] = parcelPDF_->sample();
diameters_[i] = sizeDistribution_->sample();
}
// Determine volume of particles to inject
@ -171,7 +171,7 @@ Foam::ManualInjection<CloudType>::ManualInjection
injectorTetFaces_(im.injectorTetFaces_),
injectorTetPts_(im.injectorTetPts_),
U0_(im.U0_),
parcelPDF_(im.parcelPDF_().clone().ptr())
sizeDistribution_(im.sizeDistribution_().clone().ptr())
{}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2004-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2004-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -31,7 +31,7 @@ Description
- Total mass to inject
- Parcel positions in file @c positionsFile
- Initial parcel velocity
- Parcel diameters obtained by PDF model
- Parcel diameters obtained by distribution model model
- All parcels introduced at SOI
SourceFiles
@ -43,7 +43,7 @@ SourceFiles
#define ManualInjection_H
#include "InjectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -82,8 +82,8 @@ class ManualInjection
//- Initial parcel velocity
const vector U0_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
protected:

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -25,7 +25,7 @@ License
#include "PatchInjection.H"
#include "DataEntry.H"
#include "pdf.H"
#include "distributionModel.H"
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
@ -104,9 +104,13 @@ Foam::PatchInjection<CloudType>::PatchInjection
(
DataEntry<scalar>::New("flowRateProfile", this->coeffDict())
),
parcelPDF_
sizeDistribution_
(
pdfs::pdf::New(this->coeffDict().subDict("parcelPDF"), owner.rndGen())
distributionModels::distributionModel::New
(
this->coeffDict().subDict("sizeDistribution"),
owner.rndGen()
)
),
cellOwners_(),
fraction_(1.0)
@ -153,7 +157,7 @@ Foam::PatchInjection<CloudType>::PatchInjection
parcelsPerSecond_(im.parcelsPerSecond_),
U0_(im.U0_),
flowRateProfile_(im.flowRateProfile_().clone().ptr()),
parcelPDF_(im.parcelPDF_().clone().ptr()),
sizeDistribution_(im.sizeDistribution_().clone().ptr()),
cellOwners_(im.cellOwners_),
fraction_(im.fraction_)
{}
@ -236,7 +240,7 @@ void Foam::PatchInjection<CloudType>::setProperties
parcel.U() = U0_;
// set particle diameter
parcel.d() = parcelPDF_->sample();
parcel.d() = sizeDistribution_->sample();
}

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -33,7 +33,7 @@ Description
- Injection duration
- Initial parcel velocity
- Injection volume flow rate
- Parcel diameters obtained by PDF model
- Parcel diameters obtained by distribution model model
- Parcels injected at cell centres adjacent to patch
SourceFiles
@ -54,7 +54,7 @@ namespace Foam
template<class Type>
class DataEntry;
class pdf;
class distributionModel;
/*---------------------------------------------------------------------------*\
Class PatchInjection Declaration
@ -85,8 +85,8 @@ class PatchInjection
//- Flow rate profile relative to SOI []
const autoPtr<DataEntry<scalar> > flowRateProfile_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
//- Parcel size distribution model model
const autoPtr<distributionModels::distributionModel> sizeDistribution_;
//- List of cell labels corresponding to injector positions
labelList cellOwners_;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -122,7 +122,22 @@ void Foam::fieldValues::cellSource::initialise(const dictionary& dict)
{
setCellZoneCells();
Info<< type() << " " << name_ << ":" << nl
if (nCells_ == 0)
{
WarningIn
(
"Foam::fieldValues::cellSource::initialise(const dictionary&)"
)
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Source has no cells - deactivating" << endl;
active_ = false;
return;
}
Info<< type() << " " << name_ << ":"
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " total cells = " << nCells_ << nl
<< " total volume = " << gSum(filterField(mesh().V()))
<< nl << endl;

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -249,6 +249,20 @@ void Foam::fieldValues::faceSource::initialise(const dictionary& dict)
}
}
if (nFaces_ == 0)
{
WarningIn
(
"Foam::fieldValues::faceSource::initialise(const dictionary&)"
)
<< type() << " " << name_ << ": "
<< sourceTypeNames_[source_] << "(" << sourceName_ << "):" << nl
<< " Source has no faces - deactivating" << endl;
active_ = false;
return;
}
scalar totalArea;
if (surfacePtr_.valid())

View File

@ -3,13 +3,13 @@ EXE_INC = \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude \
-I$(LIB_SRC)/lagrangian/distributionModels/lnInclude \
-I$(LIB_SRC)/turbulenceModels \
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel \
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude
@ -18,6 +18,6 @@ EXE_LIBS = \
-lSLGThermo \
-lfiniteVolume \
-lmeshTools \
-lpdf \
-ldistributionModels \
-lcompressibleRASModels \
-lcompressibleLESModels

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -53,12 +53,19 @@ Foam::surfaceFilmModels::cloudInjection::cloudInjection
injectionModel(type(), owner, dict),
particlesPerParcel_(readScalar(coeffs_.lookup("particlesPerParcel"))),
rndGen_(label(0), -1),
parcelPDF_(pdfs::pdf::New(coeffs_.subDict("parcelPDF"), rndGen_)),
parcelDistribution_
(
distributionModels::distributionModel::New
(
coeffs_.subDict("parcelDistribution"),
rndGen_
)
),
diameter_(owner.film().nCells(), 0.0)
{
forAll(diameter_, faceI)
{
diameter_[faceI] = parcelPDF_->sample();
diameter_[faceI] = parcelDistribution_->sample();
}
}
@ -95,7 +102,7 @@ void Foam::surfaceFilmModels::cloudInjection::inject
diameterToInject[cellI] = diameter_[cellI];
// Retrieve new particle diameter sample
diameter_[cellI] = parcelPDF_->sample();
diameter_[cellI] = parcelDistribution_->sample();
}
else
{

View File

@ -2,7 +2,7 @@
========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration |
\\ / A nd | Copyright (C) 2009-2010 OpenCFD Ltd.
\\ / A nd | Copyright (C) 2009-2011 OpenCFD Ltd.
\\/ M anipulation |
-------------------------------------------------------------------------------
License
@ -36,7 +36,7 @@ SourceFiles
#define cloudInjection_H
#include "injectionModel.H"
#include "pdf.H"
#include "distributionModel.H"
#include "cachedRandom.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -76,7 +76,8 @@ protected:
cachedRandom rndGen_;
//- Parcel size PDF model
const autoPtr<pdfs::pdf> parcelPDF_;
const autoPtr<distributionModels::distributionModel>
parcelDistribution_;
//- Diameters of particles to inject into the cloud
scalarList diameter_;

View File

@ -6,17 +6,13 @@ set -x
wmake $makeOption specie
wmake $makeOption solid
wmake $makeOption thermophysicalFunctions
wmake $makeOption liquidProperties
wmake $makeOption liquidMixtureProperties
wmake $makeOption solidProperties
wmake $makeOption solidMixtureProperties
./properties/Allwmake $*
wmake $makeOption basic
wmake $makeOption reactionThermo
wmake $makeOption laminarFlameSpeed
wmake $makeOption chemistryModel
wmake $makeOption pdfs
wmake $makeOption radiation
wmake $makeOption radiationModels
wmake $makeOption barotropicCompressibilityModel
wmake $makeOption thermalPorousZone

View File

@ -2,10 +2,10 @@ EXE_INC = \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/solidMixtureProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude
LIB_LIBS = \

View File

@ -0,0 +1,12 @@
#!/bin/sh
cd ${0%/*} || exit 1 # run from this directory
[ $# -ge 1 ] && makeOption=$1 || makeOption=libso
set -x
wmake $makeOption liquidProperties
wmake $makeOption liquidMixtureProperties
wmake $makeOption solidProperties
wmake $makeOption solidMixtureProperties
# ----------------------------------------------------------------- end-of-file

View File

@ -1,7 +1,7 @@
EXE_INC = \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/properties/liquidProperties/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude

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