mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of ssh://dm/home/dm4/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -49,6 +49,11 @@
|
|||||||
|
|
||||||
singlePhaseTransportModel laminarTransport(U, phi);
|
singlePhaseTransportModel laminarTransport(U, phi);
|
||||||
|
|
||||||
|
autoPtr<incompressible::turbulenceModel> turbulence
|
||||||
|
(
|
||||||
|
incompressible::turbulenceModel::New(U, phi, laminarTransport)
|
||||||
|
);
|
||||||
|
|
||||||
const volScalarField nu(laminarTransport.nu());
|
const volScalarField nu(laminarTransport.nu());
|
||||||
|
|
||||||
volScalarField mu
|
volScalarField mu
|
||||||
|
|||||||
@ -849,7 +849,10 @@ autoDensity::autoDensity
|
|||||||
:
|
:
|
||||||
initialPointsMethod(typeName, initialPointsDict, cvMesh),
|
initialPointsMethod(typeName, initialPointsDict, cvMesh),
|
||||||
globalTrialPoints_(0),
|
globalTrialPoints_(0),
|
||||||
minCellSizeLimit_(readScalar(detailsDict().lookup("minCellSizeLimit"))),
|
minCellSizeLimit_
|
||||||
|
(
|
||||||
|
detailsDict().lookupOrDefault<scalar>("minCellSizeLimit", 0.0)
|
||||||
|
),
|
||||||
minLevels_(readLabel(detailsDict().lookup("minLevels"))),
|
minLevels_(readLabel(detailsDict().lookup("minLevels"))),
|
||||||
maxSizeRatio_(readScalar(detailsDict().lookup("maxSizeRatio"))),
|
maxSizeRatio_(readScalar(detailsDict().lookup("maxSizeRatio"))),
|
||||||
volRes_(readLabel(detailsDict().lookup("sampleResolution"))),
|
volRes_(readLabel(detailsDict().lookup("sampleResolution"))),
|
||||||
@ -899,18 +902,7 @@ List<Vb::Point> autoDensity::initialPoints() const
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Initialise size of points list.
|
DynamicList<Vb::Point> initialPoints;
|
||||||
const scalar volumeBoundBox = Foam::pow3(hierBB.typDim());
|
|
||||||
const scalar volumeSmallestCell = Foam::pow3(minCellSizeLimit_);
|
|
||||||
|
|
||||||
const int initialPointEstimate
|
|
||||||
= min
|
|
||||||
(
|
|
||||||
static_cast<int>(volumeBoundBox/(volumeSmallestCell + SMALL)/10),
|
|
||||||
1e6
|
|
||||||
);
|
|
||||||
|
|
||||||
DynamicList<Vb::Point> initialPoints(initialPointEstimate);
|
|
||||||
|
|
||||||
Info<< nl << " " << typeName << endl;
|
Info<< nl << " " << typeName << endl;
|
||||||
|
|
||||||
|
|||||||
@ -163,6 +163,49 @@ Foam::tmp<Foam::pointField> Foam::boundBox::points() const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Foam::faceList Foam::boundBox::faces()
|
||||||
|
{
|
||||||
|
faceList faces(6);
|
||||||
|
|
||||||
|
forAll(faces, fI)
|
||||||
|
{
|
||||||
|
faces[fI].setSize(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
faces[0][0] = 0;
|
||||||
|
faces[0][1] = 1;
|
||||||
|
faces[0][2] = 2;
|
||||||
|
faces[0][3] = 3;
|
||||||
|
|
||||||
|
faces[1][0] = 2;
|
||||||
|
faces[1][1] = 6;
|
||||||
|
faces[1][2] = 7;
|
||||||
|
faces[1][3] = 3;
|
||||||
|
|
||||||
|
faces[2][0] = 0;
|
||||||
|
faces[2][1] = 4;
|
||||||
|
faces[2][2] = 5;
|
||||||
|
faces[2][3] = 1;
|
||||||
|
|
||||||
|
faces[3][0] = 4;
|
||||||
|
faces[3][1] = 7;
|
||||||
|
faces[3][2] = 6;
|
||||||
|
faces[3][3] = 5;
|
||||||
|
|
||||||
|
faces[4][0] = 3;
|
||||||
|
faces[4][1] = 7;
|
||||||
|
faces[4][2] = 4;
|
||||||
|
faces[4][3] = 0;
|
||||||
|
|
||||||
|
faces[5][0] = 1;
|
||||||
|
faces[5][1] = 5;
|
||||||
|
faces[5][2] = 6;
|
||||||
|
faces[5][3] = 2;
|
||||||
|
|
||||||
|
return faces;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Foam::boundBox::inflate(const scalar s)
|
void Foam::boundBox::inflate(const scalar s)
|
||||||
{
|
{
|
||||||
vector ext = vector::one*s*mag();
|
vector ext = vector::one*s*mag();
|
||||||
|
|||||||
@ -33,6 +33,7 @@ Description
|
|||||||
#define boundBox_H
|
#define boundBox_H
|
||||||
|
|
||||||
#include "pointField.H"
|
#include "pointField.H"
|
||||||
|
#include "faceList.H"
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -160,6 +161,9 @@ public:
|
|||||||
//- Return corner points in an order corresponding to a 'hex' cell
|
//- Return corner points in an order corresponding to a 'hex' cell
|
||||||
tmp<pointField> points() const;
|
tmp<pointField> points() const;
|
||||||
|
|
||||||
|
//- Return faces with correct point order
|
||||||
|
static faceList faces();
|
||||||
|
|
||||||
|
|
||||||
// Manipulate
|
// Manipulate
|
||||||
|
|
||||||
|
|||||||
@ -14,10 +14,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels \
|
-I$(LIB_SRC)/turbulenceModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
|
-I$(LIB_SRC)/transportModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/LES/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||||
@ -42,6 +39,7 @@ LIB_LIBS = \
|
|||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lLESdeltas \
|
-lLESdeltas \
|
||||||
|
-lincompressibleTransportModels \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lsurfaceFilmModels \
|
-lsurfaceFilmModels \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
|
|||||||
@ -13,10 +13,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels \
|
-I$(LIB_SRC)/turbulenceModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
|
-I$(LIB_SRC)/transportModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/LES/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||||
@ -36,10 +33,14 @@ LIB_LIBS = \
|
|||||||
-lreactionThermophysicalModels \
|
-lreactionThermophysicalModels \
|
||||||
-lSLGThermo \
|
-lSLGThermo \
|
||||||
-lradiationModels \
|
-lradiationModels \
|
||||||
|
-lincompressibleTurbulenceModel \
|
||||||
|
-lincompressibleRASModels \
|
||||||
|
-lincompressibleLESModels \
|
||||||
-lcompressibleTurbulenceModel \
|
-lcompressibleTurbulenceModel \
|
||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lLESdeltas \
|
-lLESdeltas \
|
||||||
|
-lincompressibleTransportModels \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lsurfaceFilmModels \
|
-lsurfaceFilmModels \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -25,6 +25,80 @@ License
|
|||||||
|
|
||||||
#include "DispersionRASModel.H"
|
#include "DispersionRASModel.H"
|
||||||
#include "demandDrivenData.H"
|
#include "demandDrivenData.H"
|
||||||
|
#include "incompressible/turbulenceModel/turbulenceModel.H"
|
||||||
|
#include "compressible/turbulenceModel/turbulenceModel.H"
|
||||||
|
|
||||||
|
// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * //
|
||||||
|
|
||||||
|
template<class CloudType>
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::DispersionRASModel<CloudType>::kModel() const
|
||||||
|
{
|
||||||
|
const objectRegistry& obr = this->owner().mesh();
|
||||||
|
const word turbName = "turbulenceModel";
|
||||||
|
|
||||||
|
if (obr.foundObject<compressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const compressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<compressible::turbulenceModel>(turbName);
|
||||||
|
return model.k();
|
||||||
|
}
|
||||||
|
else if (obr.foundObject<incompressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const incompressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<incompressible::turbulenceModel>(turbName);
|
||||||
|
return model.k();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn
|
||||||
|
(
|
||||||
|
"Foam::tmp<Foam::volScalarField>"
|
||||||
|
"Foam::DispersionRASModel<CloudType>::kModel() const"
|
||||||
|
)
|
||||||
|
<< "Turbulence model not found in mesh database" << nl
|
||||||
|
<< "Database objects include: " << obr.sortedToc()
|
||||||
|
<< abort(FatalError);
|
||||||
|
|
||||||
|
return tmp<volScalarField>(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class CloudType>
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::DispersionRASModel<CloudType>::epsilonModel() const
|
||||||
|
{
|
||||||
|
const objectRegistry& obr = this->owner().mesh();
|
||||||
|
const word turbName = "turbulenceModel";
|
||||||
|
|
||||||
|
if (obr.foundObject<compressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const compressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<compressible::turbulenceModel>(turbName);
|
||||||
|
return model.epsilon();
|
||||||
|
}
|
||||||
|
else if (obr.foundObject<incompressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const incompressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<incompressible::turbulenceModel>(turbName);
|
||||||
|
return model.epsilon();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn
|
||||||
|
(
|
||||||
|
"Foam::tmp<Foam::volScalarField>"
|
||||||
|
"Foam::DispersionRASModel<CloudType>::epsilonModel() const"
|
||||||
|
)
|
||||||
|
<< "Turbulence model not found in mesh database" << nl
|
||||||
|
<< "Database objects include: " << obr.sortedToc()
|
||||||
|
<< abort(FatalError);
|
||||||
|
|
||||||
|
return tmp<volScalarField>(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -36,16 +110,6 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
DispersionModel<CloudType>(owner),
|
DispersionModel<CloudType>(owner),
|
||||||
turbulence_
|
|
||||||
(
|
|
||||||
owner.mesh().objectRegistry::template lookupObject
|
|
||||||
<
|
|
||||||
compressible::RASModel
|
|
||||||
>
|
|
||||||
(
|
|
||||||
"RASProperties"
|
|
||||||
)
|
|
||||||
),
|
|
||||||
kPtr_(NULL),
|
kPtr_(NULL),
|
||||||
ownK_(false),
|
ownK_(false),
|
||||||
epsilonPtr_(NULL),
|
epsilonPtr_(NULL),
|
||||||
@ -60,7 +124,6 @@ Foam::DispersionRASModel<CloudType>::DispersionRASModel
|
|||||||
)
|
)
|
||||||
:
|
:
|
||||||
DispersionModel<CloudType>(dm),
|
DispersionModel<CloudType>(dm),
|
||||||
turbulence_(dm.turbulence_),
|
|
||||||
kPtr_(dm.kPtr_),
|
kPtr_(dm.kPtr_),
|
||||||
ownK_(dm.ownK_),
|
ownK_(dm.ownK_),
|
||||||
epsilonPtr_(dm.epsilonPtr_),
|
epsilonPtr_(dm.epsilonPtr_),
|
||||||
@ -87,7 +150,7 @@ void Foam::DispersionRASModel<CloudType>::cacheFields(const bool store)
|
|||||||
{
|
{
|
||||||
if (store)
|
if (store)
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tk = this->turbulence().k();
|
tmp<volScalarField> tk = this->kModel();
|
||||||
if (tk.isTmp())
|
if (tk.isTmp())
|
||||||
{
|
{
|
||||||
kPtr_ = tk.ptr();
|
kPtr_ = tk.ptr();
|
||||||
@ -99,7 +162,7 @@ void Foam::DispersionRASModel<CloudType>::cacheFields(const bool store)
|
|||||||
ownK_ = false;
|
ownK_ = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
tmp<volScalarField> tepsilon = this->turbulence().epsilon();
|
tmp<volScalarField> tepsilon = this->epsilonModel();
|
||||||
if (tepsilon.isTmp())
|
if (tepsilon.isTmp())
|
||||||
{
|
{
|
||||||
epsilonPtr_ = tepsilon.ptr();
|
epsilonPtr_ = tepsilon.ptr();
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -25,6 +25,7 @@ Class
|
|||||||
Foam::DispersionRASModel
|
Foam::DispersionRASModel
|
||||||
|
|
||||||
Description
|
Description
|
||||||
|
Base class for particle dispersion models based on RAS turbulence.
|
||||||
|
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
|
|
||||||
@ -32,7 +33,6 @@ Description
|
|||||||
#define DispersionRASModel_H
|
#define DispersionRASModel_H
|
||||||
|
|
||||||
#include "DispersionModel.H"
|
#include "DispersionModel.H"
|
||||||
#include "RASModel.H"
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
@ -53,9 +53,6 @@ protected:
|
|||||||
|
|
||||||
// Protected data
|
// Protected data
|
||||||
|
|
||||||
//- Reference to the compressible turbulence model
|
|
||||||
const compressible::RASModel& turbulence_;
|
|
||||||
|
|
||||||
// Locally cached turbulence fields
|
// Locally cached turbulence fields
|
||||||
|
|
||||||
//- Turbulence k
|
//- Turbulence k
|
||||||
@ -71,6 +68,15 @@ protected:
|
|||||||
bool ownEpsilon_;
|
bool ownEpsilon_;
|
||||||
|
|
||||||
|
|
||||||
|
// Protected Functions
|
||||||
|
|
||||||
|
//- Return the k field from the turbulence model
|
||||||
|
tmp<volScalarField> kModel() const;
|
||||||
|
|
||||||
|
//- Return the epsilon field from the turbulence model
|
||||||
|
tmp<volScalarField> epsilonModel() const;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
//- Runtime type information
|
//- Runtime type information
|
||||||
@ -104,12 +110,6 @@ public:
|
|||||||
//- Cache carrier fields
|
//- Cache carrier fields
|
||||||
virtual void cacheFields(const bool store);
|
virtual void cacheFields(const bool store);
|
||||||
|
|
||||||
//- Return const access to the turbulence model
|
|
||||||
const compressible::RASModel& turbulence() const
|
|
||||||
{
|
|
||||||
return turbulence_;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// I-O
|
// I-O
|
||||||
|
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -26,6 +26,8 @@ License
|
|||||||
#include "BrownianMotionForce.H"
|
#include "BrownianMotionForce.H"
|
||||||
#include "mathematicalConstants.H"
|
#include "mathematicalConstants.H"
|
||||||
#include "demandDrivenData.H"
|
#include "demandDrivenData.H"
|
||||||
|
#include "incompressible/turbulenceModel/turbulenceModel.H"
|
||||||
|
#include "compressible/turbulenceModel/turbulenceModel.H"
|
||||||
|
|
||||||
using namespace Foam::constant;
|
using namespace Foam::constant;
|
||||||
|
|
||||||
@ -50,6 +52,41 @@ Foam::scalar Foam::BrownianMotionForce<CloudType>::erfInv(const scalar y) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
template<class CloudType>
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::BrownianMotionForce<CloudType>::kModel() const
|
||||||
|
{
|
||||||
|
const objectRegistry& obr = this->owner().mesh();
|
||||||
|
const word turbName = "turbulenceModel";
|
||||||
|
|
||||||
|
if (obr.foundObject<compressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const compressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<compressible::turbulenceModel>(turbName);
|
||||||
|
return model.k();
|
||||||
|
}
|
||||||
|
else if (obr.foundObject<incompressible::turbulenceModel>(turbName))
|
||||||
|
{
|
||||||
|
const incompressible::turbulenceModel& model =
|
||||||
|
obr.lookupObject<incompressible::turbulenceModel>(turbName);
|
||||||
|
return model.k();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
FatalErrorIn
|
||||||
|
(
|
||||||
|
"Foam::tmp<Foam::volScalarField>"
|
||||||
|
"Foam::BrownianMotionForce<CloudType>::kModel() const"
|
||||||
|
)
|
||||||
|
<< "Turbulence model not found in mesh database" << nl
|
||||||
|
<< "Database objects include: " << obr.sortedToc()
|
||||||
|
<< abort(FatalError);
|
||||||
|
|
||||||
|
return tmp<volScalarField>(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
@ -64,37 +101,9 @@ Foam::BrownianMotionForce<CloudType>::BrownianMotionForce
|
|||||||
rndGen_(owner.rndGen()),
|
rndGen_(owner.rndGen()),
|
||||||
lambda_(readScalar(this->coeffs().lookup("lambda"))),
|
lambda_(readScalar(this->coeffs().lookup("lambda"))),
|
||||||
turbulence_(readBool(this->coeffs().lookup("turbulence"))),
|
turbulence_(readBool(this->coeffs().lookup("turbulence"))),
|
||||||
turbulenceModelPtr_(NULL),
|
|
||||||
kPtr_(NULL),
|
kPtr_(NULL),
|
||||||
ownK_(false)
|
ownK_(false)
|
||||||
{
|
{}
|
||||||
if (turbulence_)
|
|
||||||
{
|
|
||||||
HashTable<const compressible::turbulenceModel*> models =
|
|
||||||
this->mesh().objectRegistry::template lookupClass
|
|
||||||
<
|
|
||||||
compressible::turbulenceModel
|
|
||||||
>();
|
|
||||||
|
|
||||||
if (models.size() == 1)
|
|
||||||
{
|
|
||||||
turbulenceModelPtr_ = models.begin()();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
FatalErrorIn
|
|
||||||
(
|
|
||||||
"Foam::BrownianMotionForce<CloudType>::BrownianMotionForce"
|
|
||||||
"("
|
|
||||||
"CloudType&, "
|
|
||||||
"const fvMesh&, "
|
|
||||||
"const dictionary&"
|
|
||||||
")"
|
|
||||||
) << "Unable to find a valid turbulence model in mesh database"
|
|
||||||
<< exit(FatalError);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
@ -107,7 +116,6 @@ Foam::BrownianMotionForce<CloudType>::BrownianMotionForce
|
|||||||
rndGen_(bmf.rndGen_),
|
rndGen_(bmf.rndGen_),
|
||||||
lambda_(bmf.lambda_),
|
lambda_(bmf.lambda_),
|
||||||
turbulence_(bmf.turbulence_),
|
turbulence_(bmf.turbulence_),
|
||||||
turbulenceModelPtr_(NULL),
|
|
||||||
kPtr_(NULL),
|
kPtr_(NULL),
|
||||||
ownK_(false)
|
ownK_(false)
|
||||||
{}
|
{}
|
||||||
@ -117,9 +125,7 @@ Foam::BrownianMotionForce<CloudType>::BrownianMotionForce
|
|||||||
|
|
||||||
template<class CloudType>
|
template<class CloudType>
|
||||||
Foam::BrownianMotionForce<CloudType>::~BrownianMotionForce()
|
Foam::BrownianMotionForce<CloudType>::~BrownianMotionForce()
|
||||||
{
|
{}
|
||||||
turbulenceModelPtr_ = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
|
||||||
@ -131,7 +137,7 @@ void Foam::BrownianMotionForce<CloudType>::cacheFields(const bool store)
|
|||||||
{
|
{
|
||||||
if (store)
|
if (store)
|
||||||
{
|
{
|
||||||
tmp<volScalarField> tk = turbulenceModelPtr_->k();
|
tmp<volScalarField> tk = kModel();
|
||||||
if (tk.isTmp())
|
if (tk.isTmp())
|
||||||
{
|
{
|
||||||
kPtr_ = tk.ptr();
|
kPtr_ = tk.ptr();
|
||||||
|
|||||||
@ -2,7 +2,7 @@
|
|||||||
========= |
|
========= |
|
||||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||||
\\ / O peration |
|
\\ / O peration |
|
||||||
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation
|
\\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||||
\\/ M anipulation |
|
\\/ M anipulation |
|
||||||
-------------------------------------------------------------------------------
|
-------------------------------------------------------------------------------
|
||||||
License
|
License
|
||||||
@ -38,7 +38,6 @@ SourceFiles
|
|||||||
|
|
||||||
#include "ParticleForce.H"
|
#include "ParticleForce.H"
|
||||||
#include "cachedRandom.H"
|
#include "cachedRandom.H"
|
||||||
#include "turbulenceModel.H"
|
|
||||||
|
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
@ -65,9 +64,6 @@ class BrownianMotionForce
|
|||||||
//- Turbulence flag
|
//- Turbulence flag
|
||||||
bool turbulence_;
|
bool turbulence_;
|
||||||
|
|
||||||
//- Reference to a compressible turbulence model
|
|
||||||
const compressible::turbulenceModel* turbulenceModelPtr_;
|
|
||||||
|
|
||||||
//- Pointer to the turbulence kinetic energy field
|
//- Pointer to the turbulence kinetic energy field
|
||||||
const volScalarField* kPtr_;
|
const volScalarField* kPtr_;
|
||||||
|
|
||||||
@ -80,6 +76,9 @@ class BrownianMotionForce
|
|||||||
//- Inverse erf for Gaussian distribution
|
//- Inverse erf for Gaussian distribution
|
||||||
scalar erfInv(const scalar y) const;
|
scalar erfInv(const scalar y) const;
|
||||||
|
|
||||||
|
//- Return the k field from the turbulence model
|
||||||
|
tmp<volScalarField> kModel() const;
|
||||||
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
|
|||||||
@ -14,10 +14,7 @@ EXE_INC = \
|
|||||||
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/SLGThermo/lnInclude \
|
||||||
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
-I$(LIB_SRC)/thermophysicalModels/radiationModels/lnInclude \
|
||||||
-I$(LIB_SRC)/turbulenceModels \
|
-I$(LIB_SRC)/turbulenceModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/turbulenceModel/lnInclude \
|
-I$(LIB_SRC)/transportModels \
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/RAS/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/LES/LESdeltas/lnInclude \
|
|
||||||
-I$(LIB_SRC)/turbulenceModels/compressible/LES/lnInclude \
|
|
||||||
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
-I$(LIB_SRC)/regionModels/regionModel/lnInclude \
|
||||||
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
-I$(LIB_SRC)/regionModels/surfaceFilmModels/lnInclude \
|
||||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||||
@ -42,6 +39,7 @@ LIB_LIBS = \
|
|||||||
-lcompressibleRASModels \
|
-lcompressibleRASModels \
|
||||||
-lcompressibleLESModels \
|
-lcompressibleLESModels \
|
||||||
-lLESdeltas \
|
-lLESdeltas \
|
||||||
|
-lincompressibleTransportModels \
|
||||||
-lregionModels \
|
-lregionModels \
|
||||||
-lsurfaceFilmModels \
|
-lsurfaceFilmModels \
|
||||||
-ldynamicFvMesh \
|
-ldynamicFvMesh \
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: dev |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.org |
|
| \\ / A nd | Web: www.OpenFOAM.org |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
@ -52,7 +52,7 @@ solvers
|
|||||||
solver GAMG;
|
solver GAMG;
|
||||||
tolerance 0;
|
tolerance 0;
|
||||||
relTol 0.1;
|
relTol 0.1;
|
||||||
smoother GaussSeidel;
|
smoother DICGaussSeidel;
|
||||||
nPreSweeps 0;
|
nPreSweeps 0;
|
||||||
nPostSweeps 2;
|
nPostSweeps 2;
|
||||||
cacheAgglomeration true;
|
cacheAgglomeration true;
|
||||||
|
|||||||
Reference in New Issue
Block a user