From 706e4254328647f2a9cce4f59593ac9c769a5cea Mon Sep 17 00:00:00 2001 From: andy Date: Mon, 16 Mar 2009 09:37:48 +0000 Subject: [PATCH] updates to the reacting classes --- .../ReactingMultiphaseParcel.C | 202 +++++++----------- .../ReactingMultiphaseParcel.H | 2 + .../Templates/ReactingParcel/ReactingParcel.C | 62 +++--- .../Templates/ReactingParcel/ReactingParcel.H | 4 +- .../Templates/ThermoParcel/ThermoParcel.C | 27 +-- .../LiquidEvaporation/LiquidEvaporation.C | 10 +- .../LiquidEvaporation/LiquidEvaporation.H | 4 +- .../NoPhaseChange/NoPhaseChange.C | 3 +- .../NoPhaseChange/NoPhaseChange.H | 4 +- .../PhaseChangeModel/PhaseChangeModel.H | 4 +- .../ConstantRateDevolatilisation.C | 8 +- .../ConstantRateDevolatilisation.H | 4 +- .../SingleKineticRateDevolatilisation.C | 11 +- .../SingleKineticRateDevolatilisation.H | 4 +- 14 files changed, 150 insertions(+), 199 deletions(-) diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C index 2b67498fd2..816691d770 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.C @@ -87,146 +87,102 @@ void Foam::ReactingMultiphaseParcel::calc // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Define local properties at beginning of timestep // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - const vector U0 = this->U_; const scalar mass0 = this->mass(); - const scalar cp0 = this->cp_; const scalar np0 = this->nParticle_; - scalar T0 = this->T_; + const scalar T0 = this->T_; const scalar pc = this->pc_; - scalarField& Y = this->Y_; - scalar mass1 = mass0; + scalarField& YMix = this->Y_; + const label idL = td.cloud().composition().idLiquid(); - label idGas = td.cloud().composition().idGas(); - label idLiquid = td.cloud().composition().idLiquid(); - label idSolid = td.cloud().composition().idSolid(); - - // ~~~~~~~~~~~~~~~~~~~~~~~~~ - // Initialise transfer terms - // ~~~~~~~~~~~~~~~~~~~~~~~~~ - - // Momentum transfer from the particle to the carrier phase - vector dUTrans = vector::zero; - - // Enthalpy transfer from the particle to the carrier phase - scalar dhTrans = 0.0; + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Calculate phase change in liquid phase + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Mass transfer from particle to carrier phase - // - components exist in particle already - scalarList dMassMT(td.cloud().gases().size(), 0.0); + scalarList dMassPC(td.cloud().gases().size(), 0.0); + scalar shPC = + calcPhaseChange(td, dt, cellI, T0, idL, YMix[idL], YLiquid_, dMassPC); - // Mass transfer due to surface reactions from particle to carrier phase - // - components do not necessarily exist in particle already - scalarList dMassSR(td.cloud().gases().size(), 0.0); - - - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Calculate velocity - update U - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - scalar Cud = 0.0; - const vector U1 = calcVelocity(td, dt, Cud, dUTrans); - - - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Calculate heat transfer - update T - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - scalar htc = 0.0; - scalar T1 = calcHeatTransfer(td, dt, cellI, htc, dhTrans); - - - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Calculate phase change - update mass, Y, cp, T, dhTrans - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - const scalar dMassPC = calcPhaseChange(td, dt, cellI, T1, Y[idLiquid], dMassMT); - - // Update particle mass - mass1 -= dMassPC; - - // Update particle liquid component mass fractions - this->updateMassFraction(mass0, dMassMT, YLiquid_); - - // New specific heat capacity of mixture - scalar cp1 = cpEff(td, pc, T1); - - // Correct temperature due to evaporated components - // TODO: use hl function in liquidMixture??? -// scalar dhPC = -dMassPCTot*td.cloud().composition().L(0, Y_, pc, T0); - scalar Lvap = td.cloud().composition().L(idLiquid, this->YLiquid_, pc, T0); - T1 -= Lvap*dMassPC/(0.5*(mass0 + mass1)*cp1); - - // Correct dhTrans to account for the change in enthalpy due to the - // liquid phase change - dhTrans += - dMassPC - *td.cloud().composition().H(idLiquid, YLiquid_, pc, 0.5*(T0 + T1)); - -//???????????????????????????????????????????????????????????????????????????????? - // Store temperature for the start of the next process - T0 = T1; -//???????????????????????????????????????????????????????????????????????????????? + // Update particle component mass fractions + updateMassFraction(mass0, dMassPC, YLiquid_); // ~~~~~~~~~~~~~~~~~~~~~~~~~~ // Calculate Devolatilisation // ~~~~~~~~~~~~~~~~~~~~~~~~~~ - const scalar dMassD = calcDevolatilisation(td, dt, T0, dMassMT); - - // Update particle mass - mass1 -= dMassD; - - // New specific heat capacity of mixture - cp1 = cpEff(td, pc, T1); - - // Update gas and solid component mass fractions -// updateMassFraction(mass0, mass1, dMassMT, YGas_); -// updateMassFraction(mass0, mass1, dMassMT, YSolid_); - - // Correct particle temperature to account for latent heat of - // devolatilisation - T1 -= - td.constProps().Ldevol() - *sum(dMassMT) - /(0.5*(mass0 + mass1)*cp1); + // Mass transfer from particle to carrier phase + // - components exist in particle already + scalarList dMassDV(td.cloud().gases().size(), 0.0); + scalar shDV = calcDevolatilisation(td, dt, T0, mass0, idGas, YMix, dMassDV); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Calculate surface reactions // ~~~~~~~~~~~~~~~~~~~~~~~~~~~ - + // Mass transfer of volatile components from particle to carrier phase + const scalarList dMassMT = dMassPC + dMassDV; + // Mass transfer due to surface reactions from particle to carrier phase + // - components do not necessarily exist in particle already + scalarList dMassSR(td.cloud().gases().size(), 0.0); // Initialise enthalpy retention to zero scalar dhRet = 0.0; - - calcSurfaceReactions(td, dt, cellI, T0, T1, dMassMT, dMassSR, dhRet); - - // New total mass - mass1 -= sum(dMassSR); - + calcSurfaceReactions(td, dt, cellI, T0, dMassMT, dMassSR, dhRet); // Enthalpy retention divided between particle and carrier phase by the // fraction fh and (1 - fh) - T1 += td.constProps().fh()*dhRet/(0.5*(mass0 + mass1)*cp0); + scalar ShSR = td.constProps().fh()*dhRet; dhTrans -= (1.0 - td.constProps().fh())*dhRet; - // Correct dhTrans to account for enthalpy of evolved volatiles - dhTrans += - sum(dMassMT) - *td.cloud().composition().H(idGas, YGas_, pc, 0.5*(T0 + T1)); - // Correct dhTrans to account for enthalpy of consumed solids dhTrans += - sum(dMassSR) - *td.cloud().composition().H(idSolid, YSolid_, pc, 0.5*(T0 + T1)); + sum(dMassSR)*td.cloud().composition().H(idSolid, YSolid_, pc, T0); + + // Correct dhTrans to account for enthalpy of evolved volatiles + dhTrans += + sum(dMassMT)*td.cloud().composition().H(idGas, YGas_, pc, T0); + // ~~~~~~~~~~~~~~~~~~~~~~~ + // Calculate heat transfer + // ~~~~~~~~~~~~~~~~~~~~~~~ + scalar htc = 0.0; + + // Total enthalpy source + scalar Sh = ShPC + ShDV + ShSR; + + scalar T1 = calcHeatTransfer(td, dt, cellI, Sh, htc, shHT); + + + // ~~~~~~~~~~~~~~~~~~ + // Calculate velocity + // ~~~~~~~~~~~~~~~~~~ + // Update mass + scalar mass1 = mass0 - massPC - massD - massSR; + scalar Cud = 0.0; + vector dUTrans = vector::zero; + vector Fx = vector::zero; + vector U1 = calcVelocity(td, dt, Fx, 0.5*(mass0 + mass1), Cud, dUTrans); + + + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Collect contributions to determine new particle thermo properties + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + // Update specific heat capacity + cp1 = cpEff(td, pc, T1); + + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + // Accumulate carrier phase source terms + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (td.cloud().coupled()) { - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Accumulate carrier phase source terms - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // Transfer mass lost from particle to carrier mass source forAll(dMassMT, i) { - td.cloud().rhoTrans(i)[cellI] += np0*(dMassMT[i] + dMassSR[i]); + td.cloud().rhoTrans(i)[cellI] += + np0*(dMassPC[i] + dMassDV[i] + dMassSR[i]); } // Update momentum transfer @@ -266,7 +222,7 @@ void Foam::ReactingMultiphaseParcel::calc { this->U_ = U1; this->T_ = T1; - this->cp_ = cpEff(td, pc, T1); + this->cp_ = cp1; // Update particle density or diameter if (td.constProps().constantVolume()) @@ -288,6 +244,9 @@ Foam::scalar Foam::ReactingMultiphaseParcel::calcDevolatilisation TrackData& td, const scalar dt, const scalar T, + const scalar mass, + const label idVolatile, + scalarField_ YMixture, scalarList& dMassMT ) { @@ -296,37 +255,34 @@ Foam::scalar Foam::ReactingMultiphaseParcel::calcDevolatilisation if ( !td.cloud().devolatilisation().active() - || this->T_T_mass(); - scalarField& Y = this->Y_; const scalar dMassTot = td.cloud().devolatilisation().calculate ( dt, this->mass0_, mass, - td.cloud().composition().YMixture0(), - Y, + td.cloud().composition().YMixture0()[idVolatile], + YMix[0], T, canCombust_ ); // Update (total) mass fractions - Y[0] = (Y[0]*mass - dMassTot)/(mass - dMassTot); - Y[1] = Y[1]*mass/(mass - dMassTot); - Y[2] = 1.0 - Y[0] - Y[1]; + YMix[0] = (YMix[0]*mass - dMassTot)/(mass - dMassTot); + YMix[1] = YMix[1]*mass/(mass - dMassTot); + YMix[2] = 1.0 - YMix[0] - YMix[1]; // Add to cummulative mass transfer - label idGas = td.cloud().composition().idGas(); forAll (YGas_, i) { - label id = td.cloud().composition().globalIds(idGas)[i]; + label id = td.cloud().composition().globalIds(idVolatile)[i]; // Volatiles mass transfer scalar volatileMass = YGas_[i]*dMassTot; @@ -335,7 +291,7 @@ Foam::scalar Foam::ReactingMultiphaseParcel::calcDevolatilisation td.cloud().addToMassDevolatilisation(dMassTot); - return dMassTot; + return = td.constProps().Ldevol()*dMassTot; } @@ -346,8 +302,7 @@ void Foam::ReactingMultiphaseParcel::calcSurfaceReactions TrackData& td, const scalar dt, const label cellI, - const scalar T0, - const scalar T1, + const scalar T, const scalarList& dMassMT, scalarList& dMassSR, scalar& dhRet @@ -366,8 +321,7 @@ void Foam::ReactingMultiphaseParcel::calcSurfaceReactions dt, cellI, this->d_, - T0, - T1, + T, this->Tc_, this->pc_, this->rhoc_, diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H index e70f0ae5c3..ca6315bde8 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingMultiphaseParcel/ReactingMultiphaseParcel.H @@ -185,6 +185,8 @@ protected: TrackData& td, const scalar dt, const scalar T, + const scalar mass, + const label idVolatile, scalarList& dMassMT ); diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C index 65d8bc1d8f..1d18da3169 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.C @@ -76,47 +76,41 @@ void Foam::ReactingParcel::calc const scalar np0 = this->nParticle_; const scalar T0 = this->T_; - // ~~~~~~~~~~~~~~~~~~~~~ - // 1. Calculate velocity - // ~~~~~~~~~~~~~~~~~~~~~ - - scalar Cud = 0.0; - vector dUTrans = vector::zero; - const vector U1 = calcVelocity(td, dt, vector::zero, mass0, Cud, dUTrans); - // ~~~~~~~~~~~~~~~~~~~~~~~~~ - // 2. Calculate phase change + // 1. Calculate phase change // ~~~~~~~~~~~~~~~~~~~~~~~~~ // Mass transfer from particle to carrier phase scalarList dMassPC(td.cloud().gases().size(), 0.0); - const scalar dMassPCTot = calcPhaseChange(td, dt, cellI, T0, 1.0, dMassPC); - - // Enthalpy change due to change in particle composition (sink) - scalar ShPC = -dMassPCTot*td.cloud().composition().L(0, Y_, pc, T0); - - // Enthalpy change due to species released into the carrier (source) - scalar HEff = td.cloud().composition().H(0, Y_, pc, T0); - ShPC += dMassPCTot*HEff; + scalar ShPC = calcPhaseChange(td, dt, cellI, T0, 0, 1.0, Y_, dMassPC); // Update particle component mass fractions updateMassFraction(mass0, dMassPC, Y_); // ~~~~~~~~~~~~~~~~~~~~~~~~~~ - // 3. Calculate heat transfer + // 2. Calculate heat transfer // ~~~~~~~~~~~~~~~~~~~~~~~~~~ scalar htc = 0.0; scalar ShHT = 0.0; scalar T1 = calcHeatTransfer(td, dt, cellI, ShPC, htc, ShHT); + // ~~~~~~~~~~~~~~~~~~~~~ + // 3. Calculate velocity + // ~~~~~~~~~~~~~~~~~~~~~ + // Update mass + scalar mass1 = mass0 - sum(dMassPC); + scalar Cud = 0.0; + vector dUTrans = vector::zero; + vector Fx = vector::zero; + vector U1 = calcVelocity(td, dt, Fx, 0.5*(mass0 + mass1), Cud, dUTrans); + + // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // 4. Collect contributions to determine new particle thermo properties // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // New mass - scalar mass1 = mass0 - dMassPCTot; // Total enthalpy transfer from the particle to the carrier phase scalar dhTrans = ShHT + ShPC; @@ -165,6 +159,7 @@ void Foam::ReactingParcel::calc td.cloud().rhoTrans(i)[cellI] += np0*mass1*Y_[i]; } td.cloud().UTrans()[cellI] += np0*mass1*U1; + scalar HEff = td.cloud().composition().H(0, YComponents, pc_, T1); td.cloud().hTrans()[cellI] += np0*mass1*HEff; } } @@ -198,36 +193,47 @@ Foam::scalar Foam::ReactingParcel::calcPhaseChange const scalar dt, const label cellI, const scalar T, - const scalar YPhase, // TODO: NEEDED????????????????????????????????????????? - scalarList& dMassMT + const label idPhase, + const scalar YPhase, + scalarField& YComponents, + scalarList& dMass ) { if ( !td.cloud().phaseChange().active() || T < td.constProps().Tvap() - || YPhase > SMALL + || YPhase < SMALL ) { return 0.0; } - scalar dMass = td.cloud().phaseChange().calculate + td.cloud().phaseChange().calculate ( dt, cellI, - T, + min(T, td.constProps().Tbp()), // Limiting to boiling temperature pc_, this->d_, this->Tc_, this->muc_/this->rhoc_, this->U_ - this->Uc_, - dMassMT + dMass ); - td.cloud().addToMassPhaseChange(dMass); + scalar dMassTot = sum(dMass); - return dMass; + // Add to cumulative phase change mass + td.cloud().addToMassPhaseChange(dMassTot); + + // Effective latent heat of vaporisation + scalar LEff = td.cloud().composition().L(idPhase, YComponents, pc_, T); + + // Effective heat of vaporised components + scalar HEff = td.cloud().composition().H(idPhase, YComponents, pc_, T); + + return dMassTot*(HEff - LEff); } diff --git a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H index d1c41acc40..3e4a248006 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H +++ b/src/lagrangian/intermediate/parcels/Templates/ReactingParcel/ReactingParcel.H @@ -188,8 +188,10 @@ protected: const scalar dt, const label cellI, const scalar T, + const label idPhase, const scalar YPhase, - scalarList& dMassMT + const scalarField& YComponents, + scalarList& dMass ); //- Update mass fraction diff --git a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C index da7a31200e..b1ff448686 100644 --- a/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C +++ b/src/lagrangian/intermediate/parcels/Templates/ThermoParcel/ThermoParcel.C @@ -61,33 +61,24 @@ void Foam::ThermoParcel::calc const scalar np0 = this->nParticle_; - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // 1. Initialise transfer terms - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - // Momentum transfer from the particle to the carrier phase - vector dUTrans = vector::zero; - - // Enthalpy transfer from the particle to the carrier phase - scalar dhTrans = 0.0; - - // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // 2. Calculate heat transfer - update T + // 1. Calculate heat transfer - update T // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scalar htc = 0.0; - const scalar T1 = calcHeatTransfer(td, dt, cellI, 0.0, htc, dhTrans); + scalar ShHT = 0.0; + const scalar T1 = calcHeatTransfer(td, dt, cellI, 0.0, htc, ShHT); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // 3. Calculate velocity - update U + // 2. Calculate velocity - update U // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ scalar Cud = 0.0; + vector dUTrans = vector::zero; const vector U1 = calcVelocity(td, dt, vector::zero, Cud, mass0, dUTrans); // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - // 4. Accumulate carrier phase source terms + // 3. Accumulate carrier phase source terms // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ if (td.cloud().coupled()) { @@ -98,7 +89,7 @@ void Foam::ThermoParcel::calc td.cloud().UCoeff()[cellI] += np0*mass0*Cud; // Update enthalpy transfer - td.cloud().hTrans()[cellI] += np0*dhTrans; + td.cloud().hTrans()[cellI] += np0*ShHT; // Coefficient to be applied in carrier phase enthalpy coupling td.cloud().hCoeff()[cellI] += np0*htc*this->areaS(); @@ -121,7 +112,7 @@ Foam::scalar Foam::ThermoParcel::calcHeatTransfer const label cellI, const scalar Sh, scalar& htc, - scalar& dhTrans + scalar& ShHT ) { if (!td.cloud().heatTransfer().active()) @@ -171,7 +162,7 @@ Foam::scalar Foam::ThermoParcel::calcHeatTransfer td.cloud().TIntegrator().integrate(T_, dt, ap, bp); // Using average parcel temperature for enthalpy transfer calculation - dhTrans = dt*Ap*htc*(Tres.average() - Tc_); + ShHT = dt*Ap*htc*(Tres.average() - Tc_); return Tres.value(); } diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C index a3fde009a1..fd33527bf5 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.C @@ -186,7 +186,7 @@ bool Foam::LiquidEvaporation::active() const template -Foam::scalar Foam::LiquidEvaporation::calculate +void Foam::LiquidEvaporation::calculate ( const scalar dt, const label cellI, @@ -196,7 +196,7 @@ Foam::scalar Foam::LiquidEvaporation::calculate const scalar Tc, const scalar nuc, const vector& Ur, - scalarList& dMassMT + scalarList& dMass ) const { // initialise total mass transferred from the particle to carrier phase @@ -242,12 +242,8 @@ Foam::scalar Foam::LiquidEvaporation::calculate scalar Ni = max(kc*(Cs - Cinf), 0.0); // mass transfer [kg] - scalar dm = Ni*A*liquids_->properties()[lid].W()*dt; - dMassMT[gid] += dm; - dMassTot += dm; + dMass[gid] += Ni*A*liquids_->properties()[lid].W()*dt; } - - return dMassTot; } diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H index a9321af4a9..0aa6953521 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/LiquidEvaporation/LiquidEvaporation.H @@ -104,7 +104,7 @@ public: bool active() const; //- Update model - scalar calculate + void calculate ( const scalar dt, const label cellI, @@ -114,7 +114,7 @@ public: const scalar Tc, const scalar nuc, const vector& Ur, - scalarList& dMassMT + scalarList& dMass ) const; }; diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C index aa4fbc4cee..7ecb03c773 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.C @@ -56,7 +56,7 @@ bool Foam::NoPhaseChange::active() const template -Foam::scalar Foam::NoPhaseChange::calculate +void Foam::NoPhaseChange::calculate ( const scalar, const label, @@ -70,7 +70,6 @@ Foam::scalar Foam::NoPhaseChange::calculate ) const { // Nothing to do... - return 0.0; } diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H index 1a58a5141f..e1ec25dd5e 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/NoPhaseChange/NoPhaseChange.H @@ -70,7 +70,7 @@ public: bool active() const; //- Update model - scalar calculate + void calculate ( const scalar dt, const label cellI, @@ -80,7 +80,7 @@ public: const scalar Tc, const scalar nuc, const vector& Ur, - scalarList& dMassMT + scalarList& dMass ) const; }; diff --git a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H index ff9a77e9b6..32e44a960f 100644 --- a/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H +++ b/src/lagrangian/intermediate/submodels/Reacting/PhaseChangeModel/PhaseChangeModel/PhaseChangeModel.H @@ -136,7 +136,7 @@ public: virtual bool active() const = 0; //- Update model - virtual scalar calculate + virtual void calculate ( const scalar dt, const label cellI, @@ -146,7 +146,7 @@ public: const scalar Tc, const scalar nuc, const vector& Ur, - scalarList& dMassMT + scalarList& dMass ) const = 0; }; diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.C index bf371114dd..afe83f1baa 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.C +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.C @@ -66,14 +66,14 @@ Foam::scalar Foam::ConstantRateDevolatilisation::calculate const scalar dt, const scalar mass0, const scalar mass, - const scalarField& YMixture0, - const scalarField& YMixture, + const scalar YVolatile0, + const scalarField& YVolatile, const scalar T, bool& canCombust ) const { - const scalar massVolatile0 = YMixture0[0]*mass0; - const scalar massVolatile = YMixture[0]*mass; + const scalar massVolatile0 = YVolatile0*mass0; + const scalar massVolatile = YVolatile*mass; if (massVolatile <= volatileResidualCoeff_*massVolatile0) { diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.H index 80bc0ced2f..13abc8b2a9 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.H +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/ConstantRateDevolatilisation/ConstantRateDevolatilisation.H @@ -93,8 +93,8 @@ public: const scalar dt, const scalar mass0, const scalar mass, - const scalarField& YMixture0, - const scalarField& YMixture, + const scalar YVolatile0, + const scalarField& YVolatile, const scalar T, bool& canCombust ) const; diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.C b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.C index 43eee0ad2a..488e22978e 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.C +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.C @@ -29,7 +29,8 @@ License // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // template -Foam::SingleKineticRateDevolatilisation::SingleKineticRateDevolatilisation +Foam::SingleKineticRateDevolatilisation:: +SingleKineticRateDevolatilisation ( const dictionary& dict, CloudType& owner @@ -68,14 +69,14 @@ Foam::scalar Foam::SingleKineticRateDevolatilisation::calculate const scalar dt, const scalar mass0, const scalar mass, - const scalarField& YMixture0, - const scalarField& YMixture, + const scalar YVolatile0, + const scalarField& YVolatile, const scalar T, bool& canCombust ) const { - const scalar massVolatile0 = YMixture0[0]*mass; - const scalar massVolatile = YMixture[0]*mass; + const scalar massVolatile0 = YVolatile0*mass; + const scalar massVolatile = YVolatile*mass; if (massVolatile <= volatileResidualCoeff_*massVolatile0) { diff --git a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.H b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.H index f68ea2245a..62873a77d7 100644 --- a/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.H +++ b/src/lagrangian/intermediate/submodels/ReactingMultiphase/DevolatilisationModel/SingleKineticRateDevolatilisation/SingleKineticRateDevolatilisation.H @@ -95,8 +95,8 @@ public: const scalar dt, const scalar mass0, const scalar mass, - const scalarField& YMixture0, - const scalarField& YMixture, + const scalar YVolatile0, + const scalarField& YVolatile, const scalar T, bool& canCombust ) const;