From 4e6ec7d20d743139f3e940a0a86f8711e16e6f09 Mon Sep 17 00:00:00 2001 From: Henry Weller <http://cfd.direct> Date: Thu, 11 Aug 2016 15:15:45 +0100 Subject: [PATCH] functionObjects::specieReactionRates: Added volRegion support Now the specie reaction rates may be averaged over the entire domain or a specified cellZone. --- .../specieReactionRates/specieReactionRates.C | 27 ++++++++++++++++--- .../specieReactionRates/specieReactionRates.H | 3 +++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C b/src/thermophysicalModels/chemistryModel/functionObjects/specieReactionRates/specieReactionRates.C index 5c141767714..b1d5ea6699c 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<ChemistryModelType>("chemistryProperties") + fvMeshFunctionObject::mesh_.lookupObject<ChemistryModelType> + ( + "chemistryProperties" + ) ) { resetName("specieReactionRates"); @@ -114,8 +119,8 @@ bool Foam::functionObjects::specieReactionRates<ChemistryModelType>::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<nReaction; ri++) { @@ -132,9 +137,23 @@ bool Foam::functionObjects::specieReactionRates<ChemistryModelType>::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 65bd9645535..176c6be18b9 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 ChemistryModelType> class specieReactionRates : public fvMeshFunctionObject, + public volRegion, public logFiles { // Private Member Data -- GitLab