mirror of
https://develop.openfoam.com/Development/openfoam.git
synced 2025-11-28 03:28:01 +00:00
updates needed for compatibility with new thermo descriptions - more needed...
This commit is contained in:
@ -28,7 +28,7 @@ License
|
||||
#define createCoalParcelTypes_H
|
||||
|
||||
#include "makeParcelIOList.H"
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "CoalCloud.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
@ -38,12 +38,12 @@ License
|
||||
createCoalParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
createCoalParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingMultiphaseCloud.H"
|
||||
|
||||
#include "NoSurfaceReaction.H"
|
||||
@ -44,12 +44,12 @@ License
|
||||
makeCoalSurfaceReactionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeCoalSurfaceReactionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -11,7 +11,7 @@ EXE_INC = \
|
||||
-I$(LIB_SRC)/thermophysicalModels/liquidMixture/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/thermophysicalFunctions/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/specie/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/combustion/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/reactionThermo/lnInclude \
|
||||
-I$(LIB_SRC)/thermophysicalModels/pdfs/lnInclude
|
||||
|
||||
LIB_LIBS = \
|
||||
|
||||
@ -34,15 +34,14 @@ License
|
||||
#include "wallPolyPatch.H"
|
||||
#include "wedgePolyPatch.H"
|
||||
#include "processorPolyPatch.H"
|
||||
#include "combustionMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
defineParticleTypeNameAndDebug(parcel, 0);
|
||||
defineTemplateTypeNameAndDebug(Cloud<parcel>, 0);
|
||||
defineParticleTypeNameAndDebug(parcel, 0);
|
||||
defineTemplateTypeNameAndDebug(Cloud<parcel>, 0);
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * //
|
||||
|
||||
@ -30,7 +30,7 @@ License
|
||||
#include "dragModel.H"
|
||||
#include "evaporationModel.H"
|
||||
#include "heatTransferModel.H"
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -93,7 +93,7 @@ void parcel::setRelaxationTimes
|
||||
for(label i=0; i<Nf; i++)
|
||||
{
|
||||
label j = sDB.liquidToGasIndex()[i];
|
||||
scalar Y = sDB.composition().Y()[j][celli];
|
||||
scalar Y = sDB.composition().Y()[j][celli];
|
||||
scalar Wi = sDB.gasProperties()[j].W();
|
||||
Yf[i] = Y;
|
||||
Xf[i] = Y*W/Wi;
|
||||
@ -139,14 +139,14 @@ void parcel::setRelaxationTimes
|
||||
scalar Prandtl = Pr(cpMixture, muf, kMixture);
|
||||
|
||||
// calculate the characteritic times
|
||||
|
||||
|
||||
if(liquidCore_> 0.5)
|
||||
{
|
||||
// no drag for parcels in the liquid core..
|
||||
tauMomentum = GREAT;
|
||||
}
|
||||
else
|
||||
{
|
||||
{
|
||||
tauMomentum = sDB.drag().relaxationTime
|
||||
(
|
||||
Urel(Up),
|
||||
@ -218,10 +218,10 @@ void parcel::setRelaxationTimes
|
||||
{
|
||||
scalar Nusselt =
|
||||
sDB.heatTransfer().Nu(Reynolds, Prandtl);
|
||||
|
||||
|
||||
// calculating the boiling temperature of the liquid at ambient pressure
|
||||
scalar tBoilingSurface = Td;
|
||||
|
||||
|
||||
label Niter = 0;
|
||||
scalar deltaT = 10.0;
|
||||
scalar dp0 = fuels.properties()[i].pv(pressure, tBoilingSurface) - pressure;
|
||||
@ -255,16 +255,16 @@ void parcel::setRelaxationTimes
|
||||
}
|
||||
dp0 = dp;
|
||||
}
|
||||
|
||||
|
||||
scalar vapourSurfaceEnthalpy = 0.0;
|
||||
scalar vapourFarEnthalpy = 0.0;
|
||||
|
||||
|
||||
for(label k = 0; k < sDB.gasProperties().size(); k++)
|
||||
{
|
||||
vapourSurfaceEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(tBoilingSurface);
|
||||
vapourFarEnthalpy += sDB.composition().Y()[k][celli]*sDB.gasProperties()[k].H(temperature);
|
||||
}
|
||||
|
||||
|
||||
scalar kLiquid = fuels.properties()[i].K(pressure, 0.5*(tBoilingSurface+T()));
|
||||
|
||||
tauBoiling[i] = sDB.evaporation().boilingTime
|
||||
|
||||
@ -36,7 +36,7 @@ License
|
||||
#include "injectorModel.H"
|
||||
#include "wallModel.H"
|
||||
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
#include "symmetryPolyPatch.H"
|
||||
#include "wedgePolyPatch.H"
|
||||
@ -56,7 +56,7 @@ Foam::spray::spray
|
||||
const volScalarField& rho,
|
||||
const volScalarField& p,
|
||||
const volScalarField& T,
|
||||
const combustionMixture& composition,
|
||||
const basicMultiComponentMixture& composition,
|
||||
const PtrList<specieProperties>& gasProperties,
|
||||
const dictionary&,
|
||||
const dictionary& environmentalProperties
|
||||
|
||||
@ -58,7 +58,7 @@ class injectorModel;
|
||||
class heatTransferModel;
|
||||
class wallModel;
|
||||
|
||||
class combustionMixture;
|
||||
class basicMultiComponentMixture;
|
||||
|
||||
/*---------------------------------------------------------------------------*\
|
||||
Class spray Declaration
|
||||
@ -128,7 +128,7 @@ class spray
|
||||
// Composition properties
|
||||
|
||||
const PtrList<specieProperties>& gasProperties_;
|
||||
const combustionMixture& composition_;
|
||||
const basicMultiComponentMixture& composition_;
|
||||
|
||||
List<label> liquidToGasIndex_;
|
||||
List<label> gasToLiquidIndex_;
|
||||
@ -192,7 +192,7 @@ public:
|
||||
const volScalarField& rho,
|
||||
const volScalarField& p,
|
||||
const volScalarField& T,
|
||||
const combustionMixture& composition,
|
||||
const basicMultiComponentMixture& composition,
|
||||
const PtrList<specieProperties>& gasProperties,
|
||||
const dictionary& thermophysicalProperties,
|
||||
const dictionary& environmentalProperties
|
||||
@ -258,7 +258,7 @@ public:
|
||||
|
||||
inline const liquidMixture& fuels() const;
|
||||
inline const PtrList<specieProperties>& gasProperties() const;
|
||||
inline const combustionMixture& composition() const;
|
||||
inline const basicMultiComponentMixture& composition() const;
|
||||
|
||||
inline const List<label>& liquidToGasIndex() const;
|
||||
inline const List<label>& gasToLiquidIndex() const;
|
||||
|
||||
@ -36,71 +36,85 @@ inline const Time& spray::runTime() const
|
||||
return runTime_;
|
||||
}
|
||||
|
||||
|
||||
inline const fvMesh& spray::mesh() const
|
||||
{
|
||||
return mesh_;
|
||||
}
|
||||
|
||||
|
||||
inline const volVectorField& spray::U() const
|
||||
{
|
||||
return U_;
|
||||
}
|
||||
|
||||
|
||||
inline const volScalarField& spray::rho() const
|
||||
{
|
||||
return rho_;
|
||||
}
|
||||
|
||||
|
||||
inline const volScalarField& spray::p() const
|
||||
{
|
||||
return p_;
|
||||
}
|
||||
|
||||
|
||||
inline const volScalarField& spray::T() const
|
||||
{
|
||||
return T_;
|
||||
}
|
||||
|
||||
|
||||
inline PtrList<injector>& spray::injectors()
|
||||
{
|
||||
return injectors_;
|
||||
}
|
||||
|
||||
|
||||
inline const PtrList<injector>& spray::injectors() const
|
||||
{
|
||||
return injectors_;
|
||||
}
|
||||
|
||||
|
||||
inline const atomizationModel& spray::atomization() const
|
||||
{
|
||||
return atomization_;
|
||||
}
|
||||
|
||||
|
||||
inline const breakupModel& spray::breakup() const
|
||||
{
|
||||
return breakupModel_;
|
||||
}
|
||||
|
||||
|
||||
inline const collisionModel& spray::collisions() const
|
||||
{
|
||||
return collisionModel_;
|
||||
}
|
||||
|
||||
|
||||
inline const dispersionModel& spray::dispersion() const
|
||||
{
|
||||
return dispersionModel_;
|
||||
}
|
||||
|
||||
|
||||
inline const dragModel& spray::drag() const
|
||||
{
|
||||
return drag_;
|
||||
}
|
||||
|
||||
|
||||
inline const evaporationModel& spray::evaporation() const
|
||||
{
|
||||
return evaporation_;
|
||||
}
|
||||
|
||||
|
||||
inline const heatTransferModel& spray::heatTransfer() const
|
||||
{
|
||||
return heatTransfer_;
|
||||
@ -112,11 +126,13 @@ inline const injectorModel& spray::injection() const
|
||||
return injectorModel_;
|
||||
}
|
||||
|
||||
|
||||
inline const wallModel& spray::wall() const
|
||||
{
|
||||
return wall_;
|
||||
}
|
||||
|
||||
|
||||
inline tmp<volVectorField> spray::momentumSource() const
|
||||
{
|
||||
tmp<volVectorField> tsource
|
||||
@ -146,6 +162,7 @@ inline tmp<volVectorField> spray::momentumSource() const
|
||||
return tsource;
|
||||
}
|
||||
|
||||
|
||||
inline tmp<volScalarField> spray::evaporationSource(const label si) const
|
||||
{
|
||||
tmp<volScalarField> tsource
|
||||
@ -179,6 +196,7 @@ inline tmp<volScalarField> spray::evaporationSource(const label si) const
|
||||
return tsource;
|
||||
}
|
||||
|
||||
|
||||
inline tmp<volScalarField> spray::heatTransferSource() const
|
||||
{
|
||||
tmp<volScalarField> tsource
|
||||
@ -209,6 +227,7 @@ inline Random& spray::rndGen()
|
||||
return rndGen_;
|
||||
}
|
||||
|
||||
|
||||
inline label spray::subCycles() const
|
||||
{
|
||||
return subCycles_;
|
||||
@ -226,81 +245,97 @@ inline const liquidMixture& spray::fuels() const
|
||||
return fuels_;
|
||||
}
|
||||
|
||||
|
||||
inline const PtrList<specieProperties>& spray::gasProperties() const
|
||||
{
|
||||
return gasProperties_;
|
||||
}
|
||||
|
||||
inline const combustionMixture& spray::composition() const
|
||||
|
||||
inline const basicMultiComponentMixture& spray::composition() const
|
||||
{
|
||||
return composition_;
|
||||
}
|
||||
|
||||
|
||||
inline const List<label>& spray::liquidToGasIndex() const
|
||||
{
|
||||
return liquidToGasIndex_;
|
||||
}
|
||||
|
||||
|
||||
inline const List<label>& spray::gasToLiquidIndex() const
|
||||
{
|
||||
return gasToLiquidIndex_;
|
||||
}
|
||||
|
||||
|
||||
inline const List<bool>& spray::isLiquidFuel() const
|
||||
{
|
||||
return isLiquidFuel_;
|
||||
}
|
||||
|
||||
|
||||
inline const bool& spray::twoD() const
|
||||
{
|
||||
return twoD_;
|
||||
}
|
||||
|
||||
|
||||
inline const vector& spray::axisOfSymmetry() const
|
||||
{
|
||||
return axisOfSymmetry_;
|
||||
}
|
||||
|
||||
|
||||
inline const vector& spray::axisOfWedge() const
|
||||
{
|
||||
return axisOfWedge_;
|
||||
}
|
||||
|
||||
|
||||
inline const vector& spray::axisOfWedgeNormal() const
|
||||
{
|
||||
return axisOfWedgeNormal_;
|
||||
}
|
||||
|
||||
|
||||
inline const scalar& spray::angleOfWedge() const
|
||||
{
|
||||
return angleOfWedge_;
|
||||
}
|
||||
|
||||
|
||||
inline const interpolation<vector>& spray::UInterpolator() const
|
||||
{
|
||||
return UInterpolator_;
|
||||
}
|
||||
|
||||
|
||||
inline const interpolation<scalar>& spray::rhoInterpolator() const
|
||||
{
|
||||
return rhoInterpolator_;
|
||||
}
|
||||
|
||||
|
||||
inline const interpolation<scalar>& spray::pInterpolator() const
|
||||
{
|
||||
return pInterpolator_;
|
||||
}
|
||||
|
||||
|
||||
inline const interpolation<scalar>& spray::TInterpolator() const
|
||||
{
|
||||
return TInterpolator_;
|
||||
}
|
||||
|
||||
|
||||
inline vectorField& spray::sms()
|
||||
{
|
||||
return sms_;
|
||||
}
|
||||
|
||||
|
||||
inline const vectorField& spray::sms() const
|
||||
{
|
||||
return sms_;
|
||||
@ -312,6 +347,7 @@ inline scalarField& spray::shs()
|
||||
return shs_;
|
||||
}
|
||||
|
||||
|
||||
inline const scalarField& spray::shs() const
|
||||
{
|
||||
return shs_;
|
||||
@ -323,16 +359,19 @@ inline PtrList<scalarField>& spray::srhos()
|
||||
return srhos_;
|
||||
}
|
||||
|
||||
|
||||
inline const PtrList<scalarField>& spray::srhos() const
|
||||
{
|
||||
return srhos_;
|
||||
}
|
||||
|
||||
|
||||
inline const scalar& spray::ambientPressure() const
|
||||
{
|
||||
return ambientPressure_;
|
||||
}
|
||||
|
||||
|
||||
inline const scalar& spray::ambientTemperature() const
|
||||
{
|
||||
return ambientTemperature_;
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "LISA.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
#include "RosinRammler.H"
|
||||
|
||||
@ -84,7 +84,7 @@ void LISA::atomizeParcel
|
||||
) const
|
||||
{
|
||||
|
||||
|
||||
|
||||
const PtrList<volScalarField>& Y = spray_.composition().Y();
|
||||
|
||||
label Ns = Y.size();
|
||||
@ -98,7 +98,7 @@ void LISA::atomizeParcel
|
||||
{
|
||||
Winv += Y[i][cellI]/spray_.gasProperties()[i].W();
|
||||
}
|
||||
|
||||
|
||||
scalar R = specie::RR*Winv;
|
||||
|
||||
// ideal gas law to evaluate density
|
||||
@ -113,31 +113,31 @@ void LISA::atomizeParcel
|
||||
scalar WeberNumber = p.We(vel, rhoAverage, sigma);
|
||||
|
||||
scalar tau = 0.0;
|
||||
scalar dL = 0.0;
|
||||
scalar dL = 0.0;
|
||||
scalar k = 0.0;
|
||||
scalar muFuel = fuels.mu(pressure, p.T(), p.X());
|
||||
scalar rhoFuel = fuels.rho(1.0e+5, p.T(), p.X());
|
||||
scalar nuFuel = muFuel/rhoFuel;
|
||||
|
||||
vector uDir = p.U()/mag(p.U());
|
||||
|
||||
|
||||
scalar uGas = mag(vel & uDir);
|
||||
vector Ug = uGas*uDir;
|
||||
|
||||
/*
|
||||
/*
|
||||
TL
|
||||
It might be the relative velocity between Liquid and Gas, but I use the
|
||||
absolute velocity of the parcel as suggested by the authors
|
||||
absolute velocity of the parcel as suggested by the authors
|
||||
*/
|
||||
|
||||
|
||||
// scalar U = mag(p.Urel(vel));
|
||||
scalar U = mag(p.U());
|
||||
|
||||
|
||||
p.ct() += deltaT;
|
||||
|
||||
scalar Q = rhoAverage/rhoFuel;
|
||||
|
||||
const injectorType& it =
|
||||
const injectorType& it =
|
||||
spray_.injectors()[label(p.injector())].properties();
|
||||
|
||||
if (it.nHoles() > 1)
|
||||
@ -150,38 +150,38 @@ void LISA::atomizeParcel
|
||||
scalar pWalk = mag(p.position() - itPosition);
|
||||
|
||||
// Updating liquid sheet tickness... that is the droplet diameter
|
||||
|
||||
|
||||
const vector direction = it.direction(0, spray_.runTime().value());
|
||||
|
||||
|
||||
scalar h = (p.position() - itPosition) & direction;
|
||||
|
||||
scalar d = sqrt(sqr(pWalk)-sqr(h));
|
||||
|
||||
|
||||
scalar time = pWalk/mag(p.U());
|
||||
|
||||
|
||||
scalar elapsedTime = spray_.runTime().value();
|
||||
|
||||
|
||||
scalar massFlow = it.massFlowRate(max(0.0,elapsedTime-time));
|
||||
|
||||
scalar hSheet = massFlow/(mathematicalConstant::pi*d*rhoFuel*mag(p.U()));
|
||||
|
||||
|
||||
scalar hSheet = massFlow/(mathematicalConstant::pi*d*rhoFuel*mag(p.U()));
|
||||
|
||||
p.d() = min(hSheet,p.d());
|
||||
|
||||
if(WeberNumber > 27.0/16.0)
|
||||
{
|
||||
|
||||
|
||||
scalar kPos = 0.0;
|
||||
scalar kNeg = Q*pow(U, 2.0)*rhoFuel/sigma;
|
||||
|
||||
|
||||
scalar derivativePos = sqrt
|
||||
(
|
||||
Q*pow(U,2.0)
|
||||
);
|
||||
|
||||
scalar derivativeNeg =
|
||||
);
|
||||
|
||||
scalar derivativeNeg =
|
||||
(
|
||||
8.0*pow(nuFuel, 2.0)*pow(kNeg, 3.0)
|
||||
+ Q*pow(U, 2.0)*kNeg
|
||||
8.0*pow(nuFuel, 2.0)*pow(kNeg, 3.0)
|
||||
+ Q*pow(U, 2.0)*kNeg
|
||||
- 3.0*sigma/2.0/rhoFuel*pow(kNeg, 2.0)
|
||||
)
|
||||
/
|
||||
@ -189,23 +189,23 @@ void LISA::atomizeParcel
|
||||
(
|
||||
4.0*pow(nuFuel, 2.0)*pow(kNeg, 4.0)
|
||||
+ Q*pow(U, 2.0)*pow(kNeg, 2.0)
|
||||
- sigma*pow(kNeg, 3.0)/rhoFuel
|
||||
- sigma*pow(kNeg, 3.0)/rhoFuel
|
||||
)
|
||||
-
|
||||
4.0*nuFuel*kNeg;
|
||||
|
||||
scalar kOld = 0.0;
|
||||
scalar kOld = 0.0;
|
||||
|
||||
|
||||
|
||||
for(label i=0; i<40; i++)
|
||||
{
|
||||
|
||||
k = kPos - (derivativePos/((derivativeNeg-derivativePos)/(kNeg-kPos)));
|
||||
|
||||
scalar derivativek =
|
||||
|
||||
scalar derivativek =
|
||||
(
|
||||
8.0*pow(nuFuel, 2.0)*pow(k, 3.0)
|
||||
+ Q*pow(U, 2.0)*k
|
||||
8.0*pow(nuFuel, 2.0)*pow(k, 3.0)
|
||||
+ Q*pow(U, 2.0)*k
|
||||
- 3.0*sigma/2.0/rhoFuel*pow(k, 2.0)
|
||||
)
|
||||
/
|
||||
@ -213,10 +213,10 @@ void LISA::atomizeParcel
|
||||
(
|
||||
4.0*pow(nuFuel, 2.0)*pow(k, 4.0)
|
||||
+ Q*pow(U, 2.0)*pow(k, 2.0)
|
||||
- sigma*pow(k, 3.0)/rhoFuel
|
||||
- sigma*pow(k, 3.0)/rhoFuel
|
||||
)
|
||||
-
|
||||
4.0*nuFuel*k;
|
||||
4.0*nuFuel*k;
|
||||
|
||||
if(derivativek > 0)
|
||||
{
|
||||
@ -228,17 +228,17 @@ void LISA::atomizeParcel
|
||||
derivativeNeg = derivativek;
|
||||
kNeg = k;
|
||||
}
|
||||
|
||||
|
||||
if(mag(k-kOld)/k < 1e-4)
|
||||
{
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
kOld = k;
|
||||
|
||||
|
||||
}
|
||||
|
||||
scalar omegaS =
|
||||
|
||||
scalar omegaS =
|
||||
- 2.0 * nuFuel * pow(k, 2.0)
|
||||
+ sqrt
|
||||
(
|
||||
@ -246,22 +246,22 @@ void LISA::atomizeParcel
|
||||
+ Q*pow(U, 2.0)*pow(k, 2.0)
|
||||
- sigma*pow(k, 3.0)/rhoFuel
|
||||
);
|
||||
|
||||
tau = cTau_/omegaS;
|
||||
|
||||
|
||||
tau = cTau_/omegaS;
|
||||
|
||||
dL = sqrt(8.0*p.d()/k);
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
k =
|
||||
|
||||
k =
|
||||
rhoAverage*pow(U, 2.0)
|
||||
/
|
||||
2.0*sigma;
|
||||
|
||||
|
||||
scalar J = pWalk*p.d()/2.0;
|
||||
|
||||
|
||||
tau = pow(3.0*cTau_,2.0/3.0)*cbrt(J*sigma/(sqr(Q)*pow(U,4.0)*rhoFuel));
|
||||
|
||||
dL = sqrt(4.0*p.d()/k);
|
||||
@ -269,78 +269,78 @@ void LISA::atomizeParcel
|
||||
|
||||
|
||||
|
||||
scalar kL =
|
||||
scalar kL =
|
||||
1.0
|
||||
/
|
||||
(
|
||||
dL *
|
||||
dL *
|
||||
pow(0.5 + 1.5 * muFuel/pow((rhoFuel*sigma*dL), 0.5), 0.5)
|
||||
);
|
||||
|
||||
scalar dD = cbrt(3.0*mathematicalConstant::pi*pow(dL, 2.0)/kL);
|
||||
|
||||
scalar dD = cbrt(3.0*mathematicalConstant::pi*pow(dL, 2.0)/kL);
|
||||
|
||||
scalar lisaExp = 0.27;
|
||||
scalar ambientPressure = 1.0e+5;
|
||||
|
||||
|
||||
scalar pRatio = spray_.ambientPressure()/ambientPressure;
|
||||
|
||||
|
||||
dD = dD*pow(pRatio,lisaExp);
|
||||
|
||||
// modifications to take account of the flash boiling on primary breakUp
|
||||
|
||||
scalar pExp = 0.135;
|
||||
|
||||
|
||||
scalar chi = 0.0;
|
||||
|
||||
label Nf = fuels.components().size();
|
||||
|
||||
label Nf = fuels.components().size();
|
||||
|
||||
scalar Td = p.T();
|
||||
|
||||
|
||||
for(label i = 0; i < Nf ; i++)
|
||||
{
|
||||
|
||||
|
||||
if(fuels.properties()[i].pv(spray_.ambientPressure(), Td) >= 0.999*spray_.ambientPressure())
|
||||
{
|
||||
|
||||
// The fuel is boiling.....
|
||||
// Calculation of the boiling temperature
|
||||
|
||||
// Calculation of the boiling temperature
|
||||
|
||||
scalar tBoilingSurface = Td;
|
||||
|
||||
|
||||
label Niter = 200;
|
||||
|
||||
|
||||
for(label k=0; k< Niter ; k++)
|
||||
{
|
||||
scalar pBoil = fuels.properties()[i].pv(pressure, tBoilingSurface);
|
||||
|
||||
|
||||
if(pBoil > pressure)
|
||||
{
|
||||
tBoilingSurface = tBoilingSurface - (Td-temperature)/Niter;
|
||||
tBoilingSurface = tBoilingSurface - (Td-temperature)/Niter;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
scalar hl = fuels.properties()[i].hl(spray_.ambientPressure(), tBoilingSurface);
|
||||
scalar iTp = fuels.properties()[i].h(spray_.ambientPressure(), Td) - spray_.ambientPressure()/fuels.properties()[i].rho(spray_.ambientPressure(), Td);
|
||||
scalar iTb = fuels.properties()[i].h(spray_.ambientPressure(), tBoilingSurface) - spray_.ambientPressure()/fuels.properties()[i].rho(spray_.ambientPressure(), tBoilingSurface);
|
||||
|
||||
|
||||
chi += p.X()[i]*(iTp-iTb)/hl;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// bounding chi
|
||||
|
||||
|
||||
chi = max(chi, 0.0);
|
||||
chi = min(chi, 1.0);
|
||||
|
||||
|
||||
// modifing dD to take account of flash boiling
|
||||
|
||||
|
||||
dD = dD*(1.0 - chi*pow(pRatio, -pExp));
|
||||
|
||||
|
||||
scalar lBU = Cl_ * mag(p.U())*tau;
|
||||
|
||||
if(pWalk > lBU)
|
||||
@ -349,7 +349,7 @@ void LISA::atomizeParcel
|
||||
p.liquidCore() = 0.0;
|
||||
|
||||
// calculate the new diameter with a Rosin Rammler distribution
|
||||
|
||||
|
||||
scalar minValue = min(p.d(),dD/10.0);
|
||||
|
||||
scalar maxValue = dD;
|
||||
@ -357,30 +357,30 @@ void LISA::atomizeParcel
|
||||
if(maxValue - minValue < SMALL)
|
||||
{
|
||||
minValue = p.d()/10.0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
scalar range = maxValue - minValue;
|
||||
|
||||
|
||||
scalar y = 0;
|
||||
scalar x = 0;
|
||||
|
||||
bool success = false;
|
||||
|
||||
|
||||
while(!success)
|
||||
{
|
||||
|
||||
|
||||
x = minValue + range*rndGen_.scalar01();
|
||||
y = rndGen_.scalar01();
|
||||
|
||||
scalar p = 0.0;
|
||||
|
||||
|
||||
scalar nExp = 1;
|
||||
|
||||
|
||||
scalar xx = pow(x/dD, nExp);
|
||||
|
||||
p = xx*exp(-xx);
|
||||
|
||||
if (y<p)
|
||||
if (y<p)
|
||||
{
|
||||
success = true;
|
||||
}
|
||||
@ -388,13 +388,13 @@ void LISA::atomizeParcel
|
||||
}
|
||||
|
||||
// New droplet diameter
|
||||
|
||||
|
||||
p.d() = x;
|
||||
p.ct() = 0.0;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "blobsSheetAtomization.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
#include "RosinRammler.H"
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "noAtomization.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
|
||||
#include "reitzDiwakar.H"
|
||||
#include "addToRunTimeSelectionTable.H"
|
||||
#include "combustionMixture.H"
|
||||
#include "basicMultiComponentMixture.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
|
||||
@ -27,14 +27,14 @@ License
|
||||
#ifndef createReactingCloudTypes_H
|
||||
#define createReactingCloudTypes_H
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define createReactingCloudType(CloudType) \
|
||||
\
|
||||
createReactingCloudThermoType(CloudType, specieConstProperties); \
|
||||
createReactingCloudThermoType(CloudType, specieReactingProperties);
|
||||
createReactingCloudThermoType(CloudType, constGasThermoPhysics); \
|
||||
createReactingCloudThermoType(CloudType, gasThermoPhysics);
|
||||
|
||||
|
||||
#define createReactingCloudThermoType(CloudType, ThermoType) \
|
||||
|
||||
@ -28,7 +28,7 @@ License
|
||||
#define createReactingMultiphaseParcelTypes_H
|
||||
|
||||
#include "makeParcelIOList.H"
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
@ -37,12 +37,12 @@ License
|
||||
createReactingMultiphaseParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
createReactingMultiphaseParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -28,14 +28,14 @@ License
|
||||
#define createReactingParcelTypes_H
|
||||
|
||||
#include "makeParcelIOList.H"
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#define createReactingParcelType(ParcelType) \
|
||||
\
|
||||
createReactingParcelThermoType(ParcelType, specieConstProperties); \
|
||||
createReactingParcelThermoType(ParcelType, specieReactingProperties);
|
||||
createReactingParcelThermoType(ParcelType, constGasThermoPhysics); \
|
||||
createReactingParcelThermoType(ParcelType, gasThermoPhysics);
|
||||
|
||||
|
||||
#define createReactingParcelThermoType(ParcelType, ThermoType) \
|
||||
|
||||
@ -36,12 +36,12 @@ License
|
||||
createTrackedReactingParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
createTrackedReactingParcelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingCloud.H"
|
||||
|
||||
#include "SingleMixtureFraction.H"
|
||||
@ -41,12 +41,12 @@ License
|
||||
makeReactingMultiphaseCompositionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingMultiphaseCompositionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingMultiphaseCloud.H"
|
||||
|
||||
#include "ConstantRateDevolatilisation.H"
|
||||
@ -43,12 +43,12 @@ License
|
||||
makeReactingMultiphaseDevolatilisationModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingMultiphaseDevolatilisationModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "ConeInjection.H"
|
||||
@ -45,13 +45,13 @@ License
|
||||
makeReactingMultiphaseInjectionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingMultiphaseInjectionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingMultiphaseCloud.H"
|
||||
|
||||
#include "NoSurfaceReaction.H"
|
||||
@ -41,12 +41,12 @@ License
|
||||
makeReactingMultiphaseSurfaceReactionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingMultiphaseSurfaceReactionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingCloud.H"
|
||||
|
||||
#include "SinglePhaseMixture.H"
|
||||
@ -41,12 +41,12 @@ License
|
||||
makeReactingCompositionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingCompositionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "NoDispersion.H"
|
||||
@ -43,13 +43,13 @@ License
|
||||
makeReactingDispersionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingDispersionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "NoDrag.H"
|
||||
@ -42,12 +42,12 @@ License
|
||||
makeReactingDragModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingDragModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ThermoCloud.H"
|
||||
|
||||
#include "NoHeatTransfer.H"
|
||||
@ -42,12 +42,12 @@ License
|
||||
makeReactingHeatTransferModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
makeReactingHeatTransferModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "ConeInjection.H"
|
||||
@ -46,13 +46,13 @@ License
|
||||
makeReactingInjectionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingInjectionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "LocalInteraction.H"
|
||||
@ -43,13 +43,13 @@ License
|
||||
makeReactingPatchInteractionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingPatchInteractionModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "ReactingCloud.H"
|
||||
|
||||
#include "NoPhaseChange.H"
|
||||
@ -42,13 +42,13 @@ License
|
||||
makeReactingPhaseChangeModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingPhaseChangeModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -29,7 +29,7 @@ License
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#include "reactingThermoTypes.H"
|
||||
#include "thermoPhysicsTypes.H"
|
||||
#include "KinematicCloud.H"
|
||||
|
||||
#include "NoPostProcessing.H"
|
||||
@ -42,13 +42,13 @@ License
|
||||
makeReactingPostProcessingModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieConstProperties \
|
||||
constGasThermoPhysics \
|
||||
); \
|
||||
\
|
||||
makeReactingPostProcessingModelThermoType \
|
||||
( \
|
||||
ParcelType, \
|
||||
specieReactingProperties \
|
||||
gasThermoPhysics \
|
||||
);
|
||||
|
||||
|
||||
|
||||
@ -1,58 +0,0 @@
|
||||
/*---------------------------------------------------------------------------*\
|
||||
========= |
|
||||
\\ / F ield | OpenFOAM: The Open Source CFD Toolbox
|
||||
\\ / O peration |
|
||||
\\ / A nd | Copyright (C) 2008-2009 OpenCFD Ltd.
|
||||
\\/ M anipulation |
|
||||
-------------------------------------------------------------------------------
|
||||
License
|
||||
This file is part of OpenFOAM.
|
||||
|
||||
OpenFOAM is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the
|
||||
Free Software Foundation; either version 2 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with OpenFOAM; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
Typedefs
|
||||
Foam::ReactingCloudThermoTypes
|
||||
|
||||
Description
|
||||
Type definitions for available thermo pacakges
|
||||
|
||||
\*---------------------------------------------------------------------------*/
|
||||
|
||||
#ifndef reactingThermoTypes_H
|
||||
#define reactingThermoTypes_H
|
||||
|
||||
#include "perfectGas.H"
|
||||
#include "hConstThermo.H"
|
||||
#include "janafThermo.H"
|
||||
#include "specieThermo.H"
|
||||
#include "sutherlandTransport.H"
|
||||
#include "constTransport.H"
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
namespace Foam
|
||||
{
|
||||
typedef sutherlandTransport<specieThermo<janafThermo<perfectGas> > >
|
||||
specieReactingProperties;
|
||||
|
||||
typedef constTransport<specieThermo<hConstThermo<perfectGas> > >
|
||||
specieConstProperties;
|
||||
}
|
||||
|
||||
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
|
||||
|
||||
#endif
|
||||
|
||||
// ************************************************************************* //
|
||||
@ -398,7 +398,7 @@ void Foam::InjectionModel<CloudType>::inject(TrackData& td)
|
||||
parcelType* pPtr = new parcelType(td.cloud(), pos, cellI);
|
||||
|
||||
// Assign new parcel properties in injection model
|
||||
setProperties(parcelI, newParcels, timeInj, &pPtr);
|
||||
setProperties(parcelI, newParcels, timeInj, *pPtr);
|
||||
|
||||
// Check new parcel properties
|
||||
td.cloud().checkParcelProperties(pPtr, dt, fullyDescribed());
|
||||
|
||||
Reference in New Issue
Block a user