From 3207e315b2ca6cb69703879b2bf62f06d06335cb Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin Date: Mon, 7 Jun 2021 15:51:11 +0100 Subject: [PATCH] ENH: enable custom input of U for devRhoReff and devReff --- .../DPMIncompressibleTurbulenceModel.C | 24 +++++++++++++++++++ .../DPMIncompressibleTurbulenceModel.H | 12 ++++++++++ .../compressibleTurbulenceModel.H | 7 ++++++ .../IncompressibleTurbulenceModel.C | 24 +++++++++++++++++++ .../IncompressibleTurbulenceModel.H | 12 ++++++++++ .../incompressibleRhoTurbulenceModel.H | 7 ++++++ .../incompressibleTurbulenceModel.H | 7 ++++++ .../PhaseIncompressibleTurbulenceModel.C | 24 +++++++++++++++++++ .../PhaseIncompressibleTurbulenceModel.H | 12 ++++++++++ .../ReynoldsStress/ReynoldsStress.C | 13 +++++++++- .../ReynoldsStress/ReynoldsStress.H | 6 +++++ .../laminar/Maxwell/Maxwell.C | 12 +++++++++- .../laminar/Maxwell/Maxwell.H | 6 +++++ .../linearViscousStress/linearViscousStress.C | 13 +++++++++- .../linearViscousStress/linearViscousStress.H | 6 +++++ .../nonlinearEddyViscosity.C | 14 ++++++++++- .../nonlinearEddyViscosity.H | 6 +++++ .../adjointLaminar/adjointLaminar.C | 11 ++++++++- .../adjointLaminar/adjointLaminar.H | 6 +++++ .../adjointRASModel/adjointRASModel.H | 6 +++++ .../adjointSpalartAllmaras.C | 14 +++++++++-- .../adjointSpalartAllmaras.H | 2 ++ .../adjointTurbulenceModel.H | 6 +++++ .../kineticTheoryModel/kineticTheoryModel.C | 14 +++++++++-- .../kineticTheoryModel/kineticTheoryModel.H | 6 +++++ .../phasePressureModel/phasePressureModel.C | 12 +++++++++- .../phasePressureModel/phasePressureModel.H | 6 +++++ .../kineticTheoryModel/kineticTheoryModel.C | 14 +++++++++-- .../kineticTheoryModel/kineticTheoryModel.H | 6 +++++ .../phasePressureModel/phasePressureModel.C | 12 +++++++++- .../phasePressureModel/phasePressureModel.H | 6 +++++ 31 files changed, 313 insertions(+), 13 deletions(-) diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C index b8313c5725..a16ca46fbc 100644 --- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C +++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C @@ -149,6 +149,17 @@ Foam::DPMIncompressibleTurbulenceModel::devReff() const } +template +Foam::tmp +Foam::DPMIncompressibleTurbulenceModel::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template Foam::tmp Foam::DPMIncompressibleTurbulenceModel::divDevReff @@ -170,6 +181,19 @@ Foam::DPMIncompressibleTurbulenceModel::devRhoReff() const } +template +Foam::tmp +Foam::DPMIncompressibleTurbulenceModel::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template Foam::tmp Foam::DPMIncompressibleTurbulenceModel::divDevRhoReff diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H index 914c93d72f..14d36e9f2f 100644 --- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H +++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H @@ -116,12 +116,24 @@ public: //- Return the effective stress tensor virtual tmp devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H index 07de20a43d..abed13fee9 100644 --- a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H +++ b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H @@ -123,6 +123,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp devRhoReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const = 0; diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C index 56c7381703..e197d22803 100644 --- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C @@ -107,6 +107,17 @@ Foam::IncompressibleTurbulenceModel::devReff() const } +template +Foam::tmp +Foam::IncompressibleTurbulenceModel::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template Foam::tmp Foam::IncompressibleTurbulenceModel::divDevReff @@ -128,6 +139,19 @@ Foam::IncompressibleTurbulenceModel::devRhoReff() const } +template +Foam::tmp +Foam::IncompressibleTurbulenceModel::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template Foam::tmp Foam::IncompressibleTurbulenceModel::divDevRhoReff diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H index 9734d732b0..291fc37eb8 100644 --- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H @@ -108,12 +108,24 @@ public: //- Return the effective stress tensor virtual tmp devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H index 14715b344e..b3dee1ed3b 100644 --- a/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H @@ -139,6 +139,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H index adb8438702..5578a51081 100644 --- a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H @@ -138,6 +138,13 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C index 137c92a037..bee2cc0ed8 100644 --- a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C @@ -150,6 +150,17 @@ Foam::PhaseIncompressibleTurbulenceModel::devReff() const } +template +Foam::tmp +Foam::PhaseIncompressibleTurbulenceModel::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template Foam::tmp Foam::PhaseIncompressibleTurbulenceModel::divDevReff @@ -171,6 +182,19 @@ Foam::PhaseIncompressibleTurbulenceModel::devRhoReff() const } +template +Foam::tmp +Foam::PhaseIncompressibleTurbulenceModel::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return nullptr; +} + + template Foam::tmp Foam::PhaseIncompressibleTurbulenceModel::divDevRhoReff diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H index b25692493e..cebba9df4f 100644 --- a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H +++ b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H @@ -117,12 +117,24 @@ public: //- Return the effective stress tensor virtual tmp devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C index dcf05d0a57..a3a7b42d62 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C @@ -208,6 +208,17 @@ Foam::ReynoldsStress::k() const template Foam::tmp Foam::ReynoldsStress::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template +Foam::tmp +Foam::ReynoldsStress::devRhoReff +( + const volVectorField& U +) const { return tmp ( @@ -223,7 +234,7 @@ Foam::ReynoldsStress::devRhoReff() const ), this->alpha_*this->rho_*R_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H index 371d1ecb52..612cc61047 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.H @@ -140,6 +140,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C index ed314a944b..6c03e0eb00 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C @@ -104,6 +104,7 @@ bool Maxwell::read() return false; } + template tmp Maxwell::R() const @@ -111,9 +112,18 @@ Maxwell::R() const return sigma_; } + template tmp Maxwell::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template +tmp +Maxwell::devRhoReff(const volVectorField& U) const { return tmp ( @@ -129,7 +139,7 @@ Maxwell::devRhoReff() const ), this->alpha_*this->rho_*sigma_ - (this->alpha_*this->rho_*this->nu()) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H index 1f3ce3c686..d446622fa4 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.H @@ -143,6 +143,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C index e6515388ca..b71797502b 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C @@ -70,6 +70,17 @@ bool Foam::linearViscousStress::read() template Foam::tmp Foam::linearViscousStress::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template +Foam::tmp +Foam::linearViscousStress::devRhoReff +( + const volVectorField& U +) const { return tmp ( @@ -84,7 +95,7 @@ Foam::linearViscousStress::devRhoReff() const IOobject::NO_WRITE ), (-(this->alpha_*this->rho_*this->nuEff())) - *dev(twoSymm(fvc::grad(this->U_))) + *dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H index 3c81b7227e..c307c6268c 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.H @@ -91,6 +91,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C index d92488a662..699fa25e7b 100644 --- a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C +++ b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C @@ -88,12 +88,24 @@ Foam::nonlinearEddyViscosity::R() const template Foam::tmp Foam::nonlinearEddyViscosity::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template +Foam::tmp +Foam::nonlinearEddyViscosity::devRhoReff +( + const volVectorField& U +) const { tmp tdevRhoReff ( - eddyViscosity::devRhoReff() + eddyViscosity::devRhoReff(U) ); tdevRhoReff.ref() += this->rho_*nonlinearStress_; + return tdevRhoReff; } diff --git a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H index 2d97c5ba70..be6f16c6f6 100644 --- a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H +++ b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.H @@ -107,6 +107,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C index 7bed329b68..d79320f848 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.C @@ -71,6 +71,15 @@ adjointLaminar::adjointLaminar tmp adjointLaminar::devReff() const { const volVectorField& Ua = adjointVars_.Ua(); + return devReff(Ua); +} + + +tmp adjointLaminar::devReff +( + const volVectorField& U +) const +{ return tmp ( new volSymmTensorField @@ -83,7 +92,7 @@ tmp adjointLaminar::devReff() const IOobject::NO_READ, IOobject::NO_WRITE ), - -nu()*dev(twoSymm(fvc::grad(Ua))) + -nu()*dev(twoSymm(fvc::grad(U))) ) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H index e0e155e5fd..51a52df5d6 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointLaminar/adjointLaminar.H @@ -100,6 +100,12 @@ public: //- Return the effective stress tensor, i.e. the adjointLaminar stress virtual tmp devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const; + //- Return the diffusion term for the momentum equation virtual tmp divDevReff(volVectorField& U) const; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H index 4b654311ae..6abd793144 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointRASModel/adjointRASModel.H @@ -261,6 +261,12 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp divDevReff(volVectorField& U) const = 0; diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C index 073ea69ffd..7878349822 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.C @@ -703,7 +703,17 @@ adjointSpalartAllmaras::adjointSpalartAllmaras tmp adjointSpalartAllmaras::devReff() const { const volVectorField& Ua = adjointVars_.UaInst(); - return tmp::New + return devReff(Ua); +} + + +tmp adjointSpalartAllmaras::devReff +( + const volVectorField& U +) const +{ + return + tmp::New ( IOobject ( @@ -713,7 +723,7 @@ tmp adjointSpalartAllmaras::devReff() const IOobject::NO_READ, IOobject::NO_WRITE ), - -nuEff()*dev(twoSymm(fvc::grad(Ua))) + -nuEff()*dev(twoSymm(fvc::grad(U))) ); } diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H index 6404c0169b..9160603241 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointRAS/adjointSpalartAllmaras/adjointSpalartAllmaras.H @@ -317,6 +317,8 @@ public: virtual tmp devReff() const; + virtual tmp devReff(const volVectorField& U) const; + virtual tmp divDevReff(volVectorField& U) const; virtual tmp adjointMeanFlowSource(); diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H index 93d4b673ea..e7039465e5 100644 --- a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H +++ b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H @@ -186,6 +186,12 @@ public: //- Return the effective stress tensor including the laminar stress virtual tmp devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp divDevReff(volVectorField& U) const = 0; diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index f2831ad3d8..25572bfb3c 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -311,6 +311,16 @@ Foam::RASModels::kineticTheoryModel::pPrimef() const Foam::tmp Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp ( @@ -318,14 +328,14 @@ Foam::RASModels::kineticTheoryModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U_))) + *dev(twoSymm(fvc::grad(U))) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index aa18a9c390..6bec967ed7 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -223,6 +223,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index 1b29db5e4d..bf6fbd3316 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -200,6 +200,16 @@ Foam::RASModels::phasePressureModel::pPrimef() const Foam::tmp Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp ( @@ -207,7 +217,7 @@ Foam::RASModels::phasePressureModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index d9c41e8f3d..5cde6bea3f 100644 --- a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -174,6 +174,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C index 588a310b1a..bca4b78442 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.C @@ -311,6 +311,16 @@ Foam::RASModels::kineticTheoryModel::pPrimef() const Foam::tmp Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp ( @@ -318,14 +328,14 @@ Foam::RASModels::kineticTheoryModel::devRhoReff() const ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, IOobject::NO_WRITE ), - (rho_*nut_) - *dev(twoSymm(fvc::grad(U_))) + *dev(twoSymm(fvc::grad(U))) - ((rho_*lambda_)*fvc::div(phi_))*symmTensor::I ) ); diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H index a9180f6afd..2d5b2c1402 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/kineticTheoryModels/kineticTheoryModel/kineticTheoryModel.H @@ -223,6 +223,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index f20ed8a633..42fa6cfbac 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C @@ -203,12 +203,22 @@ Foam::RASModels::phasePressureModel::pPrimef() const Foam::tmp Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp::New ( IOobject ( - IOobject::groupName("devRhoReff", U_.group()), + IOobject::groupName("devRhoReff", U.group()), runTime_.timeName(), mesh_, IOobject::NO_READ, diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H index fa54e84afe..84c9502a7d 100644 --- a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H +++ b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.H @@ -178,6 +178,12 @@ public: //- Return the effective stress tensor virtual tmp devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp divDevRhoReff(volVectorField& U) const;