Compare commits

..

5 Commits

Author SHA1 Message Date
c5081a26ca TUT: deleting flamePropagationWithObstacles 2021-03-08 10:15:46 -08:00
a8ce8ed6f3 TUT: Updating tutorial for PDRFoam 2021-03-08 10:14:26 -08:00
6a78c3c84e ENH: Adding bounding on b 2021-03-04 15:36:35 -08:00
30eb0014c7 STY: Cleaning up tutorial settings 2021-03-04 17:21:04 +01:00
b38802ea0d INT: update of PDRFoam 2021-03-04 12:34:29 +01:00
82 changed files with 554 additions and 67732 deletions

View File

@ -12,7 +12,6 @@ XiModels/XiEqModels/BLMgMaXiEq/BLMgMaXiEq.C
XiModels/XiGModels/XiGModel/XiGModel.C
XiModels/XiGModels/XiGModel/XiGModelNew.C
XiModels/XiGModels/KTS/KTS.C
XiModels/XiGModels/instabilityG/instabilityG.C
XiModels/XiGModels/instability2G/instability2G.C
@ -25,7 +24,6 @@ PDRModels/dragModels/basic/basic.C
PDRModels/dragModels/basicSch/basicSch.C
PDRModels/XiEqModels/normBasicXiSubXiEq/normBasicXiSubXiEq.C
PDRModels/XiGModels/normBasicXiSubG/normBasicXiSubG.C
laminarFlameSpeed/SCOPE/SCOPELaminarFlameSpeed.C

View File

@ -1,9 +1,12 @@
EXE_INC = -DFULLDEBUG -O0 -g \
EXE_INC = \
-IXiModels/XiModel \
-IXiModels/XiEqModels/XiEqModel \
-IXiModels/XiGModels/XiGModel \
-IPDRModels/dragModels/PDRDragModel \
-IlaminarFlameSpeed/SCOPE \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/surfMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/engine/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
@ -12,13 +15,12 @@ EXE_INC = -DFULLDEBUG -O0 -g \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/laminarFlameSpeed/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude \
-I$(LIB_SRC)/dynamicMesh/lnInclude \
-I$(LIB_SRC)/meshTools/lnInclude \
-I$(LIB_SRC)/triSurface/lnInclude \
-I$(LIB_SRC)/dynamicFvMesh/lnInclude
EXE_LIBS = \
-lfiniteVolume \
-lfvOptions \
-lmeshTools \
-lengine \
-lturbulenceModels \
@ -28,6 +30,4 @@ EXE_LIBS = \
-lreactionThermophysicalModels \
-lspecie \
-llaminarFlameSpeedModels \
-lfiniteVolume \
-ldynamicFvMesh \
-lfvOptions
-ldynamicFvMesh

View File

@ -60,7 +60,7 @@ Foam::XiEqModels::normBasicSubGrid::normBasicSubGrid
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiEqModels::normBasicSubGrid::~normBasicSubGrid()
{}
@ -81,64 +81,54 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::normBasicSubGrid::XiEq() const
volScalarField magU(mag(U));
const scalarField Cw = pow(mesh.V(), 2.0/3.0);
const scalarField Cw(pow(mesh.V(), 2.0/3.0));
tmp<volScalarField> tN
auto tN = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tN",
mesh.time().constant(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tN",
mesh.time().constant(),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
);
volScalarField& N = tN.ref();
auto& N = tN.ref();
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
tmp<volSymmTensorField> tns
auto tns = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
volSymmTensorField& ns = tns.ref();
auto& ns = tns.ref();
tmp<volSymmTensorField> tB
auto tB = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tB",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tB",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor(Bv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(Bv.dimensions(), Zero)
);
volSymmTensorField& B = tB.ref();
auto& B = tB.ref();
//calculating flame normal

View File

@ -54,7 +54,7 @@ class normBasicSubGrid
:
public XiEqModel
{
// Private data
// Private Data
// Constants in the equilibrium Xp equation
scalar Cxpe1_;
@ -65,11 +65,11 @@ class normBasicSubGrid
// Private Member Functions
//- Disallow copy construct
normBasicSubGrid(const normBasicSubGrid&);
//- No copy construct
normBasicSubGrid(const normBasicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const normBasicSubGrid&);
//- No copy assignment
void operator=(const normBasicSubGrid&) = delete;
public:
@ -97,7 +97,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary

View File

@ -26,8 +26,8 @@ License
\*---------------------------------------------------------------------------*/
#include "normBasicXiSubG.H"
#include "addToRunTimeSelectionTable.H"
#include "zeroGradientFvPatchField.H"
#include "addToRunTimeSelectionTable.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -37,8 +37,8 @@ namespace XiGModels
{
defineTypeNameAndDebug(normBasicSubGrid, 0);
addToRunTimeSelectionTable(XiGModel, normBasicSubGrid, dictionary);
};
};
}
}
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
@ -74,12 +74,6 @@ Foam::XiGModels::normBasicSubGrid::normBasicSubGrid
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiGModels::normBasicSubGrid::~normBasicSubGrid()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
@ -112,13 +106,9 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
if (!db.foundObject<volScalarField>("Ep"))
{
FatalErrorIn
(
"Foam::tmp<Foam::volScalarField> Foam::XiGModels::"
"normBasicSubGrid::G() const"
)
<< "Looking for Ep in db which does not exist "
<< Foam::abort(FatalError);
FatalErrorInFunction
<< "Looking for Ep in db that does not exist" << nl
<< Foam::abort(FatalError);
}
const volScalarField& Ep = db.lookupObject<volScalarField>("Ep");
@ -126,27 +116,21 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
const volScalarField& Xi = db.lookupObject<volScalarField>("Xi");
//tmp<volScalarField> tGtot = XiGModel_->G();
tmp<volScalarField> tGtot
auto tGtot = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tGtot",
Su_.mesh().time().timeName(),
Su_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
"tGtot",
Su_.mesh().time().timeName(),
Su_.mesh(),
dimensionedScalar(inv(dimTime), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
Su_.mesh(),
dimensionedScalar(inv(dimTime), Zero)
);
volScalarField& Gtot = tGtot.ref();
auto& Gtot = tGtot.ref();
//calculating flame normal
@ -164,68 +148,55 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
flNormal /= mgb;
tmp<volScalarField> tN
auto tN = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tN",
Su_.mesh().time().timeName(),
Su_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
"tN",
Su_.mesh().time().timeName(),
Su_.mesh(),
dimensionedScalar(Nv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
Su_.mesh(),
dimensionedScalar(Nv.dimensions(), Zero)
);
volScalarField& N = tN.ref();
auto& N = tN.ref();
N.primitiveFieldRef() = Nv.primitiveField()*Cw;
tmp<volSymmTensorField> tns
auto tns = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
Su_.mesh().time().timeName(),
Su_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
Su_.mesh().time().timeName(),
Su_.mesh(),
dimensionedSymmTensor(nsv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
Su_.mesh(),
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
volSymmTensorField& ns = tns.ref();
auto& ns = tns.ref();
ns.primitiveFieldRef() = nsv.primitiveField()*Cw;
tmp<volSymmTensorField> tB
auto tB = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tB",
Su_.mesh().time().timeName(),
Su_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tB",
Su_.mesh().time().timeName(),
Su_.mesh(),
dimensionedSymmTensor(Bv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
Su_.mesh(),
dimensionedSymmTensor(Bv.dimensions(), Zero)
);
volSymmTensorField& B = tB.ref();
auto& B = tB.ref();
B.primitiveFieldRef() = Bv.primitiveField()*sqrt(Cw);
@ -254,14 +225,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::G() const
Gtot = value*Gtot1+(1.0 - value)*Gtot2;
//if (Xi.mesh().time().outputTime())
{
//Gtot.write();
//bl.write();
//Lobs.write();
//flSpeed.write();
//N.write();
}
/// if (Xi.mesh().time().outputTime())
/// {
/// Gtot.write();
/// bl.write();
/// Lobs.write();
/// flSpeed.write();
/// N.write();
/// }
return tGtot;
}
@ -278,8 +249,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::normBasicSubGrid::Db() const
const volScalarField& Db = db.lookupObject<volScalarField>("Db");
//return turbulence_.muEff()
return Db
+ rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
return Db + rho*Su_*(Xi - 1.0)*mgb*(0.5*Lobs)*Lobs/(mgb*Lobs + 1.0);
}

View File

@ -29,7 +29,6 @@ Class
Description
SourceFiles
normBasicSubGrid.C
@ -55,7 +54,7 @@ class normBasicSubGrid
:
public XiGModel
{
// Private data
// Private Data
//- Sub-grid generation rate coefficient
scalar k1_;
@ -75,13 +74,14 @@ class normBasicSubGrid
//- Maximum Lobs/CellWidth
scalar LOverCw_;
// Private Member Functions
//- Disallow copy construct
normBasicSubGrid(const normBasicSubGrid&);
//- No copy construct
normBasicSubGrid(const normBasicSubGrid&) = delete;
//- Disallow default bitwise assignment
void operator=(const normBasicSubGrid&);
//- No copy assignment
void operator=(const normBasicSubGrid&) = delete;
public:
@ -104,12 +104,12 @@ public:
//- Destructor
virtual ~normBasicSubGrid();
virtual ~normBasicSubGrid() = default;
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -71,7 +71,7 @@ Foam::PDRDragModel::PDRDragModel
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::PDRDragModel::~PDRDragModel()
{}
@ -89,4 +89,10 @@ bool Foam::PDRDragModel::read(const dictionary& PDRProperties)
}
void Foam::PDRDragModel::writeFields() const
{
NotImplemented;
}
// ************************************************************************* //

View File

