mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
Merge branch 'master' of /home/noisy3/OpenFOAM/OpenFOAM-dev
This commit is contained in:
@ -50,8 +50,7 @@ Foam::XiEqModels::Gulder::Gulder
|
|||||||
:
|
:
|
||||||
XiEqModel(XiEqProperties, thermo, turbulence, Su),
|
XiEqModel(XiEqProperties, thermo, turbulence, Su),
|
||||||
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
|
XiEqCoef_(readScalar(XiEqModelCoeffs_.lookup("XiEqCoef"))),
|
||||||
SuMin_(0.01*Su.average()),
|
SuMin_(0.01*Su.average())
|
||||||
uPrimeCoef_(readScalar(XiEqModelCoeffs_.lookup("uPrimeCoef")))
|
|
||||||
{}
|
{}
|
||||||
|
|
||||||
|
|
||||||
@ -67,78 +66,11 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::Gulder::XiEq() const
|
|||||||
{
|
{
|
||||||
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
volScalarField up(sqrt((2.0/3.0)*turbulence_.k()));
|
||||||
const volScalarField& epsilon = turbulence_.epsilon();
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
const fvMesh& mesh = Su_.mesh();
|
|
||||||
|
|
||||||
const volVectorField& U = mesh.lookupObject<volVectorField>("U");
|
if (subGridSchelkin())
|
||||||
|
{
|
||||||
const volSymmTensorField& CT = mesh.lookupObject<volSymmTensorField>("CT");
|
up.internalField() += calculateSchelkinEffect();
|
||||||
const volScalarField& Nv = mesh.lookupObject<volScalarField>("Nv");
|
}
|
||||||
const volSymmTensorField& nsv =
|
|
||||||
mesh.lookupObject<volSymmTensorField>("nsv");
|
|
||||||
|
|
||||||
tmp<volScalarField> tN
|
|
||||||
(
|
|
||||||
new volScalarField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"tN",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE,
|
|
||||||
false
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedScalar("zero", Nv.dimensions(), 0.0),
|
|
||||||
zeroGradientFvPatchVectorField::typeName
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
volScalarField& N = tN();
|
|
||||||
|
|
||||||
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
|
|
||||||
|
|
||||||
tmp<volSymmTensorField> tns
|
|
||||||
(
|
|
||||||
new volSymmTensorField
|
|
||||||
(
|
|
||||||
IOobject
|
|
||||||
(
|
|
||||||
"tns",
|
|
||||||
mesh.time().timeName(),
|
|
||||||
mesh,
|
|
||||||
IOobject::NO_READ,
|
|
||||||
IOobject::NO_WRITE
|
|
||||||
),
|
|
||||||
mesh,
|
|
||||||
dimensionedSymmTensor
|
|
||||||
(
|
|
||||||
"zero",
|
|
||||||
nsv.dimensions(),
|
|
||||||
pTraits<symmTensor>::zero
|
|
||||||
)
|
|
||||||
)
|
|
||||||
);
|
|
||||||
|
|
||||||
volSymmTensorField& ns = tns();
|
|
||||||
|
|
||||||
ns.internalField() = nsv.internalField()*pow(mesh.V(), 2.0/3.0);
|
|
||||||
|
|
||||||
const volVectorField Uhat
|
|
||||||
(
|
|
||||||
U/(mag(U) + dimensionedScalar("Usmall", U.dimensions(), 1e-4))
|
|
||||||
);
|
|
||||||
|
|
||||||
const volScalarField nr(sqrt(max(N - (Uhat & ns & Uhat), scalar(1e-4))));
|
|
||||||
|
|
||||||
const scalarField cellWidth(pow(mesh.V(), 1.0/3.0));
|
|
||||||
|
|
||||||
const scalarField upLocal(uPrimeCoef_*sqrt((U & CT & U)*cellWidth));
|
|
||||||
|
|
||||||
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
|
|
||||||
|
|
||||||
up.internalField() += deltaUp;
|
|
||||||
|
|
||||||
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
volScalarField tauEta(sqrt(mag(thermo_.muu()/(thermo_.rhou()*epsilon))));
|
||||||
|
|
||||||
@ -161,6 +93,7 @@ bool Foam::XiEqModels::Gulder::read(const dictionary& XiEqProperties)
|
|||||||
|
|
||||||
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
|
XiEqModelCoeffs_.lookup("XiEqCoef") >> XiEqCoef_;
|
||||||
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
|
XiEqModelCoeffs_.lookup("uPrimeCoef") >> uPrimeCoef_;
|
||||||
|
XiEqModelCoeffs_.lookup("subGridSchelkin") >> subGridSchelkin_;
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -61,9 +61,6 @@ class Gulder
|
|||||||
//- Minimum laminar burning velocity
|
//- Minimum laminar burning velocity
|
||||||
const dimensionedScalar SuMin_;
|
const dimensionedScalar SuMin_;
|
||||||
|
|
||||||
//- Model constant
|
|
||||||
scalar uPrimeCoef_;
|
|
||||||
|
|
||||||
|
|
||||||
// Private Member Functions
|
// Private Member Functions
|
||||||
|
|
||||||
|
|||||||
@ -84,6 +84,11 @@ Foam::tmp<Foam::volScalarField> Foam::XiEqModels::SCOPEXiEq::XiEq() const
|
|||||||
const volScalarField& epsilon = turbulence_.epsilon();
|
const volScalarField& epsilon = turbulence_.epsilon();
|
||||||
|
|
||||||
volScalarField up(sqrt((2.0/3.0)*k));
|
volScalarField up(sqrt((2.0/3.0)*k));
|
||||||
|
if (subGridSchelkin())
|
||||||
|
{
|
||||||
|
up.internalField() += calculateSchelkinEffect();
|
||||||
|
}
|
||||||
|
|
||||||
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
|
volScalarField l(lCoef_*sqrt(3.0/2.0)*up*k/epsilon);
|
||||||
volScalarField Rl(up*l*thermo_.rhou()/thermo_.muu());
|
volScalarField Rl(up*l*thermo_.rhou()/thermo_.muu());
|
||||||
|
|
||||||
|
|||||||
@ -58,9 +58,16 @@ class SCOPEXiEq
|
|||||||
{
|
{
|
||||||
// Private data
|
// Private data
|
||||||
|
|
||||||
|
// Model constant
|
||||||
scalar XiEqCoef_;
|
scalar XiEqCoef_;
|
||||||
|
|
||||||
|
// Model constant
|
||||||
scalar XiEqExp_;
|
scalar XiEqExp_;
|
||||||
|
|
||||||
|
// Model constant
|
||||||
scalar lCoef_;
|
scalar lCoef_;
|
||||||
|
|
||||||
|
//- Minimum Su
|
||||||
dimensionedScalar SuMin_;
|
dimensionedScalar SuMin_;
|
||||||
|
|
||||||
//- The SCOPE laminar flame speed model used to obtain the
|
//- The SCOPE laminar flame speed model used to obtain the
|
||||||
|
|||||||
@ -77,6 +77,11 @@ Foam::XiEqModel::XiEqModel
|
|||||||
IOobject::NO_WRITE
|
IOobject::NO_WRITE
|
||||||
),
|
),
|
||||||
Su.mesh()
|
Su.mesh()
|
||||||
|
),
|
||||||
|
uPrimeCoef_(XiEqModelCoeffs_.lookupOrDefault<scalar>("uPrimeCoef", 0.0)),
|
||||||
|
subGridSchelkin_
|
||||||
|
(
|
||||||
|
XiEqModelCoeffs_.lookupOrDefault<bool>("subGridSchelkin", false)
|
||||||
)
|
)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
@ -93,6 +98,10 @@ bool Foam::XiEqModel::read(const dictionary& XiEqProperties)
|
|||||||
{
|
{
|
||||||
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
|
XiEqModelCoeffs_ = XiEqProperties.subDict(type() + "Coeffs");
|
||||||
|
|
||||||
|
uPrimeCoef_ = XiEqModelCoeffs_.lookupOrDefault<scalar>("uPrimeCoef", 0.0);
|
||||||
|
subGridSchelkin_ =
|
||||||
|
XiEqModelCoeffs_.lookupOrDefault<bool>("subGridSchelkin", false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -109,4 +118,85 @@ void Foam::XiEqModel::writeFields() const
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Foam::tmp<Foam::volScalarField>
|
||||||
|
Foam::XiEqModel::calculateSchelkinEffect() const
|
||||||
|
{
|
||||||
|
const fvMesh& mesh = Su_.mesh();
|
||||||
|
|
||||||
|
const volVectorField& U = mesh.lookupObject<volVectorField>("U");
|
||||||
|
|
||||||
|
const volSymmTensorField& CT = mesh.lookupObject<volSymmTensorField>("CT");
|
||||||
|
const volScalarField& Nv = mesh.lookupObject<volScalarField>("Nv");
|
||||||
|
const volSymmTensorField& nsv =
|
||||||
|
mesh.lookupObject<volSymmTensorField>("nsv");
|
||||||
|
|
||||||
|
tmp<volScalarField> tN
|
||||||
|
(
|
||||||
|
new volScalarField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"tN",
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE,
|
||||||
|
false
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedScalar("zero", Nv.dimensions(), 0.0),
|
||||||
|
zeroGradientFvPatchVectorField::typeName
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
volScalarField& N = tN();
|
||||||
|
|
||||||
|
N.internalField() = Nv.internalField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
|
tmp<volSymmTensorField> tns
|
||||||
|
(
|
||||||
|
new volSymmTensorField
|
||||||
|
(
|
||||||
|
IOobject
|
||||||
|
(
|
||||||
|
"tns",
|
||||||
|
mesh.time().timeName(),
|
||||||
|
mesh,
|
||||||
|
IOobject::NO_READ,
|
||||||
|
IOobject::NO_WRITE
|
||||||
|
),
|
||||||
|
mesh,
|
||||||
|
dimensionedSymmTensor
|
||||||
|
(
|
||||||
|
"zero",
|
||||||
|
nsv.dimensions(),
|
||||||
|
pTraits<symmTensor>::zero
|
||||||
|
)
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
||||||
|
volSymmTensorField& ns = tns();
|
||||||
|
|
||||||
|
ns.internalField() = nsv.internalField()*pow(mesh.V(), 2.0/3.0);
|
||||||
|
|
||||||
|
const volVectorField Uhat
|
||||||
|
(
|
||||||
|
U/(mag(U) + dimensionedScalar("Usmall", U.dimensions(), 1e-4))
|
||||||
|
);
|
||||||
|
|
||||||
|
const volScalarField nr(sqrt(max(N - (Uhat & ns & Uhat), scalar(1e-4))));
|
||||||
|
|
||||||
|
const scalarField cellWidth(pow(mesh.V(), 1.0/3.0));
|
||||||
|
|
||||||
|
const scalarField upLocal(uPrimeCoef_*sqrt((U & CT & U)*cellWidth));
|
||||||
|
|
||||||
|
const scalarField deltaUp(upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0));
|
||||||
|
|
||||||
|
//Re use tN
|
||||||
|
N.internalField() = upLocal*(max(scalar(1.0), pow(nr, 0.5)) - 1.0);
|
||||||
|
|
||||||
|
return tN;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|||||||
@ -62,14 +62,30 @@ protected:
|
|||||||
|
|
||||||
// Protected data
|
// Protected data
|
||||||
|
|
||||||
|
//- Dictionary
|
||||||
dictionary XiEqModelCoeffs_;
|
dictionary XiEqModelCoeffs_;
|
||||||
|
|
||||||
|
//- Thermo
|
||||||
const hhuCombustionThermo& thermo_;
|
const hhuCombustionThermo& thermo_;
|
||||||
|
|
||||||
|
//- Turbulence
|
||||||
const compressible::RASModel& turbulence_;
|
const compressible::RASModel& turbulence_;
|
||||||
|
|
||||||
|
//- Laminar burning velocity
|
||||||
const volScalarField& Su_;
|
const volScalarField& Su_;
|
||||||
|
|
||||||
|
//- Volumetric obstacles number
|
||||||
volScalarField Nv_;
|
volScalarField Nv_;
|
||||||
|
|
||||||
|
//
|
||||||
volSymmTensorField nsv_;
|
volSymmTensorField nsv_;
|
||||||
|
|
||||||
|
//- Schelkin effect Model constant
|
||||||
|
scalar uPrimeCoef_;
|
||||||
|
|
||||||
|
//- Use sub-grid Schelkin effect
|
||||||
|
bool subGridSchelkin_;
|
||||||
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -146,6 +162,15 @@ public:
|
|||||||
return turbulence_.muEff();
|
return turbulence_.muEff();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//- Return state of the sub-grid Schelkin effect
|
||||||
|
bool subGridSchelkin() const
|
||||||
|
{
|
||||||
|
return subGridSchelkin_;
|
||||||
|
}
|
||||||
|
|
||||||
|
//- Return the sub-grid Schelkin effect
|
||||||
|
tmp<volScalarField> calculateSchelkinEffect() const;
|
||||||
|
|
||||||
//- Update properties from given dictionary
|
//- Update properties from given dictionary
|
||||||
virtual bool read(const dictionary& XiEqProperties) = 0;
|
virtual bool read(const dictionary& XiEqProperties) = 0;
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 -1 0 0 0 0 0 ];
|
dimensions [ 0 -1 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<scalar>
|
internalField nonuniform List<scalar>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
18.372496
|
18.372496
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 0 0 0 0 0 0 ];
|
dimensions [ 0 0 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<symmTensor>
|
internalField nonuniform List<symmTensor>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
(1.785697 0 0 1.785697 0 1.875)
|
(1.785697 0 0 1.785697 0 1.875)
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 -1 0 0 0 0 0 ];
|
dimensions [ 0 -1 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<symmTensor>
|
internalField nonuniform List<symmTensor>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
(98.997697 0 0 77.711245 0 30.754852)
|
(98.997697 0 0 77.711245 0 30.754852)
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 -1 0 0 0 0 0 ];
|
dimensions [ 0 -1 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<symmTensor>
|
internalField nonuniform List<symmTensor>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
(4.501854 0 0 3.437531 0 1.537743)
|
(4.501854 0 0 3.437531 0 1.537743)
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 1 0 0 0 0 0 ];
|
dimensions [ 0 1 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<scalar>
|
internalField nonuniform List<scalar>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
0.2
|
0.2
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 0 0 0 0 0 0 ];
|
dimensions [ 0 0 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<scalar>
|
internalField nonuniform List<scalar>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
2.019581
|
2.019581
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 0 0 0 0 0 0 ];
|
dimensions [ 0 0 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<scalar>
|
internalField nonuniform List<scalar>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
0
|
0
|
||||||
@ -17,7 +17,7 @@ FoamFile
|
|||||||
|
|
||||||
dimensions [ 0 0 0 0 0 0 0 ];
|
dimensions [ 0 0 0 0 0 0 0 ];
|
||||||
|
|
||||||
internalField nonuniform List<symmTensor>
|
internalField nonuniform List<symmTensor>
|
||||||
8025
|
8025
|
||||||
(
|
(
|
||||||
(0.634791 0 0 0.634791 0 0.03)
|
(0.634791 0 0 0.634791 0 0.03)
|
||||||
@ -14,5 +14,4 @@ runApplication PDRMesh
|
|||||||
# Run
|
# Run
|
||||||
runApplication PDRFoam
|
runApplication PDRFoam
|
||||||
|
|
||||||
# ----------------------------------------------------------------- end-of-file
|
# ----------------------------------------------------------------- end-of-file
|
||||||
|
|
||||||
@ -8,5 +8,4 @@ Step to introduce the PDR fields:
|
|||||||
1) Create zero-size patches for wall or/and coupled baffles in
|
1) Create zero-size patches for wall or/and coupled baffles in
|
||||||
the boundary file.
|
the boundary file.
|
||||||
2) Specify the boundary contitions for these patches in the fields.
|
2) Specify the boundary contitions for these patches in the fields.
|
||||||
3) Create the new PDR mesh using the PDRMesh utility
|
3) Create the new PDR mesh using the PDRMesh utility.
|
||||||
|
|
||||||
@ -49,25 +49,27 @@ instabilityCoeffs
|
|||||||
{
|
{
|
||||||
XiEqModelL
|
XiEqModelL
|
||||||
{
|
{
|
||||||
XiEqModel Gulder;
|
XiEqModel Gulder;
|
||||||
|
uPrimeCoef 1.0;
|
||||||
|
subGridSchelkin true;
|
||||||
|
|
||||||
GulderCoeffs
|
GulderCoeffs
|
||||||
{
|
{
|
||||||
XiEqCoef 0.62;
|
XiEqCoef 0.62;
|
||||||
uPrimeCoef 1.0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
XiEqModelH
|
XiEqModelH
|
||||||
{
|
{
|
||||||
XiEqModel SCOPEXiEq;
|
XiEqModel SCOPEXiEq;
|
||||||
|
uPrimeCoef 1.0;
|
||||||
|
subGridSchelkin true;
|
||||||
|
|
||||||
SCOPEXiEqCoeffs
|
SCOPEXiEqCoeffs
|
||||||
{
|
{
|
||||||
XiEqCoef 1.6;
|
XiEqCoef 1.6;
|
||||||
XiEqExp 0.33333;
|
XiEqExp 0.33333;
|
||||||
lCoef 0.336;
|
lCoef 0.336;
|
||||||
uPrimeCoef 1.0;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -59,6 +59,4 @@ burntProducts
|
|||||||
Ts 170.672;
|
Ts 170.672;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
|
|
||||||
@ -69,5 +69,4 @@ SCOPECoeffs
|
|||||||
0
|
0
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -51,5 +51,4 @@ maxCo 0.3;
|
|||||||
|
|
||||||
maxDeltaT 1;
|
maxDeltaT 1;
|
||||||
|
|
||||||
// ************************************************************************* //
|
// ************************************************************************* //
|
||||||
|
|
||||||
@ -1,87 +1,85 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: dev |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system";
|
location "system";
|
||||||
object fvSchemes;
|
object fvSchemes;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
ddtSchemes
|
ddtSchemes
|
||||||
{
|
{
|
||||||
default Euler;
|
default Euler;
|
||||||
}
|
}
|
||||||
|
|
||||||
gradSchemes
|
gradSchemes
|
||||||
{
|
{
|
||||||
default Gauss linear;
|
default Gauss linear;
|
||||||
grad(p) Gauss linear;
|
grad(p) Gauss linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
divSchemes
|
divSchemes
|
||||||
{
|
{
|
||||||
default none;
|
default none;
|
||||||
|
|
||||||
div(phi,U) Gauss limitedLinearV 1;
|
div(phi,U) Gauss limitedLinearV 1;
|
||||||
div(phiU,p) Gauss limitedLinear 1;
|
div(phiU,p) Gauss limitedLinear 1;
|
||||||
div(phid,p) Gauss limitedLinear 1;
|
div(phid,p) Gauss limitedLinear 1;
|
||||||
div(phi,k) Gauss limitedLinear 1;
|
div(phi,k) Gauss limitedLinear 1;
|
||||||
div(phi,epsilon) Gauss limitedLinear 1;
|
div(phi,epsilon) Gauss limitedLinear 1;
|
||||||
|
|
||||||
div(phiXi,Xi) Gauss limitedLinear 1;
|
div(phiXi,Xi) Gauss limitedLinear 1;
|
||||||
div(phiSt,b) Gauss limitedLinear01 1;
|
div(phiSt,b) Gauss limitedLinear01 1;
|
||||||
|
|
||||||
div(phi,ft_b_h_hu) Gauss multivariateSelection
|
div(phi,ft_b_h_hu) Gauss multivariateSelection
|
||||||
{
|
{
|
||||||
ft limitedLinear01 1;
|
ft limitedLinear01 1;
|
||||||
b limitedLinear01 1;
|
b limitedLinear01 1;
|
||||||
Xi limitedLinear 1;
|
Xi limitedLinear 1;
|
||||||
h limitedLinear 1;
|
h limitedLinear 1;
|
||||||
hu limitedLinear 1;
|
hu limitedLinear 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
div((Su*grad(b))) Gauss linear;
|
div((Su*grad(b))) Gauss linear;
|
||||||
div((U+((Su*Xi)*grad(b)))) Gauss linear;
|
div((U+((Su*Xi)*grad(b)))) Gauss linear;
|
||||||
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
div((muEff*dev2(T(grad(U))))) Gauss linear;
|
||||||
div(U) Gauss linear;
|
div(U) Gauss linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
laplacianSchemes
|
laplacianSchemes
|
||||||
{
|
{
|
||||||
default none;
|
default none;
|
||||||
laplacian(muEff,U) Gauss linear limited 0.333;
|
laplacian(muEff,U) Gauss linear limited 0.333;
|
||||||
laplacian(DkEff,k) Gauss linear limited 0.333;
|
laplacian(DkEff,k) Gauss linear limited 0.333;
|
||||||
laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
|
laplacian(DepsilonEff,epsilon) Gauss linear limited 0.333;
|
||||||
laplacian((rho*inv((((1)*A(U))+((((0.5*rho)*CR)*mag(U))+((((Csu*(1))*betav)*muEff)*sqr(Aw)))))),p) Gauss linear limited 0.333;
|
laplacian((rho*inv((((1)*A(U))+((((0.5*rho)*CR)*mag(U))+((((Csu*(1))*betav)*muEff)*sqr(Aw)))))),p) Gauss linear limited 0.333;
|
||||||
laplacian(Db,b) Gauss linear limited 0.333;
|
laplacian(Db,b) Gauss linear limited 0.333;
|
||||||
laplacian(Db,ft) Gauss linear limited 0.333;
|
laplacian(Db,ft) Gauss linear limited 0.333;
|
||||||
laplacian(Db,h) Gauss linear limited 0.333;
|
laplacian(Db,h) Gauss linear limited 0.333;
|
||||||
laplacian(Db,hu) Gauss linear limited 0.333;
|
laplacian(Db,hu) Gauss linear limited 0.333;
|
||||||
}
|
}
|
||||||
|
|
||||||
interpolationSchemes
|
interpolationSchemes
|
||||||
{
|
{
|
||||||
default linear;
|
default linear;
|
||||||
}
|
}
|
||||||
|
|
||||||
snGradSchemes
|
snGradSchemes
|
||||||
{
|
{
|
||||||
default limited 0.333;
|
default limited 0.333;
|
||||||
}
|
}
|
||||||
|
|
||||||
fluxRequired
|
fluxRequired
|
||||||
{
|
{
|
||||||
default no;
|
default no;
|
||||||
p;
|
p;
|
||||||
}
|
}
|
||||||
|
// ************************************************************************* //
|
||||||
|
|
||||||
// ************************************************************************* //
|
|
||||||
@ -1,54 +1,53 @@
|
|||||||
/*--------------------------------*- C++ -*----------------------------------*\
|
/*--------------------------------*- C++ -*----------------------------------*\
|
||||||
| ========= | |
|
| ========= | |
|
||||||
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
|
||||||
| \\ / O peration | Version: dev |
|
| \\ / O peration | Version: dev |
|
||||||
| \\ / A nd | Web: www.OpenFOAM.com |
|
| \\ / A nd | Web: www.OpenFOAM.com |
|
||||||
| \\/ M anipulation | |
|
| \\/ M anipulation | |
|
||||||
\*---------------------------------------------------------------------------*/
|
\*---------------------------------------------------------------------------*/
|
||||||
FoamFile
|
FoamFile
|
||||||
{
|
{
|
||||||
version 2.0;
|
version 2.0;
|
||||||
format ascii;
|
format ascii;
|
||||||
class dictionary;
|
class dictionary;
|
||||||
location "system";
|
location "system";
|
||||||
object fvSolution;
|
object fvSolution;
|
||||||
}
|
}
|
||||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||||
|
|
||||||
|
solvers
|
||||||
solvers
|
{
|
||||||
{
|
rho
|
||||||
rho
|
{
|
||||||
{
|
solver PCG;
|
||||||
solver PCG;
|
preconditioner DIC;
|
||||||
preconditioner DIC;
|
tolerance 1e-05;
|
||||||
tolerance 1e-05;
|
relTol 0;
|
||||||
relTol 0;
|
};
|
||||||
};
|
|
||||||
|
p
|
||||||
p
|
{
|
||||||
{
|
solver PCG;
|
||||||
solver PCG;
|
preconditioner DIC;
|
||||||
preconditioner DIC;
|
tolerance 1e-6;
|
||||||
tolerance 1e-6;
|
relTol 0;
|
||||||
relTol 0;
|
};
|
||||||
};
|
|
||||||
|
"(U|ft|fu|b|Xi|Su|h|hu|R|k|epsilon)"
|
||||||
"(U|ft|fu|b|Xi|Su|h|hu|R|k|epsilon)"
|
{
|
||||||
{
|
solver PBiCG;
|
||||||
solver PBiCG;
|
preconditioner DILU;
|
||||||
preconditioner DILU;
|
tolerance 1e-05;
|
||||||
tolerance 1e-05;
|
relTol 0;
|
||||||
relTol 0;
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
PISO
|
||||||
PISO
|
{
|
||||||
{
|
nCorrectors 2;
|
||||||
nCorrectors 2;
|
nNonOrthogonalCorrectors 0;
|
||||||
nNonOrthogonalCorrectors 0;
|
momentumPredictor true;
|
||||||
momentumPredictor true;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
|
// ************************************************************************* //
|
||||||
// ************************************************************************* //
|
|
||||||
Reference in New Issue
Block a user