ENH: ThermoParcel - updated thermal conductivity at particle positon - mantis #958

This commit is contained in:
andy
2013-08-13 17:27:33 +01:00
parent 29f483b508
commit 60a9a6db00
8 changed files with 51 additions and 40 deletions

View File

@ -124,7 +124,6 @@ public:
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0,
const scalar Pr,
const scalar pMin, const scalar pMin,
const Switch& constantVolume, const Switch& constantVolume,
const scalar TDevol const scalar TDevol

View File

@ -100,7 +100,6 @@ constantProperties
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0,
const scalar Pr,
const scalar pMin, const scalar pMin,
const Switch& constantVolume, const Switch& constantVolume,
const scalar TDevol const scalar TDevol
@ -120,7 +119,6 @@ constantProperties
Cp0, Cp0,
epsilon0, epsilon0,
f0, f0,
Pr,
pMin, pMin,
constantVolume constantVolume
), ),

View File

@ -113,7 +113,6 @@ public:
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0,
const scalar Pr,
const scalar pMin, const scalar pMin,
const Switch& constantVolume const Switch& constantVolume
); );

View File

@ -85,7 +85,6 @@ inline Foam::ReactingParcel<ParcelType>::constantProperties::constantProperties
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0,
const scalar Pr,
const scalar pMin, const scalar pMin,
const Switch& constantVolume const Switch& constantVolume
) )
@ -103,8 +102,7 @@ inline Foam::ReactingParcel<ParcelType>::constantProperties::constantProperties
TMax, TMax,
Cp0, Cp0,
epsilon0, epsilon0,
f0, f0
Pr
), ),
pMin_(pMin), pMin_(pMin),
constantVolume_(constantVolume) constantVolume_(constantVolume)

View File

@ -151,12 +151,10 @@ void Foam::ThermoParcel<ParcelType>::calcSurfaceValues
tetIndices tetIs = this->currentTetIndices(); tetIndices tetIs = this->currentTetIndices();
mus = td.muInterp().interpolate(this->position(), tetIs)/TRatio; mus = td.muInterp().interpolate(this->position(), tetIs)/TRatio;
kappas = td.kappaInterp().interpolate(this->position(), tetIs)/TRatio;
Pr = td.cloud().constProps().Pr(); Pr = Cpc_*mus/kappas;
Pr = max(ROOTVSMALL, Pr); Pr = max(ROOTVSMALL, Pr);
kappas = Cpc_*mus/Pr;
kappas = max(ROOTVSMALL, kappas);
} }

View File

@ -94,9 +94,6 @@ public:
//- Particle scattering factor [] (radiation) //- Particle scattering factor [] (radiation)
scalar f0_; scalar f0_;
//- Default carrier Prandtl number []
scalar Pr_;
public: public:
@ -129,8 +126,7 @@ public:
const scalar TMax, const scalar TMax,
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0
const scalar Pr
); );
@ -161,9 +157,6 @@ public:
//- Return const access to the particle scattering factor [] //- Return const access to the particle scattering factor []
// Active for radiation only // Active for radiation only
inline scalar f0() const; inline scalar f0() const;
//- Return const access to the default carrier Prandtl number []
inline scalar Pr() const;
}; };
@ -180,6 +173,10 @@ public:
// Cp not stored on carrier thermo, but returned as tmp<...> // Cp not stored on carrier thermo, but returned as tmp<...>
const volScalarField Cp_; const volScalarField Cp_;
//- Local copy of carrier thermal conductivity field
// kappa not stored on carrier thermo, but returned as tmp<...>
const volScalarField kappa_;
// Interpolators for continuous phase fields // Interpolators for continuous phase fields
@ -189,11 +186,13 @@ public:
//- Specific heat capacity field interpolator //- Specific heat capacity field interpolator
autoPtr<interpolation<scalar> > CpInterp_; autoPtr<interpolation<scalar> > CpInterp_;
//- Thermal conductivity field interpolator
autoPtr<interpolation<scalar> > kappaInterp_;
//- Radiation field interpolator //- Radiation field interpolator
autoPtr<interpolation<scalar> > GInterp_; autoPtr<interpolation<scalar> > GInterp_;
public: public:
typedef typename ParcelType::template TrackingData<CloudType>::trackPart typedef typename ParcelType::template TrackingData<CloudType>::trackPart
@ -215,6 +214,9 @@ public:
//- Return access to the locally stored carrier Cp field //- Return access to the locally stored carrier Cp field
inline const volScalarField& Cp() const; inline const volScalarField& Cp() const;
//- Return access to the locally stored carrier kappa field
inline const volScalarField& kappa() const;
//- Return const access to the interpolator for continuous //- Return const access to the interpolator for continuous
// phase temperature field // phase temperature field
inline const interpolation<scalar>& TInterp() const; inline const interpolation<scalar>& TInterp() const;
@ -223,6 +225,10 @@ public:
// phase specific heat capacity field // phase specific heat capacity field
inline const interpolation<scalar>& CpInterp() const; inline const interpolation<scalar>& CpInterp() const;
//- Return const access to the interpolator for continuous
// phase thermal conductivity field
inline const interpolation<scalar>& kappaInterp() const;
//- Return const access to the interpolator for continuous //- Return const access to the interpolator for continuous
// radiation field // radiation field
inline const interpolation<scalar>& GInterp() const; inline const interpolation<scalar>& GInterp() const;

