diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C index 8dcc59d985..47f8411900 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/curvatureSeparation/curvatureSeparation.C @@ -339,6 +339,8 @@ void curvatureSeparation::correct diameterToInject = separated*delta; availableMass -= separated*availableMass; + addToInjectedMass(sum(separated*availableMass)); + if (debug && mesh.time().outputTime()) { volScalarField volFnet @@ -358,6 +360,8 @@ void curvatureSeparation::correct volFnet.correctBoundaryConditions(); volFnet.write(); } + + injectionModel::correct(); } diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C index d970b1a347..905477378c 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/drippingInjection/drippingInjection.C @@ -137,6 +137,8 @@ void drippingInjection::correct // Retrieve new particle diameter sample diam = parcelDistribution_->sample(); + + addToInjectedMass(massDrip[cellI]); } else { @@ -151,6 +153,8 @@ void drippingInjection::correct diameterToInject[cellI] = 0.0; } } + + injectionModel::correct(); } diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C index 54fe38147e..ceac59285e 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.C @@ -39,11 +39,20 @@ namespace surfaceFilmModels defineTypeNameAndDebug(injectionModel, 0); defineRunTimeSelectionTable(injectionModel, dictionary); +// * * * * * * * * * * * * Protected Member Functions * * * * * * * * * * * // + +void injectionModel::addToInjectedMass(const scalar dMass) +{ + injectedMass_ += dMass; +} + + // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // injectionModel::injectionModel(surfaceFilmModel& owner) : - filmSubModelBase(owner) + filmSubModelBase(owner), + injectedMass_(0.0) {} @@ -54,7 +63,8 @@ injectionModel::injectionModel const dictionary& dict ) : - filmSubModelBase(owner, dict, typeName, modelType) + filmSubModelBase(owner, dict, typeName, modelType), + injectedMass_(0.0) {} @@ -64,6 +74,27 @@ injectionModel::~injectionModel() {} +// * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // + +void injectionModel::correct() +{ + if (outputTime()) + { + scalar injectedMass0 = getModelProperty("injectedMass"); + injectedMass0 += returnReduce(injectedMass_, sumOp()); + setModelProperty("injectedMass", injectedMass0); + injectedMass_ = 0.0; + } +} + + +scalar injectionModel::injectedMassTotal() const +{ + scalar injectedMass0 = getModelProperty("injectedMass"); + return injectedMass0 + returnReduce(injectedMass_, sumOp()); +} + + // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // } // End namespace surfaceFilmModels diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H index ea47866b0b..bd7850894d 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModel/injectionModel.H @@ -59,6 +59,12 @@ class injectionModel { private: + // Private data + + //- Injected mass + scalar injectedMass_; + + // Private Member Functions //- Disallow default bitwise copy construct @@ -68,6 +74,17 @@ private: void operator=(const injectionModel&); +protected: + + // Protected Member Functions + + //- Add to injected mass + void addToInjectedMass(const scalar dMass); + + //- Correct + void correct(); + + public: //- Runtime type information @@ -128,6 +145,9 @@ public: scalarField& massToInject, scalarField& diameterToInject ) = 0; + + //- Return the total mass injected + scalar injectedMassTotal() const; }; diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C index cd72677ae6..667fe2d810 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.C @@ -40,8 +40,7 @@ injectionModelList::injectionModelList(surfaceFilmModel& owner) : PtrList(), owner_(owner), - dict_(dictionary::null), - injectedMassTotal_(0.0) + dict_(dictionary::null) {} @@ -53,8 +52,7 @@ injectionModelList::injectionModelList : PtrList(), owner_(owner), - dict_(dict), - injectedMassTotal_(0.0) + dict_(dict) { const wordList activeModels(dict.lookup("injectionModels")); @@ -109,9 +107,6 @@ void injectionModelList::correct im.correct(availableMass, massToInject, diameterToInject); } - injectedMassTotal_ += sum(massToInject.internalField()); - - // Push values to boundaries ready for transfer to the primary region massToInject.correctBoundaryConditions(); diameterToInject.correctBoundaryConditions(); @@ -120,8 +115,14 @@ void injectionModelList::correct void injectionModelList::info(Ostream& os) const { - os << indent << "injected mass = " - << returnReduce(injectedMassTotal_, sumOp()) << nl; + scalar injectedMass = 0.0; + forAll(*this, i) + { + const injectionModel& im = operator[](i); + injectedMass += im.injectedMassTotal(); + } + + os << indent << "injected mass = " << injectedMass << nl; } diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H index be62ba45b8..c58f85a653 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/injectionModelList/injectionModelList.H @@ -65,9 +65,6 @@ private: //- Dictionary dictionary dict_; - //- Cumulative mass injected total - scalar injectedMassTotal_; - // Private Member Functions diff --git a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/removeInjection/removeInjection.C b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/removeInjection/removeInjection.C index 500962636a..fe6b5730b3 100644 --- a/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/removeInjection/removeInjection.C +++ b/src/regionModels/surfaceFilmModels/submodels/kinematic/injectionModel/removeInjection/removeInjection.C @@ -103,8 +103,12 @@ void removeInjection::correct scalar dMass = ddelta*rho[cellI]*magSf[cellI]; massToInject[cellI] += dMass; availableMass[cellI] -= dMass; + + addToInjectedMass(dMass); } } + + injectionModel::correct(); } diff --git a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C index da6c023634..ffc66761be 100644 --- a/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C +++ b/src/regionModels/surfaceFilmModels/submodels/thermo/phaseChangeModel/phaseChangeModel/phaseChangeModel.C @@ -94,6 +94,14 @@ void phaseChangeModel::correct availableMass -= dMass; dMass.correctBoundaryConditions(); + + if (outputTime()) + { + scalar phaseChangeMass = getModelProperty("phaseChangeMass"); + phaseChangeMass += returnReduce(totalMassPC_, sumOp()); + setModelProperty("phaseChangeMass", phaseChangeMass); + totalMassPC_ = 0.0; + } } @@ -103,8 +111,10 @@ void phaseChangeModel::info(Ostream& os) const returnReduce(latestMassPC_, sumOp()) /owner_.time().deltaTValue(); - os << indent << "mass phase change = " - << returnReduce(totalMassPC_, sumOp()) << nl + scalar phaseChangeMass = getModelProperty("phaseChangeMass"); + phaseChangeMass += returnReduce(totalMassPC_, sumOp()); + + os << indent << "mass phase change = " << phaseChangeMass << nl << indent << "vapourisation rate = " << massPCRate << nl; }