From 10fa5172ccd1ae717fad130789ec8154f086521a Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 8 Jul 2009 16:35:09 +0100 Subject: [PATCH 1/3] optimisation - removed double allocation of storage of t --- .../ODEChemistryModel/ODEChemistryModel.C | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C index dfe226da19..7153826609 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/ODEChemistryModel/ODEChemistryModel.C @@ -246,11 +246,9 @@ Foam::scalar Foam::ODEChemistryModel::omega { pr *= pow(cr, exp - 1.0); } - } return pf*cf - pr*cr; - } @@ -468,10 +466,27 @@ Foam::ODEChemistryModel::tc() const this->thermo().rho() ); - label nCells = rho.size(); - label nReaction = reactions_.size(); + tmp tsource + ( + new volScalarField + ( + IOobject + ( + "tc", + this->time().timeName(), + this->mesh(), + IOobject::NO_READ, + IOobject::NO_WRITE + ), + this->mesh(), + dimensionedScalar("zero", dimTime, SMALL), + zeroGradientFvPatchScalarField::typeName + ) + ); - scalarField t(nCells, SMALL); + scalarField& t = tsource(); + + label nReaction = reactions_.size(); if (this->chemistry_) { @@ -509,25 +524,7 @@ Foam::ODEChemistryModel::tc() const } } - tmp tsource - ( - new volScalarField - ( - IOobject - ( - "tc", - this->mesh_.time().timeName(), - this->mesh_, - IOobject::NO_READ, - IOobject::NO_WRITE - ), - this->mesh_, - dimensionedScalar("zero", dimTime, 0.0), - zeroGradientFvPatchScalarField::typeName - ) - ); - tsource().internalField() = t; tsource().correctBoundaryConditions(); return tsource; @@ -682,7 +679,7 @@ Foam::scalar Foam::ODEChemistryModel::solve forAll(rho, celli) { - for (label i=0; i Date: Wed, 8 Jul 2009 16:44:04 +0100 Subject: [PATCH 2/3] corrected typo in comment - compressibility->density --- .../chemistryModel/rhoChemistryModel/rhoChemistryModel.H | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H b/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H index 43df6e0406..8991f250f9 100644 --- a/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H +++ b/src/thermophysicalModels/chemistryModel/chemistryModel/rhoChemistryModel/rhoChemistryModel.H @@ -26,7 +26,7 @@ Class Foam::rhoChemistryModel Description - Chemistry model for compressibility-based thermodynamics + Chemistry model for density-based thermodynamics SourceFiles rhoChemistryModelI.H From 54f9cc3fe9a656574b499f2a6ae3ef5f68906eba Mon Sep 17 00:00:00 2001 From: andy Date: Wed, 8 Jul 2009 16:54:59 +0100 Subject: [PATCH 3/3] added output of heat release, dQ (got lost somewhere along the way...) --- .../solvers/combustion/dieselEngineFoam/dieselEngineFoam.C | 5 ++++- applications/solvers/combustion/dieselFoam/dieselFoam.C | 5 ++++- applications/solvers/combustion/reactingFoam/reactingFoam.C | 5 ++++- .../solvers/combustion/rhoReactingFoam/rhoReactingFoam.C | 5 ++++- .../lagrangian/coalChemistryFoam/coalChemistryFoam.C | 5 ++++- .../porousExplicitSourceReactingParcelFoam.C | 6 ++++-- .../lagrangian/reactingParcelFoam/reactingParcelFoam.C | 5 ++++- 7 files changed, 28 insertions(+), 8 deletions(-) diff --git a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C index ba910bcf56..7d3022a86f 100644 --- a/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C +++ b/applications/solvers/combustion/dieselEngineFoam/dieselEngineFoam.C @@ -124,7 +124,10 @@ int main(int argc, char *argv[]) rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" diff --git a/applications/solvers/combustion/dieselFoam/dieselFoam.C b/applications/solvers/combustion/dieselFoam/dieselFoam.C index 11cd91a488..1f2406ccd5 100644 --- a/applications/solvers/combustion/dieselFoam/dieselFoam.C +++ b/applications/solvers/combustion/dieselFoam/dieselFoam.C @@ -114,7 +114,10 @@ int main(int argc, char *argv[]) rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" diff --git a/applications/solvers/combustion/reactingFoam/reactingFoam.C b/applications/solvers/combustion/reactingFoam/reactingFoam.C index 2a9e34e577..abb28ffd44 100644 --- a/applications/solvers/combustion/reactingFoam/reactingFoam.C +++ b/applications/solvers/combustion/reactingFoam/reactingFoam.C @@ -86,7 +86,10 @@ int main(int argc, char *argv[]) turbulence->correct(); - rho = thermo.rho(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } runTime.write(); diff --git a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C index 16f49a197f..1c3b132cef 100644 --- a/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C +++ b/applications/solvers/combustion/rhoReactingFoam/rhoReactingFoam.C @@ -86,7 +86,10 @@ int main(int argc, char *argv[]) rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" diff --git a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C index 0791c2e358..9c10a7a617 100644 --- a/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C +++ b/applications/solvers/lagrangian/coalChemistryFoam/coalChemistryFoam.C @@ -114,7 +114,10 @@ int main(int argc, char *argv[]) rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" diff --git a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C index 760627de80..2922d0bdf8 100644 --- a/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C +++ b/applications/solvers/lagrangian/porousExplicitSourceReactingParcelFoam/porousExplicitSourceReactingParcelFoam.C @@ -99,12 +99,14 @@ int main(int argc, char *argv[]) #include "pEqn.H" } - turbulence->correct(); rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s" diff --git a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C index 8c26cb6528..4dd5f27934 100644 --- a/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C +++ b/applications/solvers/lagrangian/reactingParcelFoam/reactingParcelFoam.C @@ -101,7 +101,10 @@ int main(int argc, char *argv[]) rho = thermo.rho(); - runTime.write(); + if (runTime.write()) + { + chemistry.dQ()().write(); + } Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s" << " ClockTime = " << runTime.elapsedClockTime() << " s"