From 5acc3dbdd5080b13fe02b595aac4256611da330d Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 10 May 2015 12:31:17 +0100 Subject: [PATCH] chemistryModel: Added optional Treact to reduce the time of chemistry evaluation Treact: Temperature below which the reaction rates are assumed 0 --- .../chemistryModel/chemistryModel.C | 56 +++++++++++-------- .../chemistryModel/chemistryModel.H | 9 +++ .../chemistryModel/chemistryModelI.H | 16 ++++++ 3 files changed, 59 insertions(+), 22 deletions(-) diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C index 4347fcf642..8b2c308d26 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModel.C @@ -51,7 +51,7 @@ Foam::chemistryModel::chemistryModel nSpecie_(Y_.size()), nReaction_(reactions_.size()), - + Treact_(CompType::template lookupOrDefault("Treact", 0.0)), RR_(nSpecie_) { // create the fields for the chemistry sources @@ -796,32 +796,44 @@ Foam::scalar Foam::chemistryModel::solve forAll(rho, celli) { - const scalar rhoi = rho[celli]; - scalar pi = p[celli]; scalar Ti = T[celli]; - for (label i=0; i Treact_) { - c[i] = rhoi*Y_[i][celli]/specieThermo_[i].W(); - c0[i] = c[i]; + const scalar rhoi = rho[celli]; + scalar pi = p[celli]; + + for (label i=0; i SMALL) + { + scalar dt = timeLeft; + this->solve(c, Ti, pi, dt, this->deltaTChem_[celli]); + timeLeft -= dt; + } + + deltaTMin = min(this->deltaTChem_[celli], deltaTMin); + + for (label i=0; i SMALL) + else { - scalar dt = timeLeft; - this->solve(c, Ti, pi, dt, this->deltaTChem_[celli]); - timeLeft -= dt; - } - - deltaTMin = min(this->deltaTChem_[celli], deltaTMin); - - for (label i=0; i > RR_; @@ -138,6 +141,12 @@ public: //- The number of reactions inline label nReaction() const; + //- Temperature below which the reaction rates are assumed 0 + inline scalar Treact() const; + + //- Temperature below which the reaction rates are assumed 0 + inline scalar& Treact(); + //- dc/dt = omega, rate of change in concentration, for each species virtual tmp omega ( diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H index c009a11e46..9a97c8a390 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/chemistryModel/chemistryModelI.H @@ -68,6 +68,22 @@ Foam::chemistryModel::nReaction() const } +template +inline Foam::scalar +Foam::chemistryModel::Treact() const +{ + return Treact_; +} + + +template +inline Foam::scalar& +Foam::chemistryModel::Treact() +{ + return Treact_; +} + + template inline const Foam::DimensionedField& Foam::chemistryModel::RR