updated to reflect changes in turbulence models

This commit is contained in:
andy
2008-06-20 15:13:10 +01:00
parent b0f29324b2
commit 6e07a1511f
6 changed files with 247 additions and 281 deletions

View File

@ -11,9 +11,9 @@ EXE_LIBS = \
$(FOAM_LIBBIN)/postCalc.o \ $(FOAM_LIBBIN)/postCalc.o \
-lfiniteVolume \ -lfiniteVolume \
-lincompressibleTransportModels \ -lincompressibleTransportModels \
-lincompressibleRASmodels \ -lincompressibleRASModels \
-lincompressibleLESmodels \ -lincompressibleLESModels \
-lbasicThermophysicalModels \ -lbasicThermophysicalModels \
-lspecie \ -lspecie \
-lcompressibleRASmodels \ -lcompressibleRASModels \
-lcompressibleLESmodels -lcompressibleLESModels

View File

@ -39,12 +39,12 @@ Description
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" #include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
#include "incompressible/RASmodel/RASmodel.H" #include "incompressible/RASModel/RASModel.H"
#include "incompressible/LESmodel/LESmodel.H" #include "incompressible/LESModel/LESModel.H"
#include "basicThermo.H" #include "basicThermo.H"
#include "compressible/RASmodel/RASmodel.H" #include "compressible/RASModel/RASModel.H"
#include "compressible/LESmodel/LESmodel.H" #include "compressible/LESModel/LESModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -127,9 +127,9 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0)) if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0))
{ {
IOobject turbulencePropertiesHeader IOobject RASPropertiesHeader
( (
"turbulenceProperties", "RASProperties",
runTime.constant(), runTime.constant(),
mesh, mesh,
IOobject::MUST_READ, IOobject::MUST_READ,
@ -137,45 +137,43 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
false false
); );
if (turbulencePropertiesHeader.headerOk()) IOobject LESPropertiesHeader
(
"RASProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE,
false
);
singlePhaseTransportModel laminarTransport(U, phi);
if (RASPropertiesHeader.headerOk())
{ {
IOdictionary turbulenceProperties IOdictionary RASProperties(RASPropertiesHeader);
autoPtr<incompressible::RASModel> RASModel
( (
turbulencePropertiesHeader incompressible::RASModel::New
(
U,
phi,
laminarTransport
)
);
execFlowFunctionObjects(args, runTime);
}
else if (LESPropertiesHeader.headerOk())
{
IOdictionary LESProperties(LESPropertiesHeader);
autoPtr<incompressible::LESModel> sgsModel
(
incompressible::LESModel::New(U, phi, laminarTransport)
); );
singlePhaseTransportModel laminarTransport(U, phi); execFlowFunctionObjects(args, runTime);
if (turbulenceProperties.found("RASmodel"))
{
autoPtr<incompressible::RASmodel> RASmodel
(
incompressible::RASmodel::New
(
U,
phi,
laminarTransport
)
);
execFlowFunctionObjects(args, runTime);
}
else if (turbulenceProperties.found("LESmodel"))
{
autoPtr<incompressible::LESmodel> sgsModel
(
incompressible::LESmodel::New(U, phi, laminarTransport)
);
execFlowFunctionObjects(args, runTime);
}
else
{
FatalErrorIn(args.executable())
<< "Cannot find turbulence model type in "
<< "RASmodel dictionary"
<< nl << exit(FatalError);
}
} }
else else
{ {
@ -191,20 +189,14 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
) )
); );
dimensionedScalar nu dimensionedScalar nu(transportProperties.lookup("nu"));
(
transportProperties.lookup("nu")
);
execFlowFunctionObjects(args, runTime); execFlowFunctionObjects(args, runTime);
} }
} }
else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0)) else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0))
{ {
autoPtr<basicThermo> thermo autoPtr<basicThermo> thermo(basicThermo::New(mesh));
(
basicThermo::New(mesh)
);
volScalarField rho volScalarField rho
( (
@ -217,9 +209,9 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
thermo->rho() thermo->rho()
); );
IOobject turbulencePropertiesHeader IOobject RASPropertiesHeader
( (
"turbulenceProperties", "RASProperties",
runTime.constant(), runTime.constant(),
mesh, mesh,
IOobject::MUST_READ, IOobject::MUST_READ,
@ -227,44 +219,43 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
false false
); );
if (turbulencePropertiesHeader.headerOk()) IOobject LESPropertiesHeader
(
"LESProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE,
false
);
if (RASPropertiesHeader.headerOk())
{ {
IOdictionary turbulenceProperties IOdictionary RASProperties(RASPropertiesHeader);
autoPtr<compressible::RASModel> RASModel
( (
turbulencePropertiesHeader compressible::RASModel::New
(
rho,
U,
phi,
thermo()
)
); );
if (turbulenceProperties.found("RASmodel")) execFlowFunctionObjects(args, runTime);
{ }
autoPtr<compressible::RASmodel> RASmodel else if (LESPropertiesHeader.headerOk())
( {
compressible::RASmodel::New IOdictionary LESProperties(LESPropertiesHeader);
(
rho,
U,
phi,
thermo()
)
);
execFlowFunctionObjects(args, runTime); autoPtr<compressible::LESModel> sgsModel
} (
else if (turbulenceProperties.found("LESmodel")) compressible::LESModel::New(rho, U, phi, thermo())
{ );
autoPtr<compressible::LESmodel> sgsModel
(
compressible::LESmodel::New(rho, U, phi, thermo())
);
execFlowFunctionObjects(args, runTime); execFlowFunctionObjects(args, runTime);
}
else
{
FatalErrorIn(args.executable())
<< "Cannot find turbulence model type in "
<< "RASmodel dictionary"
<< nl << exit(FatalError);
}
} }
else else
{ {
@ -280,10 +271,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
) )
); );
dimensionedScalar mu dimensionedScalar mu(transportProperties.lookup("mu"));
(
transportProperties.lookup("mu")
);
execFlowFunctionObjects(args, runTime); execFlowFunctionObjects(args, runTime);
} }

