From 2cd6071c9b128e383c81b603e5b7aab1d4876fc2 Mon Sep 17 00:00:00 2001 From: Kutalmis Bercin <kutalmis.bercin@esi-group.com> 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 b8313c57253..a85edb145c3 100644 --- a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C +++ b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.C @@ -149,6 +149,17 @@ Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -170,6 +181,19 @@ Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::DPMIncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return devReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::DPMIncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H b/applications/solvers/lagrangian/DPMFoam/DPMTurbulenceModels/DPMIncompressibleTurbulenceModel.H index 914c93d72ff..14d36e9f2f7 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<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H b/src/TurbulenceModels/compressible/compressibleTurbulenceModel.H index 07de20a43d8..abed13fee96 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<volSymmTensorField> devRhoReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const = 0; diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C index 56c7381703f..c5f860ef496 100644 --- a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.C @@ -107,6 +107,17 @@ Foam::IncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::IncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::IncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -128,6 +139,19 @@ Foam::IncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::IncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return devReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::IncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/IncompressibleTurbulenceModel/IncompressibleTurbulenceModel.H index 9734d732b09..291fc37eb8c 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<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleRhoTurbulenceModel.H index 14715b344ee..b3dee1ed3bd 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<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H b/src/TurbulenceModels/incompressible/incompressibleTurbulenceModel.H index adb8438702f..5578a510818 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<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor including + //- the laminar stress based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const = 0; }; diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C index 137c92a0373..e6530a4f089 100644 --- a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C +++ b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.C @@ -150,6 +150,17 @@ Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devReff +( + const volVectorField& U +) const +{ + return devRhoReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::divDevReff @@ -171,6 +182,19 @@ Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devRhoReff() const } +template<class TransportModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::devRhoReff +( + const volVectorField& U +) const +{ + NotImplemented; + + return devReff(U); +} + + template<class TransportModel> Foam::tmp<Foam::fvVectorMatrix> Foam::PhaseIncompressibleTurbulenceModel<TransportModel>::divDevRhoReff diff --git a/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H b/src/TurbulenceModels/phaseIncompressible/PhaseIncompressibleTurbulenceModel/PhaseIncompressibleTurbulenceModel.H index b25692493e1..cebba9df4fe 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<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; //- Return the effective stress tensor virtual tmp<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; }; diff --git a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C index dcf05d0a576..a3a7b42d622 100644 --- a/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C +++ b/src/TurbulenceModels/turbulenceModels/ReynoldsStress/ReynoldsStress.C @@ -208,6 +208,17 @@ Foam::ReynoldsStress<BasicTurbulenceModel>::k() const template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::ReynoldsStress<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::ReynoldsStress<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -223,7 +234,7 @@ Foam::ReynoldsStress<BasicTurbulenceModel>::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 371d1ecb52c..612cc610474 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C index ed314a944be..6c03e0eb008 100644 --- a/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C +++ b/src/TurbulenceModels/turbulenceModels/laminar/Maxwell/Maxwell.C @@ -104,6 +104,7 @@ bool Maxwell<BasicTurbulenceModel>::read() return false; } + template<class BasicTurbulenceModel> tmp<Foam::volSymmTensorField> Maxwell<BasicTurbulenceModel>::R() const @@ -111,9 +112,18 @@ Maxwell<BasicTurbulenceModel>::R() const return sigma_; } + template<class BasicTurbulenceModel> tmp<Foam::volSymmTensorField> Maxwell<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +tmp<Foam::volSymmTensorField> +Maxwell<BasicTurbulenceModel>::devRhoReff(const volVectorField& U) const { return tmp<volSymmTensorField> ( @@ -129,7 +139,7 @@ Maxwell<BasicTurbulenceModel>::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 1f3ce3c6863..d446622fa41 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C index e6515388ca1..b71797502ba 100644 --- a/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C +++ b/src/TurbulenceModels/turbulenceModels/linearViscousStress/linearViscousStress.C @@ -70,6 +70,17 @@ bool Foam::linearViscousStress<BasicTurbulenceModel>::read() template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::linearViscousStress<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -84,7 +95,7 @@ Foam::linearViscousStress<BasicTurbulenceModel>::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 3c81b7227e8..c307c6268c4 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C index d92488a662f..699fa25e7b8 100644 --- a/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C +++ b/src/TurbulenceModels/turbulenceModels/nonlinearEddyViscosity/nonlinearEddyViscosity.C @@ -88,12 +88,24 @@ Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::R() const template<class BasicTurbulenceModel> Foam::tmp<Foam::volSymmTensorField> Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::devRhoReff() const +{ + return devRhoReff(this->U_); +} + + +template<class BasicTurbulenceModel> +Foam::tmp<Foam::volSymmTensorField> +Foam::nonlinearEddyViscosity<BasicTurbulenceModel>::devRhoReff +( + const volVectorField& U +) const { tmp<volSymmTensorField> tdevRhoReff ( - eddyViscosity<BasicTurbulenceModel>::devRhoReff() + eddyViscosity<BasicTurbulenceModel>::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 2d97c5ba70b..be6f16c6f63 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> 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 7bed329b68c..d79320f848a 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<volSymmTensorField> adjointLaminar::devReff() const { const volVectorField& Ua = adjointVars_.Ua(); + return devReff(Ua); +} + + +tmp<volSymmTensorField> adjointLaminar::devReff +( + const volVectorField& U +) const +{ return tmp<volSymmTensorField> ( new volSymmTensorField @@ -83,7 +92,7 @@ tmp<volSymmTensorField> 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 e0e155e5fd2..51a52df5d6f 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<volSymmTensorField> devReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> 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 4b654311ae3..6abd7931441 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<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> 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 073ea69ffde..78783498227 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<volSymmTensorField> adjointSpalartAllmaras::devReff() const { const volVectorField& Ua = adjointVars_.UaInst(); - return tmp<volSymmTensorField>::New + return devReff(Ua); +} + + +tmp<volSymmTensorField> adjointSpalartAllmaras::devReff +( + const volVectorField& U +) const +{ + return + tmp<volSymmTensorField>::New ( IOobject ( @@ -713,7 +723,7 @@ tmp<volSymmTensorField> 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 6404c0169b0..91606032411 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<volSymmTensorField> devReff() const; + virtual tmp<volSymmTensorField> devReff(const volVectorField& U) const; + virtual tmp<fvVectorMatrix> divDevReff(volVectorField& U) const; virtual tmp<volVectorField> adjointMeanFlowSource(); diff --git a/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H b/src/optimisation/adjointOptimisation/adjoint/turbulenceModels/incompressibleAdjoint/adjointTurbulenceModel/adjointTurbulenceModel.H index 93d4b673eaa..e7039465e53 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<volSymmTensorField> devReff() const = 0; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devReff + ( + const volVectorField& U + ) const = 0; + //- Return the diffusion term for the momentum equation virtual tmp<fvVectorMatrix> 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 f2831ad3d88..25572bfb3c9 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::volSymmTensorField> Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -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 aa18a9c3903..6bec967ed79 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/reactingEuler/twoPhaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index 1b29db5e4d4..bf6fbd3316d 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::volSymmTensorField> Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -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 d9c41e8f3df..5cde6bea3f5 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> 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 588a310b1ab..bca4b784428 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::volSymmTensorField> Foam::RASModels::kineticTheoryModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::kineticTheoryModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField> ( @@ -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 a9180f6afd3..2d5b2c14022 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; diff --git a/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C b/src/phaseSystemModels/twoPhaseEuler/phaseCompressibleTurbulenceModels/phasePressureModel/phasePressureModel.C index f20ed8a6334..42fa6cfbac5 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::volSymmTensorField> Foam::RASModels::phasePressureModel::devRhoReff() const +{ + return devRhoReff(U_); +} + + +Foam::tmp<Foam::volSymmTensorField> +Foam::RASModels::phasePressureModel::devRhoReff +( + const volVectorField& U +) const { return tmp<volSymmTensorField>::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 fa54e84afe2..84c9502a7d8 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<volSymmTensorField> devRhoReff() const; + //- Return the effective stress tensor based on a given velocity field + virtual tmp<volSymmTensorField> devRhoReff + ( + const volVectorField& U + ) const; + //- Return the source term for the momentum equation virtual tmp<fvVectorMatrix> divDevRhoReff(volVectorField& U) const; -- GitLab