Compare commits
5 Commits
PDRfoam-rc
...
PDRFoam-rc
| Author | SHA1 | Date | |
|---|---|---|---|
| c5081a26ca | |||
| a8ce8ed6f3 | |||
| 6a78c3c84e | |||
| 30eb0014c7 | |||
| b38802ea0d |
@ -12,7 +12,6 @@ XiModels/XiEqModels/BLMgMaXiEq/BLMgMaXiEq.C
|
||||
|
||||
XiModels/XiGModels/XiGModel/XiGModel.C
|
||||
XiModels/XiGModels/XiGModel/XiGModelNew.C
|
||||
|
||||
XiModels/XiGModels/KTS/KTS.C
|
||||
XiModels/XiGModels/instabilityG/instabilityG.C
|
||||
XiModels/XiGModels/instability2G/instability2G.C
|
||||
@ -25,7 +24,6 @@ PDRModels/dragModels/basic/basic.C
|
||||
PDRModels/dragModels/basicSch/basicSch.C
|
||||
|
||||
PDRModels/XiEqModels/normBasicXiSubXiEq/normBasicXiSubXiEq.C
|
||||
|
||||
PDRModels/XiGModels/normBasicXiSubG/normBasicXiSubG.C
|
||||
|
||||
laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C
|
||||
|
||||
@ -1,9 +1,12 @@
|
||||
EXE_INC = -DFULLDEBUG -O0 -g \
|
||||
EXE_INC = \
|
||||
-IXiModels/XiModel \
|
||||
-IXiModels/XiEqModels/XiEqModel \
|
||||
-IXiModels/XiGModels/XiGModel \
|
||||
-IPDRModels/dragModels/PDRDragModel \
|
||||
-IlaminarFlameSpeed/SCOPE \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/surfMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/engine/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
|
||||
@ -12,13 +15,12 @@ EXE_INC = -DFULLDEBUG -O0 -g \
|
||||
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
|
||||
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
|
||||
-I$(LIB_SRC)/finiteVolume/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicMesh/lnInclude \
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lmeshTools \
|
||||
-lengine \
|
||||
-lturbulenceModels \
|
||||
@ -28,6 +30,4 @@ EXE_LIBS = \
|
||||
-lreactionThermophysicalModels \
|
||||
-lspecie \
|
||||
-llaminarFlameSpeedModels \
|
||||
-lfiniteVolume \
|
||||
-ldynamicFvMesh \
|
||||
-lfvOptions
|
||||
-ldynamicFvMesh
|
||||
|
||||
@ -60,7 +60,7 @@ Foam::XiEqModels::normBasicSubGrid::normBasicSubGrid
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::normBasicSubGrid::~normBasicSubGrid()
|
||||
{}
|
||||
@ -81,64 +81,54 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::normBasicSubGrid::XiEq() const
|
||||
|
||||
volScalarField magU(mag(U));
|
||||
|
||||
const scalarField Cw = pow(mesh.V(), 2.0/3.0);
|
||||
const scalarField Cw(pow(mesh.V(), 2.0/3.0));
|
||||
|
||||
tmp<volScalarField> tN
|
||||
auto tN = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().constant(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tN",
|
||||
mesh.time().constant(),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
auto& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
|
||||
|
||||
tmp<volSymmTensorField> tns
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
);
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
auto& ns = tns.ref();
|
||||
|
||||
tmp<volSymmTensorField> tB
|
||||
auto tB = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tB",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tB",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
);
|
||||
volSymmTensorField& B = tB.ref();
|
||||
auto& B = tB.ref();
|
||||
|
||||
//calculating flame normal
|
||||
|
||||
|
||||
@ -54,7 +54,7 @@ class normBasicSubGrid
|
||||
:
|
||||
public XiEqModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
// Constants in the equilibrium Xp equation
|
||||
scalar Cxpe1_;
|
||||
@ -65,11 +65,11 @@ class normBasicSubGrid
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&);
|
||||
//- No copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const normBasicSubGrid&);
|
||||
//- No copy assignment
|
||||
void operator=(const normBasicSubGrid&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -97,7 +97,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking XiEq
|
||||
//- Return the flame-wrinkling XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
|
||||
@ -26,8 +26,8 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "normBasicXiSubG.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "zeroGradientFvPatchField.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -37,8 +37,8 @@ namespace XiGModels
|
||||
{
|
||||
defineTypeNameAndDebug(normBasicSubGrid, 0);
|
||||
addToRunTimeSelectionTable(XiGModel, normBasicSubGrid, dictionary);
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
@ -74,12 +74,6 @@ Foam::XiGModels::normBasicSubGrid::normBasicSubGrid
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::normBasicSubGrid::~normBasicSubGrid()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
@ -112,13 +106,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
|
||||
if (!db.foundObject<volScalarField>("Ep"))
|
||||
{
|
||||
FatalErrorIn
|
||||
(
|
||||
"Foam::tmp<Foam::volScalarField> Foam::XiGModels::"
|
||||
"normBasicSubGrid::G() const"
|
||||
)
|
||||
<< "Looking for Ep in db which does not exist "
|
||||
<< Foam::abort(FatalError);
|
||||
FatalErrorInFunction
|
||||
<< "Looking for Ep in db that does not exist" << nl
|
||||
<< Foam::abort(FatalError);
|
||||
}
|
||||
|
||||
const volScalarField& Ep = db.lookupObject<volScalarField>("Ep");
|
||||
@ -126,27 +116,21 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
const volScalarField& Xi = db.lookupObject<volScalarField>("Xi");
|
||||
|
||||
//tmp<volScalarField> tGtot = XiGModel_->G();
|
||||
tmp<volScalarField> tGtot
|
||||
auto tGtot = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tGtot",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"tGtot",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(inv(dimTime), Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(inv(dimTime), Zero)
|
||||
);
|
||||
|
||||
volScalarField& Gtot = tGtot.ref();
|
||||
|
||||
auto& Gtot = tGtot.ref();
|
||||
|
||||
//calculating flame normal
|
||||
|
||||
@ -164,68 +148,55 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
flNormal /= mgb;
|
||||
|
||||
|
||||
tmp<volScalarField> tN
|
||||
auto tN = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"tN",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
auto& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
|
||||
|
||||
tmp<volSymmTensorField> tns
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tns",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
auto& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;
|
||||
|
||||
tmp<volSymmTensorField> tB
|
||||
auto tB = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tB",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tB",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& B = tB.ref();
|
||||
auto& B = tB.ref();
|
||||
|
||||
B.primitiveFieldRef() = Bv.primitiveField()*sqrt(Cw);
|
||||
|
||||
@ -254,14 +225,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
Gtot = value*Gtot1+(1.0 - value)*Gtot2;
|
||||
|
||||
|
||||
//if (Xi.mesh().time().outputTime())
|
||||
{
|
||||
//Gtot.write();
|
||||
//bl.write();
|
||||
//Lobs.write();
|
||||
//flSpeed.write();
|
||||
//N.write();
|
||||
}
|
||||
/// if (Xi.mesh().time().outputTime())
|
||||
/// {
|
||||
/// Gtot.write();
|
||||
/// bl.write();
|
||||
/// Lobs.write();
|
||||
/// flSpeed.write();
|
||||
/// N.write();
|
||||
/// }
|
||||
|
||||
return tGtot;
|
||||
}
|
||||
@ -278,8 +249,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::Db() const
|
||||
const volScalarField& Db = db.lookupObject<volScalarField>("Db");
|
||||
|
||||
//return turbulence_.muEff()
|
||||
return Db
|
||||
+ rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
|
||||
return Db + rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,6 @@ Class
|
||||
Description
|
||||
|
||||
|
||||
|
||||
SourceFiles
|
||||
normBasicSubGrid.C
|
||||
|
||||
@ -55,7 +54,7 @@ class normBasicSubGrid
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
//- Sub-grid generation rate coefficient
|
||||
scalar k1_;
|
||||
@ -75,13 +74,14 @@ class normBasicSubGrid
|
||||
//- Maximum Lobs/CellWidth
|
||||
scalar LOverCw_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&);
|
||||
//- No copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const normBasicSubGrid&);
|
||||
//- No copy assignment
|
||||
void operator=(const normBasicSubGrid&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -104,12 +104,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~normBasicSubGrid();
|
||||
virtual ~normBasicSubGrid() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking generation rate
|
||||
//- Return the flame-wrinkling generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -71,7 +71,7 @@ Foam::PDRDragModel::PDRDragModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModel::~PDRDragModel()
|
||||
{}
|
||||
@ -89,4 +89,10 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
|
||||
}
|
||||
|
||||
|
||||
void Foam::PDRDragModel::writeFields() const
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -57,10 +57,9 @@ class PDRDragModel
|
||||
:
|
||||
public regIOobject
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
// Protected Data
|
||||
|
||||
dictionary PDRDragModelCoeffs_;
|
||||
|
||||
@ -72,15 +71,13 @@ protected:
|
||||
bool on_;
|
||||
|
||||
|
||||
private:
|
||||
// Protected Member Functions
|
||||
|
||||
// Private Member Functions
|
||||
//- No copy construct
|
||||
PDRDragModel(const PDRDragModel&) = delete;
|
||||
|
||||
//- Disallow copy construct
|
||||
PDRDragModel(const PDRDragModel&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const PDRDragModel&);
|
||||
//- No copy assignment
|
||||
void operator=(const PDRDragModel&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -146,7 +143,7 @@ public:
|
||||
// Member Functions
|
||||
|
||||
//- Return true if the drag model is switched on
|
||||
bool on() const
|
||||
bool on() const noexcept
|
||||
{
|
||||
return on_;
|
||||
}
|
||||
@ -170,10 +167,7 @@ public:
|
||||
}
|
||||
|
||||
//- Write fields
|
||||
virtual void writeFields() const
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
virtual void writeFields() const;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -31,34 +32,31 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
|
||||
(
|
||||
const dictionary& PDRProperties,
|
||||
const dictionary& dict,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi
|
||||
)
|
||||
{
|
||||
const word modelType(PDRProperties.get<word>("PDRDragModel"));
|
||||
const word modelType(dict.get<word>("PDRDragModel"));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||
Info<< "Selecting drag model " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
if (!cstrIter.found())
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorInLookup
|
||||
(
|
||||
"PDRDragModel::New"
|
||||
) << "Unknown PDRDragModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid PDRDragModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
dict,
|
||||
"PDRDragModel",
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
}
|
||||
|
||||
return autoPtr<PDRDragModel>
|
||||
(cstrIter()(PDRProperties,turbulence, rho, U, phi));
|
||||
return autoPtr<PDRDragModel>(cstrIter()(dict, turbulence, rho, U, phi));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ Foam::PDRDragModels::basic::basic
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModels::basic::~basic()
|
||||
{}
|
||||
@ -93,24 +93,20 @@ Foam::PDRDragModels::basic::~basic()
|
||||
|
||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||
{
|
||||
tmp<volSymmTensorField> tDragDcu
|
||||
auto tDragDcu = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
||||
auto& DragDcu = tDragDcu.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -127,24 +123,20 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
||||
{
|
||||
tmp<volScalarField> tGk
|
||||
auto tGk = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
);
|
||||
|
||||
volScalarField& Gk = tGk.ref();
|
||||
auto& Gk = tGk.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -181,4 +173,5 @@ void Foam::PDRDragModels::basic::writeFields() const
|
||||
CR_.write();
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -99,7 +99,7 @@ class basic
|
||||
:
|
||||
public PDRDragModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
dimensionedScalar Csu;
|
||||
dimensionedScalar Csk;
|
||||
@ -110,11 +110,11 @@ class basic
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
basic(const basic&);
|
||||
//- No copy construct
|
||||
basic(const basic&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const basic&);
|
||||
//- No copy assignment
|
||||
void operator=(const basic&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -86,7 +86,7 @@ Foam::PDRDragModels::basicSch::basicSch
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModels::basicSch::~basicSch()
|
||||
{}
|
||||
@ -96,25 +96,20 @@ Foam::PDRDragModels::basicSch::~basicSch()
|
||||
|
||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
|
||||
{
|
||||
tmp<volSymmTensorField> tDragDcu
|
||||
auto tDragDcu = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
||||
auto& DragDcu = tDragDcu.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -131,25 +126,20 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
|
||||
{
|
||||
tmp<volScalarField> tGk
|
||||
auto tGk = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
);
|
||||
|
||||
volScalarField& Gk = tGk.ref();
|
||||
auto& Gk = tGk.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -165,39 +155,35 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
|
||||
|
||||
if (subGridSchelkin_)
|
||||
{
|
||||
Gk *= schFac();
|
||||
Gk *= this->SchelkinFactor();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return tGk;
|
||||
}
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::schFac() const
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::PDRDragModels::basicSch::SchelkinFactor() const
|
||||
{
|
||||
const volScalarField& Su_ = U_.db().lookupObject<volScalarField>("Su");
|
||||
const volScalarField& rhou_ = U_.db().lookupObject<volScalarField>("rhou");
|
||||
const volScalarField& muu_ = U_.db().lookupObject<volScalarField>("muu");
|
||||
|
||||
tmp<volScalarField> tfac
|
||||
auto tfac = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tfac",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tfac",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
);
|
||||
|
||||
volScalarField& schFac = tfac.ref();
|
||||
auto& schFac = tfac.ref();
|
||||
|
||||
const volScalarField& k = turbulence_.k();
|
||||
const volScalarField& epsilon = turbulence_.epsilon();
|
||||
@ -239,47 +225,38 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::SchelkinExponent
|
||||
const volSymmTensorField& nsv =
|
||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||
|
||||
tmp<volScalarField> tN
|
||||
auto tN = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
auto& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
tmp<volSymmTensorField> tns
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
auto& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
|
||||
@ -28,7 +28,6 @@ Class
|
||||
|
||||
Description
|
||||
|
||||
|
||||
SourceFiles
|
||||
basicSch.C
|
||||
|
||||
@ -54,7 +53,7 @@ class basicSch
|
||||
:
|
||||
public PDRDragModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
dimensionedScalar Csu;
|
||||
dimensionedScalar Csk;
|
||||
@ -73,11 +72,11 @@ class basicSch
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
basicSch(const basicSch&);
|
||||
//- No copy construct
|
||||
basicSch(const basicSch&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const basicSch&);
|
||||
//- No copy assignment
|
||||
void operator=(const basicSch&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -117,8 +116,8 @@ public:
|
||||
//- Write fields
|
||||
void writeFields() const;
|
||||
|
||||
//- Return the schelkin factor for drag turbulence generation rate
|
||||
tmp<volScalarField> schFac() const;
|
||||
//- Return the Schelkin factor for drag turbulence generation rate
|
||||
tmp<volScalarField> SchelkinFactor() const;
|
||||
|
||||
//- Return the sub-grid Schelkin effect exponent
|
||||
tmp<volScalarField> SchelkinExponent
|
||||
|
||||
@ -89,7 +89,7 @@ Foam::XiEqModels::BLMgMaXiEq::BLMgMaXiEq
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::BLMgMaXiEq::~BLMgMaXiEq()
|
||||
{}
|
||||
@ -117,21 +117,18 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::BLMgMaXiEq::XiEq() const
|
||||
|
||||
volScalarField regime("regime", MaModel.Ma()*scalar(0.0));
|
||||
|
||||
tmp<volScalarField> tXiEq
|
||||
auto tXiEq = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"XiEq",
|
||||
epsilon.time().timeName(),
|
||||
epsilon.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
epsilon.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
)
|
||||
"XiEq",
|
||||
epsilon.time().timeName(),
|
||||
epsilon.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
epsilon.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
);
|
||||
|
||||
const objectRegistry& db = Su_.db();
|
||||
|
||||
@ -95,11 +95,11 @@ class BLMgMaXiEq
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
BLMgMaXiEq(const BLMgMaXiEq&);
|
||||
//- No copy construct
|
||||
BLMgMaXiEq(const BLMgMaXiEq&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const BLMgMaXiEq&);
|
||||
//- No copy assignment
|
||||
void operator=(const BLMgMaXiEq&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -127,12 +127,11 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking XiEq
|
||||
//- Return the flame-wrinkling XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -63,12 +64,6 @@ Foam::XiEqModels::Gulder::Gulder
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::Gulder::~Gulder()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
|
||||
|
||||
@ -55,7 +55,7 @@ class Gulder
|
||||
:
|
||||
public XiEqModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
//- Model constant
|
||||
scalar XiEqCoef_;
|
||||
@ -65,6 +65,7 @@ class Gulder
|
||||
|
||||
//- Schelkin effect Model constant
|
||||
scalar uPrimeCoef_;
|
||||
|
||||
scalar nrExp_;
|
||||
|
||||
//- Use sub-grid Schelkin effect
|
||||
@ -73,11 +74,11 @@ class Gulder
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
Gulder(const Gulder&);
|
||||
//- No copy construct
|
||||
Gulder(const Gulder&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const Gulder&);
|
||||
//- No copy assignment
|
||||
void operator=(const Gulder&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -100,17 +101,16 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Gulder();
|
||||
virtual ~Gulder() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking XiEq
|
||||
//- Return the flame-wrinkling XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -60,7 +61,7 @@ Foam::XiEqModel::XiEqModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModel::~XiEqModel()
|
||||
{}
|
||||
@ -78,9 +79,7 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
||||
|
||||
|
||||
void Foam::XiEqModel::writeFields() const
|
||||
{
|
||||
}
|
||||
|
||||
{}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
@ -98,46 +97,38 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
const volSymmTensorField& nsv =
|
||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||
|
||||
tmp<volScalarField> tN
|
||||
auto tN = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
auto& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
tmp<volSymmTensorField> tns
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
(
|
||||
new volSymmTensorField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
);
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
auto& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
@ -156,7 +147,7 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
N.primitiveFieldRef() = upLocal*(max(scalar(1.0), pow(nr, nrExp)) - 1.0);
|
||||
|
||||
return tN;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -53,10 +54,9 @@ namespace Foam
|
||||
|
||||
class XiEqModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
// Protected Data
|
||||
|
||||
//- Dictionary
|
||||
dictionary XiEqModelCoeffs_;
|
||||
@ -70,15 +70,14 @@ protected:
|
||||
//- Laminar burning velocity
|
||||
const volScalarField& Su_;
|
||||
|
||||
private:
|
||||
|
||||
// Private Member Functions
|
||||
// Protected Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
XiEqModel(const XiEqModel&);
|
||||
//- No copy construct
|
||||
XiEqModel(const XiEqModel&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiEqModel&);
|
||||
//- No copy assignment
|
||||
void operator=(const XiEqModel&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -143,7 +142,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking XiEq
|
||||
//- Return the flame-wrinkling XiEq
|
||||
virtual tmp<volScalarField> XiEq() const = 0;
|
||||
|
||||
// Only used by sperseded modles
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -31,41 +32,33 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
|
||||
(
|
||||
const dictionary& propDict,
|
||||
const dictionary& dict,
|
||||
const word& modelName,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su
|
||||
)
|
||||
{
|
||||
const word modelType(propDict.get<word>(modelName));
|
||||
const word modelType(dict.get<word>(modelName));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model Eq " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
if (!cstrIter.found())
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorInLookup
|
||||
(
|
||||
"XiEqModel::New"
|
||||
"("
|
||||
" const psiuReactionThermo& thermo,"
|
||||
" const word& modelType,"
|
||||
" const compressible::RASModel& turbulence,"
|
||||
" const volScalarField& Su"
|
||||
")"
|
||||
) << "Unknown XiEqModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid XiEqModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
dict,
|
||||
modelName,
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
}
|
||||
|
||||
return autoPtr<XiEqModel>(cstrIter()
|
||||
(
|
||||
propDict, modelName, thermo, turbulence, Su)
|
||||
dict, modelName, thermo, turbulence, Su)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -27,8 +27,6 @@ License
|
||||
|
||||
#include "instability2XiEq.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "IFstream.H"
|
||||
#include "fvCFD.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -76,19 +74,13 @@ Foam::XiEqModels::instability2XiEq::instability2XiEq
|
||||
XiEqModel::New(XiEqModelCoeffs_, modelType, thermo, turbulence, Su)
|
||||
)
|
||||
{
|
||||
if (CIn_ <= 0.0)
|
||||
if (CIn_ <= 0.0)
|
||||
{
|
||||
CIn_ = defaultCIn_;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::instability2XiEq::~instability2XiEq()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::instability2XiEq::XiEq() const
|
||||
@ -108,8 +100,8 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::instability2XiEq::XiEq() const
|
||||
ignition ign(combustionProperties, Su_.mesh().time(), Su_.mesh());
|
||||
|
||||
//const scalar ignTim = ign.sites()[0].tmIgn();
|
||||
scalar curTime = Su_.mesh().time().value();
|
||||
scalar deltaT = Su_.mesh().time().deltaTValue();
|
||||
const scalar curTime = Su_.mesh().time().value();
|
||||
const scalar deltaT = Su_.mesh().time().deltaTValue();
|
||||
const scalar ignTim = curTime - deltaT - ign.sites()[0].time();
|
||||
|
||||
volScalarField turbXiEq(XiEqModel_->XiEq());
|
||||
|
||||
@ -62,7 +62,7 @@ class instability2XiEq
|
||||
{
|
||||
// Private data
|
||||
|
||||
// -Laminar burning speed
|
||||
//- Laminar burning speed
|
||||
laminarFlameSpeedModels::SCOPE saModel_;
|
||||
|
||||
//- GIn (initial instability G)divided by Su^2. Read from fuel file
|
||||
@ -80,11 +80,11 @@ class instability2XiEq
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
instability2XiEq(const instability2XiEq&);
|
||||
//- No copy construct
|
||||
instability2XiEq(const instability2XiEq&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instability2XiEq&);
|
||||
//- No copy assignment
|
||||
void operator=(const instability2XiEq&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -107,17 +107,16 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instability2XiEq();
|
||||
virtual ~instability2XiEq() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking XiEq
|
||||
//- Return the flame-wrinkling XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -51,17 +52,11 @@ Foam::XiGModels::KTS::KTS
|
||||
const volScalarField& Su
|
||||
)
|
||||
:
|
||||
XiGModel(XiGProperties,modelType, thermo, turbulence, Su),
|
||||
XiGModel(XiGProperties, modelType, thermo, turbulence, Su),
|
||||
GEtaCoef_(XiGModelCoeffs_.get<scalar>("GEtaCoef"))
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::KTS::~KTS()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::KTS::G() const
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -55,18 +56,18 @@ class KTS
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
scalar GEtaCoef_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
KTS(const KTS&);
|
||||
//- No copy construct
|
||||
KTS(const KTS&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const KTS&);
|
||||
//- No copy assignment
|
||||
void operator=(const KTS&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -89,12 +90,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~KTS();
|
||||
virtual ~KTS() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking generation rate
|
||||
//- Return the flame-wrinkling generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -60,7 +60,7 @@ Foam::XiGModel::XiGModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModel::~XiGModel()
|
||||
{}
|
||||
|
||||
@ -53,10 +53,9 @@ namespace Foam
|
||||
|
||||
class XiGModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
// Protected Data
|
||||
|
||||
dictionary XiGModelCoeffs_;
|
||||
|
||||
@ -65,15 +64,13 @@ protected:
|
||||
const volScalarField& Su_;
|
||||
|
||||
|
||||
private:
|
||||
// Protected Member Functions
|
||||
|
||||
// Private Member Functions
|
||||
//- No copy construct
|
||||
XiGModel(const XiGModel&) = delete;
|
||||
|
||||
//- Disallow copy construct
|
||||
XiGModel(const XiGModel&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiGModel&);
|
||||
//- No copy assignment
|
||||
void operator=(const XiGModel&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -138,7 +135,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking genration rate
|
||||
//- Return the flame-wrinkling genration rate
|
||||
virtual tmp<volScalarField> G() const = 0;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -31,40 +32,33 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
|
||||
(
|
||||
const dictionary& propDict,
|
||||
const dictionary& dict,
|
||||
const word& modelName,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su
|
||||
)
|
||||
{
|
||||
const word modelType(propDict.get<word>(modelName));
|
||||
const word modelType(dict.get<word>(modelName));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model for G " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
if (!cstrIter.found())
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorInLookup
|
||||
(
|
||||
"XiGModel::New"
|
||||
"("
|
||||
" const psiuReactionThermo& thermo,"
|
||||
" const compressible::RASModel& turbulence,"
|
||||
" const volScalarField& Su"
|
||||
")"
|
||||
) << "Unknown XiGModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid XiGModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
dict,
|
||||
modelName,
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
}
|
||||
|
||||
return autoPtr<XiGModel>(cstrIter()
|
||||
(
|
||||
propDict, modelName, thermo, turbulence, Su)
|
||||
dict, modelName, thermo, turbulence, Su)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -75,37 +75,31 @@ Foam::XiGModels::instability2G::instability2G
|
||||
lambdaIn_("lambdaIn", XiGModelCoeffs_),
|
||||
XiGModel_
|
||||
(
|
||||
XiGModel::New(XiGModelCoeffs_,modelType,thermo, turbulence, Su)
|
||||
XiGModel::New(XiGModelCoeffs_, modelType, thermo, turbulence, Su)
|
||||
)
|
||||
{
|
||||
if (CIn_ <= 0.0)
|
||||
if (CIn_ <= 0.0)
|
||||
{
|
||||
CIn_ = defaultCIn_;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::instability2G::~instability2G()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
|
||||
{
|
||||
IOdictionary combustionProperties
|
||||
IOdictionary combustionProperties
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"combustionProperties",
|
||||
Su_.mesh().time().constant(),
|
||||
Su_.mesh(),
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
"combustionProperties",
|
||||
Su_.mesh().time().constant(),
|
||||
Su_.mesh(),
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
|
||||
ignition ign(combustionProperties, Su_.mesh().time(), Su_.mesh());
|
||||
|
||||
@ -117,7 +111,6 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
|
||||
|
||||
volScalarField GIn("GIn", 0.0*turbXiG);
|
||||
|
||||
|
||||
forAll (GIn, i)
|
||||
{
|
||||
GIn[i] = CIn_*Su_[i]*Su_[i]*exp(CIn_*Su_[i]*Su_[i]*ignTim)*GInMult_;
|
||||
@ -129,13 +122,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
|
||||
GIn = CIn*Su_*Su_*exp(CIn*Su_*Su_*ignTm)*GInMult_;
|
||||
|
||||
GIn *=
|
||||
GIn
|
||||
/
|
||||
(
|
||||
GIn /
|
||||
(
|
||||
GIn
|
||||
+ GInFade_*turbXiG
|
||||
+ dimensionedScalar("GSmall", inv(dimTime), SMALL)
|
||||
);
|
||||
)
|
||||
);
|
||||
|
||||
return (GIn + turbXiG);
|
||||
}
|
||||
|
||||
@ -27,7 +27,8 @@ Class
|
||||
Foam::XiGModels::instability2G
|
||||
|
||||
Description
|
||||
|
||||
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
|
||||
used in \link XiModel.H \endlink.
|
||||
|
||||
SourceFiles
|
||||
instability2G.C
|
||||
@ -45,7 +46,6 @@ SourceFiles
|
||||
#include "Time.H"
|
||||
#include "fvMesh.H"
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
@ -61,7 +61,7 @@ class instability2G
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
laminarFlameSpeedModels::SCOPE saModel_;
|
||||
|
||||
@ -72,12 +72,13 @@ class instability2G
|
||||
scalar defaultCIn_;
|
||||
|
||||
// Determine how fast GIn fades out as turbulence starts
|
||||
scalar GInFade_;
|
||||
scalar GInFade_;
|
||||
|
||||
// Set GIn large so that XiEq determines Xi value. Son increase byfactor:
|
||||
scalar GInMult_;
|
||||
// Set GIn large so that XiEq determines Xi value.
|
||||
// Son increase byfactor:
|
||||
scalar GInMult_;
|
||||
|
||||
//- instability2G length-scale
|
||||
//- The instability2G length-scale
|
||||
dimensionedScalar lambdaIn_;
|
||||
|
||||
//- Xi generation rate model due to all other processes
|
||||
@ -86,11 +87,11 @@ class instability2G
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
instability2G(const instability2G&);
|
||||
//- No copy construct
|
||||
instability2G(const instability2G&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instability2G&);
|
||||
//- No copy assignment
|
||||
void operator=(const instability2G&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -113,12 +114,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instability2G();
|
||||
virtual ~instability2G() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking generation rate
|
||||
//- Return the flame-wrinkling generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -58,12 +58,6 @@ Foam::XiGModels::instabilityG::instabilityG
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::instabilityG::~instabilityG()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::G() const
|
||||
@ -82,7 +76,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::Db() const
|
||||
const volScalarField& mgb = db.lookupObject<volScalarField>("mgb");
|
||||
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
|
||||
|
||||
//return turbulence_.muEff()
|
||||
//// OLD return turbulence_.muEff()
|
||||
return Db1
|
||||
+ rho*Su_*(Xp*Xi - 1.0)*mgb*(0.5*lambdaIn_)/(mgb + 1.0/lambdaIn_);
|
||||
}
|
||||
|
||||
@ -5,7 +5,8 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -27,10 +28,9 @@ Class
|
||||
Foam::XiGModels::instabilityG
|
||||
|
||||
Description
|
||||
Flame-surface instabilityG flame-wrinking generation rate coefficient model
|
||||
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
|
||||
used in \link XiModel.H \endlink.
|
||||
|
||||
|
||||
SourceFiles
|
||||
instabilityG.C
|
||||
|
||||
@ -56,7 +56,7 @@ class instabilityG
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private data
|
||||
// Private Data
|
||||
|
||||
//- Flame instabilityG wrinling generation rate coefficient
|
||||
dimensionedScalar GIn_;
|
||||
@ -70,11 +70,11 @@ class instabilityG
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
instabilityG(const instabilityG&);
|
||||
//- No copy construct
|
||||
instabilityG(const instabilityG&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instabilityG&);
|
||||
//- No copy assignment
|
||||
void operator=(const instabilityG&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -97,12 +97,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instabilityG();
|
||||
virtual ~instabilityG() = default;
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking generation rate
|
||||
//- Return the flame-wrinkling generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -89,7 +89,7 @@ Foam::XiModel::XiModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiModel::~XiModel()
|
||||
{}
|
||||
@ -99,7 +99,7 @@ Foam::XiModel::~XiModel()
|
||||
|
||||
bool Foam::XiModel::read(const dictionary& XiProperties)
|
||||
{
|
||||
XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
|
||||
XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -110,10 +110,9 @@ namespace Foam
|
||||
|
||||
class XiModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected data
|
||||
// Protected Data
|
||||
|
||||
dictionary XiModelCoeffs_;
|
||||
|
||||
@ -124,21 +123,20 @@ protected:
|
||||
const volScalarField& b_;
|
||||
const surfaceScalarField& phi_;
|
||||
|
||||
//- Flame wrinking field
|
||||
//- Flame wrinkling field
|
||||
volScalarField Xi_;
|
||||
|
||||
//- Flame wrinking field for the subgrid obstacles
|
||||
//- Flame wrinkling field for the subgrid obstacles
|
||||
volScalarField Xp_;
|
||||
|
||||
private:
|
||||
|
||||
// Private Member Functions
|
||||
// Protected Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
XiModel(const XiModel&);
|
||||
//- No copy construct
|
||||
XiModel(const XiModel&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiModel&);
|
||||
//- No copy assignment
|
||||
void operator=(const XiModel&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -211,13 +209,13 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinking Xi
|
||||
//- Return the flame-wrinkling Xi
|
||||
virtual const volScalarField& Xi() const
|
||||
{
|
||||
return Xi_;
|
||||
}
|
||||
|
||||
//- Return the obstacle-flame-wrinking Xp
|
||||
//- Return the obstacle-flame-wrinkling Xp
|
||||
virtual const volScalarField& Xp() const
|
||||
{
|
||||
return Xp_;
|
||||
@ -226,10 +224,10 @@ public:
|
||||
//- Return the flame diffusivity
|
||||
virtual tmp<volScalarField> Db() const
|
||||
{
|
||||
const objectRegistry& db = Su_.db();
|
||||
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
|
||||
//return turbulence_.muEff();
|
||||
return Db1;
|
||||
const objectRegistry& db = Su_.db();
|
||||
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
|
||||
//return turbulence_.muEff();
|
||||
return Db1;
|
||||
}
|
||||
|
||||
//- Add Xi to the multivariateSurfaceInterpolationScheme table
|
||||
@ -243,10 +241,10 @@ public:
|
||||
fields.add(Xp_);
|
||||
}
|
||||
|
||||
//- Correct the flame-wrinking Xi
|
||||
//- Correct the flame-wrinkling Xi
|
||||
virtual void correct() = 0;
|
||||
|
||||
//- Correct the flame-wrinking Xi using the given convection scheme
|
||||
//- Correct the flame-wrinkling Xi using the given convection scheme
|
||||
virtual void correct(const fv::convectionScheme<scalar>&)
|
||||
{
|
||||
correct();
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -31,7 +32,7 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
||||
(
|
||||
const dictionary& propDict,
|
||||
const dictionary& dict,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su,
|
||||
@ -40,27 +41,25 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
||||
const surfaceScalarField& phi
|
||||
)
|
||||
{
|
||||
const word modelType(propDict.get<word>("XiModel"));
|
||||
const word modelType(dict.get<word>("XiModel"));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
if (!cstrIter.found())
|
||||
{
|
||||
FatalErrorIn
|
||||
FatalIOErrorInLookup
|
||||
(
|
||||
"XiModel::New"
|
||||
) << "Unknown XiModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid XiModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
dict,
|
||||
"XiModel",
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
}
|
||||
|
||||
return autoPtr<XiModel>
|
||||
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
|
||||
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ Foam::XiModels::transportTwoEqs::transportTwoEqs
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiModels::transportTwoEqs::~transportTwoEqs()
|
||||
{}
|
||||
@ -155,8 +155,13 @@ void Foam::XiModels::transportTwoEqs::correct
|
||||
|
||||
const volScalarField Gpfi
|
||||
(
|
||||
CpfiDot_*sqrt(max(fvc::grad(rho_)&fvc::grad(p), zero ))/rho_*b_*(1.0-b_)
|
||||
+ CpfiCross_*sqrt(mag(fvc::grad(rho_)^fvc::grad(p) ))/rho_*b_*(1.0-b_)
|
||||
CpfiDot_
|
||||
* sqrt(max(fvc::grad(rho_)&fvc::grad(p), zero))
|
||||
/ rho_*b_*(1.0-b_)
|
||||
|
||||
+ CpfiCross_
|
||||
* sqrt(mag(fvc::grad(rho_)^fvc::grad(p)))
|
||||
/ rho_*b_*(1.0-b_)
|
||||
);
|
||||
|
||||
fvScalarMatrix XiEqn_
|
||||
@ -185,11 +190,11 @@ void Foam::XiModels::transportTwoEqs::correct
|
||||
|
||||
const volScalarField Rp("Rp", GpEta*XpEqEta/(XpEqEta - 0.999));
|
||||
|
||||
const volScalarField XpEq
|
||||
const volScalarField XpEq
|
||||
(
|
||||
"XpEq",
|
||||
1.0 + (1.0 + (2*XiShapeCoef_)*(0.5 - b_))*(XpEqEta - 1.0)
|
||||
);
|
||||
);
|
||||
|
||||
const volScalarField Gpp("Gpp", Rp*(XpEq - 1.0)/XpEq);
|
||||
|
||||
@ -213,7 +218,7 @@ void Foam::XiModels::transportTwoEqs::correct
|
||||
|
||||
// Calculate Ep
|
||||
const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
|
||||
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
|
||||
const scalarField Cw(pow(Su_.mesh().V(), 2.0/3.0));
|
||||
volScalarField LI(Lobs);
|
||||
|
||||
LI.primitiveFieldRef() = max(LI.primitiveField(),LOverCw_*sqrt(Cw));
|
||||
|
||||
@ -78,17 +78,17 @@ class transportTwoEqs
|
||||
//- Generation for Xp (obstacles)
|
||||
autoPtr<XiGModel> XpGModel_;
|
||||
|
||||
//- Dissipation lenght scale for subgrid obstacles
|
||||
//- Dissipation length scale for subgrid obstacles
|
||||
volScalarField Ep_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- Disallow copy construct
|
||||
transportTwoEqs(const transportTwoEqs&);
|
||||
//- No copy construct
|
||||
transportTwoEqs(const transportTwoEqs&) = delete;
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const transportTwoEqs&);
|
||||
//- No copy assignment
|
||||
void operator=(const transportTwoEqs&) = delete;
|
||||
|
||||
|
||||
public:
|
||||
@ -121,13 +121,13 @@ public:
|
||||
//- Return the flame diffusivity
|
||||
virtual tmp<volScalarField> Db() const;
|
||||
|
||||
//- Correct the flame-wrinking Xi
|
||||
//- Correct the flame-wrinkling Xi
|
||||
virtual void correct()
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- Correct the flame-wrinking Xi using the given convection scheme
|
||||
//- Correct the flame-wrinkling Xi using the given convection scheme
|
||||
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
|
||||
|
||||
//- Update properties from given dictionary
|
||||
|
||||
@ -28,10 +28,11 @@ if (ign.ignited())
|
||||
|
||||
// Wrinkling due to turbulence
|
||||
const volScalarField& Xi = flameWrinkling->Xi();
|
||||
|
||||
// Wrinkling due to obstacles
|
||||
const volScalarField& Xp = flameWrinkling->Xp();
|
||||
|
||||
// progress variable
|
||||
// Progress variable
|
||||
// ~~~~~~~~~~~~~~~~~
|
||||
c = (1.0 - b);
|
||||
|
||||
@ -94,6 +95,8 @@ if (ign.ignited())
|
||||
bEqn.relax();
|
||||
fvOptions.constrain(bEqn);
|
||||
bEqn.solve();
|
||||
b.max(0.0);
|
||||
b.min(1.0);
|
||||
|
||||
fvOptions.correct(b);
|
||||
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -47,6 +48,34 @@ namespace laminarFlameSpeedModels
|
||||
}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
|
||||
static void readPolynomialCoeffs
|
||||
(
|
||||
Polynomial<7>& coeffs,
|
||||
const word& keyword,
|
||||
const dictionary& dict
|
||||
)
|
||||
{
|
||||
{
|
||||
coeffs[0] = dict.get<scalar>(keyword + "0");
|
||||
coeffs[1] = dict.get<scalar>(keyword + "1");
|
||||
coeffs[2] = dict.get<scalar>(keyword + "2");
|
||||
coeffs[3] = dict.get<scalar>(keyword + "3");
|
||||
coeffs[4] = dict.get<scalar>(keyword + "4");
|
||||
coeffs[5] = dict.get<scalar>(keyword + "5");
|
||||
coeffs[6] = dict.get<scalar>(keyword + "6");
|
||||
}
|
||||
|
||||
// TBD: support direct reading of all coeffs?
|
||||
}
|
||||
|
||||
} // End namespace Foam
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::laminarFlameSpeedModels::SCOPE::polynomial::polynomial
|
||||
@ -82,24 +111,15 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
|
||||
UFL_(coeffsDict_.get<scalar>("upperFlamabilityLimit")),
|
||||
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
|
||||
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
|
||||
Texp0_(coeffsDict_.get<scalar>("Texp0")),
|
||||
Texp1_(coeffsDict_.get<scalar>("Texp1")),
|
||||
Texp2_(coeffsDict_.get<scalar>("Texp2")),
|
||||
Texp3_(coeffsDict_.get<scalar>("Texp3")),
|
||||
Texp4_(coeffsDict_.get<scalar>("Texp4")),
|
||||
Texp5_(coeffsDict_.get<scalar>("Texp5")),
|
||||
Texp6_(coeffsDict_.get<scalar>("Texp6")),
|
||||
pexp0_(coeffsDict_.get<scalar>("pexp0")),
|
||||
pexp1_(coeffsDict_.get<scalar>("pexp1")),
|
||||
pexp2_(coeffsDict_.get<scalar>("pexp2")),
|
||||
pexp3_(coeffsDict_.get<scalar>("pexp3")),
|
||||
pexp4_(coeffsDict_.get<scalar>("pexp4")),
|
||||
pexp5_(coeffsDict_.get<scalar>("pexp5")),
|
||||
pexp6_(coeffsDict_.get<scalar>("pexp6")),
|
||||
Texp_(),
|
||||
pexp_(),
|
||||
CIn_(coeffsDict_.getOrDefault<scalar>("CIn", 0)),
|
||||
MaPolyL_(coeffsDict_.subDict("lowerMaPolynomial")),
|
||||
MaPolyU_(coeffsDict_.subDict("upperMaPolynomial"))
|
||||
{
|
||||
readPolynomialCoeffs(Texp_, "Texp", coeffsDict_);
|
||||
readPolynomialCoeffs(pexp_, "pexp", coeffsDict_);
|
||||
|
||||
SuPolyL_.ll = max(SuPolyL_.ll, LFL_) + SMALL;
|
||||
SuPolyU_.ul = min(SuPolyU_.ul, UFL_) - SMALL;
|
||||
|
||||
@ -112,7 +132,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
|
||||
if (debug)
|
||||
{
|
||||
Info<< "phi Su (T = Tref, p = pref)" << endl;
|
||||
label n = 200;
|
||||
const label n = 200;
|
||||
for (int i=0; i<n; i++)
|
||||
{
|
||||
scalar phi = (2.0*i)/n;
|
||||
@ -136,7 +156,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::polyPhi
|
||||
const polynomial& a
|
||||
)
|
||||
{
|
||||
scalar x = phi - 1.0;
|
||||
const scalar x = phi - 1.0;
|
||||
|
||||
return
|
||||
a[0]
|
||||
@ -154,19 +174,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
|
||||
{
|
||||
if (phi < LFL_ || phi > UFL_)
|
||||
{
|
||||
// Return 0 beyond the flamibility limits
|
||||
// Return 0 beyond the flammability limits
|
||||
return scalar(0);
|
||||
}
|
||||
else if (phi < SuPolyL_.ll)
|
||||
{
|
||||
// Use linear interpolation between the low end of the
|
||||
// lower polynomial and the lower flamibility limit
|
||||
// lower polynomial and the lower flammability limit
|
||||
return SuPolyL_.llv*(phi - LFL_)/(SuPolyL_.ll - LFL_);
|
||||
}
|
||||
else if (phi > SuPolyU_.ul)
|
||||
{
|
||||
// Use linear interpolation between the upper end of the
|
||||
// upper polynomial and the upper flamibility limit
|
||||
// upper polynomial and the upper flammability limit
|
||||
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
|
||||
}
|
||||
else if (phi < SuPolyL_.lu)
|
||||
@ -181,7 +201,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)")
|
||||
FatalErrorInFunction
|
||||
<< "phi = " << phi
|
||||
<< " cannot be handled by SCOPE function with the "
|
||||
"given coefficients"
|
||||
@ -204,13 +224,13 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
|
||||
else if (phi < MaPolyL_.ll)
|
||||
{
|
||||
// Use linear interpolation between the low end of the
|
||||
// lower polynomial and the lower flamibility limit
|
||||
// lower polynomial and the lower flammability limit
|
||||
return MaPolyL_.llv*(phi - LFL_)/(MaPolyL_.ll - LFL_);
|
||||
}
|
||||
else if (phi > MaPolyU_.ul)
|
||||
{
|
||||
// Use linear interpolation between the upper end of the
|
||||
// upper polynomial and the upper flamibility limit
|
||||
// upper polynomial and the upper flammability limit
|
||||
return MaPolyU_.ulv*(UFL_ - phi)/(UFL_ - MaPolyU_.ul);
|
||||
}
|
||||
else if (phi < MaPolyL_.lu)
|
||||
@ -225,7 +245,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)")
|
||||
FatalErrorInFunction
|
||||
<< "phi = " << phi
|
||||
<< " cannot be handled by SCOPE function with the "
|
||||
"given coefficients"
|
||||
@ -243,33 +263,13 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
scalar phi
|
||||
) const
|
||||
{
|
||||
static const scalar Tref = 300.0;
|
||||
static const scalar pRef = 1.013e5;
|
||||
scalar phi1=phi-1.0;
|
||||
constexpr scalar Tref = 300.0;
|
||||
constexpr scalar pRef = 1.013e5;
|
||||
|
||||
scalar Texp_=
|
||||
Texp0_+phi1*
|
||||
(
|
||||
Texp1_
|
||||
+Texp2_*phi1+
|
||||
Texp3_*pow(phi1, 2) +
|
||||
Texp4_*pow(phi1, 3) +
|
||||
Texp5_*pow(phi1, 4) +
|
||||
Texp6_*pow(phi1, 5)
|
||||
);
|
||||
const scalar Texp = Texp_.value(phi-1.0);
|
||||
const scalar pexp = pexp_.value(phi-1.0);
|
||||
|
||||
scalar pexp =
|
||||
pexp0_ + phi1
|
||||
*(
|
||||
pexp1_
|
||||
+ pexp2_*phi1
|
||||
+ pexp3_*pow(phi1, 2)
|
||||
+ pexp4_*pow(phi1, 3)
|
||||
+ pexp5_*pow(phi1, 4)
|
||||
+ pexp6_*pow(phi1, 5)
|
||||
);
|
||||
|
||||
return SuRef(phi)*pow((Tu/Tref), Texp_)*pow((p/pRef), pexp);
|
||||
return SuRef(phi)*pow((Tu/Tref), Texp)*pow((p/pRef), pexp);
|
||||
}
|
||||
|
||||
|
||||
@ -280,24 +280,20 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
scalar phi
|
||||
) const
|
||||
{
|
||||
tmp<volScalarField> tSu0
|
||||
auto tSu0 = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
)
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
);
|
||||
|
||||
volScalarField& Su0 = tSu0.ref();
|
||||
auto& Su0 = tSu0.ref();
|
||||
|
||||
forAll(Su0, celli)
|
||||
{
|
||||
@ -327,24 +323,20 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
const volScalarField& phi
|
||||
) const
|
||||
{
|
||||
tmp<volScalarField> tSu0
|
||||
auto tSu0 = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
)
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
);
|
||||
|
||||
volScalarField& Su0 = tSu0.ref();
|
||||
auto& Su0 = tSu0.ref();
|
||||
|
||||
forAll(Su0, celli)
|
||||
{
|
||||
@ -373,37 +365,38 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
return tSu0;
|
||||
}
|
||||
|
||||
|
||||
Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::CIn() const noexcept
|
||||
{
|
||||
return CIn_ ;
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
|
||||
(
|
||||
const volScalarField& phi
|
||||
) const
|
||||
{
|
||||
tmp<volScalarField> tMa
|
||||
auto tMa = tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Ma",
|
||||
phi.time().timeName(),
|
||||
phi.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
phi.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
)
|
||||
"Ma",
|
||||
phi.time().timeName(),
|
||||
phi.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
phi.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
);
|
||||
|
||||
volScalarField& ma = tMa.ref();
|
||||
auto& ma = tMa.ref();
|
||||
|
||||
forAll(ma, celli)
|
||||
{
|
||||
ma[celli] = Ma(phi[celli]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
forAll(ma.boundaryField(), patchi)
|
||||
{
|
||||
scalarField& map = ma.boundaryFieldRef()[patchi];
|
||||
@ -418,11 +411,6 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
|
||||
return tMa;
|
||||
}
|
||||
|
||||
Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::CIn() const
|
||||
{
|
||||
return CIn_ ;
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::laminarFlameSpeedModels::SCOPE::Ma() const
|
||||
@ -444,21 +432,18 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
|
||||
{
|
||||
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
||||
|
||||
return tmp<volScalarField>
|
||||
return tmp<volScalarField>::New
|
||||
(
|
||||
new volScalarField
|
||||
IOobject
|
||||
(
|
||||
IOobject
|
||||
(
|
||||
"Ma",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
"Ma",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||
)
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -65,6 +66,7 @@ SourceFiles
|
||||
#define SCOPE_H
|
||||
|
||||
#include "laminarFlameSpeed.H"
|
||||
#include "Polynomial.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -105,7 +107,7 @@ class SCOPE
|
||||
scalar lu;
|
||||
|
||||
//- Construct from dictionary
|
||||
polynomial(const dictionary& polyDict);
|
||||
explicit polynomial(const dictionary& polyDict);
|
||||
};
|
||||
|
||||
|
||||
@ -123,47 +125,11 @@ class SCOPE
|
||||
//- Upper Su polynomial
|
||||
polynomial SuPolyU_;
|
||||
|
||||
//- Temperature correction exponent0
|
||||
scalar Texp0_;
|
||||
//- Temperature correction exponents
|
||||
Polynomial<7> Texp_;
|
||||
|
||||
//- Temperature correction exponent1
|
||||
scalar Texp1_;
|
||||
|
||||
//- Temperature correction exponent2
|
||||
scalar Texp2_;
|
||||
|
||||
//- Temperature correction exponent3
|
||||
scalar Texp3_;
|
||||
|
||||
//- Temperature correction exponent4
|
||||
scalar Texp4_;
|
||||
|
||||
//- Temperature correction exponent5
|
||||
scalar Texp5_;
|
||||
|
||||
//- Temperature correction exponent6
|
||||
scalar Texp6_;
|
||||
|
||||
//- Pressure correction exponent0
|
||||
scalar pexp0_;
|
||||
|
||||
//- Pressure correction exponent1
|
||||
scalar pexp1_;
|
||||
|
||||
//- pressure correction exponent2
|
||||
scalar pexp2_;
|
||||
|
||||
//- pressure correction exponent3
|
||||
scalar pexp3_;
|
||||
|
||||
//- Pressure correction exponent4
|
||||
scalar pexp4_;
|
||||
|
||||
//- Pressure correction exponent5
|
||||
scalar pexp5_;
|
||||
|
||||
//- pressure correction exponent6
|
||||
scalar pexp6_;
|
||||
//- Pressure correction exponents
|
||||
Polynomial<7> pexp_;
|
||||
|
||||
//- Additional coefficient
|
||||
scalar CIn_;
|
||||
@ -217,7 +183,7 @@ class SCOPE
|
||||
//- No copy construct
|
||||
SCOPE(const SCOPE&) = delete;
|
||||
|
||||
//- No copy assign
|
||||
//- No copy assignment
|
||||
void operator=(const SCOPE&) = delete;
|
||||
|
||||
|
||||
@ -242,12 +208,12 @@ public:
|
||||
|
||||
// Member functions
|
||||
|
||||
//- Return CIn
|
||||
scalar CIn() const noexcept;
|
||||
|
||||
//- Return the Markstein number
|
||||
tmp<volScalarField> Ma() const;
|
||||
|
||||
//- Return CIn
|
||||
scalar CIn() const;
|
||||
|
||||
//- Return the laminar flame speed [m/s]
|
||||
tmp<volScalarField> operator()() const;
|
||||
};
|
||||
|
||||
@ -28,14 +28,16 @@ Global
|
||||
readTimeControls
|
||||
|
||||
Description
|
||||
Read the control parameters used by setDeltaT
|
||||
Read the control parameters used by setDeltaT.
|
||||
Modified for PDRFoam to include maxDeltaTRatio.
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
const bool adjustTimeStep =
|
||||
runTime.controlDict().getOrDefault<bool>("adjustTimeStep", false);
|
||||
runTime.controlDict().getOrDefault("adjustTimeStep", false);
|
||||
|
||||
scalar maxCo = runTime.controlDict().getOrDefault<scalar>("maxCo", 1.0);
|
||||
scalar maxCo =
|
||||
runTime.controlDict().getOrDefault<scalar>("maxCo", 1);
|
||||
|
||||
scalar maxDeltaT =
|
||||
runTime.controlDict().getOrDefault<scalar>("maxDeltaT", GREAT);
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,53 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object Su;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0.5;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 0.5;
|
||||
value uniform 0.5;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,55 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object T;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 1 0 0 0];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 300;
|
||||
value uniform 300;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,55 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object Tu;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 1 0 0 0];
|
||||
|
||||
internalField uniform 300;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 300;
|
||||
value uniform 300;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,61 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volVectorField;
|
||||
location "0";
|
||||
object U;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform (0 0 0);
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue (0 0 0);
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
ground
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type noSlip;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type activePressureForceBaffleVelocity;
|
||||
value uniform (0 0 0);
|
||||
cyclicPatch baffleCyclic_half0;
|
||||
opening 1;
|
||||
openingTime 0.01;
|
||||
maxOpenFractionDelta 0.1;
|
||||
openFraction 0;
|
||||
minThresholdValue 8000;
|
||||
forceBased 0;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,55 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object Xi;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 1;
|
||||
value uniform 1;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,58 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object alphat;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [1 -1 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type compressible::alphatWallFunction;
|
||||
Prt 0.85;
|
||||
value uniform 0;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type compressible::alphatWallFunction;
|
||||
Prt 0.85;
|
||||
value nonuniform 0();
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type compressible::alphatWallFunction;
|
||||
Prt 0.85;
|
||||
value nonuniform 0();
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,55 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object b;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 1;
|
||||
value uniform 1;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,65 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object epsilon;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -3 0 0 0 0];
|
||||
|
||||
internalField uniform 0.1;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 0.1;
|
||||
value uniform 0.1;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value uniform 0.1;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value uniform 0.1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value uniform 1e-05;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,54 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object ft;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 0 0 0 0 0 0];
|
||||
|
||||
internalField uniform 0.0623;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 0.0623;
|
||||
value uniform 0.0623;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0.06024096;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,56 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object k;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 1.5;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 1.5;
|
||||
value uniform 1.5;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,56 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object k;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 1.5;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type uniformInletOutlet;
|
||||
uniformInletValue 1.5;
|
||||
value uniform 1.5;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,64 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object nut;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 2 -1 0 0 0 0];
|
||||
|
||||
internalField uniform 0;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type calculated;
|
||||
value uniform 0;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type nutkWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value uniform 0;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type nutkWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value nonuniform 0();
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type nutkWallFunction;
|
||||
Cmu 0.09;
|
||||
kappa 0.41;
|
||||
E 9.8;
|
||||
value nonuniform 0();
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,55 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class volScalarField;
|
||||
location "0";
|
||||
object p;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [1 -1 -2 0 0 0 0];
|
||||
|
||||
internalField uniform 100000;
|
||||
|
||||
boundaryField
|
||||
{
|
||||
outer
|
||||
{
|
||||
type waveTransmissive;
|
||||
gamma 1.3;
|
||||
fieldInf 100000;
|
||||
lInf 5;
|
||||
value uniform 100000;
|
||||
}
|
||||
ground
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,10 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
|
||||
rm -rf VTK
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1,15 +0,0 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
restore0Dir
|
||||
runApplication blockMesh
|
||||
runApplication changeDictionary
|
||||
runApplication topoSet
|
||||
|
||||
runApplication PDRMesh -overwrite
|
||||
|
||||
runApplication $(getApplication)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -1,8 +0,0 @@
|
||||
PDR test case
|
||||
|
||||
Step to introduce the PDR fields:
|
||||
|
||||
1) Create zero-size patches for wall or/and coupled baffles in
|
||||
the boundary file.
|
||||
2) Specify the boundary contitions for these patches in the fields.
|
||||
3) Create the new PDR mesh using the PDRMesh utility.
|
||||
@ -1,103 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object PDRProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
PDRDragModel basic;
|
||||
|
||||
basicCoeffs
|
||||
{
|
||||
drag on;
|
||||
Csu 0.5;
|
||||
Csk 0.05;
|
||||
}
|
||||
|
||||
|
||||
XiModel transport;
|
||||
|
||||
transportCoeffs
|
||||
{
|
||||
XiShapeCoef 1;
|
||||
}
|
||||
|
||||
|
||||
XiEqModel instability;
|
||||
|
||||
instabilityCoeffs
|
||||
{
|
||||
XiEqIn 2.5;
|
||||
|
||||
XiEqModel basicSubGrid;
|
||||
|
||||
basicSubGridCoeffs
|
||||
{
|
||||
XiEqModel SCOPEBlend;
|
||||
|
||||
SCOPEBlendCoeffs
|
||||
{
|
||||
XiEqModelL
|
||||
{
|
||||
XiEqModel Gulder;
|
||||
|
||||
GulderCoeffs
|
||||
{
|
||||
XiEqCoef 0.62;
|
||||
uPrimeCoef 1.0;
|
||||
subGridSchelkin true;
|
||||
}
|
||||
}
|
||||
|
||||
XiEqModelH
|
||||
{
|
||||
XiEqModel SCOPEXiEq;
|
||||
|
||||
SCOPEXiEqCoeffs
|
||||
{
|
||||
XiEqCoef 1.6;
|
||||
XiEqExp 0.33333;
|
||||
lCoef 0.336;
|
||||
uPrimeCoef 1.0;
|
||||
subGridSchelkin true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
XiGModel instabilityG;
|
||||
|
||||
instabilityGCoeffs
|
||||
{
|
||||
lambdaIn lambdaIn [0 1 0 0 0 0 0] 0.6;
|
||||
GIn GIn [0 0 -1 0 0 0 0] 1.917;
|
||||
|
||||
XiGModel basicSubGridG;
|
||||
|
||||
basicSubGridGCoeffs
|
||||
{
|
||||
k1 0.5;
|
||||
|
||||
XiGModel KTS;
|
||||
|
||||
KTSCoeffs
|
||||
{
|
||||
GEtaCoef 0.28;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,46 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object combustionProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
laminarFlameSpeedCorrelation SCOPE;
|
||||
|
||||
fuel Propane;
|
||||
|
||||
fuelFile "fuels/propane.dat";
|
||||
|
||||
ignite yes;
|
||||
|
||||
ignitionSites
|
||||
(
|
||||
|
||||
{
|
||||
location (1.5 1.5 0.5);
|
||||
diameter 0.1;
|
||||
start 1E-05;
|
||||
duration 0.05;
|
||||
strength 60.0;
|
||||
}
|
||||
);
|
||||
|
||||
ignitionSphereFraction 1;
|
||||
|
||||
ignitionThickness ignitionThickness [0 1 0 0 0 0 0] 0;
|
||||
|
||||
ignitionCircleFraction 0;
|
||||
|
||||
ignitionKernelArea ignitionKernelArea [0 2 0 0 0 0 0] 0;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,53 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object dynamicMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dynamicFvMesh dynamicRefineFvMesh;
|
||||
|
||||
// Refine every refineInterval timesteps
|
||||
refineInterval 1;
|
||||
|
||||
// Maximum refinement level (starts from 0)
|
||||
maxRefinement 2;
|
||||
|
||||
// Maximum cell limit (approximate)
|
||||
maxCells 10000;
|
||||
|
||||
// volScalarField to base refinement on
|
||||
field normalisedGradP;
|
||||
|
||||
nBufferLayers 1;
|
||||
|
||||
dumpLevel true;
|
||||
|
||||
lowerRefineLevel 0.5;
|
||||
upperRefineLevel 1.5;
|
||||
|
||||
unrefineLevel 0.5;
|
||||
|
||||
nBufferLayers 1;
|
||||
// Newly introduced patch points optionally get projected onto a surface
|
||||
//projectSurfaces ("fixedWalls4.stl");
|
||||
//projectPatches (fixedWalls);
|
||||
// Maximum project distance
|
||||
//projectDistance 1;
|
||||
|
||||
// Fluxes to adapt. For newly created faces or split faces the flux
|
||||
// gets estimated from an interpolated volVectorField ('velocity')
|
||||
// First is name of the flux to adapt, second is velocity that will
|
||||
// be interpolated and inner-producted with the face area vector.
|
||||
correctFluxes ((phi rhoU) (phi_0 none));
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,22 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class uniformDimensionedVectorField;
|
||||
location "constant";
|
||||
object g;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
dimensions [0 1 -2 0 0 0 0];
|
||||
value (0 0 -9.8);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,95 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object thermophysicalProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
thermoType
|
||||
{
|
||||
type heheuPsiThermo;
|
||||
mixture inhomogeneousMixture;
|
||||
transport sutherland;
|
||||
thermo janaf;
|
||||
equationOfState perfectGas;
|
||||
specie specie;
|
||||
energy absoluteEnthalpy;
|
||||
}
|
||||
|
||||
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.5776;
|
||||
|
||||
fuel
|
||||
{
|
||||
specie
|
||||
{
|
||||
molWeight 44.0962;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Tlow 200;
|
||||
Thigh 5000;
|
||||
Tcommon 1000;
|
||||
highCpCoeffs ( 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 );
|
||||
lowCpCoeffs ( 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 );
|
||||
}
|
||||
transport
|
||||
{
|
||||
As 1.67212e-06;
|
||||
Ts 170.672;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
oxidant
|
||||
{
|
||||
specie
|
||||
{
|
||||
molWeight 28.8504;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Tlow 200;
|
||||
Thigh 6000;
|
||||
Tcommon 1000;
|
||||
highCpCoeffs ( 3.10131 0.00124137 -4.18816e-07 6.64158e-11 -3.91274e-15 -985.266 5.35597 );
|
||||
lowCpCoeffs ( 3.58378 -0.000727005 1.67057e-06 -1.09203e-10 -4.31765e-13 -1050.53 3.11239 );
|
||||
}
|
||||
transport
|
||||
{
|
||||
As 1.67212e-06;
|
||||
Ts 170.672;
|
||||
}
|
||||
}
|
||||
|
||||
burntProducts
|
||||
{
|
||||
specie
|
||||
{
|
||||
molWeight 28.3233;
|
||||
}
|
||||
thermodynamics
|
||||
{
|
||||
Tlow 200;
|
||||
Thigh 6000;
|
||||
Tcommon 1000;
|
||||
highCpCoeffs ( 3.10558 0.00179747 -5.94696e-07 9.05605e-11 -5.08443e-15 -11003.6 5.12104 );
|
||||
lowCpCoeffs ( 3.49796 0.000638555 -1.83881e-07 1.20989e-09 -7.68691e-13 -11080.5 3.18188 );
|
||||
}
|
||||
transport
|
||||
{
|
||||
As 1.67212e-06;
|
||||
Ts 170.672;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,42 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "constant";
|
||||
object turbulenceProperties;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
simulationType RAS;
|
||||
|
||||
RAS
|
||||
{
|
||||
RASModel PDRkEpsilon;
|
||||
|
||||
PDRkEpsilonCoeffs
|
||||
{
|
||||
Cmu 0.09;
|
||||
C1 1.44;
|
||||
C2 1.92;
|
||||
C3 0;
|
||||
C4 0.1;
|
||||
alphah 1;
|
||||
alphak 1;
|
||||
alphaEps 0.76923;
|
||||
}
|
||||
|
||||
turbulence on;
|
||||
|
||||
printCoeffs on;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,72 +0,0 @@
|
||||
SCOPECoeffs
|
||||
{
|
||||
lowerFlammabilityLimit 0.522;
|
||||
upperFlammabilityLimit 2.362;
|
||||
|
||||
lowerSuPolynomial
|
||||
{
|
||||
lowerLimit 0.6;
|
||||
upperLimit 1.2;
|
||||
coefficients
|
||||
(
|
||||
0.45
|
||||
0.713364389
|
||||
-2.359004778
|
||||
-2.629755677
|
||||
-29.11933997
|
||||
-55.34224225
|
||||
0.0
|
||||
);
|
||||
}
|
||||
|
||||
upperSuPolynomial
|
||||
{
|
||||
lowerLimit 1.1;
|
||||
upperLimit 1.64;
|
||||
coefficients
|
||||
(
|
||||
0.419664668
|
||||
2.280811555
|
||||
-11.53872754
|
||||
2.98656153
|
||||
21.04870808
|
||||
-16.09645303
|
||||
0.0
|
||||
);
|
||||
}
|
||||
|
||||
Texp 2;
|
||||
pexp -0.5;
|
||||
|
||||
lowerMaPolynomial
|
||||
{
|
||||
lowerLimit 0.5;
|
||||
upperLimit 0.75;
|
||||
coefficients
|
||||
(
|
||||
3.739047
|
||||
-5.12414
|
||||
-38.1444
|
||||
-134.813
|
||||
-224.633
|
||||
-144.27
|
||||
0
|
||||
);
|
||||
}
|
||||
|
||||
upperMaPolynomial
|
||||
{
|
||||
lowerLimit 0.75;
|
||||
upperLimit 1.0;
|
||||
coefficients
|
||||
(
|
||||
3.739047
|
||||
-5.12414
|
||||
-38.1444
|
||||
-134.813
|
||||
-224.633
|
||||
-144.27
|
||||
0
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -1,38 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object PDRMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
//- Per faceSet the patch the faces should go into blocked baffles
|
||||
blockedFaces ((blockedFacesSet blockedFaces));
|
||||
|
||||
//- Per faceSet the patch the faces should go into coupled baffles
|
||||
coupledFaces
|
||||
{
|
||||
|
||||
coupledFacesSet
|
||||
{
|
||||
wallPatch baffleWall;
|
||||
cyclicMasterPatch baffleCyclic_half0;
|
||||
}
|
||||
}
|
||||
|
||||
//- Name of cellSet that holds the cells to fully remove
|
||||
blockedCells blockedCellsSet;
|
||||
|
||||
//- All exposed faces that are not specified in blockedFaces go into
|
||||
// this patch
|
||||
defaultPatch outer;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,269 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object blockMeshDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
scale 1.0;
|
||||
|
||||
vertices
|
||||
(
|
||||
(0.0 0.0 0.0)
|
||||
(1.0 0.0 0.0)
|
||||
(2.0 0.0 0.0)
|
||||
(3.0 0.0 0.0)
|
||||
(0.0 1.0 0.0)
|
||||
(1.0 1.0 0.0)
|
||||
(2.0 1.0 0.0)
|
||||
(3.0 1.0 0.0)
|
||||
(0.0 2.0 0.0)
|
||||
(1.0 2.0 0.0)
|
||||
(2.0 2.0 0.0)
|
||||
(3.0 2.0 0.0)
|
||||
(0.0 3.0 0.0)
|
||||
(1.0 3.0 0.0)
|
||||
(2.0 3.0 0.0)
|
||||
(3.0 3.0 0.0)
|
||||
(0.0 0.0 1.0)
|
||||
(1.0 0.0 1.0)
|
||||
(2.0 0.0 1.0)
|
||||
(3.0 0.0 1.0)
|
||||
(0.0 1.0 1.0)
|
||||
(1.0 1.0 1.0)
|
||||
(2.0 1.0 1.0)
|
||||
(3.0 1.0 1.0)
|
||||
(0.0 2.0 1.0)
|
||||
(1.0 2.0 1.0)
|
||||
(2.0 2.0 1.0)
|
||||
(3.0 2.0 1.0)
|
||||
(0.0 3.0 1.0)
|
||||
(1.0 3.0 1.0)
|
||||
(2.0 3.0 1.0)
|
||||
(3.0 3.0 1.0)
|
||||
(0.0 0.0 2.0)
|
||||
(1.0 0.0 2.0)
|
||||
(2.0 0.0 2.0)
|
||||
(3.0 0.0 2.0)
|
||||
(0.0 1.0 2.0)
|
||||
(1.0 1.0 2.0)
|
||||
(2.0 1.0 2.0)
|
||||
(3.0 1.0 2.0)
|
||||
(0.0 2.0 2.0)
|
||||
(1.0 2.0 2.0)
|
||||
(2.0 2.0 2.0)
|
||||
(3.0 2.0 2.0)
|
||||
(0.0 3.0 2.0)
|
||||
(1.0 3.0 2.0)
|
||||
(2.0 3.0 2.0)
|
||||
(3.0 3.0 2.0)
|
||||
(-3.53553390593274 -3.53553390593274 0)
|
||||
(-0.58113883008419 -4.74341649025257 0)
|
||||
(3.58113883008419 -4.74341649025257 0)
|
||||
(6.53553390593274 -3.53553390593274 0)
|
||||
(-4.74341649025257 -0.58113883008419 0)
|
||||
(-2.53553390593274 -2.53553390593274 0)
|
||||
(5.53553390593274 -2.53553390593274 0)
|
||||
(7.74341649025257 -0.58113883008419 0)
|
||||
(-4.74341649025257 3.58113883008419 0)
|
||||
(-2.53553390593274 5.53553390593274 0)
|
||||
(5.53553390593274 5.53553390593274 0)
|
||||
(7.74341649025257 3.58113883008419 0)
|
||||
(-3.53553390593274 6.53553390593274 0)
|
||||
(-0.58113883008419 7.74341649025257 0)
|
||||
(3.58113883008419 7.74341649025257 0)
|
||||
(6.53553390593274 6.53553390593274 0)
|
||||
(-3.19801074533416 -3.19801074533416 3.1320071635561)
|
||||
(-0.336306209562122 -4.00891862868637 3.67261241912424)
|
||||
(3.33630620956212 -4.00891862868637 3.67261241912424)
|
||||
(6.19801074533416 -3.19801074533416 3.1320071635561)
|
||||
(-4.00891862868637 -0.336306209562122 3.67261241912424)
|
||||
(7.00891862868637 -0.336306209562122 3.67261241912424)
|
||||
(-4.00891862868637 3.33630620956212 3.67261241912424)
|
||||
(7.00891862868637 3.33630620956212 3.67261241912424)
|
||||
(-3.19801074533416 6.19801074533416 3.1320071635561)
|
||||
(-0.336306209562122 7.00891862868637 3.67261241912424)
|
||||
(3.33630620956212 7.00891862868637 3.67261241912424)
|
||||
(6.19801074533416 6.19801074533416 3.1320071635561)
|
||||
(-2.57247877713763 -2.57247877713763 5.42997170285018)
|
||||
(0.0194193243090797 -2.94174202707276 5.92232270276368)
|
||||
(2.98058067569092 -2.94174202707276 5.92232270276368)
|
||||
(5.57247877713763 -2.57247877713763 5.42997170285018)
|
||||
(-2.94174202707276 0.0194193243090797 5.92232270276368)
|
||||
(-0.178511301977579 -0.178511301977579 6.71404520791032)
|
||||
(3.17851130197758 -0.178511301977579 6.71404520791032)
|
||||
(5.94174202707276 0.0194193243090797 5.92232270276368)
|
||||
(-2.94174202707276 2.98058067569092 5.92232270276368)
|
||||
(-0.178511301977579 3.17851130197758 6.71404520791032)
|
||||
(3.17851130197758 3.17851130197758 6.71404520791032)
|
||||
(5.94174202707276 2.98058067569092 5.92232270276368)
|
||||
(-2.57247877713763 5.57247877713763 5.42997170285018)
|
||||
(0.0194193243090797 5.94174202707276 5.92232270276368)
|
||||
(2.98058067569092 5.94174202707276 5.92232270276368)
|
||||
(5.57247877713763 5.57247877713763 5.42997170285018)
|
||||
);
|
||||
|
||||
blocks
|
||||
(
|
||||
hex (0 1 5 4 16 17 21 20 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (1 2 6 5 17 18 22 21 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (2 3 7 6 18 19 23 22 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (4 5 9 8 20 21 25 24 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (5 6 10 9 21 22 26 25 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (6 7 11 10 22 23 27 26 )(5 5 5) simpleGrading (1 1 1)
|
||||
hex (8 9 13 12 24 25 29 28 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (9 10 14 13 25 26 30 29 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (10 11 15 14 26 27 31 30 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (16 17 21 20 32 33 37 36 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (17 18 22 21 33 34 38 37 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (18 19 23 22 34 35 39 38 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (20 21 25 24 36 37 41 40 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (21 22 26 25 37 38 42 41 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (22 23 27 26 38 39 43 42 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (24 25 29 28 40 41 45 44 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (25 26 30 29 41 42 46 45 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (26 27 31 30 42 43 47 46 ) (5 5 5) simpleGrading (1 1 1)
|
||||
hex (47 46 42 43 91 90 86 87) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (46 45 41 42 90 89 85 86) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (45 44 40 41 89 88 84 85) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (43 42 38 39 87 86 82 83) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (42 41 37 38 86 85 81 82) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (41 40 36 37 85 84 80 81) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (39 38 34 35 83 82 78 79) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (38 37 33 34 82 81 77 78) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (37 36 32 33 81 80 76 77) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (0 16 20 4 48 64 68 52) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (16 32 36 20 64 76 80 68) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (4 20 24 8 52 68 70 56) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (20 36 40 24 68 80 84 70) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (8 24 28 12 56 70 72 60) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (24 40 44 28 70 84 88 72) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (47 43 27 31 91 87 71 75) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (43 39 23 27 87 83 69 71) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (39 35 19 23 83 79 67 69) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (31 27 11 15 75 71 59 63) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (27 23 7 11 71 69 55 59) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (23 19 3 7 69 67 51 55) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (0 1 17 16 48 49 65 64) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (1 2 18 17 49 50 66 65) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (2 3 19 18 50 51 67 66) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (16 17 33 32 64 65 77 76) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (17 18 34 33 65 66 78 77) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (18 19 35 34 66 67 79 78) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (47 31 30 46 91 75 74 90) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (31 15 14 30 75 63 62 74) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (46 30 29 45 90 74 73 89) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (30 14 13 29 74 62 61 73) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (45 29 28 44 89 73 72 88) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
hex (29 13 12 28 73 61 60 72) (5 5 7) simpleGrading (1 1 2.985984)
|
||||
);
|
||||
|
||||
boundary
|
||||
(
|
||||
outer
|
||||
{
|
||||
type patch;
|
||||
faces
|
||||
(
|
||||
(91 90 86 87)
|
||||
(90 89 85 86)
|
||||
(89 88 84 85)
|
||||
(87 86 82 83)
|
||||
(86 85 81 82)
|
||||
(85 84 80 81)
|
||||
(83 82 78 79)
|
||||
(82 81 77 78)
|
||||
(81 80 76 77)
|
||||
(48 64 68 52)
|
||||
(64 76 80 68)
|
||||
(52 68 70 56)
|
||||
(68 80 84 70)
|
||||
(56 70 72 60)
|
||||
(70 84 88 72)
|
||||
(91 87 71 75)
|
||||
(87 83 69 71)
|
||||
(83 79 67 69)
|
||||
(75 71 59 63)
|
||||
(71 69 55 59)
|
||||
(69 67 51 55)
|
||||
(48 49 65 64)
|
||||
(49 50 66 65)
|
||||
(50 51 67 66)
|
||||
(64 65 77 76)
|
||||
(65 66 78 77)
|
||||
(66 67 79 78)
|
||||
(91 75 74 90)
|
||||
(75 63 62 74)
|
||||
(90 74 73 89)
|
||||
(74 62 61 73)
|
||||
(89 73 72 88)
|
||||
(73 61 60 72)
|
||||
);
|
||||
}
|
||||
|
||||
ground
|
||||
{
|
||||
type wall;
|
||||
faces
|
||||
(
|
||||
(0 4 5 1)
|
||||
(1 5 6 2)
|
||||
(2 6 7 3)
|
||||
(4 8 9 5)
|
||||
(5 9 10 6)
|
||||
(6 10 11 7)
|
||||
(8 12 13 9)
|
||||
(9 13 14 10)
|
||||
(10 14 15 11)
|
||||
(4 0 48 52)
|
||||
(8 4 52 56)
|
||||
(12 8 56 60)
|
||||
(11 15 63 59)
|
||||
(7 11 59 55)
|
||||
(3 7 55 51)
|
||||
(0 1 49 48)
|
||||
(1 2 50 49)
|
||||
(2 3 51 50)
|
||||
(15 14 62 63)
|
||||
(14 13 61 62)
|
||||
(13 12 60 61)
|
||||
);
|
||||
}
|
||||
|
||||
blockedFaces
|
||||
{
|
||||
type wall;
|
||||
faces ();
|
||||
}
|
||||
|
||||
baffleWall
|
||||
{
|
||||
type wall;
|
||||
faces ();
|
||||
}
|
||||
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch baffleCyclic_half1;
|
||||
faces ();
|
||||
}
|
||||
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
neighbourPatch baffleCyclic_half0;
|
||||
faces ();
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,462 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
object changeDictionaryDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
p
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
U
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type fixedValue;
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type activePressureForceBaffleVelocity;
|
||||
cyclicPatch baffleCyclic_half0;
|
||||
orientation 1;
|
||||
openingTime 0.01;
|
||||
maxOpenFractionDelta 0.1;
|
||||
openFraction 0;
|
||||
minThresholdValue 8000;
|
||||
forceBased 0;
|
||||
value uniform (0 0 0);
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
epsilon
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 0.1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type epsilonWallFunction;
|
||||
value uniform 1e-5;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
k
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type kqRWallFunction;
|
||||
value uniform 1.5;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Su
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Xi
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
T
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Tu
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 300;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
b
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 1;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ft
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0.06024096;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Aw
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0.0;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0.0;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
B
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
betav
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
CR
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
CT
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
Nv
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
nsv
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform (0 0 0 0 0 0);
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
Lobs
|
||||
{
|
||||
boundaryField
|
||||
{
|
||||
blockedFaces
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleWall
|
||||
{
|
||||
type zeroGradient;
|
||||
value uniform 0;
|
||||
}
|
||||
baffleCyclic_half0
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
baffleCyclic_half1
|
||||
{
|
||||
type cyclic;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,54 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object controlDict;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
application PDRFoam;
|
||||
|
||||
startFrom latestTime;
|
||||
|
||||
startTime 0;
|
||||
|
||||
stopAt endTime;
|
||||
|
||||
endTime 0.2;
|
||||
|
||||
deltaT 5e-06;
|
||||
|
||||
writeControl adjustable;
|
||||
|
||||
writeInterval 0.01;
|
||||
|
||||
purgeWrite 0;
|
||||
|
||||
writeFormat ascii;
|
||||
|
||||
writePrecision 8;
|
||||
|
||||
writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable yes;
|
||||
|
||||
adjustTimeStep yes;
|
||||
|
||||
maxCo 0.2;
|
||||
|
||||
maxDeltaT 1;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,72 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSchemes;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
ddtSchemes
|
||||
{
|
||||
default Euler;
|
||||
}
|
||||
|
||||
gradSchemes
|
||||
{
|
||||
default Gauss linear;
|
||||
grad(p) Gauss linear;
|
||||
}
|
||||
|
||||
divSchemes
|
||||
{
|
||||
default none;
|
||||
|
||||
div(phi,U) Gauss limitedLinearV 1;
|
||||
div(phi,K) Gauss limitedLinear 1;
|
||||
div(phid,p) Gauss limitedLinear 1;
|
||||
div(phi,k) Gauss limitedLinear 1;
|
||||
div(phi,epsilon) Gauss limitedLinear 1;
|
||||
|
||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
||||
div(phiSt,b) Gauss limitedLinear01 1;
|
||||
|
||||
div(phi,ft_b_ha_hau) Gauss multivariateSelection
|
||||
{
|
||||
ft limitedLinear01 1;
|
||||
b limitedLinear01 1;
|
||||
Xi limitedLinear 1;
|
||||
ha limitedLinear 1;
|
||||
hau limitedLinear 1;
|
||||
};
|
||||
|
||||
div((Su*grad(b))) Gauss linear;
|
||||
div((U+((Su*Xi)*grad(b)))) Gauss linear;
|
||||
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
|
||||
div(U) Gauss linear;
|
||||
}
|
||||
|
||||
laplacianSchemes
|
||||
{
|
||||
default Gauss linear limited corrected 0.33;
|
||||
}
|
||||
|
||||
interpolationSchemes
|
||||
{
|
||||
default linear;
|
||||
}
|
||||
|
||||
snGradSchemes
|
||||
{
|
||||
default limited corrected 0.33;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,76 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object fvSolution;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
solvers
|
||||
{
|
||||
rho
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-05;
|
||||
relTol 0.01;
|
||||
};
|
||||
|
||||
rhoFinal
|
||||
{
|
||||
$rho;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
p
|
||||
{
|
||||
solver PCG;
|
||||
preconditioner DIC;
|
||||
tolerance 1e-6;
|
||||
relTol 0.01;
|
||||
};
|
||||
|
||||
pFinal
|
||||
{
|
||||
$p;
|
||||
tolerance 1e-6;
|
||||
relTol 0;
|
||||
};
|
||||
|
||||
"(b|Xi|ft|ha|hau|k|epsilon)"
|
||||
{
|
||||
solver PBiCGStab;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-06;
|
||||
relTol 0.1;
|
||||
}
|
||||
|
||||
"(b|Xi|ft|ha|hau|k|epsilon)Final"
|
||||
{
|
||||
solver PBiCGStab;
|
||||
preconditioner DILU;
|
||||
tolerance 1e-06;
|
||||
relTol 0;
|
||||
}
|
||||
}
|
||||
|
||||
PIMPLE
|
||||
{
|
||||
nCorrectors 2;
|
||||
nOuterCorrectors 1;
|
||||
nNonOrthogonalCorrectors 0;
|
||||
momentumPredictor yes;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,63 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
{
|
||||
version 2.0;
|
||||
format ascii;
|
||||
class dictionary;
|
||||
location "system";
|
||||
object topoSetDict.1;
|
||||
}
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
actions
|
||||
(
|
||||
{
|
||||
name blockedFacesSet;
|
||||
type faceSet;
|
||||
action new;
|
||||
source boxToFace;
|
||||
box (1 1 0.99) (2 2 1);
|
||||
}
|
||||
|
||||
{
|
||||
name blockedCellsSet;
|
||||
type cellSet;
|
||||
action new;
|
||||
source boxToCell;
|
||||
box (2.4 2.4 0) (3 3 1);
|
||||
}
|
||||
|
||||
{
|
||||
name blockedCellsSet;
|
||||
type cellSet;
|
||||
action add;
|
||||
source boxToCell;
|
||||
box (0 0 0) (0.6 0.6 1);
|
||||
}
|
||||
|
||||
{
|
||||
name blockedFacesSet;
|
||||
type faceSet;
|
||||
action add;
|
||||
source cellToFace;
|
||||
set blockedCellsSet;
|
||||
option all;
|
||||
}
|
||||
|
||||
{
|
||||
name coupledFacesSet;
|
||||
type faceSet;
|
||||
action new;
|
||||
source boxToFace;
|
||||
box (1.0 1.99 0) (2.0 2.09 0.6);
|
||||
}
|
||||
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -12,6 +12,8 @@ runApplication PDRblockMesh
|
||||
|
||||
runApplication PDRsetFields
|
||||
|
||||
runApplication PDRMesh
|
||||
|
||||
# Get location for ignition
|
||||
|
||||
echo "Ignition point from constant/combustionProperties > system/ignitionPoint"
|
||||
|
||||
@ -40,7 +40,7 @@ writeCompression off;
|
||||
|
||||
timeFormat general;
|
||||
|
||||
timePrecision 6;
|
||||
timePrecision 8;
|
||||
|
||||
runTimeModifiable yes;
|
||||
|
||||
@ -52,8 +52,6 @@ maxDeltaT 1;
|
||||
|
||||
functions
|
||||
{
|
||||
#include "probes"
|
||||
|
||||
normalisedGradP
|
||||
{
|
||||
libs (utilityFunctionObjects);
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\ / O peration | Version: v1812 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
@ -16,11 +16,11 @@ FoamFile
|
||||
|
||||
numberOfSubdomains 4;
|
||||
|
||||
method simple;
|
||||
method scotch;
|
||||
|
||||
coeffs
|
||||
{
|
||||
n (2 2 1);
|
||||
n (2 2 2);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -1,87 +0,0 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
probes
|
||||
{
|
||||
type probes;
|
||||
libs (sampling);
|
||||
|
||||
name probes;
|
||||
|
||||
writeControl timeStep;
|
||||
writeInterval 1;
|
||||
|
||||
fields
|
||||
(
|
||||
p
|
||||
b
|
||||
epsilon
|
||||
ft
|
||||
k
|
||||
rho
|
||||
St
|
||||
Su
|
||||
T
|
||||
U
|
||||
Xi
|
||||
);
|
||||
|
||||
probeLocations
|
||||
(
|
||||
(2. 1.95 0.1)
|
||||
(2. 1.6 0.1)
|
||||
(2. 1.2 0.1)
|
||||
(2. 0.8 0.1)
|
||||
(2. 0.4 0.1)
|
||||
(2. 0.0 0.1)
|
||||
(2.8 2.8 0.1)
|
||||
(2 3.6 0.1)
|
||||
(2. 2. 0.9)
|
||||
(2. 2. 1.7)
|
||||
(2. -0.2 0.1)
|
||||
(2. -0.4 0.1)
|
||||
|
||||
(2 2 0.1)
|
||||
(2.8 2 0.1)
|
||||
(3.6 2 0.1)
|
||||
(4.6 2 0.1)
|
||||
(5.6 2 0.1)
|
||||
(2 2.8 0.1)
|
||||
(2 3.6 0.1)
|
||||
(2 8.448 0.1)
|
||||
(2 5.6 0.1)
|
||||
(2 2 0.9)
|
||||
(2.8 2 0.9)
|
||||
(3.6 2 0.9)
|
||||
(4.6 2 0.9)
|
||||
(5.6 2 0.9)
|
||||
(2 2.8 0.9)
|
||||
(2 3.6 0.9)
|
||||
(2 8.448 0.9)
|
||||
(2 5.6 0.9)
|
||||
(2 2 1.9)
|
||||
(2.8 2 1.9)
|
||||
(3.6 2 1.9)
|
||||
(4.6 2 1.9)
|
||||
(5.6 2 1.9)
|
||||
(2 2.8 1.9)
|
||||
(2 3.6 1.9)
|
||||
(2 8.448 1.9)
|
||||
(2 5.6 1.9)
|
||||
(2 2 2.9)
|
||||
(2.8 2.8 0.1)
|
||||
(2.8 2.8 0.9)
|
||||
(2.8 2.8 1.9)
|
||||
(3.6 3.6 0.1)
|
||||
(3.6 3.6 0.9)
|
||||
(3.6 3.6 1.9)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
Reference in New Issue
Block a user