@ -57,10 +57,9 @@ class PDRDragModel
:
public regIOobject
{
protected:
// Protected data
// Protected Data
dictionary PDRDragModelCoeffs_;
@ -72,15 +71,13 @@ protected:
bool on_;
private:
// Protected Member Functions
// Private Member Functions
//- No copy construct
PDRDragModel(const PDRDragModel&) = delete;
//- Disallow copy construct
PDRDragModel(const PDRDragModel&);
//- Disallow default bitwise assignment
void operator=(const PDRDragModel&);
//- No copy assignment
void operator=(const PDRDragModel&) = delete;
public:
@ -146,7 +143,7 @@ public:
// Member Functions
//- Return true if the drag model is switched on
bool on() const
bool on() const noexcept
{
return on_;
}
@ -170,10 +167,7 @@ public:
}
//- Write fields
virtual void writeFields() const
{
NotImplemented;
}
virtual void writeFields() const;
};

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,34 +32,31 @@ License
Foam::autoPtr<Foam::PDRDragModel> Foam::PDRDragModel::New
(
const dictionary& PDRProperties,
const dictionary& dict,
const compressible::RASModel& turbulence,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi
)
{
const word modelType(PDRProperties.get<word>("PDRDragModel"));
const word modelType(dict.get<word>("PDRDragModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
Info<< "Selecting drag model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorIn
FatalIOErrorInLookup
(
"PDRDragModel::New"
) << "Unknown PDRDragModel type "
<< modelType << nl << nl
<< "Valid PDRDragModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
dict,
"PDRDragModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<PDRDragModel>
(cstrIter()(PDRProperties,turbulence, rho, U, phi));
return autoPtr<PDRDragModel>(cstrIter()(dict, turbulence, rho, U, phi));
}

View File

@ -83,7 +83,7 @@ Foam::PDRDragModels::basic::basic
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::PDRDragModels::basic::~basic()
{}
@ -93,24 +93,20 @@ Foam::PDRDragModels::basic::~basic()
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
{
tmp<volSymmTensorField> tDragDcu
auto tDragDcu = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tDragDcu",
U_.mesh().time().constant(),
U_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tDragDcu",
U_.mesh().time().constant(),
U_.mesh(),
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
);
volSymmTensorField& DragDcu = tDragDcu.ref();
auto& DragDcu = tDragDcu.ref();
if (on_)
{
@ -127,24 +123,20 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basic::Dcu() const
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basic::Gk() const
{
tmp<volScalarField> tGk
auto tGk = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tGk",
U_.mesh().time().constant(),
U_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tGk",
U_.mesh().time().constant(),
U_.mesh(),
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
);
volScalarField& Gk = tGk.ref();
auto& Gk = tGk.ref();
if (on_)
{
@ -181,4 +173,5 @@ void Foam::PDRDragModels::basic::writeFields() const
CR_.write();
}
// ************************************************************************* //

View File

@ -99,7 +99,7 @@ class basic
:
public PDRDragModel
{
// Private data
// Private Data
dimensionedScalar Csu;
dimensionedScalar Csk;
@ -110,11 +110,11 @@ class basic
// Private Member Functions
//- Disallow copy construct
basic(const basic&);
//- No copy construct
basic(const basic&) = delete;
//- Disallow default bitwise assignment
void operator=(const basic&);
//- No copy assignment
void operator=(const basic&) = delete;
public:

View File

@ -86,7 +86,7 @@ Foam::PDRDragModels::basicSch::basicSch
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::PDRDragModels::basicSch::~basicSch()
{}
@ -96,25 +96,20 @@ Foam::PDRDragModels::basicSch::~basicSch()
Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
{
tmp<volSymmTensorField> tDragDcu
auto tDragDcu = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tDragDcu",
U_.mesh().time().constant(),
U_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tDragDcu",
U_.mesh().time().constant(),
U_.mesh(),
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedSymmTensor(dimMass/dimTime/dimVolume, Zero)
);
volSymmTensorField& DragDcu = tDragDcu.ref();
auto& DragDcu = tDragDcu.ref();
if (on_)
{
@ -131,25 +126,20 @@ Foam::tmp<Foam::volSymmTensorField> Foam::PDRDragModels::basicSch::Dcu() const
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
{
tmp<volScalarField> tGk
auto tGk = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tGk",
U_.mesh().time().constant(),
U_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tGk",
U_.mesh().time().constant(),
U_.mesh(),
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar(dimMass/dimLength/pow3(dimTime), Zero)
);
volScalarField& Gk = tGk.ref();
auto& Gk = tGk.ref();
if (on_)
{
@ -165,39 +155,35 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::Gk() const
if (subGridSchelkin_)
{
Gk *= schFac();
Gk *= this->SchelkinFactor();
}
}
return tGk;
}
Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::schFac() const
Foam::tmp<Foam::volScalarField>
Foam::PDRDragModels::basicSch::SchelkinFactor() const
{
const volScalarField& Su_ = U_.db().lookupObject<volScalarField>("Su");
const volScalarField& rhou_ = U_.db().lookupObject<volScalarField>("rhou");
const volScalarField& muu_ = U_.db().lookupObject<volScalarField>("muu");
tmp<volScalarField> tfac
auto tfac = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tfac",
U_.mesh().time().constant(),
U_.mesh(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tfac",
U_.mesh().time().constant(),
U_.mesh(),
dimensionedScalar(dimless, Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
U_.mesh(),
dimensionedScalar(dimless, Zero)
);
volScalarField& schFac = tfac.ref();
auto& schFac = tfac.ref();
const volScalarField& k = turbulence_.k();
const volScalarField& epsilon = turbulence_.epsilon();
@ -239,47 +225,38 @@ Foam::tmp<Foam::volScalarField> Foam::PDRDragModels::basicSch::SchelkinExponent
const volSymmTensorField& nsv =
mesh.lookupObject<volSymmTensorField>("nsv");
tmp<volScalarField> tN
auto tN = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tN",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
"tN",
mesh.time().timeName(),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
);
volScalarField& N = tN.ref();
auto& N = tN.ref();
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
tmp<volSymmTensorField> tns
auto tns = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
volSymmTensorField& ns = tns.ref();
auto& ns = tns.ref();
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);

View File

@ -28,7 +28,6 @@ Class
Description
SourceFiles
basicSch.C
@ -54,7 +53,7 @@ class basicSch
:
public PDRDragModel
{
// Private data
// Private Data
dimensionedScalar Csu;
dimensionedScalar Csk;
@ -73,11 +72,11 @@ class basicSch
// Private Member Functions
//- Disallow copy construct
basicSch(const basicSch&);
//- No copy construct
basicSch(const basicSch&) = delete;
//- Disallow default bitwise assignment
void operator=(const basicSch&);
//- No copy assignment
void operator=(const basicSch&) = delete;
public:
@ -117,8 +116,8 @@ public:
//- Write fields
void writeFields() const;
//- Return the schelkin factor for drag turbulence generation rate
tmp<volScalarField> schFac() const;
//- Return the Schelkin factor for drag turbulence generation rate
tmp<volScalarField> SchelkinFactor() const;
//- Return the sub-grid Schelkin effect exponent
tmp<volScalarField> SchelkinExponent

View File

@ -89,7 +89,7 @@ Foam::XiEqModels::BLMgMaXiEq::BLMgMaXiEq
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiEqModels::BLMgMaXiEq::~BLMgMaXiEq()
{}
@ -117,21 +117,18 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::BLMgMaXiEq::XiEq() const
volScalarField regime("regime", MaModel.Ma()*scalar(0.0));
tmp<volScalarField> tXiEq
auto tXiEq = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"XiEq",
epsilon.time().timeName(),
epsilon.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
epsilon.mesh(),
dimensionedScalar(dimless, Zero)
)
"XiEq",
epsilon.time().timeName(),
epsilon.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
epsilon.mesh(),
dimensionedScalar(dimless, Zero)
);
const objectRegistry& db = Su_.db();

View File

@ -95,11 +95,11 @@ class BLMgMaXiEq
// Private Member Functions
//- Disallow copy construct
BLMgMaXiEq(const BLMgMaXiEq&);
//- No copy construct
BLMgMaXiEq(const BLMgMaXiEq&) = delete;
//- Disallow default bitwise assignment
void operator=(const BLMgMaXiEq&);
//- No copy assignment
void operator=(const BLMgMaXiEq&) = delete;
public:
@ -127,12 +127,11 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary
virtual bool read(const dictionary& XiEqProperties);
};

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -63,12 +64,6 @@ Foam::XiEqModels::Gulder::Gulder
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiEqModels::Gulder::~Gulder()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const

View File

@ -55,7 +55,7 @@ class Gulder
:
public XiEqModel
{
// Private data
// Private Data
//- Model constant
scalar XiEqCoef_;
@ -65,6 +65,7 @@ class Gulder
//- Schelkin effect Model constant
scalar uPrimeCoef_;
scalar nrExp_;
//- Use sub-grid Schelkin effect
@ -73,11 +74,11 @@ class Gulder
// Private Member Functions
//- Disallow copy construct
Gulder(const Gulder&);
//- No copy construct
Gulder(const Gulder&) = delete;
//- Disallow default bitwise assignment
void operator=(const Gulder&);
//- No copy assignment
void operator=(const Gulder&) = delete;
public:
@ -100,17 +101,16 @@ public:
//- Destructor
virtual ~Gulder();
virtual ~Gulder() = default;
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary
virtual bool read(const dictionary& XiEqProperties);
};

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -60,7 +61,7 @@ Foam::XiEqModel::XiEqModel
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiEqModel::~XiEqModel()
{}
@ -78,9 +79,7 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
void Foam::XiEqModel::writeFields() const
{
}
{}
Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
@ -98,46 +97,38 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
const volSymmTensorField& nsv =
mesh.lookupObject<volSymmTensorField>("nsv");
tmp<volScalarField> tN
auto tN = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"tN",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
"tN",
mesh.time().timeName(),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE,
false
),
mesh,
dimensionedScalar(Nv.dimensions(), Zero)
);
volScalarField& N = tN.ref();
auto& N = tN.ref();
N.primitiveFieldRef() = Nv.primitiveField()*pow(mesh.V(), 2.0/3.0);
tmp<volSymmTensorField> tns
auto tns = tmp<volSymmTensorField>::New
(
new volSymmTensorField
IOobject
(
IOobject
(
"tns",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"tns",
mesh.time().timeName(),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedSymmTensor(nsv.dimensions(), Zero)
);
volSymmTensorField& ns = tns.ref();
auto& ns = tns.ref();
ns.primitiveFieldRef() = nsv.primitiveField()*pow(mesh.V(), 2.0/3.0);
@ -156,7 +147,7 @@ Foam::tmp<Foam::volScalarField>Foam::XiEqModel::calculateSchelkinEffect
N.primitiveFieldRef() = upLocal*(max(scalar(1.0), pow(nr, nrExp)) - 1.0);
return tN;
}
// ************************************************************************* //

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -53,10 +54,9 @@ namespace Foam
class XiEqModel
{
protected:
// Protected data
// Protected Data
//- Dictionary
dictionary XiEqModelCoeffs_;
@ -70,15 +70,14 @@ protected:
//- Laminar burning velocity
const volScalarField& Su_;
private:
// Private Member Functions
// Protected Member Functions
//- Disallow copy construct
XiEqModel(const XiEqModel&);
//- No copy construct
XiEqModel(const XiEqModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiEqModel&);
//- No copy assignment
void operator=(const XiEqModel&) = delete;
public:
@ -143,7 +142,7 @@ public:
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const = 0;
// Only used by sperseded modles

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,41 +32,33 @@ License
Foam::autoPtr<Foam::XiEqModel> Foam::XiEqModel::New
(
const dictionary& propDict,
const dictionary& dict,
const word& modelName,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.get<word>(modelName));
const word modelType(dict.get<word>(modelName));
Info<< "Selecting flame-wrinkling model Eq " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorIn
FatalIOErrorInLookup
(
"XiEqModel::New"
"("
" const psiuReactionThermo& thermo,"
" const word& modelType,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiEqModel type "
<< modelType << nl << nl
<< "Valid XiEqModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
dict,
modelName,
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiEqModel>(cstrIter()
(
propDict, modelName, thermo, turbulence, Su)
dict, modelName, thermo, turbulence, Su)
);
}

View File

@ -27,8 +27,6 @@ License
#include "instability2XiEq.H"
#include "addToRunTimeSelectionTable.H"
#include "IFstream.H"
#include "fvCFD.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -76,19 +74,13 @@ Foam::XiEqModels::instability2XiEq::instability2XiEq
XiEqModel::New(XiEqModelCoeffs_, modelType, thermo, turbulence, Su)
)
{
if (CIn_ <= 0.0)
if (CIn_ <= 0.0)
{
CIn_ = defaultCIn_;
}
}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiEqModels::instability2XiEq::~instability2XiEq()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiEqModels::instability2XiEq::XiEq() const
@ -108,8 +100,8 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::instability2XiEq::XiEq() const
ignition ign(combustionProperties, Su_.mesh().time(), Su_.mesh());
//const scalar ignTim = ign.sites()[0].tmIgn();
scalar curTime = Su_.mesh().time().value();
scalar deltaT = Su_.mesh().time().deltaTValue();
const scalar curTime = Su_.mesh().time().value();
const scalar deltaT = Su_.mesh().time().deltaTValue();
const scalar ignTim = curTime - deltaT - ign.sites()[0].time();
volScalarField turbXiEq(XiEqModel_->XiEq());

