From 72ea7b468042ad3cf857ffef36b8defc0a4cf1ed Mon Sep 17 00:00:00 2001 From: Henry Date: Sun, 7 Jul 2013 22:54:33 +0100 Subject: [PATCH] transportModel: remove IOdictionary base-class so that it is entirely abstract --- .../phaseModel/phaseModel/phaseModel.H | 8 ++- .../threePhaseMixture.C | 12 ++++ .../threePhaseMixture.H | 8 +++ .../multiphaseSystem/multiphaseSystem.C | 54 +++++++++++++- .../multiphaseSystem/multiphaseSystem.H | 8 +++ .../multiphaseMixture/multiphaseMixture.C | 72 +++++++++++++++++-- .../multiphaseMixture/multiphaseMixture.H | 12 +++- .../multiphaseMixture/phase/phase.H | 6 ++ .../functionObjects/forces/forces/forces.C | 16 ++--- .../incompressibleTwoPhaseMixture.C | 11 +++ .../incompressibleTwoPhaseMixture.H | 8 +++ .../singlePhaseTransportModel.C | 21 +++++- .../singlePhaseTransportModel.H | 9 ++- .../transportModel/transportModel.C | 29 +++----- .../transportModel/transportModel.H | 15 ++-- .../viscosityModels/BirdCarreau/BirdCarreau.H | 6 ++ .../CrossPowerLaw/CrossPowerLaw.H | 6 ++ .../HerschelBulkley/HerschelBulkley.H | 6 ++ .../viscosityModels/Newtonian/Newtonian.H | 6 ++ .../viscosityModels/powerLaw/powerLaw.H | 6 ++ .../viscosityModel/viscosityModel.H | 3 + ...ayatillekeWallFunctionFvPatchScalarField.C | 9 ++- ...entHeatFluxTemperatureFvPatchScalarField.C | 6 +- 23 files changed, 287 insertions(+), 50 deletions(-) diff --git a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H index 18f5a47e46..87c6f0b562 100644 --- a/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H +++ b/applications/solvers/multiphase/compressibleTwoPhaseEulerFoam/phaseModel/phaseModel/phaseModel.H @@ -112,7 +112,13 @@ public: tmp nu() const { - return thermo_->mu()/thermo_->rho(); + return thermo_->nu(); + } + + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return thermo_->nu(patchi); } tmp kappa() const diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C index 4d8ead85ce..d1ce68a075 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.C @@ -50,6 +50,18 @@ Foam::threePhaseMixture::threePhaseMixture const surfaceScalarField& phi ) : + IOdictionary + ( + IOobject + ( + "transportProperties", + U.time().constant(), + U.db(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ), + transportModel(U, phi), phase1Name_("phase1"), diff --git a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H index 4c48304934..3c8b873983 100644 --- a/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H +++ b/applications/solvers/multiphase/interFoam/interMixingFoam/incompressibleThreePhaseMixture/threePhaseMixture.H @@ -35,6 +35,7 @@ SourceFiles #define threePhaseMixture_H #include "incompressible/transportModel/transportModel.H" +#include "IOdictionary.H" #include "incompressible/viscosityModels/viscosityModel/viscosityModel.H" #include "dimensionedScalar.H" #include "volFields.H" @@ -50,6 +51,7 @@ namespace Foam class threePhaseMixture : + public IOdictionary, public transportModel { // Private data @@ -176,6 +178,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Return the face-interpolated dynamic laminar viscosity tmp nuf() const; diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C index 0e3527cfae..73f8fddd72 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.C @@ -371,6 +371,18 @@ Foam::multiphaseSystem::multiphaseSystem const surfaceScalarField& phi ) : + IOdictionary + ( + IOobject + ( + "transportProperties", + U.time().constant(), + U.db(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ), + transportModel(U, phi), phases_(lookup("phases"), phaseModel::iNew(U.mesh())), @@ -482,18 +494,54 @@ Foam::tmp Foam::multiphaseSystem::rho() const } +Foam::tmp +Foam::multiphaseSystem::rho(const label patchi) const +{ + PtrDictionary::const_iterator iter = phases_.begin(); + + tmp trho = iter().boundaryField()[patchi]*iter().rho().value(); + + for (++iter; iter != phases_.end(); ++iter) + { + trho() += iter().boundaryField()[patchi]*iter().rho().value(); + } + + return trho; +} + + Foam::tmp Foam::multiphaseSystem::nu() const { PtrDictionary::const_iterator iter = phases_.begin(); - tmp tnu = iter()*iter().nu(); + tmp tmu = iter()*(iter().rho()*iter().nu()); for (++iter; iter != phases_.end(); ++iter) { - tnu() += iter()*iter().nu(); + tmu() += iter()*(iter().rho()*iter().nu()); } - return tnu; + return tmu/rho(); +} + + +Foam::tmp +Foam::multiphaseSystem::nu(const label patchi) const +{ + PtrDictionary::const_iterator iter = phases_.begin(); + + tmp tmu = + iter().boundaryField()[patchi] + *(iter().rho().value()*iter().nu().value()); + + for (++iter; iter != phases_.end(); ++iter) + { + tmu() += + iter().boundaryField()[patchi] + *(iter().rho().value()*iter().nu().value()); + } + + return tmu/rho(patchi); } diff --git a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H index b9238c9928..89a6c281c1 100644 --- a/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H +++ b/applications/solvers/multiphase/multiphaseEulerFoam/multiphaseSystem/multiphaseSystem.H @@ -43,6 +43,7 @@ SourceFiles #define multiphaseSystem_H #include "incompressible/transportModel/transportModel.H" +#include "IOdictionary.H" #include "phaseModel.H" #include "PtrDictionary.H" #include "volFields.H" @@ -61,6 +62,7 @@ namespace Foam class multiphaseSystem : + public IOdictionary, public transportModel { @@ -255,9 +257,15 @@ public: //- Return the mixture density tmp rho() const; + //- Return the mixture density for patch + tmp rho(const label patchi) const; + //- Return the mixture laminar viscosity tmp nu() const; + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const; + //- Return the virtual-mass coefficient for the given phase tmp Cvm(const phaseModel& phase) const; diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C index 7b1a0e027d..7aa8c80d02 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.C @@ -65,6 +65,18 @@ Foam::multiphaseMixture::multiphaseMixture const surfaceScalarField& phi ) : + IOdictionary + ( + IOobject + ( + "transportProperties", + U.time().constant(), + U.db(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ), + transportModel(U, phi), phases_(lookup("phases"), phase::iNew(U, phi)), @@ -116,7 +128,8 @@ Foam::multiphaseMixture::multiphaseMixture // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -Foam::tmp Foam::multiphaseMixture::rho() const +Foam::tmp +Foam::multiphaseMixture::rho() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -131,7 +144,24 @@ Foam::tmp Foam::multiphaseMixture::rho() const } -Foam::tmp Foam::multiphaseMixture::mu() const +Foam::tmp +Foam::multiphaseMixture::rho(const label patchi) const +{ + PtrDictionary::const_iterator iter = phases_.begin(); + + tmp trho = iter().boundaryField()[patchi]*iter().rho().value(); + + for (++iter; iter != phases_.end(); ++iter) + { + trho() += iter().boundaryField()[patchi]*iter().rho().value(); + } + + return trho; +} + + +Foam::tmp +Foam::multiphaseMixture::mu() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -146,7 +176,30 @@ Foam::tmp Foam::multiphaseMixture::mu() const } -Foam::tmp Foam::multiphaseMixture::muf() const +Foam::tmp +Foam::multiphaseMixture::mu(const label patchi) const +{ + PtrDictionary::const_iterator iter = phases_.begin(); + + tmp tmu = + iter().boundaryField()[patchi] + *iter().rho().value() + *iter().nu(patchi); + + for (++iter; iter != phases_.end(); ++iter) + { + tmu() += + iter().boundaryField()[patchi] + *iter().rho().value() + *iter().nu(patchi); + } + + return tmu; +} + + +Foam::tmp +Foam::multiphaseMixture::muf() const { PtrDictionary::const_iterator iter = phases_.begin(); @@ -163,13 +216,22 @@ Foam::tmp Foam::multiphaseMixture::muf() const } -Foam::tmp Foam::multiphaseMixture::nu() const +Foam::tmp +Foam::multiphaseMixture::nu() const { return mu()/rho(); } -Foam::tmp Foam::multiphaseMixture::nuf() const +Foam::tmp +Foam::multiphaseMixture::nu(const label patchi) const +{ + return mu(patchi)/rho(patchi); +} + + +Foam::tmp +Foam::multiphaseMixture::nuf() const { return muf()/fvc::interpolate(rho()); } diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H index ce97221eea..be4f2cbe59 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/multiphaseMixture.H @@ -43,12 +43,12 @@ SourceFiles #define multiphaseMixture_H #include "incompressible/transportModel/transportModel.H" +#include "IOdictionary.H" #include "phase.H" #include "PtrDictionary.H" #include "volFields.H" #include "surfaceFields.H" - // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // namespace Foam @@ -60,6 +60,7 @@ namespace Foam class multiphaseMixture : + public IOdictionary, public transportModel { public: @@ -229,15 +230,24 @@ public: //- Return the mixture density tmp rho() const; + //- Return the mixture density for patch + tmp rho(const label patchi) const; + //- Return the dynamic laminar viscosity tmp mu() const; + //- Return the dynamic laminar viscosity for patch + tmp mu(const label patchi) const; + //- Return the face-interpolated dynamic laminar viscosity tmp muf() const; //- Return the kinematic laminar viscosity tmp nu() const; + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const; + //- Return the face-interpolated dynamic laminar viscosity tmp nuf() const; diff --git a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.H b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.H index 281344f003..74c0aaba83 100644 --- a/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.H +++ b/applications/solvers/multiphase/multiphaseInterFoam/multiphaseMixture/phase/phase.H @@ -129,6 +129,12 @@ public: return nuModel_->nu(); } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nuModel_->nu(patchi); + } + //- Return const-access to phase1 density const dimensionedScalar& rho() const { diff --git a/src/postProcessing/functionObjects/forces/forces/forces.C b/src/postProcessing/functionObjects/forces/forces/forces.C index 7df79a2e1f..eefc828444 100644 --- a/src/postProcessing/functionObjects/forces/forces/forces.C +++ b/src/postProcessing/functionObjects/forces/forces/forces.C @@ -33,7 +33,7 @@ License #include "fluidThermo.H" #include "incompressible/turbulenceModel/turbulenceModel.H" #include "compressible/turbulenceModel/turbulenceModel.H" -#include "incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H" +#include "incompressible/transportModel/transportModel.H" // * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // @@ -94,12 +94,11 @@ Foam::tmp Foam::forces::devRhoReff() const } else if ( - obr_.foundObject("transportProperties") + obr_.foundObject("transportProperties") ) { - const singlePhaseTransportModel& laminarT = - obr_.lookupObject - ("transportProperties"); + const transportModel& laminarT = + obr_.lookupObject("transportProperties"); const volVectorField& U = obr_.lookupObject(UName_); @@ -138,12 +137,11 @@ Foam::tmp Foam::forces::mu() const } else if ( - obr_.foundObject("transportProperties") + obr_.foundObject("transportProperties") ) { - const singlePhaseTransportModel& laminarT = - obr_.lookupObject - ("transportProperties"); + const transportModel& laminarT = + obr_.lookupObject("transportProperties"); return rho()*laminarT.nu(); } diff --git a/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.C b/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.C index 397f9566b1..8a5a07def5 100644 --- a/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.C +++ b/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.C @@ -58,6 +58,17 @@ Foam::incompressibleTwoPhaseMixture::incompressibleTwoPhaseMixture const word& alpha2Name ) : + IOdictionary + ( + IOobject + ( + "transportProperties", + U.time().constant(), + U.db(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ), transportModel(U, phi), twoPhaseMixture(U.mesh(), *this, alpha1Name, alpha2Name), diff --git a/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.H b/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.H index 8dad648320..8ec33989c9 100644 --- a/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.H +++ b/src/transportModels/incompressible/incompressibleTwoPhaseMixture/incompressibleTwoPhaseMixture.H @@ -38,6 +38,7 @@ SourceFiles #include "incompressible/transportModel/transportModel.H" #include "incompressible/viscosityModels/viscosityModel/viscosityModel.H" #include "twoPhaseMixture.H" +#include "IOdictionary.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -51,6 +52,7 @@ namespace Foam class incompressibleTwoPhaseMixture : + public IOdictionary, public transportModel, public twoPhaseMixture { @@ -133,6 +135,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + virtual tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Return the face-interpolated kinematic laminar viscosity tmp nuf() const; diff --git a/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.C b/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.C index 8b951f0164..4624837f0e 100644 --- a/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.C +++ b/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.C @@ -36,6 +36,17 @@ Foam::singlePhaseTransportModel::singlePhaseTransportModel const surfaceScalarField& phi ) : + IOdictionary + ( + IOobject + ( + "transportProperties", + U.time().constant(), + U.db(), + IOobject::MUST_READ_IF_MODIFIED, + IOobject::NO_WRITE + ) + ), transportModel(U, phi), viscosityModelPtr_(viscosityModel::New("nu", *this, U, phi)) {} @@ -49,12 +60,20 @@ Foam::singlePhaseTransportModel::~singlePhaseTransportModel() // * * * * * * * * * * * * * * Member Functions * * * * * * * * * * * * * * // -Foam::tmp Foam::singlePhaseTransportModel::nu() const +Foam::tmp +Foam::singlePhaseTransportModel::nu() const { return viscosityModelPtr_->nu(); } +Foam::tmp +Foam::singlePhaseTransportModel::nu(const label patchi) const +{ + return viscosityModelPtr_->nu(patchi); +} + + void Foam::singlePhaseTransportModel::correct() { viscosityModelPtr_->correct(); diff --git a/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H b/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H index ac463cc8ef..3e73606092 100644 --- a/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H +++ b/src/transportModels/incompressible/singlePhaseTransportModel/singlePhaseTransportModel.H @@ -39,6 +39,7 @@ SourceFiles #define singlePhaseTransportModel_H #include "incompressible/transportModel/transportModel.H" +#include "IOdictionary.H" #include "autoPtr.H" // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // @@ -54,6 +55,7 @@ class viscosityModel; class singlePhaseTransportModel : + public IOdictionary, public transportModel { // Private Data @@ -89,10 +91,13 @@ public: // Member Functions //- Return the laminar viscosity - tmp nu() const; + virtual tmp nu() const; + + //- Return the laminar viscosity for patch + virtual tmp nu(const label patchi) const; //- Correct the laminar viscosity - void correct(); + virtual void correct(); //- Read transportProperties dictionary virtual bool read(); diff --git a/src/transportModels/incompressible/transportModel/transportModel.C b/src/transportModels/incompressible/transportModel/transportModel.C index f153e456ab..5524ae6d60 100644 --- a/src/transportModels/incompressible/transportModel/transportModel.C +++ b/src/transportModels/incompressible/transportModel/transportModel.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -24,29 +24,22 @@ License \*---------------------------------------------------------------------------*/ #include "transportModel.H" -#include "viscosityModel.H" -#include "volFields.H" + +// * * * * * * * * * * * * * * Static Data Members * * * * * * * * * * * * * // + +namespace Foam +{ + defineTypeNameAndDebug(transportModel, 0); +} // * * * * * * * * * * * * * * * * Constructors * * * * * * * * * * * * * * // Foam::transportModel::transportModel ( - const volVectorField& U, - const surfaceScalarField& phi + const volVectorField&, + const surfaceScalarField& ) -: - IOdictionary - ( - IOobject - ( - "transportProperties", - U.time().constant(), - U.db(), - IOobject::MUST_READ_IF_MODIFIED, - IOobject::NO_WRITE - ) - ) {} @@ -60,7 +53,7 @@ Foam::transportModel::~transportModel() bool Foam::transportModel::read() { - return regIOobject::read(); + return true; } diff --git a/src/transportModels/incompressible/transportModel/transportModel.H b/src/transportModels/incompressible/transportModel/transportModel.H index 6705c56c7c..083ff41f70 100644 --- a/src/transportModels/incompressible/transportModel/transportModel.H +++ b/src/transportModels/incompressible/transportModel/transportModel.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -36,7 +36,7 @@ SourceFiles #ifndef transportModel_H #define transportModel_H -#include "IOdictionary.H" +#include "primitiveFieldsFwd.H" #include "volFieldsFwd.H" #include "surfaceFieldsFwd.H" @@ -50,8 +50,6 @@ namespace Foam \*---------------------------------------------------------------------------*/ class transportModel -: - public IOdictionary { // Private Member Functions @@ -64,6 +62,10 @@ class transportModel public: + //- Runtime type information + TypeName("transportModel"); + + // Constructors //- Construct from components @@ -71,7 +73,7 @@ public: ( const volVectorField& U, const surfaceScalarField& phi - ); + );\ //- Destructor @@ -83,6 +85,9 @@ public: //- Return the laminar viscosity virtual tmp nu() const = 0; + //- Return the laminar viscosity for patch + virtual tmp nu(const label patchi) const = 0; + //- Correct the laminar viscosity virtual void correct() = 0; diff --git a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.H b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.H index e235041087..e8d489a4f0 100644 --- a/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.H +++ b/src/transportModels/incompressible/viscosityModels/BirdCarreau/BirdCarreau.H @@ -107,6 +107,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Correct the laminar viscosity void correct() { diff --git a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.H b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.H index 27c58e0142..16ad05468d 100644 --- a/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.H +++ b/src/transportModels/incompressible/viscosityModels/CrossPowerLaw/CrossPowerLaw.H @@ -102,6 +102,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Correct the laminar viscosity void correct() { diff --git a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H index c59d955675..5e97539f86 100644 --- a/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H +++ b/src/transportModels/incompressible/viscosityModels/HerschelBulkley/HerschelBulkley.H @@ -103,6 +103,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Correct the laminar viscosity void correct() { diff --git a/src/transportModels/incompressible/viscosityModels/Newtonian/Newtonian.H b/src/transportModels/incompressible/viscosityModels/Newtonian/Newtonian.H index 55e3485e3a..57057e11ab 100644 --- a/src/transportModels/incompressible/viscosityModels/Newtonian/Newtonian.H +++ b/src/transportModels/incompressible/viscosityModels/Newtonian/Newtonian.H @@ -92,6 +92,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Correct the laminar viscosity (not appropriate, viscosity constant) void correct() {} diff --git a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H index 8cb28d71ea..eb02c18005 100644 --- a/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H +++ b/src/transportModels/incompressible/viscosityModels/powerLaw/powerLaw.H @@ -103,6 +103,12 @@ public: return nu_; } + //- Return the laminar viscosity for patch + tmp nu(const label patchi) const + { + return nu_.boundaryField()[patchi]; + } + //- Correct the laminar viscosity void correct() { diff --git a/src/transportModels/incompressible/viscosityModels/viscosityModel/viscosityModel.H b/src/transportModels/incompressible/viscosityModels/viscosityModel/viscosityModel.H index 854639d834..3542c053d0 100644 --- a/src/transportModels/incompressible/viscosityModels/viscosityModel/viscosityModel.H +++ b/src/transportModels/incompressible/viscosityModels/viscosityModel/viscosityModel.H @@ -154,6 +154,9 @@ public: //- Return the laminar viscosity virtual tmp nu() const = 0; + //- Return the laminar viscosity for patch + virtual tmp nu(const label patchi) const = 0; + //- Correct the laminar viscosity virtual void correct() = 0; diff --git a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C index b09127c39b..f311165ebe 100644 --- a/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/RAS/derivedFvPatchFields/wallFunctions/alphatWallFunctions/alphatJayatillekeWallFunction/alphatJayatillekeWallFunctionFvPatchScalarField.C @@ -212,9 +212,14 @@ void alphatJayatillekeWallFunctionFvPatchScalarField::updateCoeffs() const tmp tk = turbModel.k(); const volScalarField& k = tk(); + const IOdictionary& transportProperties = + db().lookupObject("transportProperties"); + // Molecular Prandtl number - const scalar - Pr(dimensionedScalar(turbModel.transport().lookup("Pr")).value()); + const scalar Pr + ( + dimensionedScalar(transportProperties.lookup("Pr")).value() + ); // Populate boundary values scalarField& alphatw = *this; diff --git a/src/turbulenceModels/incompressible/turbulenceModel/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C b/src/turbulenceModels/incompressible/turbulenceModel/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C index 5d32e48231..077e77fdaa 100644 --- a/src/turbulenceModels/incompressible/turbulenceModel/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C +++ b/src/turbulenceModels/incompressible/turbulenceModel/derivedFvPatchFields/turbulentHeatFluxTemperature/turbulentHeatFluxTemperatureFvPatchScalarField.C @@ -192,9 +192,9 @@ void turbulentHeatFluxTemperatureFvPatchScalarField::updateCoeffs() patch().lookupPatchField(alphaEffName_); // retrieve (constant) specific heat capacity from transport dictionary - const turbulenceModel& turbulence = - db().lookupObject("turbulenceModel"); - const scalar Cp0(readScalar(turbulence.transport().lookup("Cp0"))); + const IOdictionary& transportProperties = + db().lookupObject("transportProperties"); + const scalar Cp0(readScalar(transportProperties.lookup("Cp0"))); switch (heatSource_) {