Commit 86cc19bd authored by Henry Weller's avatar Henry Weller
Browse files

reactingTwoPhaseEulerFoam: Added support for thermal diffusivity and thermal wall-functions

parent 988b0fd3
......@@ -4,8 +4,8 @@ EXE_INC = \
-I$(LIB_SRC)/transportModels/compressible/lnInclude \
-I$(LIB_SRC)/thermophysicalModels/basic/lnInclude \
-I$(LIB_SRC)/transportModels/incompressible/transportModel \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/compressible/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/turbulenceModels/lnInclude \
-I$(LIB_SRC)/TurbulenceModels/phaseCompressible/lnInclude \
-I$(LIB_SRC)/finiteVolume/lnInclude \
-I$(LIB_SRC)/fvOptions/lnInclude \
......
......@@ -41,7 +41,13 @@ Foam::RASModels::kineticTheoryModel::kineticTheoryModel
const word& type
)
:
eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > >
eddyViscosity
<
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>
(
type,
alpha,
......@@ -183,7 +189,10 @@ bool Foam::RASModels::kineticTheoryModel::read()
(
eddyViscosity
<
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>::read()
)
{
......
......@@ -48,6 +48,8 @@ SourceFiles
#include "RASModel.H"
#include "eddyViscosity.H"
#include "PhaseCompressibleTurbulenceModel.H"
#include "ThermalDiffusivity.H"
#include "EddyDiffusivity.H"
#include "phaseModel.H"
#include "dragModel.H"
#include "viscosityModel.H"
......@@ -72,7 +74,10 @@ class kineticTheoryModel
:
public eddyViscosity
<
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>
{
// Private data
......
......@@ -29,6 +29,9 @@ License
#include "addToRunTimeSelectionTable.H"
#include "makeTurbulenceModel.H"
#include "ThermalDiffusivity.H"
#include "EddyDiffusivity.H"
#include "laminar.H"
#include "RASModel.H"
#include "LESModel.H"
......@@ -39,6 +42,7 @@ makeBaseTurbulenceModel
volScalarField,
compressibleTurbulenceModel,
PhaseCompressibleTurbulenceModel,
ThermalDiffusivity,
phaseModel
);
......
......@@ -40,7 +40,13 @@ Foam::RASModels::phasePressureModel::phasePressureModel
const word& type
)
:
eddyViscosity<RASModel<PhaseCompressibleTurbulenceModel<phaseModel> > >
eddyViscosity
<
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>
(
type,
alpha,
......@@ -87,7 +93,10 @@ bool Foam::RASModels::phasePressureModel::read()
(
eddyViscosity
<
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>::read()
)
{
......
......@@ -54,6 +54,8 @@ SourceFiles
#include "RASModel.H"
#include "eddyViscosity.H"
#include "PhaseCompressibleTurbulenceModel.H"
#include "ThermalDiffusivity.H"
#include "EddyDiffusivity.H"
#include "phaseModel.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......@@ -71,7 +73,10 @@ class phasePressureModel
:
public eddyViscosity
<
RASModel<PhaseCompressibleTurbulenceModel<phaseModel> >
RASModel<EddyDiffusivity<ThermalDiffusivity
<
PhaseCompressibleTurbulenceModel<phaseModel>
> > >
>
{
// Private data
......
......@@ -110,10 +110,10 @@ template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::mu
(
const label patchI
const label patchi
) const
{
return thermo_->mu(patchI);
return thermo_->mu(patchi);
}
......@@ -129,10 +129,10 @@ template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::nu
(
const label patchI
const label patchi
) const
{
return thermo_->nu(patchI);
return thermo_->nu(patchi);
}
......@@ -148,10 +148,75 @@ template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappa
(
const label patchI
const label patchi
) const
{
return thermo_->kappa(patchI);
return thermo_->kappa(patchi);
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::volScalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff
(
const volScalarField& alphat
) const
{
return thermo_->kappaEff(alphat);
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::kappaEff
(
const scalarField& alphat,
const label patchi
) const
{
return thermo_->kappaEff(alphat, patchi);
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::volScalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alpha() const
{
return thermo_->alpha();
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alpha
(
const label patchi
) const
{
return thermo_->alpha(patchi);
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::volScalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphaEff
(
const volScalarField& alphat
) const
{
return thermo_->alphaEff(alphat);
}
template<class BasePhaseModel, class ThermoType>
Foam::tmp<Foam::scalarField>
Foam::ThermoPhaseModel<BasePhaseModel, ThermoType>::alphaEff
(
const scalarField& alphat,
const label patchi
) const
{
return thermo_->alphaEff(alphat, patchi);
}
......
......@@ -105,19 +105,51 @@ public:
virtual tmp<volScalarField> mu() const;
//- Access the laminar dynamic viscosity
virtual tmp<scalarField> mu(const label patchI) const;
virtual tmp<scalarField> mu(const label patchi) const;
//- Return the laminar kinematic viscosity
virtual tmp<volScalarField> nu() const;
//- Access the laminar kinematic viscosity
virtual tmp<scalarField> nu(const label patchI) const;
virtual tmp<scalarField> nu(const label patchi) const;
//- Return the laminar thermal conductivity
virtual tmp<volScalarField> kappa() const;
//- Access the laminar thermal conductivity
virtual tmp<scalarField> kappa(const label patchI) const;
virtual tmp<scalarField> kappa(const label patchi) const;
//- Return the laminar thermal conductivity
virtual tmp<volScalarField> kappaEff
(
const volScalarField& alphat
) const;
//- Access the laminar thermal conductivity
virtual tmp<scalarField> kappaEff
(
const scalarField& alphat,
const label patchi
) const;
//- Return the thermal diffusivity for enthalpy
virtual tmp<volScalarField> alpha() const;
//- Return the thermal diffusivity for enthalpy on a patch
virtual tmp<scalarField> alpha(const label patchi) const;
//- Return the thermal diffusivity for enthalpy
virtual tmp<volScalarField> alphaEff
(
const volScalarField& alphat
) const;
//- Return the thermal diffusivity for enthalpy on a patch
virtual tmp<scalarField> alphaEff
(
const scalarField& alphat,
const label patchi
) const;
};
......
......@@ -246,19 +246,51 @@ public:
virtual tmp<volScalarField> mu() const = 0;
//- Return the laminar dynamic viscosity on a patch
virtual tmp<scalarField> mu(const label patchI) const = 0;
virtual tmp<scalarField> mu(const label patchi) const = 0;
//- Return the laminar kinematic viscosity
virtual tmp<volScalarField> nu() const = 0;
//- Return the laminar kinematic viscosity on a patch
virtual tmp<scalarField> nu(const label patchI) const = 0;
virtual tmp<scalarField> nu(const label patchi) const = 0;
//- Return the laminar thermal conductivity
virtual tmp<volScalarField> kappa() const = 0;
//- Return the laminar thermal conductivity on a patch
virtual tmp<scalarField> kappa(const label patchI) const = 0;
virtual tmp<scalarField> kappa(const label patchi) const = 0;
//- Return the laminar thermal conductivity
virtual tmp<volScalarField> kappaEff
(
const volScalarField& alphat
) const = 0;
//- Access the laminar thermal conductivity
virtual tmp<scalarField> kappaEff
(
const scalarField& alphat,
const label patchi
) const = 0;
//- Return the thermal diffusivity for enthalpy
virtual tmp<volScalarField> alpha() const = 0;
//- Return the thermal diffusivity for enthalpy on a patch
virtual tmp<scalarField> alpha(const label patchi) const = 0;
//- Return the thermal diffusivity for enthalpy
virtual tmp<volScalarField> alphaEff
(
const volScalarField& alphat
) const = 0;
//- Return the thermal diffusivity for enthalpy on a patch
virtual tmp<scalarField> alphaEff
(
const scalarField& alphat,
const label patchi
) const = 0;
// Turbulence
......
......@@ -33,30 +33,18 @@ License
#include "perfectGas.H"
#include "perfectFluid.H"
#include "rhoConst.H"
#include "incompressiblePerfectGas.H"
#include "hConstThermo.H"
#include "janafThermo.H"
#include "sensibleEnthalpy.H"
#include "absoluteEnthalpy.H"
#include "absoluteInternalEnergy.H"
#include "thermo.H"
#include "hRefConstThermo.H"
#include "constTransport.H"
#include "sutherlandTransport.H"
#include "pureMixture.H"
#include "homogeneousMixture.H"
#include "inhomogeneousMixture.H"
#include "veryInhomogeneousMixture.H"
#include "multiComponentMixture.H"
#include "reactingMixture.H"
#include "singleStepReactingMixture.H"
#include "thermoPhysicsTypes.H"
#include "hRefConstThermo.H"
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......@@ -119,6 +107,19 @@ constTransport
>
> constRefFluidEThermoPhysics;
typedef
constTransport
<
species::thermo
<
hRefConstThermo
<
rhoConst<specie>
>,
sensibleInternalEnergy
>
> constRefRhoConstEThermoPhysics;
// pureMixture, sensibleEnthalpy:
......@@ -218,6 +219,15 @@ makeReactionMixtureThermo
constRefFluidEThermoPhysics
);
makeReactionMixtureThermo
(
rhoThermo,
rhoReactionThermo,
heRhoThermo,
multiComponentMixture,
constRefRhoConstEThermoPhysics
);
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
......
......@@ -30,6 +30,14 @@ License
template<class BasicTurbulenceModel>
void Foam::EddyDiffusivity<BasicTurbulenceModel>::correctNut()
{
// Read Prt if provided
Prt_ = dimensioned<scalar>::lookupOrDefault
(
"Prt",
this->coeffDict(),
1.0
);
alphat_ = this->rho_*this->nut()/Prt_;
alphat_.correctBoundaryConditions();
}
......@@ -41,7 +49,7 @@ template<class BasicTurbulenceModel>
Foam::EddyDiffusivity<BasicTurbulenceModel>::EddyDiffusivity
(
const word& type,
const geometricOneField& alpha,
const alphaField& alpha,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& alphaRhoPhi,
......@@ -62,23 +70,14 @@ Foam::EddyDiffusivity<BasicTurbulenceModel>::EddyDiffusivity
propertiesName
),
// Prt_
// (
// dimensioned<scalar>::lookupOrAddToDict
// (
// "Prt",
// this->coeffDict_,
// 1.0
// )
// ),
// Cannot read Prt yet
Prt_("Prt", dimless, 1.0),
alphat_
(
IOobject
(
"alphat",
IOobject::groupName("alphat", U.group()),
this->runTime_.timeName(),
this->mesh_,
IOobject::MUST_READ,
......@@ -89,34 +88,6 @@ Foam::EddyDiffusivity<BasicTurbulenceModel>::EddyDiffusivity
{}
// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
template<class BasicTurbulenceModel>
Foam::autoPtr<Foam::EddyDiffusivity<BasicTurbulenceModel> >
Foam::EddyDiffusivity<BasicTurbulenceModel>::New
(
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const transportModel& transport,
const word& propertiesName
)
{
return autoPtr<EddyDiffusivity>
(
static_cast<EddyDiffusivity*>(
BasicTurbulenceModel::New
(
rho,
U,
phi,
transport,
propertiesName
).ptr())
);
}
// * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * //
template<class BasicTurbulenceModel>
......
......@@ -82,7 +82,7 @@ public:
EddyDiffusivity
(
const word& type,
const geometricOneField& alpha,
const alphaField& alpha,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& alphaRhoPhi,
......@@ -92,19 +92,6 @@ public:
);
// Selectors
//- Return a reference to the selected turbulence model
static autoPtr<EddyDiffusivity> New
(
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const transportModel& trasportModel,
const word& propertiesName = turbulenceModel::propertiesName
);
//- Destructor
virtual ~EddyDiffusivity()
{}
......
......@@ -31,7 +31,7 @@ template<class BasicTurbulenceModel>
Foam::ThermalDiffusivity<BasicTurbulenceModel>::ThermalDiffusivity
(
const word& type,
const geometricOneField& alpha,
const alphaField& alpha,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& alphaRhoPhi,
......@@ -56,6 +56,34 @@ Foam::ThermalDiffusivity<BasicTurbulenceModel>::ThermalDiffusivity
// * * * * * * * * * * * * * * * * * Selectors * * * * * * * * * * * * * * * //
template<class BasicTurbulenceModel>
Foam::autoPtr<Foam::ThermalDiffusivity<BasicTurbulenceModel> >
Foam::ThermalDiffusivity<BasicTurbulenceModel>::New
(
const alphaField& alpha,
const volScalarField& rho,
const volVectorField& U,
const surfaceScalarField& phi,
const transportModel& transport,
const word& propertiesName
)
{
return autoPtr<ThermalDiffusivity>
(
static_cast<ThermalDiffusivity*>(
BasicTurbulenceModel::New
(
alpha,
rho,
U,
phi,
transport,
propertiesName
).ptr())
);
}
template<class BasicTurbulenceModel>
Foam::autoPtr<Foam::ThermalDiffusivity<BasicTurbulenceModel> >
Foam::ThermalDiffusivity<BasicTurbulenceModel>::New
......