View File

@ -62,7 +62,7 @@ class instability2XiEq
{
// Private data
// -Laminar burning speed
//- Laminar burning speed
laminarFlameSpeedModels::SCOPE saModel_;
//- GIn (initial instability G)divided by Su^2. Read from fuel file
@ -80,11 +80,11 @@ class instability2XiEq
// Private Member Functions
//- Disallow copy construct
instability2XiEq(const instability2XiEq&);
//- No copy construct
instability2XiEq(const instability2XiEq&) = delete;
//- Disallow default bitwise assignment
void operator=(const instability2XiEq&);
//- No copy assignment
void operator=(const instability2XiEq&) = delete;
public:
@ -107,17 +107,16 @@ public:
//- Destructor
virtual ~instability2XiEq();
virtual ~instability2XiEq() = default;
// Member Functions
//- Return the flame-wrinking XiEq
//- Return the flame-wrinkling XiEq
virtual tmp<volScalarField> XiEq() const;
//- Update properties from given dictionary
virtual bool read(const dictionary& XiEqProperties);
};

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -51,17 +52,11 @@ Foam::XiGModels::KTS::KTS
const volScalarField& Su
)
:
XiGModel(XiGProperties,modelType, thermo, turbulence, Su),
XiGModel(XiGProperties, modelType, thermo, turbulence, Su),
GEtaCoef_(XiGModelCoeffs_.get<scalar>("GEtaCoef"))
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiGModels::KTS::~KTS()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiGModels::KTS::G() const

View File

