From ded81f4e659216155c41bc8628fa272fc8bb4abc Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin Date: Fri, 26 Mar 2021 17:40:30 +0000 Subject: [PATCH] INT: reacting*EulerFoam: correct handling of K for energy equation (#2033) --- .../AnisothermalPhaseModel.C | 36 ++++++++++--------- .../AnisothermalPhaseModel.H | 6 ++-- .../MovingPhaseModel/MovingPhaseModel.C | 12 ++----- .../MovingPhaseModel/MovingPhaseModel.H | 8 +++-- 4 files changed, 30 insertions(+), 32 deletions(-) diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C index d5e3d83494..54b2f2fbcd 100644 --- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.C @@ -5,8 +5,8 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2015-2018 OpenFOAM Foundation - Copyright (C) 2020 OpenCFD Ltd. + Copyright (C) 2015-2021 OpenFOAM Foundation + Copyright (C) 2020-2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -70,13 +70,6 @@ Foam::AnisothermalPhaseModel::AnisothermalPhaseModel {} -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::AnisothermalPhaseModel::~AnisothermalPhaseModel() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -100,23 +93,32 @@ Foam::tmp Foam::AnisothermalPhaseModel::heEqn() { const volScalarField& alpha = *this; + const volScalarField& rho = this->rho(); - const volVectorField U(this->U()); - const surfaceScalarField alphaPhi(this->alphaPhi()); - const surfaceScalarField alphaRhoPhi(this->alphaRhoPhi()); + const tmp tU(this->U()); + const volVectorField& U(tU()); - const volScalarField contErr(this->continuityError()); - const volScalarField K(this->K()); + const tmp talphaPhi(this->alphaPhi()); + const surfaceScalarField& alphaPhi(talphaPhi()); + + const tmp talphaRhoPhi(this->alphaRhoPhi()); + const surfaceScalarField& alphaRhoPhi(talphaRhoPhi()); + + const tmp tcontErr(this->continuityError()); + const volScalarField& contErr(tcontErr()); + + tmp tK(this->K()); + const volScalarField& K(tK()); volScalarField& he = this->thermo_->he(); tmp tEEqn ( - fvm::ddt(alpha, this->rho(), he) + fvm::ddt(alpha, rho, he) + fvm::div(alphaRhoPhi, he) - fvm::Sp(contErr, he) - + fvc::ddt(alpha, this->rho(), K) + fvc::div(alphaRhoPhi, K) + + fvc::ddt(alpha, rho, K) + fvc::div(alphaRhoPhi, K) - contErr*K - fvm::laplacian @@ -135,7 +137,7 @@ Foam::AnisothermalPhaseModel::heEqn() tEEqn.ref() += filterPressureWork ( fvc::div(fvc::absolute(alphaPhi, alpha, U), this->thermo().p()) - + this->thermo().p()*fvc::ddt(alpha) + + (fvc::ddt(alpha) - contErr/rho)*this->thermo().p() ); } else if (this->thermo_->dpdt()) diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H index b6236eb6b4..7e87a123e1 100644 --- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/AnisothermalPhaseModel/AnisothermalPhaseModel.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2018 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -54,7 +55,7 @@ class AnisothermalPhaseModel : public BasePhaseModel { - // Private member functions + // Private Member Functions //- Optionally filter the pressure work term as the phase-fraction -> 0 tmp filterPressureWork @@ -67,6 +68,7 @@ public: // Constructors + //- Construct from phase system and phase name AnisothermalPhaseModel ( const phaseSystem& fluid, @@ -76,7 +78,7 @@ public: //- Destructor - virtual ~AnisothermalPhaseModel(); + virtual ~AnisothermalPhaseModel() = default; // Member Functions diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C index 5f99649809..9bd6eb3a1b 100644 --- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.C @@ -5,7 +5,7 @@ \\ / A nd | www.openfoam.com \\/ M anipulation | ------------------------------------------------------------------------------- - Copyright (C) 2015-2018 OpenFOAM Foundation + Copyright (C) 2015-2021 OpenFOAM Foundation Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License @@ -212,13 +212,6 @@ Foam::MovingPhaseModel::MovingPhaseModel } -// * * * * * * * * * * * * * * * * Destructor * * * * * * * * * * * * * * * // - -template -Foam::MovingPhaseModel::~MovingPhaseModel() -{} - - // * * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * // template @@ -255,8 +248,7 @@ void Foam::MovingPhaseModel::correctKinematics() if (K_.valid()) { - K_.clear(); - K(); + K_.ref() = 0.5*magSqr(this->U()); } } diff --git a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H index 6dca57a9a5..94fbe2a2de 100644 --- a/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H +++ b/src/phaseSystemModels/reactingEuler/multiphaseSystem/phaseModel/MovingPhaseModel/MovingPhaseModel.H @@ -6,6 +6,7 @@ \\/ M anipulation | ------------------------------------------------------------------------------- Copyright (C) 2015-2018 OpenFOAM Foundation + Copyright (C) 2021 OpenCFD Ltd. ------------------------------------------------------------------------------- License This file is part of OpenFOAM. @@ -65,7 +66,7 @@ class MovingPhaseModel { protected: - // Protected data + // Protected Data //- Velocity field volVectorField U_; @@ -103,7 +104,7 @@ protected: private: - // Private static member functions + // Private Member Functions //- Calculate and return the flux field tmp phi(const volVectorField& U) const; @@ -113,6 +114,7 @@ public: // Constructors + //- Construct from phase system and phase name MovingPhaseModel ( const phaseSystem& fluid, @@ -122,7 +124,7 @@ public: //- Destructor - virtual ~MovingPhaseModel(); + virtual ~MovingPhaseModel() = default; // Member Functions