Compare commits
3 Commits
PDRFoam-rc
...
PDRfoam-rc
| Author | SHA1 | Date | |
|---|---|---|---|
| 1161a11931 | |||
| ae0b6ee7bc | |||
| c32da817c4 |
@ -12,6 +12,7 @@ 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
|
||||
@ -24,6 +25,7 @@ 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,12 +1,9 @@
|
||||
EXE_INC = \
|
||||
EXE_INC = -DFULLDEBUG -O0 -g \
|
||||
-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 \
|
||||
@ -15,12 +12,13 @@ EXE_INC = \
|
||||
-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)/dynamicFvMesh/lnInclude
|
||||
-I$(LIB_SRC)/meshTools/lnInclude \
|
||||
-I$(LIB_SRC)/triSurface/lnInclude \
|
||||
|
||||
EXE_LIBS = \
|
||||
-lfiniteVolume \
|
||||
-lfvOptions \
|
||||
-lmeshTools \
|
||||
-lengine \
|
||||
-lturbulenceModels \
|
||||
@ -30,4 +28,6 @@ EXE_LIBS = \
|
||||
-lreactionThermophysicalModels \
|
||||
-lspecie \
|
||||
-llaminarFlameSpeedModels \
|
||||
-ldynamicFvMesh
|
||||
-lfiniteVolume \
|
||||
-ldynamicFvMesh \
|
||||
-lfvOptions
|
||||
|
||||
@ -60,7 +60,7 @@ Foam::XiEqModels::normBasicSubGrid::normBasicSubGrid
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::normBasicSubGrid::~normBasicSubGrid()
|
||||
{}
|
||||
@ -81,54 +81,64 @@ 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);
|
||||
|
||||
auto tN = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tN
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tN",
|
||||
mesh.time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().constant(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& N = tN.ref();
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
|
||||
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tns
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& ns = tns.ref();
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
|
||||
auto tB = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tB
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tB",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tB",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& B = tB.ref();
|
||||
volSymmTensorField& 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
|
||||
|
||||
//- No copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&) = delete;
|
||||
//- Disallow copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const normBasicSubGrid&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const normBasicSubGrid&);
|
||||
|
||||
|
||||
public:
|
||||
@ -97,7 +97,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling XiEq
|
||||
//- Return the flame-wrinking XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
|
||||
@ -26,8 +26,8 @@ License
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#include "normBasicXiSubG.H"
|
||||
#include "zeroGradientFvPatchField.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "zeroGradientFvPatchField.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -37,8 +37,8 @@ namespace XiGModels
|
||||
{
|
||||
defineTypeNameAndDebug(normBasicSubGrid, 0);
|
||||
addToRunTimeSelectionTable(XiGModel, normBasicSubGrid, dictionary);
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
@ -74,6 +74,12 @@ Foam::XiGModels::normBasicSubGrid::normBasicSubGrid
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::normBasicSubGrid::~normBasicSubGrid()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
@ -106,9 +112,13 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
|
||||
if (!db.foundObject<volScalarField>("Ep"))
|
||||
{
|
||||
FatalErrorInFunction
|
||||
<< "Looking for Ep in db that does not exist" << nl
|
||||
<< Foam::abort(FatalError);
|
||||
FatalErrorIn
|
||||
(
|
||||
"Foam::tmp<Foam::volScalarField> Foam::XiGModels::"
|
||||
"normBasicSubGrid::G() const"
|
||||
)
|
||||
<< "Looking for Ep in db which does not exist "
|
||||
<< Foam::abort(FatalError);
|
||||
}
|
||||
|
||||
const volScalarField& Ep = db.lookupObject<volScalarField>("Ep");
|
||||
@ -116,21 +126,27 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
const volScalarField& Xi = db.lookupObject<volScalarField>("Xi");
|
||||
|
||||
//tmp<volScalarField> tGtot = XiGModel_->G();
|
||||
auto tGtot = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tGtot
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tGtot",
|
||||
Su_.mesh().time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tGtot",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(inv(dimTime), Zero)
|
||||
dimensionedScalar(inv(dimTime), Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& Gtot = tGtot.ref();
|
||||
|
||||
volScalarField& Gtot = tGtot.ref();
|
||||
|
||||
|
||||
//calculating flame normal
|
||||
|
||||
@ -148,55 +164,68 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
|
||||
flNormal /= mgb;
|
||||
|
||||
|
||||
auto tN = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tN
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tN",
|
||||
Su_.mesh().time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& N = tN.ref();
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
|
||||
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tns
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tns",
|
||||
Su_.mesh().time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& ns = tns.ref();
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;
|
||||
|
||||
auto tB = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tB
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tB",
|
||||
Su_.mesh().time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tB",
|
||||
Su_.mesh().time().timeName(),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
Su_.mesh(),
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(Bv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& B = tB.ref();
|
||||
|
||||
volSymmTensorField& B = tB.ref();
|
||||
|
||||
B.primitiveFieldRef() = Bv.primitiveField()*sqrt(Cw);
|
||||
|
||||
@ -225,14 +254,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;
|
||||
}
|
||||
@ -249,7 +278,8 @@ 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,6 +29,7 @@ Class
|
||||
Description
|
||||
|
||||
|
||||
|
||||
SourceFiles
|
||||
normBasicSubGrid.C
|
||||
|
||||
@ -54,7 +55,7 @@ class normBasicSubGrid
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private Data
|
||||
// Private data
|
||||
|
||||
//- Sub-grid generation rate coefficient
|
||||
scalar k1_;
|
||||
@ -74,14 +75,13 @@ class normBasicSubGrid
|
||||
//- Maximum Lobs/CellWidth
|
||||
scalar LOverCw_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&) = delete;
|
||||
//- Disallow copy construct
|
||||
normBasicSubGrid(const normBasicSubGrid&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const normBasicSubGrid&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const normBasicSubGrid&);
|
||||
|
||||
|
||||
public:
|
||||
@ -104,12 +104,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~normBasicSubGrid() = default;
|
||||
virtual ~normBasicSubGrid();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling generation rate
|
||||
//- Return the flame-wrinking generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -71,7 +71,7 @@ Foam::PDRDragModel::PDRDragModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModel::~PDRDragModel()
|
||||
{}
|
||||
@ -89,10 +89,4 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
|
||||
}
|
||||
|
||||
|
||||
void Foam::PDRDragModel::writeFields() const
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -57,9 +57,10 @@ class PDRDragModel
|
||||
:
|
||||
public regIOobject
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected Data
|
||||
// Protected data
|
||||
|
||||
dictionary PDRDragModelCoeffs_;
|
||||
|
||||
@ -71,13 +72,15 @@ protected:
|
||||
bool on_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
private:
|
||||
|
||||
//- No copy construct
|
||||
PDRDragModel(const PDRDragModel&) = delete;
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const PDRDragModel&) = delete;
|
||||
//- Disallow copy construct
|
||||
PDRDragModel(const PDRDragModel&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const PDRDragModel&);
|
||||
|
||||
|
||||
public:
|
||||
@ -143,7 +146,7 @@ public:
|
||||
// Member Functions
|
||||
|
||||
//- Return true if the drag model is switched on
|
||||
bool on() const noexcept
|
||||
bool on() const
|
||||
{
|
||||
return on_;
|
||||
}
|
||||
@ -167,7 +170,10 @@ public:
|
||||
}
|
||||
|
||||
//- Write fields
|
||||
virtual void writeFields() const;
|
||||
virtual void writeFields() const
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -32,31 +31,34 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const dictionary& PDRProperties,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& rho,
|
||||
const volVectorField& U,
|
||||
const surfaceScalarField& phi
|
||||
)
|
||||
{
|
||||
const word modelType(dict.get<word>("PDRDragModel"));
|
||||
const word modelType(PDRProperties.get<word>("PDRDragModel"));
|
||||
|
||||
Info<< "Selecting drag model " << modelType << endl;
|
||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
|
||||
if (!cstrIter.found())
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalIOErrorInLookup
|
||||
FatalErrorIn
|
||||
(
|
||||
dict,
|
||||
"PDRDragModel",
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
"PDRDragModel::New"
|
||||
) << "Unknown PDRDragModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid PDRDragModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<PDRDragModel>(cstrIter()(dict, turbulence, rho, U, phi));
|
||||
return autoPtr<PDRDragModel>
|
||||
(cstrIter()(PDRProperties,turbulence, rho, U, phi));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -83,7 +83,7 @@ Foam::PDRDragModels::basic::basic
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModels::basic::~basic()
|
||||
{}
|
||||
@ -93,20 +93,24 @@ Foam::PDRDragModels::basic::~basic()
|
||||
|
||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||
{
|
||||
auto tDragDcu = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tDragDcu
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
)
|
||||
);
|
||||
auto& DragDcu = tDragDcu.ref();
|
||||
|
||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -123,20 +127,24 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
|
||||
{
|
||||
auto tGk = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tGk
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
)
|
||||
);
|
||||
auto& Gk = tGk.ref();
|
||||
|
||||
volScalarField& Gk = tGk.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -173,5 +181,4 @@ 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
|
||||
|
||||
//- No copy construct
|
||||
basic(const basic&) = delete;
|
||||
//- Disallow copy construct
|
||||
basic(const basic&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const basic&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const basic&);
|
||||
|
||||
|
||||
public:
|
||||
|
||||
@ -86,7 +86,7 @@ Foam::PDRDragModels::basicSch::basicSch
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::PDRDragModels::basicSch::~basicSch()
|
||||
{}
|
||||
@ -96,20 +96,25 @@ Foam::PDRDragModels::basicSch::~basicSch()
|
||||
|
||||
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
|
||||
{
|
||||
auto tDragDcu = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tDragDcu
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tDragDcu",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& DragDcu = tDragDcu.ref();
|
||||
|
||||
volSymmTensorField& DragDcu = tDragDcu.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -126,20 +131,25 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
|
||||
{
|
||||
auto tGk = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tGk
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tGk",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& Gk = tGk.ref();
|
||||
|
||||
volScalarField& Gk = tGk.ref();
|
||||
|
||||
if (on_)
|
||||
{
|
||||
@ -155,35 +165,39 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
|
||||
|
||||
if (subGridSchelkin_)
|
||||
{
|
||||
Gk *= this->SchelkinFactor();
|
||||
Gk *= schFac();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return tGk;
|
||||
}
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>
|
||||
Foam::PDRDragModels::basicSch::SchelkinFactor() const
|
||||
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::schFac() 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");
|
||||
|
||||
auto tfac = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tfac
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tfac",
|
||||
U_.mesh().time().constant(),
|
||||
IOobject
|
||||
(
|
||||
"tfac",
|
||||
U_.mesh().time().constant(),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
U_.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
dimensionedScalar(dimless, Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& schFac = tfac.ref();
|
||||
|
||||
volScalarField& schFac = tfac.ref();
|
||||
|
||||
const volScalarField& k = turbulence_.k();
|
||||
const volScalarField& epsilon = turbulence_.epsilon();
|
||||
@ -225,38 +239,47 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::SchelkinExponent
|
||||
const volSymmTensorField& nsv =
|
||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||
|
||||
auto tN = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tN
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
|
||||
)
|
||||
);
|
||||
auto& N = tN.ref();
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tns
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& ns = tns.ref();
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
|
||||
@ -28,6 +28,7 @@ Class
|
||||
|
||||
Description
|
||||
|
||||
|
||||
SourceFiles
|
||||
basicSch.C
|
||||
|
||||
@ -53,7 +54,7 @@ class basicSch
|
||||
:
|
||||
public PDRDragModel
|
||||
{
|
||||
// Private Data
|
||||
// Private data
|
||||
|
||||
dimensionedScalar Csu;
|
||||
dimensionedScalar Csk;
|
||||
@ -72,11 +73,11 @@ class basicSch
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
basicSch(const basicSch&) = delete;
|
||||
//- Disallow copy construct
|
||||
basicSch(const basicSch&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const basicSch&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const basicSch&);
|
||||
|
||||
|
||||
public:
|
||||
@ -116,8 +117,8 @@ public:
|
||||
//- Write fields
|
||||
void writeFields() const;
|
||||
|
||||
//- Return the Schelkin factor for drag turbulence generation rate
|
||||
tmp<volScalarField> SchelkinFactor() const;
|
||||
//- Return the schelkin factor for drag turbulence generation rate
|
||||
tmp<volScalarField> schFac() const;
|
||||
|
||||
//- Return the sub-grid Schelkin effect exponent
|
||||
tmp<volScalarField> SchelkinExponent
|
||||
|
||||
@ -89,7 +89,7 @@ Foam::XiEqModels::BLMgMaXiEq::BLMgMaXiEq
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModels::BLMgMaXiEq::~BLMgMaXiEq()
|
||||
{}
|
||||
@ -117,18 +117,21 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::BLMgMaXiEq::XiEq() const
|
||||
|
||||
volScalarField regime("regime", MaModel.Ma()*scalar(0.0));
|
||||
|
||||
auto tXiEq = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tXiEq
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"XiEq",
|
||||
epsilon.time().timeName(),
|
||||
epsilon.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
epsilon.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
IOobject
|
||||
(
|
||||
"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
|
||||
|
||||
//- No copy construct
|
||||
BLMgMaXiEq(const BLMgMaXiEq&) = delete;
|
||||
//- Disallow copy construct
|
||||
BLMgMaXiEq(const BLMgMaXiEq&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const BLMgMaXiEq&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const BLMgMaXiEq&);
|
||||
|
||||
|
||||
public:
|
||||
@ -127,11 +127,12 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling XiEq
|
||||
//- Return the flame-wrinking XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -64,6 +63,12 @@ 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,7 +65,6 @@ class Gulder
|
||||
|
||||
//- Schelkin effect Model constant
|
||||
scalar uPrimeCoef_;
|
||||
|
||||
scalar nrExp_;
|
||||
|
||||
//- Use sub-grid Schelkin effect
|
||||
@ -74,11 +73,11 @@ class Gulder
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
Gulder(const Gulder&) = delete;
|
||||
//- Disallow copy construct
|
||||
Gulder(const Gulder&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const Gulder&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const Gulder&);
|
||||
|
||||
|
||||
public:
|
||||
@ -101,16 +100,17 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~Gulder() = default;
|
||||
virtual ~Gulder();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling XiEq
|
||||
//- Return the flame-wrinking XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -61,7 +60,7 @@ Foam::XiEqModel::XiEqModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiEqModel::~XiEqModel()
|
||||
{}
|
||||
@ -79,7 +78,9 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
||||
|
||||
|
||||
void Foam::XiEqModel::writeFields() const
|
||||
{}
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
|
||||
Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
@ -97,38 +98,46 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
const volSymmTensorField& nsv =
|
||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||
|
||||
auto tN = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tN
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tN",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE,
|
||||
false
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
dimensionedScalar(Nv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& N = tN.ref();
|
||||
|
||||
volScalarField& N = tN.ref();
|
||||
|
||||
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
auto tns = tmp<volSymmTensorField>::New
|
||||
tmp<volSymmTensorField> tns
|
||||
(
|
||||
IOobject
|
||||
new volSymmTensorField
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"tns",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
dimensionedSymmTensor(nsv.dimensions(), Zero)
|
||||
)
|
||||
);
|
||||
auto& ns = tns.ref();
|
||||
|
||||
volSymmTensorField& ns = tns.ref();
|
||||
|
||||
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
|
||||
|
||||
@ -147,7 +156,7 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
|
||||
N.primitiveFieldRef() = upLocal*(max(scalar(1.0), pow(nr, nrExp)) - 1.0);
|
||||
|
||||
return tN;
|
||||
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -54,9 +53,10 @@ namespace Foam
|
||||
|
||||
class XiEqModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected Data
|
||||
// Protected data
|
||||
|
||||
//- Dictionary
|
||||
dictionary XiEqModelCoeffs_;
|
||||
@ -70,14 +70,15 @@ protected:
|
||||
//- Laminar burning velocity
|
||||
const volScalarField& Su_;
|
||||
|
||||
private:
|
||||
|
||||
// Protected Member Functions
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
XiEqModel(const XiEqModel&) = delete;
|
||||
//- Disallow copy construct
|
||||
XiEqModel(const XiEqModel&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const XiEqModel&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiEqModel&);
|
||||
|
||||
|
||||
public:
|
||||
@ -142,7 +143,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling XiEq
|
||||
//- Return the flame-wrinking XiEq
|
||||
virtual tmp<volScalarField> XiEq() const = 0;
|
||||
|
||||
// Only used by sperseded modles
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -32,33 +31,41 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const dictionary& propDict,
|
||||
const word& modelName,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su
|
||||
)
|
||||
{
|
||||
const word modelType(dict.get<word>(modelName));
|
||||
const word modelType(propDict.get<word>(modelName));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model Eq " << modelType << endl;
|
||||
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
|
||||
if (!cstrIter.found())
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalIOErrorInLookup
|
||||
FatalErrorIn
|
||||
(
|
||||
dict,
|
||||
modelName,
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
"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);
|
||||
}
|
||||
|
||||
return autoPtr<XiEqModel>(cstrIter()
|
||||
(
|
||||
dict, modelName, thermo, turbulence, Su)
|
||||
propDict, modelName, thermo, turbulence, Su)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -27,6 +27,8 @@ License
|
||||
|
||||
#include "instability2XiEq.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "IFstream.H"
|
||||
#include "fvCFD.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
@ -74,13 +76,19 @@ 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
|
||||
@ -100,8 +108,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();
|
||||
const scalar curTime = Su_.mesh().time().value();
|
||||
const scalar deltaT = Su_.mesh().time().deltaTValue();
|
||||
scalar curTime = Su_.mesh().time().value();
|
||||
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
|
||||
|
||||
//- No copy construct
|
||||
instability2XiEq(const instability2XiEq&) = delete;
|
||||
//- Disallow copy construct
|
||||
instability2XiEq(const instability2XiEq&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const instability2XiEq&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instability2XiEq&);
|
||||
|
||||
|
||||
public:
|
||||
@ -107,16 +107,17 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instability2XiEq() = default;
|
||||
virtual ~instability2XiEq();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling XiEq
|
||||
//- Return the flame-wrinking XiEq
|
||||
virtual tmp<volScalarField> XiEq() const;
|
||||
|
||||
//- Update properties from given dictionary
|
||||
virtual bool read(const dictionary& XiEqProperties);
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -52,11 +51,17 @@ 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,8 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -56,18 +55,18 @@ class KTS
|
||||
:
|
||||
public XiGModel
|
||||
{
|
||||
// Private Data
|
||||
// Private data
|
||||
|
||||
scalar GEtaCoef_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
KTS(const KTS&) = delete;
|
||||
//- Disallow copy construct
|
||||
KTS(const KTS&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const KTS&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const KTS&);
|
||||
|
||||
|
||||
public:
|
||||
@ -90,12 +89,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~KTS() = default;
|
||||
virtual ~KTS();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling generation rate
|
||||
//- Return the flame-wrinking generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -60,7 +60,7 @@ Foam::XiGModel::XiGModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModel::~XiGModel()
|
||||
{}
|
||||
|
||||
@ -53,9 +53,10 @@ namespace Foam
|
||||
|
||||
class XiGModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected Data
|
||||
// Protected data
|
||||
|
||||
dictionary XiGModelCoeffs_;
|
||||
|
||||
@ -64,13 +65,15 @@ protected:
|
||||
const volScalarField& Su_;
|
||||
|
||||
|
||||
// Protected Member Functions
|
||||
private:
|
||||
|
||||
//- No copy construct
|
||||
XiGModel(const XiGModel&) = delete;
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const XiGModel&) = delete;
|
||||
//- Disallow copy construct
|
||||
XiGModel(const XiGModel&);
|
||||
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiGModel&);
|
||||
|
||||
|
||||
public:
|
||||
@ -135,7 +138,7 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling genration rate
|
||||
//- Return the flame-wrinking genration rate
|
||||
virtual tmp<volScalarField> G() const = 0;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019-2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -32,33 +31,40 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const dictionary& propDict,
|
||||
const word& modelName,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su
|
||||
)
|
||||
{
|
||||
const word modelType(dict.get<word>(modelName));
|
||||
const word modelType(propDict.get<word>(modelName));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model for G " << modelType << endl;
|
||||
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
|
||||
if (!cstrIter.found())
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalIOErrorInLookup
|
||||
FatalErrorIn
|
||||
(
|
||||
dict,
|
||||
modelName,
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
"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);
|
||||
}
|
||||
|
||||
return autoPtr<XiGModel>(cstrIter()
|
||||
(
|
||||
dict, modelName, thermo, turbulence, Su)
|
||||
propDict, modelName, thermo, turbulence, Su)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -75,31 +75,37 @@ 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
|
||||
(
|
||||
IOobject
|
||||
IOdictionary combustionProperties
|
||||
(
|
||||
"combustionProperties",
|
||||
Su_.mesh().time().constant(),
|
||||
Su_.mesh(),
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
IOobject
|
||||
(
|
||||
"combustionProperties",
|
||||
Su_.mesh().time().constant(),
|
||||
Su_.mesh(),
|
||||
IOobject::MUST_READ,
|
||||
IOobject::NO_WRITE
|
||||
)
|
||||
);
|
||||
|
||||
ignition ign(combustionProperties, Su_.mesh().time(), Su_.mesh());
|
||||
|
||||
@ -111,6 +117,7 @@ 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_;
|
||||
@ -122,14 +129,13 @@ 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,8 +27,7 @@ Class
|
||||
Foam::XiGModels::instability2G
|
||||
|
||||
Description
|
||||
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
|
||||
used in \link XiModel.H \endlink.
|
||||
|
||||
|
||||
SourceFiles
|
||||
instability2G.C
|
||||
@ -46,6 +45,7 @@ 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,13 +72,12 @@ 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_;
|
||||
|
||||
//- The instability2G length-scale
|
||||
//- instability2G length-scale
|
||||
dimensionedScalar lambdaIn_;
|
||||
|
||||
//- Xi generation rate model due to all other processes
|
||||
@ -87,11 +86,11 @@ class instability2G
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
instability2G(const instability2G&) = delete;
|
||||
//- Disallow copy construct
|
||||
instability2G(const instability2G&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const instability2G&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instability2G&);
|
||||
|
||||
|
||||
public:
|
||||
@ -114,12 +113,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instability2G() = default;
|
||||
virtual ~instability2G();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling generation rate
|
||||
//- Return the flame-wrinking generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -5,7 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -58,6 +58,12 @@ Foam::XiGModels::instabilityG::instabilityG
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiGModels::instabilityG::~instabilityG()
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::G() const
|
||||
@ -76,7 +82,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::Db() const
|
||||
const volScalarField& mgb = db.lookupObject<volScalarField>("mgb");
|
||||
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
|
||||
|
||||
//// OLD return turbulence_.muEff()
|
||||
//return turbulence_.muEff()
|
||||
return Db1
|
||||
+ rho*Su_*(Xp*Xi - 1.0)*mgb*(0.5*lambdaIn_)/(mgb + 1.0/lambdaIn_);
|
||||
}
|
||||
|
||||
@ -5,8 +5,7 @@
|
||||
\\ / A nd | www.openfoam.com
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -28,9 +27,10 @@ Class
|
||||
Foam::XiGModels::instabilityG
|
||||
|
||||
Description
|
||||
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
|
||||
Flame-surface instabilityG flame-wrinking 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
|
||||
|
||||
//- No copy construct
|
||||
instabilityG(const instabilityG&) = delete;
|
||||
//- Disallow copy construct
|
||||
instabilityG(const instabilityG&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const instabilityG&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const instabilityG&);
|
||||
|
||||
|
||||
public:
|
||||
@ -97,12 +97,12 @@ public:
|
||||
|
||||
|
||||
//- Destructor
|
||||
virtual ~instabilityG() = default;
|
||||
virtual ~instabilityG();
|
||||
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling generation rate
|
||||
//- Return the flame-wrinking generation rate
|
||||
virtual tmp<volScalarField> G() const;
|
||||
|
||||
//- Return the flame diffusivity
|
||||
|
||||
@ -89,7 +89,7 @@ Foam::XiModel::XiModel
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiModel::~XiModel()
|
||||
{}
|
||||
@ -99,7 +99,7 @@ Foam::XiModel::~XiModel()
|
||||
|
||||
bool Foam::XiModel::read(const dictionary& XiProperties)
|
||||
{
|
||||
XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
|
||||
XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -110,9 +110,10 @@ namespace Foam
|
||||
|
||||
class XiModel
|
||||
{
|
||||
|
||||
protected:
|
||||
|
||||
// Protected Data
|
||||
// Protected data
|
||||
|
||||
dictionary XiModelCoeffs_;
|
||||
|
||||
@ -123,20 +124,21 @@ protected:
|
||||
const volScalarField& b_;
|
||||
const surfaceScalarField& phi_;
|
||||
|
||||
//- Flame wrinkling field
|
||||
//- Flame wrinking field
|
||||
volScalarField Xi_;
|
||||
|
||||
//- Flame wrinkling field for the subgrid obstacles
|
||||
//- Flame wrinking field for the subgrid obstacles
|
||||
volScalarField Xp_;
|
||||
|
||||
private:
|
||||
|
||||
// Protected Member Functions
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
XiModel(const XiModel&) = delete;
|
||||
//- Disallow copy construct
|
||||
XiModel(const XiModel&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const XiModel&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const XiModel&);
|
||||
|
||||
|
||||
public:
|
||||
@ -209,13 +211,13 @@ public:
|
||||
|
||||
// Member Functions
|
||||
|
||||
//- Return the flame-wrinkling Xi
|
||||
//- Return the flame-wrinking Xi
|
||||
virtual const volScalarField& Xi() const
|
||||
{
|
||||
return Xi_;
|
||||
}
|
||||
|
||||
//- Return the obstacle-flame-wrinkling Xp
|
||||
//- Return the obstacle-flame-wrinking Xp
|
||||
virtual const volScalarField& Xp() const
|
||||
{
|
||||
return Xp_;
|
||||
@ -224,10 +226,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
|
||||
@ -241,10 +243,10 @@ public:
|
||||
fields.add(Xp_);
|
||||
}
|
||||
|
||||
//- Correct the flame-wrinkling Xi
|
||||
//- Correct the flame-wrinking Xi
|
||||
virtual void correct() = 0;
|
||||
|
||||
//- Correct the flame-wrinkling Xi using the given convection scheme
|
||||
//- Correct the flame-wrinking Xi using the given convection scheme
|
||||
virtual void correct(const fv::convectionScheme<scalar>&)
|
||||
{
|
||||
correct();
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2015 OpenFOAM Foundation
|
||||
Copyright (C) 2019 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -32,7 +31,7 @@ License
|
||||
|
||||
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
||||
(
|
||||
const dictionary& dict,
|
||||
const dictionary& propDict,
|
||||
const psiuReactionThermo& thermo,
|
||||
const compressible::RASModel& turbulence,
|
||||
const volScalarField& Su,
|
||||
@ -41,25 +40,27 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
|
||||
const surfaceScalarField& phi
|
||||
)
|
||||
{
|
||||
const word modelType(dict.get<word>("XiModel"));
|
||||
const word modelType(propDict.get<word>("XiModel"));
|
||||
|
||||
Info<< "Selecting flame-wrinkling model " << modelType << endl;
|
||||
|
||||
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
|
||||
dictionaryConstructorTable::iterator cstrIter =
|
||||
dictionaryConstructorTablePtr_->find(modelType);
|
||||
|
||||
if (!cstrIter.found())
|
||||
if (cstrIter == dictionaryConstructorTablePtr_->end())
|
||||
{
|
||||
FatalIOErrorInLookup
|
||||
FatalErrorIn
|
||||
(
|
||||
dict,
|
||||
"XiModel",
|
||||
modelType,
|
||||
*dictionaryConstructorTablePtr_
|
||||
) << exit(FatalIOError);
|
||||
"XiModel::New"
|
||||
) << "Unknown XiModel type "
|
||||
<< modelType << nl << nl
|
||||
<< "Valid XiModels are : " << endl
|
||||
<< dictionaryConstructorTablePtr_->sortedToc()
|
||||
<< exit(FatalError);
|
||||
}
|
||||
|
||||
return autoPtr<XiModel>
|
||||
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
|
||||
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -88,7 +88,7 @@ Foam::XiModels::transportTwoEqs::transportTwoEqs
|
||||
{}
|
||||
|
||||
|
||||
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
|
||||
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
|
||||
|
||||
Foam::XiModels::transportTwoEqs::~transportTwoEqs()
|
||||
{}
|
||||
@ -155,13 +155,8 @@ 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_
|
||||
@ -190,11 +185,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);
|
||||
|
||||
@ -218,7 +213,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 length scale for subgrid obstacles
|
||||
//- Dissipation lenght scale for subgrid obstacles
|
||||
volScalarField Ep_;
|
||||
|
||||
|
||||
// Private Member Functions
|
||||
|
||||
//- No copy construct
|
||||
transportTwoEqs(const transportTwoEqs&) = delete;
|
||||
//- Disallow copy construct
|
||||
transportTwoEqs(const transportTwoEqs&);
|
||||
|
||||
//- No copy assignment
|
||||
void operator=(const transportTwoEqs&) = delete;
|
||||
//- Disallow default bitwise assignment
|
||||
void operator=(const transportTwoEqs&);
|
||||
|
||||
|
||||
public:
|
||||
@ -121,13 +121,13 @@ public:
|
||||
//- Return the flame diffusivity
|
||||
virtual tmp<volScalarField> Db() const;
|
||||
|
||||
//- Correct the flame-wrinkling Xi
|
||||
//- Correct the flame-wrinking Xi
|
||||
virtual void correct()
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- Correct the flame-wrinkling Xi using the given convection scheme
|
||||
//- Correct the flame-wrinking Xi using the given convection scheme
|
||||
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
|
||||
|
||||
//- Update properties from given dictionary
|
||||
|
||||
@ -28,11 +28,10 @@ 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);
|
||||
|
||||
@ -95,8 +94,6 @@ if (ign.ignited())
|
||||
bEqn.relax();
|
||||
fvOptions.constrain(bEqn);
|
||||
bEqn.solve();
|
||||
b.max(0.0);
|
||||
b.min(1.0);
|
||||
|
||||
fvOptions.correct(b);
|
||||
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -48,34 +47,6 @@ 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
|
||||
@ -111,15 +82,24 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
|
||||
UFL_(coeffsDict_.get<scalar>("upperFlamabilityLimit")),
|
||||
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
|
||||
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
|
||||
Texp_(),
|
||||
pexp_(),
|
||||
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")),
|
||||
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;
|
||||
|
||||
@ -132,7 +112,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
|
||||
if (debug)
|
||||
{
|
||||
Info<< "phi Su (T = Tref, p = pref)" << endl;
|
||||
const label n = 200;
|
||||
label n = 200;
|
||||
for (int i=0; i<n; i++)
|
||||
{
|
||||
scalar phi = (2.0*i)/n;
|
||||
@ -156,7 +136,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::polyPhi
|
||||
const polynomial& a
|
||||
)
|
||||
{
|
||||
const scalar x = phi - 1.0;
|
||||
scalar x = phi - 1.0;
|
||||
|
||||
return
|
||||
a[0]
|
||||
@ -174,19 +154,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
|
||||
{
|
||||
if (phi < LFL_ || phi > UFL_)
|
||||
{
|
||||
// Return 0 beyond the flammability limits
|
||||
// Return 0 beyond the flamibility limits
|
||||
return scalar(0);
|
||||
}
|
||||
else if (phi < SuPolyL_.ll)
|
||||
{
|
||||
// Use linear interpolation between the low end of the
|
||||
// lower polynomial and the lower flammability limit
|
||||
// lower polynomial and the lower flamibility 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 flammability limit
|
||||
// upper polynomial and the upper flamibility limit
|
||||
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
|
||||
}
|
||||
else if (phi < SuPolyL_.lu)
|
||||
@ -201,7 +181,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorInFunction
|
||||
FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)")
|
||||
<< "phi = " << phi
|
||||
<< " cannot be handled by SCOPE function with the "
|
||||
"given coefficients"
|
||||
@ -224,13 +204,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 flammability limit
|
||||
// lower polynomial and the lower flamibility 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 flammability limit
|
||||
// upper polynomial and the upper flamibility limit
|
||||
return MaPolyU_.ulv*(UFL_ - phi)/(UFL_ - MaPolyU_.ul);
|
||||
}
|
||||
else if (phi < MaPolyL_.lu)
|
||||
@ -245,7 +225,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
|
||||
}
|
||||
else
|
||||
{
|
||||
FatalErrorInFunction
|
||||
FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)")
|
||||
<< "phi = " << phi
|
||||
<< " cannot be handled by SCOPE function with the "
|
||||
"given coefficients"
|
||||
@ -263,13 +243,33 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
scalar phi
|
||||
) const
|
||||
{
|
||||
constexpr scalar Tref = 300.0;
|
||||
constexpr scalar pRef = 1.013e5;
|
||||
static const scalar Tref = 300.0;
|
||||
static const scalar pRef = 1.013e5;
|
||||
scalar phi1=phi-1.0;
|
||||
|
||||
const scalar Texp = Texp_.value(phi-1.0);
|
||||
const scalar pexp = pexp_.value(phi-1.0);
|
||||
scalar Texp_=
|
||||
Texp0_+phi1*
|
||||
(
|
||||
Texp1_
|
||||
+Texp2_*phi1+
|
||||
Texp3_*pow(phi1, 2) +
|
||||
Texp4_*pow(phi1, 3) +
|
||||
Texp5_*pow(phi1, 4) +
|
||||
Texp6_*pow(phi1, 5)
|
||||
);
|
||||
|
||||
return SuRef(phi)*pow((Tu/Tref), Texp)*pow((p/pRef), pexp);
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
@ -280,20 +280,24 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
scalar phi
|
||||
) const
|
||||
{
|
||||
auto tSu0 = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tSu0
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
IOobject
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
)
|
||||
);
|
||||
auto& Su0 = tSu0.ref();
|
||||
|
||||
volScalarField& Su0 = tSu0.ref();
|
||||
|
||||
forAll(Su0, celli)
|
||||
{
|
||||
@ -323,20 +327,24 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
|
||||
const volScalarField& phi
|
||||
) const
|
||||
{
|
||||
auto tSu0 = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tSu0
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
IOobject
|
||||
(
|
||||
"Su0",
|
||||
p.time().timeName(),
|
||||
p.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
p.mesh(),
|
||||
dimensionedScalar(dimVelocity, Zero)
|
||||
)
|
||||
);
|
||||
auto& Su0 = tSu0.ref();
|
||||
|
||||
volScalarField& Su0 = tSu0.ref();
|
||||
|
||||
forAll(Su0, celli)
|
||||
{
|
||||
@ -365,38 +373,37 @@ 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
|
||||
{
|
||||
auto tMa = tmp<volScalarField>::New
|
||||
tmp<volScalarField> tMa
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"Ma",
|
||||
phi.time().timeName(),
|
||||
phi.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
phi.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
IOobject
|
||||
(
|
||||
"Ma",
|
||||
phi.time().timeName(),
|
||||
phi.db(),
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
phi.mesh(),
|
||||
dimensionedScalar(dimless, Zero)
|
||||
)
|
||||
);
|
||||
auto& ma = tMa.ref();
|
||||
|
||||
volScalarField& ma = tMa.ref();
|
||||
|
||||
forAll(ma, celli)
|
||||
{
|
||||
ma[celli] = Ma(phi[celli]);
|
||||
}
|
||||
|
||||
|
||||
|
||||
forAll(ma.boundaryField(), patchi)
|
||||
{
|
||||
scalarField& map = ma.boundaryFieldRef()[patchi];
|
||||
@ -411,6 +418,11 @@ 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
|
||||
@ -432,18 +444,21 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
|
||||
{
|
||||
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
|
||||
|
||||
return tmp<volScalarField>::New
|
||||
return tmp<volScalarField>
|
||||
(
|
||||
IOobject
|
||||
new volScalarField
|
||||
(
|
||||
"Ma",
|
||||
mesh.time().timeName(),
|
||||
IOobject
|
||||
(
|
||||
"Ma",
|
||||
mesh.time().timeName(),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
IOobject::NO_READ,
|
||||
IOobject::NO_WRITE
|
||||
),
|
||||
mesh,
|
||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
|
||||
)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,7 +6,6 @@
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
Copyright (C) 2011-2012 OpenFOAM Foundation
|
||||
Copyright (C) 2021 OpenCFD Ltd.
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
@ -66,7 +65,6 @@ SourceFiles
|
||||
#define SCOPE_H
|
||||
|
||||
#include "laminarFlameSpeed.H"
|
||||
#include "Polynomial.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -107,7 +105,7 @@ class SCOPE
|
||||
scalar lu;
|
||||
|
||||
//- Construct from dictionary
|
||||
explicit polynomial(const dictionary& polyDict);
|
||||
polynomial(const dictionary& polyDict);
|
||||
};
|
||||
|
||||
|
||||
@ -125,11 +123,47 @@ class SCOPE
|
||||
//- Upper Su polynomial
|
||||
polynomial SuPolyU_;
|
||||
|
||||
//- Temperature correction exponents
|
||||
Polynomial<7> Texp_;
|
||||
//- Temperature correction exponent0
|
||||
scalar Texp0_;
|
||||
|
||||
//- Pressure correction exponents
|
||||
Polynomial<7> pexp_;
|
||||
//- 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_;
|
||||
|
||||
//- Additional coefficient
|
||||
scalar CIn_;
|
||||
@ -183,7 +217,7 @@ class SCOPE
|
||||
//- No copy construct
|
||||
SCOPE(const SCOPE&) = delete;
|
||||
|
||||
//- No copy assignment
|
||||
//- No copy assign
|
||||
void operator=(const SCOPE&) = delete;
|
||||
|
||||
|
||||
@ -208,12 +242,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,16 +28,14 @@ Global
|
||||
readTimeControls
|
||||
|
||||
Description
|
||||
Read the control parameters used by setDeltaT.
|
||||
Modified for PDRFoam to include maxDeltaTRatio.
|
||||
Read the control parameters used by setDeltaT
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
const bool adjustTimeStep =
|
||||
runTime.controlDict().getOrDefault("adjustTimeStep", false);
|
||||
runTime.controlDict().getOrDefault<bool>("adjustTimeStep", false);
|
||||
|
||||
scalar maxCo =
|
||||
runTime.controlDict().getOrDefault<scalar>("maxCo", 1);
|
||||
scalar maxCo = runTime.controlDict().getOrDefault<scalar>("maxCo", 1.0);
|
||||
|
||||
scalar maxDeltaT =
|
||||
runTime.controlDict().getOrDefault<scalar>("maxDeltaT", GREAT);
|
||||
|
||||
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/Aw
Normal file
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/Aw
Normal file
File diff suppressed because it is too large
Load Diff
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/B
Normal file
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/B
Normal file
File diff suppressed because it is too large
Load Diff
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/CR
Normal file
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/CR
Normal file
File diff suppressed because it is too large
Load Diff
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/CT
Normal file
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/CT
Normal file
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/Nv
Normal file
8084
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/0.orig/Nv
Normal file
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,53 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,55 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,55 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,61 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,55 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,58 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,55 @@
|
||||
/*--------------------------------*- 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
@ -0,0 +1,65 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,54 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,56 @@
|
||||
/*--------------------------------*- 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
@ -0,0 +1,64 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,55 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
10
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/Allclean
Executable file
10
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/Allclean
Executable file
@ -0,0 +1,10 @@
|
||||
#!/bin/sh
|
||||
cd "${0%/*}" || exit # Run from this directory
|
||||
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
cleanCase0
|
||||
|
||||
rm -rf VTK
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
15
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/Allrun
Executable file
15
tutorials/combustion/PDRFoam/flamePropagationWithObstacles/Allrun
Executable file
@ -0,0 +1,15 @@
|
||||
#!/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)
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
@ -0,0 +1,8 @@
|
||||
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.
|
||||
@ -0,0 +1,103 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,46 @@
|
||||
/*--------------------------------*- 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;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,53 @@
|
||||
/*--------------------------------*- 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));
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,22 @@
|
||||
/*--------------------------------*- 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);
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,95 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,42 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,72 @@
|
||||
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
|
||||
);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,38 @@
|
||||
/*--------------------------------*- 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;
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,269 @@
|
||||
/*--------------------------------*- 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 ();
|
||||
}
|
||||
);
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,462 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,54 @@
|
||||
/*--------------------------------*- 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,8 +1,8 @@
|
||||
/*--------------------------------*- C++ -*----------------------------------*\
|
||||
| ========= | |
|
||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||
| \\ / O peration | Version: v1812 |
|
||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||
| \\ / O peration | Version: v2012 |
|
||||
| \\ / A nd | Website: www.openfoam.com |
|
||||
| \\/ M anipulation | |
|
||||
\*---------------------------------------------------------------------------*/
|
||||
FoamFile
|
||||
@ -16,11 +16,11 @@ FoamFile
|
||||
|
||||
numberOfSubdomains 4;
|
||||
|
||||
method scotch;
|
||||
method simple;
|
||||
|
||||
coeffs
|
||||
{
|
||||
n (2 2 2);
|
||||
n (2 2 1);
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,72 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,76 @@
|
||||
/*--------------------------------*- 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;
|
||||
}
|
||||
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -0,0 +1,63 @@
|
||||
/*--------------------------------*- 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,8 +12,6 @@ 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 8;
|
||||
timePrecision 6;
|
||||
|
||||
runTimeModifiable yes;
|
||||
|
||||
@ -52,6 +52,8 @@ maxDeltaT 1;
|
||||
|
||||
functions
|
||||
{
|
||||
#include "probes"
|
||||
|
||||
normalisedGradP
|
||||
{
|
||||
libs (utilityFunctionObjects);
|
||||
|
||||
87
tutorials/combustion/PDRFoam/pipeLattice/system/probes
Normal file
87
tutorials/combustion/PDRFoam/pipeLattice/system/probes
Normal file
@ -0,0 +1,87 @@
|
||||
/*--------------------------------*- 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