@ -5,7 +5,8 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -55,18 +56,18 @@ class KTS
:
public XiGModel
{
// Private data
// Private Data
scalar GEtaCoef_;
// Private Member Functions
//- Disallow copy construct
KTS(const KTS&);
//- No copy construct
KTS(const KTS&) = delete;
//- Disallow default bitwise assignment
void operator=(const KTS&);
//- No copy assignment
void operator=(const KTS&) = delete;
public:
@ -89,12 +90,12 @@ public:
//- Destructor
virtual ~KTS();
virtual ~KTS() = default;
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -60,7 +60,7 @@ Foam::XiGModel::XiGModel
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiGModel::~XiGModel()
{}

View File

@ -53,10 +53,9 @@ namespace Foam
class XiGModel
{
protected:
// Protected data
// Protected Data
dictionary XiGModelCoeffs_;
@ -65,15 +64,13 @@ protected:
const volScalarField& Su_;
private:
// Protected Member Functions
// Private Member Functions
//- No copy construct
XiGModel(const XiGModel&) = delete;
//- Disallow copy construct
XiGModel(const XiGModel&);
//- Disallow default bitwise assignment
void operator=(const XiGModel&);
//- No copy assignment
void operator=(const XiGModel&) = delete;
public:
@ -138,7 +135,7 @@ public:
// Member Functions
//- Return the flame-wrinking genration rate
//- Return the flame-wrinkling genration rate
virtual tmp<volScalarField> G() const = 0;
//- Return the flame diffusivity

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019-2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,40 +32,33 @@ License
Foam::autoPtr<Foam::XiGModel> Foam::XiGModel::New
(
const dictionary& propDict,
const dictionary& dict,
const word& modelName,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su
)
{
const word modelType(propDict.get<word>(modelName));
const word modelType(dict.get<word>(modelName));
Info<< "Selecting flame-wrinkling model for G " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorIn
FatalIOErrorInLookup
(
"XiGModel::New"
"("
" const psiuReactionThermo& thermo,"
" const compressible::RASModel& turbulence,"
" const volScalarField& Su"
")"
) << "Unknown XiGModel type "
<< modelType << nl << nl
<< "Valid XiGModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
dict,
modelName,
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiGModel>(cstrIter()
(
propDict, modelName, thermo, turbulence, Su)
dict, modelName, thermo, turbulence, Su)
);
}

View File

@ -75,37 +75,31 @@ Foam::XiGModels::instability2G::instability2G
lambdaIn_("lambdaIn", XiGModelCoeffs_),
XiGModel_
(
XiGModel::New(XiGModelCoeffs_,modelType,thermo, turbulence, Su)
XiGModel::New(XiGModelCoeffs_, modelType, thermo, turbulence, Su)
)
{
if (CIn_ <= 0.0)
if (CIn_ <= 0.0)
{
CIn_ = defaultCIn_;
}
}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiGModels::instability2G::~instability2G()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
{
IOdictionary combustionProperties
IOdictionary combustionProperties
(
IOobject
(
IOobject
(
"combustionProperties",
Su_.mesh().time().constant(),
Su_.mesh(),
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
"combustionProperties",
Su_.mesh().time().constant(),
Su_.mesh(),
IOobject::MUST_READ,
IOobject::NO_WRITE
)
);
ignition ign(combustionProperties, Su_.mesh().time(), Su_.mesh());
@ -117,7 +111,6 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
volScalarField GIn("GIn", 0.0*turbXiG);
forAll (GIn, i)
{
GIn[i] = CIn_*Su_[i]*Su_[i]*exp(CIn_*Su_[i]*Su_[i]*ignTim)*GInMult_;
@ -129,13 +122,14 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instability2G::G() const
GIn = CIn*Su_*Su_*exp(CIn*Su_*Su_*ignTm)*GInMult_;
GIn *=
GIn
/
(
GIn /
(
GIn
+ GInFade_*turbXiG
+ dimensionedScalar("GSmall", inv(dimTime), SMALL)
);
)
);
return (GIn + turbXiG);
}

View File

@ -27,7 +27,8 @@ Class
Foam::XiGModels::instability2G
Description
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
used in \link XiModel.H \endlink.
SourceFiles
instability2G.C
@ -45,7 +46,6 @@ SourceFiles
#include "Time.H"
#include "fvMesh.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
namespace Foam
@ -61,7 +61,7 @@ class instability2G
:
public XiGModel
{
// Private data
// Private Data
laminarFlameSpeedModels::SCOPE saModel_;
@ -72,12 +72,13 @@ class instability2G
scalar defaultCIn_;
// Determine how fast GIn fades out as turbulence starts
scalar GInFade_;
scalar GInFade_;
// Set GIn large so that XiEq determines Xi value. Son increase byfactor:
scalar GInMult_;
// Set GIn large so that XiEq determines Xi value.
// Son increase byfactor:
scalar GInMult_;
//- instability2G length-scale
//- The instability2G length-scale
dimensionedScalar lambdaIn_;
//- Xi generation rate model due to all other processes
@ -86,11 +87,11 @@ class instability2G
// Private Member Functions
//- Disallow copy construct
instability2G(const instability2G&);
//- No copy construct
instability2G(const instability2G&) = delete;
//- Disallow default bitwise assignment
void operator=(const instability2G&);
//- No copy assignment
void operator=(const instability2G&) = delete;
public:
@ -113,12 +114,12 @@ public:
//- Destructor
virtual ~instability2G();
virtual ~instability2G() = default;
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -5,7 +5,7 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -58,12 +58,6 @@ Foam::XiGModels::instabilityG::instabilityG
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
Foam::XiGModels::instabilityG::~instabilityG()
{}
// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * //
Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::G() const
@ -82,7 +76,7 @@ Foam::tmp<Foam::volScalarField> Foam::XiGModels::instabilityG::Db() const
const volScalarField& mgb = db.lookupObject<volScalarField>("mgb");
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
//return turbulence_.muEff()
//// OLD return turbulence_.muEff()
return Db1
+ rho*Su_*(Xp*Xi - 1.0)*mgb*(0.5*lambdaIn_)/(mgb + 1.0/lambdaIn_);
}

View File

@ -5,7 +5,8 @@
\\ / A nd | www.openfoam.com
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -27,10 +28,9 @@ Class
Foam::XiGModels::instabilityG
Description
Flame-surface instabilityG flame-wrinking generation rate coefficient model
Flame-surface instabilityG flame-wrinkling generation rate coefficient model
used in \link XiModel.H \endlink.
SourceFiles
instabilityG.C
@ -56,7 +56,7 @@ class instabilityG
:
public XiGModel
{
// Private data
// Private Data
//- Flame instabilityG wrinling generation rate coefficient
dimensionedScalar GIn_;
@ -70,11 +70,11 @@ class instabilityG
// Private Member Functions
//- Disallow copy construct
instabilityG(const instabilityG&);
//- No copy construct
instabilityG(const instabilityG&) = delete;
//- Disallow default bitwise assignment
void operator=(const instabilityG&);
//- No copy assignment
void operator=(const instabilityG&) = delete;
public:
@ -97,12 +97,12 @@ public:
//- Destructor
virtual ~instabilityG();
virtual ~instabilityG() = default;
// Member Functions
//- Return the flame-wrinking generation rate
//- Return the flame-wrinkling generation rate
virtual tmp<volScalarField> G() const;
//- Return the flame diffusivity

View File

@ -89,7 +89,7 @@ Foam::XiModel::XiModel
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiModel::~XiModel()
{}
@ -99,7 +99,7 @@ Foam::XiModel::~XiModel()
bool Foam::XiModel::read(const dictionary& XiProperties)
{
XiModelCoeffs_ = XiProperties.subDict(type() + "Coeffs");
XiModelCoeffs_ = XiProperties.optionalSubDict(type() + "Coeffs");
return true;
}

View File

@ -110,10 +110,9 @@ namespace Foam
class XiModel
{
protected:
// Protected data
// Protected Data
dictionary XiModelCoeffs_;
@ -124,21 +123,20 @@ protected:
const volScalarField& b_;
const surfaceScalarField& phi_;
//- Flame wrinking field
//- Flame wrinkling field
volScalarField Xi_;
//- Flame wrinking field for the subgrid obstacles
//- Flame wrinkling field for the subgrid obstacles
volScalarField Xp_;
private:
// Private Member Functions
// Protected Member Functions
//- Disallow copy construct
XiModel(const XiModel&);
//- No copy construct
XiModel(const XiModel&) = delete;
//- Disallow default bitwise assignment
void operator=(const XiModel&);
//- No copy assignment
void operator=(const XiModel&) = delete;
public:
@ -211,13 +209,13 @@ public:
// Member Functions
//- Return the flame-wrinking Xi
//- Return the flame-wrinkling Xi
virtual const volScalarField& Xi() const
{
return Xi_;
}
//- Return the obstacle-flame-wrinking Xp
//- Return the obstacle-flame-wrinkling Xp
virtual const volScalarField& Xp() const
{
return Xp_;
@ -226,10 +224,10 @@ public:
//- Return the flame diffusivity
virtual tmp<volScalarField> Db() const
{
const objectRegistry& db = Su_.db();
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
//return turbulence_.muEff();
return Db1;
const objectRegistry& db = Su_.db();
const volScalarField& Db1 = db.lookupObject<volScalarField>("Db");
//return turbulence_.muEff();
return Db1;
}
//- Add Xi to the multivariateSurfaceInterpolationScheme table
@ -243,10 +241,10 @@ public:
fields.add(Xp_);
}
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct() = 0;
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>&)
{
correct();

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2015 OpenFOAM Foundation
Copyright (C) 2019 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -31,7 +32,7 @@ License
Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
(
const dictionary& propDict,
const dictionary& dict,
const psiuReactionThermo& thermo,
const compressible::RASModel& turbulence,
const volScalarField& Su,
@ -40,27 +41,25 @@ Foam::autoPtr<Foam::XiModel> Foam::XiModel::New
const surfaceScalarField& phi
)
{
const word modelType(propDict.get<word>("XiModel"));
const word modelType(dict.get<word>("XiModel"));
Info<< "Selecting flame-wrinkling model " << modelType << endl;
dictionaryConstructorTable::iterator cstrIter =
dictionaryConstructorTablePtr_->find(modelType);
auto cstrIter = dictionaryConstructorTablePtr_->cfind(modelType);
if (cstrIter == dictionaryConstructorTablePtr_->end())
if (!cstrIter.found())
{
FatalErrorIn
FatalIOErrorInLookup
(
"XiModel::New"
) << "Unknown XiModel type "
<< modelType << nl << nl
<< "Valid XiModels are : " << endl
<< dictionaryConstructorTablePtr_->sortedToc()
<< exit(FatalError);
dict,
"XiModel",
modelType,
*dictionaryConstructorTablePtr_
) << exit(FatalIOError);
}
return autoPtr<XiModel>
(cstrIter()(propDict, thermo, turbulence, Su, rho, b, phi));
(cstrIter()(dict, thermo, turbulence, Su, rho, b, phi));
}

View File

@ -88,7 +88,7 @@ Foam::XiModels::transportTwoEqs::transportTwoEqs
{}
// * * * * * * * * * * * * * * * * Destructors * * * * * * * * * * * * * * * //
// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * //
Foam::XiModels::transportTwoEqs::~transportTwoEqs()
{}
@ -155,8 +155,13 @@ void Foam::XiModels::transportTwoEqs::correct
const volScalarField Gpfi
(
CpfiDot_*sqrt(max(fvc::grad(rho_)&fvc::grad(p), zero ))/rho_*b_*(1.0-b_)
+ CpfiCross_*sqrt(mag(fvc::grad(rho_)^fvc::grad(p) ))/rho_*b_*(1.0-b_)
CpfiDot_
* sqrt(max(fvc::grad(rho_)&fvc::grad(p), zero))
/ rho_*b_*(1.0-b_)
+ CpfiCross_
* sqrt(mag(fvc::grad(rho_)^fvc::grad(p)))
/ rho_*b_*(1.0-b_)
);
fvScalarMatrix XiEqn_
@ -185,11 +190,11 @@ void Foam::XiModels::transportTwoEqs::correct
const volScalarField Rp("Rp", GpEta*XpEqEta/(XpEqEta - 0.999));
const volScalarField XpEq
const volScalarField XpEq
(
"XpEq",
1.0 + (1.0 + (2*XiShapeCoef_)*(0.5 - b_))*(XpEqEta - 1.0)
);
);
const volScalarField Gpp("Gpp", Rp*(XpEq - 1.0)/XpEq);
@ -213,7 +218,7 @@ void Foam::XiModels::transportTwoEqs::correct
// Calculate Ep
const volScalarField& Lobs = db.lookupObject<volScalarField>("Lobs");
const scalarField Cw = pow(Su_.mesh().V(), 2.0/3.0);
const scalarField Cw(pow(Su_.mesh().V(), 2.0/3.0));
volScalarField LI(Lobs);
LI.primitiveFieldRef() = max(LI.primitiveField(),LOverCw_*sqrt(Cw));

View File

@ -78,17 +78,17 @@ class transportTwoEqs
//- Generation for Xp (obstacles)
autoPtr<XiGModel> XpGModel_;
//- Dissipation lenght scale for subgrid obstacles
//- Dissipation length scale for subgrid obstacles
volScalarField Ep_;
// Private Member Functions
//- Disallow copy construct
transportTwoEqs(const transportTwoEqs&);
//- No copy construct
transportTwoEqs(const transportTwoEqs&) = delete;
//- Disallow default bitwise assignment
void operator=(const transportTwoEqs&);
//- No copy assignment
void operator=(const transportTwoEqs&) = delete;
public:
@ -121,13 +121,13 @@ public:
//- Return the flame diffusivity
virtual tmp<volScalarField> Db() const;
//- Correct the flame-wrinking Xi
//- Correct the flame-wrinkling Xi
virtual void correct()
{
NotImplemented;
}
//- Correct the flame-wrinking Xi using the given convection scheme
//- Correct the flame-wrinkling Xi using the given convection scheme
virtual void correct(const fv::convectionScheme<scalar>& mvConvection);
//- Update properties from given dictionary

View File

@ -28,10 +28,11 @@ if (ign.ignited())
// Wrinkling due to turbulence
const volScalarField& Xi = flameWrinkling->Xi();
// Wrinkling due to obstacles
const volScalarField& Xp = flameWrinkling->Xp();
// progress variable
// Progress variable
// ~~~~~~~~~~~~~~~~~
c = (1.0 - b);
@ -94,6 +95,8 @@ if (ign.ignited())
bEqn.relax();
fvOptions.constrain(bEqn);
bEqn.solve();
b.max(0.0);
b.min(1.0);
fvOptions.correct(b);

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -47,6 +48,34 @@ namespace laminarFlameSpeedModels
}
// * * * * * * * * * * * * * * * Local Functions * * * * * * * * * * * * * * //
namespace Foam
{
static void readPolynomialCoeffs
(
Polynomial<7>& coeffs,
const word& keyword,
const dictionary& dict
)
{
{
coeffs[0] = dict.get<scalar>(keyword + "0");
coeffs[1] = dict.get<scalar>(keyword + "1");
coeffs[2] = dict.get<scalar>(keyword + "2");
coeffs[3] = dict.get<scalar>(keyword + "3");
coeffs[4] = dict.get<scalar>(keyword + "4");
coeffs[5] = dict.get<scalar>(keyword + "5");
coeffs[6] = dict.get<scalar>(keyword + "6");
}
// TBD: support direct reading of all coeffs?
}
} // End namespace Foam
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
Foam::laminarFlameSpeedModels::SCOPE::polynomial::polynomial
@ -82,24 +111,15 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
UFL_(coeffsDict_.get<scalar>("upperFlamabilityLimit")),
SuPolyL_(coeffsDict_.subDict("lowerSuPolynomial")),
SuPolyU_(coeffsDict_.subDict("upperSuPolynomial")),
Texp0_(coeffsDict_.get<scalar>("Texp0")),
Texp1_(coeffsDict_.get<scalar>("Texp1")),
Texp2_(coeffsDict_.get<scalar>("Texp2")),
Texp3_(coeffsDict_.get<scalar>("Texp3")),
Texp4_(coeffsDict_.get<scalar>("Texp4")),
Texp5_(coeffsDict_.get<scalar>("Texp5")),
Texp6_(coeffsDict_.get<scalar>("Texp6")),
pexp0_(coeffsDict_.get<scalar>("pexp0")),
pexp1_(coeffsDict_.get<scalar>("pexp1")),
pexp2_(coeffsDict_.get<scalar>("pexp2")),
pexp3_(coeffsDict_.get<scalar>("pexp3")),
pexp4_(coeffsDict_.get<scalar>("pexp4")),
pexp5_(coeffsDict_.get<scalar>("pexp5")),
pexp6_(coeffsDict_.get<scalar>("pexp6")),
Texp_(),
pexp_(),
CIn_(coeffsDict_.getOrDefault<scalar>("CIn", 0)),
MaPolyL_(coeffsDict_.subDict("lowerMaPolynomial")),
MaPolyU_(coeffsDict_.subDict("upperMaPolynomial"))
{
readPolynomialCoeffs(Texp_, "Texp", coeffsDict_);
readPolynomialCoeffs(pexp_, "pexp", coeffsDict_);
SuPolyL_.ll = max(SuPolyL_.ll, LFL_) + SMALL;
SuPolyU_.ul = min(SuPolyU_.ul, UFL_) - SMALL;
@ -112,7 +132,7 @@ Foam::laminarFlameSpeedModels::SCOPE::SCOPE
if (debug)
{
Info<< "phi Su (T = Tref, p = pref)" << endl;
label n = 200;
const label n = 200;
for (int i=0; i<n; i++)
{
scalar phi = (2.0*i)/n;
@ -136,7 +156,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::polyPhi
const polynomial& a
)
{
scalar x = phi - 1.0;
const scalar x = phi - 1.0;
return
a[0]
@ -154,19 +174,19 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
{
if (phi < LFL_ || phi > UFL_)
{
// Return 0 beyond the flamibility limits
// Return 0 beyond the flammability limits
return scalar(0);
}
else if (phi < SuPolyL_.ll)
{
// Use linear interpolation between the low end of the
// lower polynomial and the lower flamibility limit
// lower polynomial and the lower flammability limit
return SuPolyL_.llv*(phi - LFL_)/(SuPolyL_.ll - LFL_);
}
else if (phi > SuPolyU_.ul)
{
// Use linear interpolation between the upper end of the
// upper polynomial and the upper flamibility limit
// upper polynomial and the upper flammability limit
return SuPolyU_.ulv*(UFL_ - phi)/(UFL_ - SuPolyU_.ul);
}
else if (phi < SuPolyL_.lu)
@ -181,7 +201,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::SuRef
}
else
{
FatalErrorIn("laminarFlameSpeedModels::SCOPE::SuRef(scalar phi)")
FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
@ -204,13 +224,13 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
else if (phi < MaPolyL_.ll)
{
// Use linear interpolation between the low end of the
// lower polynomial and the lower flamibility limit
// lower polynomial and the lower flammability limit
return MaPolyL_.llv*(phi - LFL_)/(MaPolyL_.ll - LFL_);
}
else if (phi > MaPolyU_.ul)
{
// Use linear interpolation between the upper end of the
// upper polynomial and the upper flamibility limit
// upper polynomial and the upper flammability limit
return MaPolyU_.ulv*(UFL_ - phi)/(UFL_ - MaPolyU_.ul);
}
else if (phi < MaPolyL_.lu)
@ -225,7 +245,7 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Ma
}
else
{
FatalErrorIn("laminarFlameSpeedModels::SCOPE::Ma(scalar phi)")
FatalErrorInFunction
<< "phi = " << phi
<< " cannot be handled by SCOPE function with the "
"given coefficients"
@ -243,33 +263,13 @@ inline Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
scalar phi
) const
{
static const scalar Tref = 300.0;
static const scalar pRef = 1.013e5;
scalar phi1=phi-1.0;
constexpr scalar Tref = 300.0;
constexpr scalar pRef = 1.013e5;
scalar Texp_=
Texp0_+phi1*
(
Texp1_
+Texp2_*phi1+
Texp3_*pow(phi1, 2) +
Texp4_*pow(phi1, 3) +
Texp5_*pow(phi1, 4) +
Texp6_*pow(phi1, 5)
);
const scalar Texp = Texp_.value(phi-1.0);
const scalar pexp = pexp_.value(phi-1.0);
scalar pexp =
pexp0_ + phi1
*(
pexp1_
+ pexp2_*phi1
+ pexp3_*pow(phi1, 2)
+ pexp4_*pow(phi1, 3)
+ pexp5_*pow(phi1, 4)
+ pexp6_*pow(phi1, 5)
);
return SuRef(phi)*pow((Tu/Tref), Texp_)*pow((p/pRef), pexp);
return SuRef(phi)*pow((Tu/Tref), Texp)*pow((p/pRef), pexp);
}
@ -280,24 +280,20 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
scalar phi
) const
{
tmp<volScalarField> tSu0
auto tSu0 = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"Su0",
p.time().timeName(),
p.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar(dimVelocity, Zero)
)
"Su0",
p.time().timeName(),
p.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar(dimVelocity, Zero)
);
volScalarField& Su0 = tSu0.ref();
auto& Su0 = tSu0.ref();
forAll(Su0, celli)
{
@ -327,24 +323,20 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
const volScalarField& phi
) const
{
tmp<volScalarField> tSu0
auto tSu0 = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"Su0",
p.time().timeName(),
p.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar(dimVelocity, Zero)
)
"Su0",
p.time().timeName(),
p.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
p.mesh(),
dimensionedScalar(dimVelocity, Zero)
);
volScalarField& Su0 = tSu0.ref();
auto& Su0 = tSu0.ref();
forAll(Su0, celli)
{
@ -373,37 +365,38 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Su0pTphi
return tSu0;
}
Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::CIn() const noexcept
{
return CIn_ ;
}
Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
(
const volScalarField& phi
) const
{
tmp<volScalarField> tMa
auto tMa = tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"Ma",
phi.time().timeName(),
phi.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
phi.mesh(),
dimensionedScalar(dimless, Zero)
)
"Ma",
phi.time().timeName(),
phi.db(),
IOobject::NO_READ,
IOobject::NO_WRITE
),
phi.mesh(),
dimensionedScalar(dimless, Zero)
);
volScalarField& ma = tMa.ref();
auto& ma = tMa.ref();
forAll(ma, celli)
{
ma[celli] = Ma(phi[celli]);
}
forAll(ma.boundaryField(), patchi)
{
scalarField& map = ma.boundaryFieldRef()[patchi];
@ -418,11 +411,6 @@ Foam::tmp<Foam::volScalarField> Foam::laminarFlameSpeedModels::SCOPE::Ma
return tMa;
}
Foam::scalar Foam::laminarFlameSpeedModels::SCOPE::CIn() const
{
return CIn_ ;
}
Foam::tmp<Foam::volScalarField>
Foam::laminarFlameSpeedModels::SCOPE::Ma() const
@ -444,21 +432,18 @@ Foam::laminarFlameSpeedModels::SCOPE::Ma() const
{
const fvMesh& mesh = psiuReactionThermo_.p().mesh();
return tmp<volScalarField>
return tmp<volScalarField>::New
(
new volScalarField
IOobject
(
IOobject
(
"Ma",
mesh.time().timeName(),
mesh,
IOobject::NO_READ,
IOobject::NO_WRITE
),
"Ma",
mesh.time().timeName(),
mesh,
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
)
IOobject::NO_READ,
IOobject::NO_WRITE
),
mesh,
dimensionedScalar("Ma", dimless, Ma(equivalenceRatio_))
);
}
}