View File

@ -34,8 +34,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties()
TMax_(VGREAT), TMax_(VGREAT),
Cp0_(0.0), Cp0_(0.0),
epsilon0_(0.0), epsilon0_(0.0),
f0_(0.0), f0_(0.0)
Pr_(0.0)
{} {}
@ -51,8 +50,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
TMax_(cp.TMax_), TMax_(cp.TMax_),
Cp0_(cp.Cp0_), Cp0_(cp.Cp0_),
epsilon0_(cp.epsilon0_), epsilon0_(cp.epsilon0_),
f0_(cp.f0_), f0_(cp.f0_)
Pr_(cp.Pr_)
{} {}
@ -69,8 +67,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
TMax_(5000), TMax_(5000),
Cp0_(0.0), Cp0_(0.0),
epsilon0_(0.0), epsilon0_(0.0),
f0_(0.0), f0_(0.0)
Pr_(0.0)
{ {
if (readFields) if (readFields)
{ {
@ -87,7 +84,6 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
this->dict().lookup("Cp0") >> Cp0_; this->dict().lookup("Cp0") >> Cp0_;
this->dict().lookup("epsilon0") >> epsilon0_; this->dict().lookup("epsilon0") >> epsilon0_;
this->dict().lookup("f0") >> f0_; this->dict().lookup("f0") >> f0_;
this->dict().lookup("Pr") >> Pr_;
} }
} }
@ -106,8 +102,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
const scalar TMax, const scalar TMax,
const scalar Cp0, const scalar Cp0,
const scalar epsilon0, const scalar epsilon0,
const scalar f0, const scalar f0
const scalar Pr
) )
: :
ParcelType::constantProperties ParcelType::constantProperties
@ -124,8 +119,7 @@ inline Foam::ThermoParcel<ParcelType>::constantProperties::constantProperties
TMax_(TMax), TMax_(TMax),
Cp0_(Cp0), Cp0_(Cp0),
epsilon0_(epsilon0), epsilon0_(epsilon0),
f0_(f0), f0_(f0)
Pr_(Pr)
{} {}
@ -248,14 +242,6 @@ Foam::ThermoParcel<ParcelType>::constantProperties::f0() const
} }
template<class ParcelType>
inline Foam::scalar
Foam::ThermoParcel<ParcelType>::constantProperties::Pr() const
{
return Pr_;
}
// * * * * * * * * * * ThermoParcel Member Functions * * * * * * * * * * * * // // * * * * * * * * * * ThermoParcel Member Functions * * * * * * * * * * * * //
template<class ParcelType> template<class ParcelType>

View File

@ -2,7 +2,7 @@
========= | ========= |
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
\\ / O peration | \\ / O peration |
\\ / A nd | Copyright (C) 2011 OpenFOAM Foundation \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation
\\/ M anipulation | \\/ M anipulation |
------------------------------------------------------------------------------- -------------------------------------------------------------------------------
License License
@ -33,6 +33,7 @@ inline Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::TrackingData
: :
ParcelType::template TrackingData<CloudType>(cloud, part), ParcelType::template TrackingData<CloudType>(cloud, part),
Cp_(cloud.thermo().thermo().Cp()), Cp_(cloud.thermo().thermo().Cp()),
kappa_(cloud.thermo().thermo().kappa()),
TInterp_ TInterp_
( (
interpolation<scalar>::New interpolation<scalar>::New
@ -49,6 +50,14 @@ inline Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::TrackingData
Cp_ Cp_
) )
), ),
kappaInterp_
(
interpolation<scalar>::New
(
cloud.solution().interpolationSchemes(),
kappa_
)
),
GInterp_(NULL) GInterp_(NULL)
{ {
if (cloud.radiation()) if (cloud.radiation())
@ -75,6 +84,15 @@ Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::Cp() const
} }
template<class ParcelType>
template<class CloudType>
inline const Foam::volScalarField&
Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::kappa() const
{
return kappa_;
}
template<class ParcelType> template<class ParcelType>
template<class CloudType> template<class CloudType>
inline const Foam::interpolation<Foam::scalar>& inline const Foam::interpolation<Foam::scalar>&
@ -93,6 +111,15 @@ Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::CpInterp() const
} }
template<class ParcelType>
template<class CloudType>
inline const Foam::interpolation<Foam::scalar>&
Foam::ThermoParcel<ParcelType>::TrackingData<CloudType>::kappaInterp() const
{
return kappaInterp_();
}
template<class ParcelType> template<class ParcelType>
template<class CloudType> template<class CloudType>
inline const Foam::interpolation<Foam::scalar>& inline const Foam::interpolation<Foam::scalar>&