Skip to content

Commit 52b8a91

Browse files
authored
Merge pull request #563 from xiao312/dfchem
Improve Initialization in dfChemistryModel
2 parents 0d4e5ee + f5f6eba commit 52b8a91

File tree

2 files changed

+23
-10
lines changed

2 files changed

+23
-10
lines changed

src/dfChemistryModel/dfChemistryModel.C

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -336,6 +336,14 @@ Foam::dfChemistryModel<ThermoType>::dfChemistryModel
336336
{
337337
hc_[i] = CanteraGas_->Hf298SS(i)/CanteraGas_->molecularWeight(i);
338338
}
339+
340+
react_ = std::make_unique<Cantera::Reactor>();
341+
react_->setEnergy(0);
342+
react_->insert(mixture_.CanteraSolution());
343+
344+
sim_ = std::make_unique<Cantera::ReactorNet>();
345+
sim_->addReactor(*react_);
346+
setNumerics(*sim_);
339347
}
340348

341349

@@ -824,7 +832,7 @@ void Foam::dfChemistryModel<ThermoType>::solveSingle
824832
clockTime time;
825833
time.timeIncrement();
826834

827-
Cantera::Reactor react;
835+
// Cantera::Reactor react;
828836
const scalar Ti = problem.Ti;
829837
const scalar pi = problem.pi;
830838
const scalar rhoi = problem.rhoi;
@@ -833,16 +841,18 @@ void Foam::dfChemistryModel<ThermoType>::solveSingle
833841

834842
mixture_.setState_TPY(Ti, pi, yPre_.begin());
835843

836-
react.insert(mixture_.CanteraSolution());
837-
// keep T const before and after sim.advance. this will give you a little improvement
838-
react.setEnergy(0);
839-
Cantera::ReactorNet sim;
840-
sim.addReactor(react);
841-
setNumerics(sim);
844+
// react.insert(mixture_.CanteraSolution());
845+
// // keep T const before and after sim.advance. this will give you a little improvement
846+
// react.setEnergy(0);
847+
// Cantera::ReactorNet sim;
848+
// sim.addReactor(react);
849+
// setNumerics(sim);
842850

843-
sim.advance(problem.deltaT);
851+
react_->syncState();
852+
sim_->advance(problem.deltaT);
844853

845854
CanteraGas_->getMassFractions(yTemp_.begin());
855+
sim_->setInitialTime(0.0);
846856

847857
for (int i=0; i<mixture_.nSpecies(); i++)
848858
{
@@ -1176,4 +1186,4 @@ Foam::scalar Foam::dfChemistryModel<ThermoType>::solve_CVODE
11761186
#include "pytorchFunctions.H"
11771187
#endif
11781188

1179-
// ************************************************************************* //
1189+
// ************************************************************************* //

src/dfChemistryModel/dfChemistryModel.H

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,9 @@ public IOdictionary
9494
CanteraMixture& mixture_;
9595
std::shared_ptr<Cantera::ThermoPhase> CanteraGas_;
9696
std::shared_ptr<Cantera::Kinetics> CanteraKinetics_;
97+
std::unique_ptr<Cantera::Reactor> react_;
98+
std::unique_ptr<Cantera::ReactorNet> sim_;
99+
97100
const fvMesh& mesh_;
98101
Switch chemistry_;
99102

@@ -388,4 +391,4 @@ public:
388391

389392
#endif
390393

391-
// ************************************************************************* //
394+
// ************************************************************************* //

0 commit comments

Comments
 (0)