View File

@ -6,6 +6,7 @@
\\/ M anipulation |
-------------------------------------------------------------------------------
Copyright (C) 2011-2012 OpenFOAM Foundation
Copyright (C) 2021 OpenCFD Ltd.
-------------------------------------------------------------------------------
License
This file is part of OpenFOAM.
@ -65,6 +66,7 @@ SourceFiles
#define SCOPE_H
#include "laminarFlameSpeed.H"
#include "Polynomial.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -105,7 +107,7 @@ class SCOPE
scalar lu;
//- Construct from dictionary
polynomial(const dictionary& polyDict);
explicit polynomial(const dictionary& polyDict);
};
@ -123,47 +125,11 @@ class SCOPE
//- Upper Su polynomial
polynomial SuPolyU_;
//- Temperature correction exponent0
scalar Texp0_;
//- Temperature correction exponents
Polynomial<7> Texp_;
//- Temperature correction exponent1
scalar Texp1_;
//- Temperature correction exponent2
scalar Texp2_;
//- Temperature correction exponent3
scalar Texp3_;
//- Temperature correction exponent4
scalar Texp4_;
//- Temperature correction exponent5
scalar Texp5_;
//- Temperature correction exponent6
scalar Texp6_;
//- Pressure correction exponent0
scalar pexp0_;
//- Pressure correction exponent1
scalar pexp1_;
//- pressure correction exponent2
scalar pexp2_;
//- pressure correction exponent3
scalar pexp3_;
//- Pressure correction exponent4
scalar pexp4_;
//- Pressure correction exponent5
scalar pexp5_;
//- pressure correction exponent6
scalar pexp6_;
//- Pressure correction exponents
Polynomial<7> pexp_;
//- Additional coefficient
scalar CIn_;
@ -217,7 +183,7 @@ class SCOPE
//- No copy construct
SCOPE(const SCOPE&) = delete;
//- No copy assign
//- No copy assignment
void operator=(const SCOPE&) = delete;
@ -242,12 +208,12 @@ public:
// Member functions
//- Return CIn
scalar CIn() const noexcept;
//- Return the Markstein number
tmp<volScalarField> Ma() const;
//- Return CIn
scalar CIn() const;
//- Return the laminar flame speed [m/s]
tmp<volScalarField> operator()() const;
};

View File

@ -28,14 +28,16 @@ Global
readTimeControls
Description
Read the control parameters used by setDeltaT
Read the control parameters used by setDeltaT.
Modified for PDRFoam to include maxDeltaTRatio.
\*---------------------------------------------------------------------------*/
const bool adjustTimeStep =
runTime.controlDict().getOrDefault<bool>("adjustTimeStep", false);
runTime.controlDict().getOrDefault("adjustTimeStep", false);
scalar maxCo = runTime.controlDict().getOrDefault<scalar>("maxCo", 1.0);
scalar maxCo =
runTime.controlDict().getOrDefault<scalar>("maxCo", 1);
scalar maxDeltaT =
runTime.controlDict().getOrDefault<scalar>("maxDeltaT", GREAT);

