diff --git a/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C b/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C index 5c14176771..b1d5ea6699 100644 --- a/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C +++ b/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C @@ -37,6 +37,7 @@ writeFileHeader ) { writeHeader(file(), "Specie reaction rates"); + volRegion::writeFileHeader(*this, file()); writeHeaderValue(file(), "nSpecie", chemistryModel_.nSpecie()); writeHeaderValue(file(), "nReaction", chemistryModel_.nReaction()); @@ -67,10 +68,14 @@ specieReactionRates ) : fvMeshFunctionObject(name, runTime, dict), + volRegion(fvMeshFunctionObject::mesh_, dict), logFiles(obr_, name), chemistryModel_ ( - mesh_.lookupObject("chemistryProperties") + fvMeshFunctionObject::mesh_.lookupObject + ( + "chemistryProperties" + ) ) { resetName("specieReactionRates"); @@ -114,8 +119,8 @@ bool Foam::functionObjects::specieReactionRates::write() const label nSpecie = chemistryModel_.nSpecie(); const label nReaction = chemistryModel_.nReaction(); - // Domain volume - const scalar V = gSum(mesh_.V()); + // Region volume + const scalar V = this->V(); for (label ri=0; ri::write() chemistryModel_.calculateRR(ri, si) ); + scalar sumVRRi = 0; + + if (isNull(cellIDs())) + { + sumVRRi = fvc::domainIntegrate(RR).value(); + } + else + { + sumVRRi = gSum + ( + scalarField(fvMeshFunctionObject::mesh_.V()*RR, cellIDs()) + ); + } + if (Pstream::master()) { - file() << token::TAB << fvc::domainIntegrate(RR).value()/V; + file() << token::TAB << sumVRRi/V; } } diff --git a/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.H b/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.H index 65bd964553..176c6be18b 100644 --- a/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.H +++ b/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.H @@ -33,6 +33,7 @@ Description See also Foam::functionObjects::fvMeshFunctionObject + Foam::functionObjects::volRegion Foam::functionObjects::logFiles SourceFiles @@ -44,6 +45,7 @@ SourceFiles #define functionObjects_specieReactionRates_H #include "fvMeshFunctionObject.H" +#include "volRegion.H" #include "logFiles.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -61,6 +63,7 @@ template class specieReactionRates : public fvMeshFunctionObject, + public volRegion, public logFiles { // Private Member Data