View File

@ -14,9 +14,9 @@ EXE_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lmeshTools \ -lmeshTools \
-lincompressibleTransportModels \ -lincompressibleTransportModels \
-lincompressibleRASmodels \ -lincompressibleRASModels \
-lincompressibleLESmodels \ -lincompressibleLESModels \
-lbasicThermophysicalModels \ -lbasicThermophysicalModels \
-lspecie \ -lspecie \
-lcompressibleRASmodels \ -lcompressibleRASModels \
-lcompressibleLESmodels -lcompressibleLESModels

View File

@ -37,11 +37,11 @@ Description
#include "fvc.H" #include "fvc.H"
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" #include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
#include "incompressible/RASmodel/RASmodel.H" #include "incompressible/RASModel/RASModel.H"
#include "incompressible/LESmodel/LESmodel.H" #include "incompressible/LESModel/LESModel.H"
#include "basicThermo.H" #include "basicThermo.H"
#include "compressible/RASmodel/RASmodel.H" #include "compressible/RASModel/RASModel.H"
#include "compressible/LESmodel/LESmodel.H" #include "compressible/LESModel/LESModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
@ -76,94 +76,94 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
mesh mesh
); );
IOobject RASPropertiesHeader
(
"RASProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
);
IOobject LESPropertiesHeader
(
"LESProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
);
Info<< " Calculating Pe" << endl; Info<< " Calculating Pe" << endl;
if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0)) if (phi.dimensions() == dimensionSet(0, 3, -1, 0, 0))
{ {
IOobject turbulencePropertiesHeader if (RASPropertiesHeader.headerOk())
(
"turbulenceProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
);
if (turbulencePropertiesHeader.headerOk())
{ {
IOdictionary turbulenceProperties IOdictionary RASProperties(RASPropertiesHeader);
(
turbulencePropertiesHeader
);
singlePhaseTransportModel laminarTransport(U, phi); singlePhaseTransportModel laminarTransport(U, phi);
if (turbulenceProperties.found("RASmodel")) autoPtr<incompressible::RASModel> RASModel
{ (
autoPtr<incompressible::RASmodel> RASmodel incompressible::RASModel::New
( (
incompressible::RASmodel::New U,
( phi,
U, laminarTransport
phi, )
laminarTransport );
)
);
PePtr.set PePtr.set
(
new surfaceScalarField
( (
new surfaceScalarField IOobject
( (
IOobject "Pe",
( runTime.timeName(),
"Pe", mesh,
runTime.timeName(), IOobject::NO_READ
mesh, ),
IOobject::NO_READ mag(phi)
), /(
mag(phi) / mesh.magSf()
( * mesh.surfaceInterpolation::deltaCoeffs()
mesh.magSf() * fvc::interpolate(RASModel->nuEff())
* mesh.surfaceInterpolation::deltaCoeffs() )
* fvc::interpolate(RASmodel->nuEff()) )
) );
) }
); else if (LESPropertiesHeader.headerOk())
} {
else if (turbulenceProperties.found("LESmodel")) IOdictionary LESProperties(LESPropertiesHeader);
{
autoPtr<incompressible::LESmodel> sgsModel
(
incompressible::LESmodel::New(U, phi, laminarTransport)
);
PePtr.set singlePhaseTransportModel laminarTransport(U, phi);
autoPtr<incompressible::LESModel> sgsModel
(
incompressible::LESModel::New(U, phi, laminarTransport)
);
PePtr.set
(
new surfaceScalarField
( (
new surfaceScalarField IOobject
( (
IOobject "Pe",
( runTime.timeName(),
"Pe", mesh,
runTime.timeName(), IOobject::NO_READ
mesh, ),
IOobject::NO_READ mag(phi)
), /(
mag(phi) / mesh.magSf()
( * mesh.surfaceInterpolation::deltaCoeffs()
mesh.magSf() * fvc::interpolate(sgsModel->nuEff())
* mesh.surfaceInterpolation::deltaCoeffs()
* fvc::interpolate(sgsModel->nuEff())
)
) )
); )
} );
else
{
FatalErrorIn(args.executable())
<< "Cannot find turbulence model type in "
"RASmodel dictionary"
<< exit(FatalError);
}
} }
else else
{ {
@ -179,10 +179,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
) )
); );
dimensionedScalar nu dimensionedScalar nu(transportProperties.lookup("nu"));
(
transportProperties.lookup("nu")
);
PePtr.set PePtr.set
( (
@ -203,26 +200,11 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
} }
else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0)) else if (phi.dimensions() == dimensionSet(1, 0, -1, 0, 0))
{ {
IOobject turbulencePropertiesHeader if (RASPropertiesHeader.headerOk())
(
"turbulenceProperties",
runTime.constant(),
mesh,
IOobject::MUST_READ,
IOobject::NO_WRITE
);
if (turbulencePropertiesHeader.headerOk())
{ {
IOdictionary turbulenceProperties IOdictionary RASProperties(RASPropertiesHeader);
(
turbulencePropertiesHeader
);
autoPtr<basicThermo> thermo autoPtr<basicThermo> thermo(basicThermo::New(mesh));
(
basicThermo::New(mesh)
);
volScalarField rho volScalarField rho
( (
@ -235,73 +217,78 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
thermo->rho() thermo->rho()
); );
if (turbulenceProperties.found("RASmodel")) autoPtr<compressible::RASModel> RASModel
{ (
autoPtr<compressible::RASmodel> RASmodel compressible::RASModel::New
( (
compressible::RASmodel::New rho,
( U,
rho, phi,
U, thermo()
phi, )
thermo() );
)
);
PePtr.set PePtr.set
(
new surfaceScalarField
( (
new surfaceScalarField IOobject
( (
IOobject "Pe",
( runTime.timeName(),
"Pe", mesh,
runTime.timeName(), IOobject::NO_READ
mesh, ),
IOobject::NO_READ mag(phi)
), /(
mag(phi) / mesh.magSf()
( * mesh.surfaceInterpolation::deltaCoeffs()
mesh.magSf() * fvc::interpolate(RASModel->muEff())
* mesh.surfaceInterpolation::deltaCoeffs()
* fvc::interpolate(RASmodel->muEff())
)
) )
); )
} );
else if (turbulenceProperties.found("LESmodel")) }
{ else if (LESPropertiesHeader.headerOk())
autoPtr<compressible::LESmodel> sgsModel {
( IOdictionary LESProperties(LESPropertiesHeader);
compressible::LESmodel::New(rho, U, phi, thermo())
);
PePtr.set autoPtr<basicThermo> thermo(basicThermo::New(mesh));
volScalarField rho
(
IOobject
( (
new surfaceScalarField "rho",
runTime.timeName(),
mesh
),
thermo->rho()
);
autoPtr<compressible::LESModel> sgsModel
(
compressible::LESModel::New(rho, U, phi, thermo())
);
PePtr.set
(
new surfaceScalarField
(
IOobject
( (
IOobject "Pe",
( runTime.timeName(),
"Pe", mesh,
runTime.timeName(), IOobject::NO_READ
mesh, ),
IOobject::NO_READ mag(phi)
), /(
mag(phi) / mesh.magSf()
( * mesh.surfaceInterpolation::deltaCoeffs()
mesh.magSf() * fvc::interpolate(sgsModel->muEff())
* mesh.surfaceInterpolation::deltaCoeffs()
* fvc::interpolate(sgsModel->muEff())
)
) )
); )
} );
else
{
FatalErrorIn(args.executable())
<< "Cannot find turbulence model type in"
"RASmodel dictionary"
<< exit(FatalError);
}
} }
else else
{ {
@ -317,10 +304,7 @@ void Foam::calc(const argList& args, const Time& runTime, const fvMesh& mesh)
) )
); );
dimensionedScalar mu dimensionedScalar mu(transportProperties.lookup("mu"));
(
transportProperties.lookup("mu")
);
PePtr.set PePtr.set
( (

View File

@ -12,9 +12,9 @@ LIB_LIBS = \
-lfiniteVolume \ -lfiniteVolume \
-lmeshTools \ -lmeshTools \
-lincompressibleTransportModels \ -lincompressibleTransportModels \
-lincompressibleRASmodels \ -lincompressibleRASModels \
-lincompressibleLESmodels \ -lincompressibleLESModels \
-lbasicThermophysicalModels \ -lbasicThermophysicalModels \
-lspecie \ -lspecie \
-lcompressibleRASmodels \ -lcompressibleRASModels \
-lcompressibleLESmodels -lcompressibleLESModels

View File

@ -30,11 +30,11 @@ License
#include "Time.H" #include "Time.H"
#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" #include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H"
#include "incompressible/RASmodel/RASmodel.H" #include "incompressible/RASModel/RASModel.H"
#include "incompressible/LESmodel/LESmodel.H" #include "incompressible/LESModel/LESModel.H"
#include "basicThermo.H" #include "basicThermo.H"
#include "compressible/RASmodel/RASmodel.H" #include "compressible/RASModel/RASModel.H"
#include "compressible/LESmodel/LESmodel.H" #include "compressible/LESModel/LESModel.H"
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
@ -48,37 +48,31 @@ namespace Foam
Foam::tmp<Foam::volSymmTensorField> Foam::forces::devRhoReff() const Foam::tmp<Foam::volSymmTensorField> Foam::forces::devRhoReff() const
{ {
if if (obr_.foundObject<compressible::RASModel>("RASProperties"))
(
obr_.foundObject<compressible::RASmodel>("turbulenceProperties")
)
{ {
const compressible::RASmodel& ras const compressible::RASModel& ras
= obr_.lookupObject<compressible::RASmodel> = obr_.lookupObject<compressible::RASModel>("RASProperties");
("turbulenceProperties");
return ras.devRhoReff(); return ras.devRhoReff();
} }
else if (obr_.foundObject<incompressible::RASmodel>("turbulenceProperties")) else if (obr_.foundObject<incompressible::RASModel>("RASProperties"))
{ {
const incompressible::RASmodel& ras const incompressible::RASModel& ras
= obr_.lookupObject<incompressible::RASmodel> = obr_.lookupObject<incompressible::RASModel>("RASProperties");
("turbulenceProperties");
return rhoRef_*ras.devReff(); return rhoRef_*ras.devReff();
} }
else if (obr_.foundObject<compressible::LESmodel>("turbulenceProperties")) else if (obr_.foundObject<compressible::LESModel>("LESProperties"))
{ {
const compressible::LESmodel& les = const compressible::LESModel& les =
obr_.lookupObject<compressible::LESmodel> obr_.lookupObject<compressible::LESModel>("LESProperties");
("turbulenceProperties");
return les.devRhoBeff(); return les.devRhoBeff();
} }
else if (obr_.foundObject<incompressible::LESmodel>("turbulenceProperties")) else if (obr_.foundObject<incompressible::LESModel>("LESProperties"))
{ {
const incompressible::LESmodel& les const incompressible::LESModel& les
= obr_.lookupObject<incompressible::LESmodel>("turbulenceProperties"); = obr_.lookupObject<incompressible::LESModel>("LESProperties");
return rhoRef_*les.devBeff(); return rhoRef_*les.devBeff();
} }