View File

@ -1,53 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Su;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform 0.5;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 0.5;
value uniform 0.5;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object T;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 300;
value uniform 300;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
type zeroGradient;
value uniform 300;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Tu;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 1 0 0 0];
internalField uniform 300;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 300;
value uniform 300;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
type zeroGradient;
value uniform 300;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,61 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volVectorField;
location "0";
object U;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -1 0 0 0 0];
internalField uniform (0 0 0);
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue (0 0 0);
value uniform (0 0 0);
}
ground
{
type noSlip;
}
blockedFaces
{
type noSlip;
}
baffleWall
{
type activePressureForceBaffleVelocity;
value uniform (0 0 0);
cyclicPatch baffleCyclic_half0;
opening 1;
openingTime 0.01;
maxOpenFractionDelta 0.1;
openFraction 0;
minThresholdValue 8000;
forceBased 0;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object Xi;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 1;
value uniform 1;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
type zeroGradient;
value uniform 1;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,58 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object alphat;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
outer
{
type calculated;
value uniform 0;
}
ground
{
type compressible::alphatWallFunction;
Prt 0.85;
value uniform 0;
}
blockedFaces
{
type compressible::alphatWallFunction;
Prt 0.85;
value nonuniform 0();
}
baffleWall
{
type compressible::alphatWallFunction;
Prt 0.85;
value nonuniform 0();
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object b;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 1;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 1;
value uniform 1;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
type zeroGradient;
value uniform 1;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,65 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object epsilon;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -3 0 0 0 0];
internalField uniform 0.1;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 0.1;
value uniform 0.1;
}
ground
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
blockedFaces
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0.1;
}
baffleWall
{
type epsilonWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 1e-05;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object ft;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 0 0 0 0 0 0];
internalField uniform 0.0623;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 0.0623;
value uniform 0.0623;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
value uniform 0.06024096;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,56 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 1.5;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 1.5;
value uniform 1.5;
}
ground
{
type kqRWallFunction;
value uniform 1.5;
}
blockedFaces
{
type kqRWallFunction;
value uniform 1.5;
}
baffleWall
{
type kqRWallFunction;
value uniform 1.5;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,56 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object k;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -2 0 0 0 0];
internalField uniform 1.5;
boundaryField
{
outer
{
type uniformInletOutlet;
uniformInletValue 1.5;
value uniform 1.5;
}
ground
{
type kqRWallFunction;
value uniform 1.5;
}
blockedFaces
{
type kqRWallFunction;
value uniform 1.5;
}
baffleWall
{
type kqRWallFunction;
value uniform 1.5;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,64 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object nut;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 2 -1 0 0 0 0];
internalField uniform 0;
boundaryField
{
outer
{
type calculated;
value uniform 0;
}
ground
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value uniform 0;
}
blockedFaces
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value nonuniform 0();
}
baffleWall
{
type nutkWallFunction;
Cmu 0.09;
kappa 0.41;
E 9.8;
value nonuniform 0();
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,55 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class volScalarField;
location "0";
object p;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [1 -1 -2 0 0 0 0];
internalField uniform 100000;
boundaryField
{
outer
{
type waveTransmissive;
gamma 1.3;
fieldInf 100000;
lInf 5;
value uniform 100000;
}
ground
{
type zeroGradient;
}
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
// ************************************************************************* //

View File

@ -1,10 +0,0 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/CleanFunctions # Tutorial clean functions
#------------------------------------------------------------------------------
cleanCase0
rm -rf VTK
#------------------------------------------------------------------------------

View File

@ -1,15 +0,0 @@
#!/bin/sh
cd "${0%/*}" || exit # Run from this directory
. ${WM_PROJECT_DIR:?}/bin/tools/RunFunctions # Tutorial run functions
#------------------------------------------------------------------------------
restore0Dir
runApplication blockMesh
runApplication changeDictionary
runApplication topoSet
runApplication PDRMesh -overwrite
runApplication $(getApplication)
#------------------------------------------------------------------------------

View File

@ -1,8 +0,0 @@
PDR test case
Step to introduce the PDR fields:
1) Create zero-size patches for wall or/and coupled baffles in
the boundary file.
2) Specify the boundary contitions for these patches in the fields.
3) Create the new PDR mesh using the PDRMesh utility.

View File

@ -1,103 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object PDRProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
PDRDragModel basic;
basicCoeffs
{
drag on;
Csu 0.5;
Csk 0.05;
}
XiModel transport;
transportCoeffs
{
XiShapeCoef 1;
}
XiEqModel instability;
instabilityCoeffs
{
XiEqIn 2.5;
XiEqModel basicSubGrid;
basicSubGridCoeffs
{
XiEqModel SCOPEBlend;
SCOPEBlendCoeffs
{
XiEqModelL
{
XiEqModel Gulder;
GulderCoeffs
{
XiEqCoef 0.62;
uPrimeCoef 1.0;
subGridSchelkin true;
}
}
XiEqModelH
{
XiEqModel SCOPEXiEq;
SCOPEXiEqCoeffs
{
XiEqCoef 1.6;
XiEqExp 0.33333;
lCoef 0.336;
uPrimeCoef 1.0;
subGridSchelkin true;
}
}
}
}
}
XiGModel instabilityG;
instabilityGCoeffs
{
lambdaIn lambdaIn [0 1 0 0 0 0 0] 0.6;
GIn GIn [0 0 -1 0 0 0 0] 1.917;
XiGModel basicSubGridG;
basicSubGridGCoeffs
{
k1 0.5;
XiGModel KTS;
KTSCoeffs
{
GEtaCoef 0.28;
}
}
}
// ************************************************************************* //

View File

@ -1,46 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object combustionProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
laminarFlameSpeedCorrelation SCOPE;
fuel Propane;
fuelFile "fuels/propane.dat";
ignite yes;
ignitionSites
(
{
location (1.5 1.5 0.5);
diameter 0.1;
start 1E-05;
duration 0.05;
strength 60.0;
}
);
ignitionSphereFraction 1;
ignitionThickness ignitionThickness [0 1 0 0 0 0 0] 0;
ignitionCircleFraction 0;
ignitionKernelArea ignitionKernelArea [0 2 0 0 0 0 0] 0;
// ************************************************************************* //

View File

@ -1,53 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object dynamicMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dynamicFvMesh dynamicRefineFvMesh;
// Refine every refineInterval timesteps
refineInterval 1;
// Maximum refinement level (starts from 0)
maxRefinement 2;
// Maximum cell limit (approximate)
maxCells 10000;
// volScalarField to base refinement on
field normalisedGradP;
nBufferLayers 1;
dumpLevel true;
lowerRefineLevel 0.5;
upperRefineLevel 1.5;
unrefineLevel 0.5;
nBufferLayers 1;
// Newly introduced patch points optionally get projected onto a surface
//projectSurfaces ("fixedWalls4.stl");
//projectPatches (fixedWalls);
// Maximum project distance
//projectDistance 1;
// Fluxes to adapt. For newly created faces or split faces the flux
// gets estimated from an interpolated volVectorField ('velocity')
// First is name of the flux to adapt, second is velocity that will
// be interpolated and inner-producted with the face area vector.
correctFluxes ((phi rhoU) (phi_0 none));
// ************************************************************************* //

View File

@ -1,22 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class uniformDimensionedVectorField;
location "constant";
object g;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
dimensions [0 1 -2 0 0 0 0];
value (0 0 -9.8);
// ************************************************************************* //

View File

@ -1,95 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object thermophysicalProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
thermoType
{
type heheuPsiThermo;
mixture inhomogeneousMixture;
transport sutherland;
thermo janaf;
equationOfState perfectGas;
specie specie;
energy absoluteEnthalpy;
}
stoichiometricAirFuelMassRatio stoichiometricAirFuelMassRatio [0 0 0 0 0 0 0] 15.5776;
fuel
{
specie
{
molWeight 44.0962;
}
thermodynamics
{
Tlow 200;
Thigh 5000;
Tcommon 1000;
highCpCoeffs ( 7.53414 0.0188722 -6.27185e-06 9.14756e-10 -4.78381e-14 -16467.5 -17.8923 );
lowCpCoeffs ( 0.933554 0.0264246 6.10597e-06 -2.19775e-08 9.51493e-12 -13958.5 19.2017 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
oxidant
{
specie
{
molWeight 28.8504;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 3.10131 0.00124137 -4.18816e-07 6.64158e-11 -3.91274e-15 -985.266 5.35597 );
lowCpCoeffs ( 3.58378 -0.000727005 1.67057e-06 -1.09203e-10 -4.31765e-13 -1050.53 3.11239 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
burntProducts
{
specie
{
molWeight 28.3233;
}
thermodynamics
{
Tlow 200;
Thigh 6000;
Tcommon 1000;
highCpCoeffs ( 3.10558 0.00179747 -5.94696e-07 9.05605e-11 -5.08443e-15 -11003.6 5.12104 );
lowCpCoeffs ( 3.49796 0.000638555 -1.83881e-07 1.20989e-09 -7.68691e-13 -11080.5 3.18188 );
}
transport
{
As 1.67212e-06;
Ts 170.672;
}
}
// ************************************************************************* //

View File

@ -1,42 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "constant";
object turbulenceProperties;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
simulationType RAS;
RAS
{
RASModel PDRkEpsilon;
PDRkEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
C3 0;
C4 0.1;
alphah 1;
alphak 1;
alphaEps 0.76923;
}
turbulence on;
printCoeffs on;
}
// ************************************************************************* //

View File

@ -1,72 +0,0 @@
SCOPECoeffs
{
lowerFlammabilityLimit 0.522;
upperFlammabilityLimit 2.362;
lowerSuPolynomial
{
lowerLimit 0.6;
upperLimit 1.2;
coefficients
(
0.45
0.713364389
-2.359004778
-2.629755677
-29.11933997
-55.34224225
0.0
);
}
upperSuPolynomial
{
lowerLimit 1.1;
upperLimit 1.64;
coefficients
(
0.419664668
2.280811555
-11.53872754
2.98656153
21.04870808
-16.09645303
0.0
);
}
Texp 2;
pexp -0.5;
lowerMaPolynomial
{
lowerLimit 0.5;
upperLimit 0.75;
coefficients
(
3.739047
-5.12414
-38.1444
-134.813
-224.633
-144.27
0
);
}
upperMaPolynomial
{
lowerLimit 0.75;
upperLimit 1.0;
coefficients
(
3.739047
-5.12414
-38.1444
-134.813
-224.633
-144.27
0
);
}
}

View File

@ -1,38 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object PDRMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//- Per faceSet the patch the faces should go into blocked baffles
blockedFaces ((blockedFacesSet blockedFaces));
//- Per faceSet the patch the faces should go into coupled baffles
coupledFaces
{
coupledFacesSet
{
wallPatch baffleWall;
cyclicMasterPatch baffleCyclic_half0;
}
}
//- Name of cellSet that holds the cells to fully remove
blockedCells blockedCellsSet;
//- All exposed faces that are not specified in blockedFaces go into
// this patch
defaultPatch outer;
// ************************************************************************* //

View File

@ -1,269 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
scale 1.0;
vertices
(
(0.0 0.0 0.0)
(1.0 0.0 0.0)
(2.0 0.0 0.0)
(3.0 0.0 0.0)
(0.0 1.0 0.0)
(1.0 1.0 0.0)
(2.0 1.0 0.0)
(3.0 1.0 0.0)
(0.0 2.0 0.0)
(1.0 2.0 0.0)
(2.0 2.0 0.0)
(3.0 2.0 0.0)
(0.0 3.0 0.0)
(1.0 3.0 0.0)
(2.0 3.0 0.0)
(3.0 3.0 0.0)
(0.0 0.0 1.0)
(1.0 0.0 1.0)
(2.0 0.0 1.0)
(3.0 0.0 1.0)
(0.0 1.0 1.0)
(1.0 1.0 1.0)
(2.0 1.0 1.0)
(3.0 1.0 1.0)
(0.0 2.0 1.0)
(1.0 2.0 1.0)
(2.0 2.0 1.0)
(3.0 2.0 1.0)
(0.0 3.0 1.0)
(1.0 3.0 1.0)
(2.0 3.0 1.0)
(3.0 3.0 1.0)
(0.0 0.0 2.0)
(1.0 0.0 2.0)
(2.0 0.0 2.0)
(3.0 0.0 2.0)
(0.0 1.0 2.0)
(1.0 1.0 2.0)
(2.0 1.0 2.0)
(3.0 1.0 2.0)
(0.0 2.0 2.0)
(1.0 2.0 2.0)
(2.0 2.0 2.0)
(3.0 2.0 2.0)
(0.0 3.0 2.0)
(1.0 3.0 2.0)
(2.0 3.0 2.0)
(3.0 3.0 2.0)
(-3.53553390593274 -3.53553390593274 0)
(-0.58113883008419 -4.74341649025257 0)
(3.58113883008419 -4.74341649025257 0)
(6.53553390593274 -3.53553390593274 0)
(-4.74341649025257 -0.58113883008419 0)
(-2.53553390593274 -2.53553390593274 0)
(5.53553390593274 -2.53553390593274 0)
(7.74341649025257 -0.58113883008419 0)
(-4.74341649025257 3.58113883008419 0)
(-2.53553390593274 5.53553390593274 0)
(5.53553390593274 5.53553390593274 0)
(7.74341649025257 3.58113883008419 0)
(-3.53553390593274 6.53553390593274 0)
(-0.58113883008419 7.74341649025257 0)
(3.58113883008419 7.74341649025257 0)
(6.53553390593274 6.53553390593274 0)
(-3.19801074533416 -3.19801074533416 3.1320071635561)
(-0.336306209562122 -4.00891862868637 3.67261241912424)
(3.33630620956212 -4.00891862868637 3.67261241912424)
(6.19801074533416 -3.19801074533416 3.1320071635561)
(-4.00891862868637 -0.336306209562122 3.67261241912424)
(7.00891862868637 -0.336306209562122 3.67261241912424)
(-4.00891862868637 3.33630620956212 3.67261241912424)
(7.00891862868637 3.33630620956212 3.67261241912424)
(-3.19801074533416 6.19801074533416 3.1320071635561)
(-0.336306209562122 7.00891862868637 3.67261241912424)
(3.33630620956212 7.00891862868637 3.67261241912424)
(6.19801074533416 6.19801074533416 3.1320071635561)
(-2.57247877713763 -2.57247877713763 5.42997170285018)
(0.0194193243090797 -2.94174202707276 5.92232270276368)
(2.98058067569092 -2.94174202707276 5.92232270276368)
(5.57247877713763 -2.57247877713763 5.42997170285018)
(-2.94174202707276 0.0194193243090797 5.92232270276368)
(-0.178511301977579 -0.178511301977579 6.71404520791032)
(3.17851130197758 -0.178511301977579 6.71404520791032)
(5.94174202707276 0.0194193243090797 5.92232270276368)
(-2.94174202707276 2.98058067569092 5.92232270276368)
(-0.178511301977579 3.17851130197758 6.71404520791032)
(3.17851130197758 3.17851130197758 6.71404520791032)
(5.94174202707276 2.98058067569092 5.92232270276368)
(-2.57247877713763 5.57247877713763 5.42997170285018)
(0.0194193243090797 5.94174202707276 5.92232270276368)
(2.98058067569092 5.94174202707276 5.92232270276368)
(5.57247877713763 5.57247877713763 5.42997170285018)
);
blocks
(
hex (0 1 5 4 16 17 21 20 ) (5 5 5) simpleGrading (1 1 1)
hex (1 2 6 5 17 18 22 21 ) (5 5 5) simpleGrading (1 1 1)
hex (2 3 7 6 18 19 23 22 ) (5 5 5) simpleGrading (1 1 1)
hex (4 5 9 8 20 21 25 24 ) (5 5 5) simpleGrading (1 1 1)
hex (5 6 10 9 21 22 26 25 ) (5 5 5) simpleGrading (1 1 1)
hex (6 7 11 10 22 23 27 26 )(5 5 5) simpleGrading (1 1 1)
hex (8 9 13 12 24 25 29 28 ) (5 5 5) simpleGrading (1 1 1)
hex (9 10 14 13 25 26 30 29 ) (5 5 5) simpleGrading (1 1 1)
hex (10 11 15 14 26 27 31 30 ) (5 5 5) simpleGrading (1 1 1)
hex (16 17 21 20 32 33 37 36 ) (5 5 5) simpleGrading (1 1 1)
hex (17 18 22 21 33 34 38 37 ) (5 5 5) simpleGrading (1 1 1)
hex (18 19 23 22 34 35 39 38 ) (5 5 5) simpleGrading (1 1 1)
hex (20 21 25 24 36 37 41 40 ) (5 5 5) simpleGrading (1 1 1)
hex (21 22 26 25 37 38 42 41 ) (5 5 5) simpleGrading (1 1 1)
hex (22 23 27 26 38 39 43 42 ) (5 5 5) simpleGrading (1 1 1)
hex (24 25 29 28 40 41 45 44 ) (5 5 5) simpleGrading (1 1 1)
hex (25 26 30 29 41 42 46 45 ) (5 5 5) simpleGrading (1 1 1)
hex (26 27 31 30 42 43 47 46 ) (5 5 5) simpleGrading (1 1 1)
hex (47 46 42 43 91 90 86 87) (5 5 7) simpleGrading (1 1 2.985984)
hex (46 45 41 42 90 89 85 86) (5 5 7) simpleGrading (1 1 2.985984)
hex (45 44 40 41 89 88 84 85) (5 5 7) simpleGrading (1 1 2.985984)
hex (43 42 38 39 87 86 82 83) (5 5 7) simpleGrading (1 1 2.985984)
hex (42 41 37 38 86 85 81 82) (5 5 7) simpleGrading (1 1 2.985984)
hex (41 40 36 37 85 84 80 81) (5 5 7) simpleGrading (1 1 2.985984)
hex (39 38 34 35 83 82 78 79) (5 5 7) simpleGrading (1 1 2.985984)
hex (38 37 33 34 82 81 77 78) (5 5 7) simpleGrading (1 1 2.985984)
hex (37 36 32 33 81 80 76 77) (5 5 7) simpleGrading (1 1 2.985984)
hex (0 16 20 4 48 64 68 52) (5 5 7) simpleGrading (1 1 2.985984)
hex (16 32 36 20 64 76 80 68) (5 5 7) simpleGrading (1 1 2.985984)
hex (4 20 24 8 52 68 70 56) (5 5 7) simpleGrading (1 1 2.985984)
hex (20 36 40 24 68 80 84 70) (5 5 7) simpleGrading (1 1 2.985984)
hex (8 24 28 12 56 70 72 60) (5 5 7) simpleGrading (1 1 2.985984)
hex (24 40 44 28 70 84 88 72) (5 5 7) simpleGrading (1 1 2.985984)
hex (47 43 27 31 91 87 71 75) (5 5 7) simpleGrading (1 1 2.985984)
hex (43 39 23 27 87 83 69 71) (5 5 7) simpleGrading (1 1 2.985984)
hex (39 35 19 23 83 79 67 69) (5 5 7) simpleGrading (1 1 2.985984)
hex (31 27 11 15 75 71 59 63) (5 5 7) simpleGrading (1 1 2.985984)
hex (27 23 7 11 71 69 55 59) (5 5 7) simpleGrading (1 1 2.985984)
hex (23 19 3 7 69 67 51 55) (5 5 7) simpleGrading (1 1 2.985984)
hex (0 1 17 16 48 49 65 64) (5 5 7) simpleGrading (1 1 2.985984)
hex (1 2 18 17 49 50 66 65) (5 5 7) simpleGrading (1 1 2.985984)
hex (2 3 19 18 50 51 67 66) (5 5 7) simpleGrading (1 1 2.985984)
hex (16 17 33 32 64 65 77 76) (5 5 7) simpleGrading (1 1 2.985984)
hex (17 18 34 33 65 66 78 77) (5 5 7) simpleGrading (1 1 2.985984)
hex (18 19 35 34 66 67 79 78) (5 5 7) simpleGrading (1 1 2.985984)
hex (47 31 30 46 91 75 74 90) (5 5 7) simpleGrading (1 1 2.985984)
hex (31 15 14 30 75 63 62 74) (5 5 7) simpleGrading (1 1 2.985984)
hex (46 30 29 45 90 74 73 89) (5 5 7) simpleGrading (1 1 2.985984)
hex (30 14 13 29 74 62 61 73) (5 5 7) simpleGrading (1 1 2.985984)
hex (45 29 28 44 89 73 72 88) (5 5 7) simpleGrading (1 1 2.985984)
hex (29 13 12 28 73 61 60 72) (5 5 7) simpleGrading (1 1 2.985984)
);
boundary
(
outer
{
type patch;
faces
(
(91 90 86 87)
(90 89 85 86)
(89 88 84 85)
(87 86 82 83)
(86 85 81 82)
(85 84 80 81)
(83 82 78 79)
(82 81 77 78)
(81 80 76 77)
(48 64 68 52)
(64 76 80 68)
(52 68 70 56)
(68 80 84 70)
(56 70 72 60)
(70 84 88 72)
(91 87 71 75)
(87 83 69 71)
(83 79 67 69)
(75 71 59 63)
(71 69 55 59)
(69 67 51 55)
(48 49 65 64)
(49 50 66 65)
(50 51 67 66)
(64 65 77 76)
(65 66 78 77)
(66 67 79 78)
(91 75 74 90)
(75 63 62 74)
(90 74 73 89)
(74 62 61 73)
(89 73 72 88)
(73 61 60 72)
);
}
ground
{
type wall;
faces
(
(0 4 5 1)
(1 5 6 2)
(2 6 7 3)
(4 8 9 5)
(5 9 10 6)
(6 10 11 7)
(8 12 13 9)
(9 13 14 10)
(10 14 15 11)
(4 0 48 52)
(8 4 52 56)
(12 8 56 60)
(11 15 63 59)
(7 11 59 55)
(3 7 55 51)
(0 1 49 48)
(1 2 50 49)
(2 3 51 50)
(15 14 62 63)
(14 13 61 62)
(13 12 60 61)
);
}
blockedFaces
{
type wall;
faces ();
}
baffleWall
{
type wall;
faces ();
}
baffleCyclic_half0
{
type cyclic;
neighbourPatch baffleCyclic_half1;
faces ();
}
baffleCyclic_half1
{
type cyclic;
neighbourPatch baffleCyclic_half0;
faces ();
}
);
// ************************************************************************* //

View File

@ -1,462 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object changeDictionaryDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
p
{
boundaryField
{
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
U
{
boundaryField
{
blockedFaces
{
type fixedValue;
value uniform (0 0 0);
}
baffleWall
{
type activePressureForceBaffleVelocity;
cyclicPatch baffleCyclic_half0;
orientation 1;
openingTime 0.01;
maxOpenFractionDelta 0.1;
openFraction 0;
minThresholdValue 8000;
forceBased 0;
value uniform (0 0 0);
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
epsilon
{
boundaryField
{
blockedFaces
{
type epsilonWallFunction;
value uniform 0.1;
}
baffleWall
{
type epsilonWallFunction;
value uniform 1e-5;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
k
{
boundaryField
{
blockedFaces
{
type kqRWallFunction;
value uniform 1.5;
}
baffleWall
{
type kqRWallFunction;
value uniform 1.5;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Su
{
boundaryField
{
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Xi
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
type zeroGradient;
value uniform 1;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
T
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
type zeroGradient;
value uniform 300;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Tu
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 300;
}
baffleWall
{
type zeroGradient;
value uniform 300;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
b
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 1;
}
baffleWall
{
type zeroGradient;
value uniform 1;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
ft
{
boundaryField
{
blockedFaces
{
type zeroGradient;
}
baffleWall
{
type zeroGradient;
value uniform 0.06024096;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Aw
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 0.0;
}
baffleWall
{
type zeroGradient;
value uniform 0.0;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
B
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
betav
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{
type zeroGradient;
value uniform 0;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
CR
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
CT
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Nv
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{
type zeroGradient;
value uniform 0;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
nsv
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleWall
{
type zeroGradient;
value uniform (0 0 0 0 0 0);
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
Lobs
{
boundaryField
{
blockedFaces
{
type zeroGradient;
value uniform 0;
}
baffleWall
{
type zeroGradient;
value uniform 0;
}
baffleCyclic_half0
{
type cyclic;
}
baffleCyclic_half1
{
type cyclic;
}
}
}
// ************************************************************************* //

View File

@ -1,54 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object controlDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
application PDRFoam;
startFrom latestTime;
startTime 0;
stopAt endTime;
endTime 0.2;
deltaT 5e-06;
writeControl adjustable;
writeInterval 0.01;
purgeWrite 0;
writeFormat ascii;
writePrecision 8;
writeCompression off;
timeFormat general;
timePrecision 6;
runTimeModifiable yes;
adjustTimeStep yes;
maxCo 0.2;
maxDeltaT 1;
// ************************************************************************* //

View File

@ -1,72 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSchemes;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
ddtSchemes
{
default Euler;
}
gradSchemes
{
default Gauss linear;
grad(p) Gauss linear;
}
divSchemes
{
default none;
div(phi,U) Gauss limitedLinearV 1;
div(phi,K) Gauss limitedLinear 1;
div(phid,p) Gauss limitedLinear 1;
div(phi,k) Gauss limitedLinear 1;
div(phi,epsilon) Gauss limitedLinear 1;
div(phiXi,Xi) Gauss limitedLinear 1;
div(phiSt,b) Gauss limitedLinear01 1;
div(phi,ft_b_ha_hau) Gauss multivariateSelection
{
ft limitedLinear01 1;
b limitedLinear01 1;
Xi limitedLinear 1;
ha limitedLinear 1;
hau limitedLinear 1;
};
div((Su*grad(b))) Gauss linear;
div((U+((Su*Xi)*grad(b)))) Gauss linear;
div(((rho*nuEff)*dev2(T(grad(U))))) Gauss linear;
div(U) Gauss linear;
}
laplacianSchemes
{
default Gauss linear limited corrected 0.33;
}
interpolationSchemes
{
default linear;
}
snGradSchemes
{
default limited corrected 0.33;
}
// ************************************************************************* //

View File

@ -1,76 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object fvSolution;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
solvers
{
rho
{
solver PCG;
preconditioner DIC;
tolerance 1e-05;
relTol 0.01;
};
rhoFinal
{
$rho;
tolerance 1e-06;
relTol 0;
};
p
{
solver PCG;
preconditioner DIC;
tolerance 1e-6;
relTol 0.01;
};
pFinal
{
$p;
tolerance 1e-6;
relTol 0;
};
"(b|Xi|ft|ha|hau|k|epsilon)"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-06;
relTol 0.1;
}
"(b|Xi|ft|ha|hau|k|epsilon)Final"
{
solver PBiCGStab;
preconditioner DILU;
tolerance 1e-06;
relTol 0;
}
}
PIMPLE
{
nCorrectors 2;
nOuterCorrectors 1;
nNonOrthogonalCorrectors 0;
momentumPredictor yes;
}
// ************************************************************************* //

View File

@ -1,63 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
location "system";
object topoSetDict.1;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
actions
(
{
name blockedFacesSet;
type faceSet;
action new;
source boxToFace;
box (1 1 0.99) (2 2 1);
}
{
name blockedCellsSet;
type cellSet;
action new;
source boxToCell;
box (2.4 2.4 0) (3 3 1);
}
{
name blockedCellsSet;
type cellSet;
action add;
source boxToCell;
box (0 0 0) (0.6 0.6 1);
}
{
name blockedFacesSet;
type faceSet;
action add;
source cellToFace;
set blockedCellsSet;
option all;
}
{
name coupledFacesSet;
type faceSet;
action new;
source boxToFace;
box (1.0 1.99 0) (2.0 2.09 0.6);
}
);
// ************************************************************************* //

View File

@ -12,6 +12,8 @@ runApplication PDRblockMesh
runApplication PDRsetFields
runApplication PDRMesh
# Get location for ignition
echo "Ignition point from constant/combustionProperties > system/ignitionPoint"

View File

@ -40,7 +40,7 @@ writeCompression off;
timeFormat general;
timePrecision 6;
timePrecision 8;
runTimeModifiable yes;
@ -52,8 +52,6 @@ maxDeltaT 1;
functions
{
#include "probes"
normalisedGradP
{
libs (utilityFunctionObjects);

View File

@ -1,8 +1,8 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\ / O peration | Version: v1812 |
| \\ / A nd | Web: www.OpenFOAM.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
@ -16,11 +16,11 @@ FoamFile
numberOfSubdomains 4;
method simple;
method scotch;
coeffs
{
n (2 2 1);
n (2 2 2);
}
// ************************************************************************* //

View File

@ -1,87 +0,0 @@
/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: v2012 |
| \\ / A nd | Website: www.openfoam.com |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
probes
{
type probes;
libs (sampling);
name probes;
writeControl timeStep;
writeInterval 1;
fields
(
p
b
epsilon
ft
k
rho
St
Su
T
U
Xi
);
probeLocations
(
(2. 1.95 0.1)
(2. 1.6 0.1)
(2. 1.2 0.1)
(2. 0.8 0.1)
(2. 0.4 0.1)
(2. 0.0 0.1)
(2.8 2.8 0.1)
(2 3.6 0.1)
(2. 2. 0.9)
(2. 2. 1.7)
(2. -0.2 0.1)
(2. -0.4 0.1)
(2 2 0.1)
(2.8 2 0.1)
(3.6 2 0.1)
(4.6 2 0.1)
(5.6 2 0.1)
(2 2.8 0.1)
(2 3.6 0.1)
(2 8.448 0.1)
(2 5.6 0.1)
(2 2 0.9)
(2.8 2 0.9)
(3.6 2 0.9)
(4.6 2 0.9)
(5.6 2 0.9)
(2 2.8 0.9)
(2 3.6 0.9)
(2 8.448 0.9)
(2 5.6 0.9)
(2 2 1.9)
(2.8 2 1.9)
(3.6 2 1.9)
(4.6 2 1.9)
(5.6 2 1.9)
(2 2.8 1.9)
(2 3.6 1.9)
(2 8.448 1.9)
(2 5.6 1.9)
(2 2 2.9)
(2.8 2.8 0.1)
(2.8 2.8 0.9)
(2.8 2.8 1.9)
(3.6 3.6 0.1)
(3.6 3.6 0.9)
(3.6 3.6 1.9)
);
}
// ************************************************************************* //