From 04208389d12a834a90efd6c509cb71023a7b29ef Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Thu, 4 Apr 2013 10:12:21 +0100 Subject: [PATCH] ENH: Updated temperatureCoupledBase - added support for case when tub model not available --- .../temperatureCoupledBase.C | 61 +++++++++++-------- .../temperatureCoupledBase.H | 16 +++-- 2 files changed, 47 insertions(+), 30 deletions(-) diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C index d3cab304ab5..81528a07ded 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.C @@ -1,4 +1,4 @@ -/*---------------------------------------------------------------------------*\ + /*---------------------------------------------------------------------------*\ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | @@ -25,9 +25,9 @@ License #include "temperatureCoupledBase.H" #include "volFields.H" +#include "fluidThermo.H" #include "solidThermo.H" #include "turbulenceModel.H" -#include "fluidThermo.H" // * * * * * * * * * * * * * Static Member Data * * * * * * * * * * * * * * // @@ -90,19 +90,39 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa switch (method_) { - case BASICTHERMO: + case mtFluidThermo: { - const compressible::turbulenceModel& turbModel = - mesh.lookupObject<compressible::turbulenceModel> + typedef compressible::turbulenceModel turbulenceModel; + + if (mesh.foundObject<turbulenceModel>("turbulenceModel")) + { + const turbulenceModel& turbModel = + mesh.lookupObject<turbulenceModel>("turbulenceModel"); + + return turbModel.kappaEff(patch_.index()); + } + else if (mesh.foundObject<fluidThermo>("thermophysicalProperties")) + { + const fluidThermo& thermo = + mesh.lookupObject<fluidThermo>("thermophysicalProperties"); + + return thermo.kappa(patch_.index()); + } + else + { + FatalErrorIn ( - "turbulenceModel" - ); + "temperatureCoupledBase::kappa(const scalarField&) const" + ) + << "Kappa defined to employ " << KMethodTypeNames_[method_] + << " method, but thermo package not available" + << exit(FatalError); + } - return turbModel.kappaEff(patch_.index()); break; } - case SOLIDTHERMO: + case mtSolidThermo: { const solidThermo& thermo = mesh.lookupObject<solidThermo>("thermophysicalProperties"); @@ -111,7 +131,7 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa break; } - case DIRECTIONALSOLIDTHERMO: + case mtDirectionalSolidThermo: { const solidThermo& thermo = mesh.lookupObject<solidThermo>("thermophysicalProperties"); @@ -129,22 +149,16 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa break; } - case LOOKUP: + case mtLookup: { - if (mesh.objectRegistry::foundObject<volScalarField>(kappaName_)) + if (mesh.foundObject<volScalarField>(kappaName_)) { return patch_.lookupPatchField<volScalarField, scalar> ( kappaName_ ); } - else if - ( - mesh.objectRegistry::foundObject<volSymmTensorField> - ( - kappaName_ - ) - ) + else if (mesh.foundObject<volSymmTensorField>(kappaName_)) { const symmTensorField& KWall = patch_.lookupPatchField<volSymmTensorField, scalar> @@ -164,15 +178,14 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa ) << "Did not find field " << kappaName_ << " on mesh " << mesh.name() << " patch " << patch_.name() - << endl + << nl << "Please set 'kappa' to one of " << KMethodTypeNames_.toc() << " and 'kappaName' to the name of the volScalar" << " or volSymmTensor field (if kappa=lookup)" << exit(FatalError); - - return scalarField(0); } + break; } @@ -182,14 +195,14 @@ Foam::tmp<Foam::scalarField> Foam::temperatureCoupledBase::kappa ( "temperatureCoupledBase::kappa(const scalarField&) const" ) - << "Unimplemented method " << method_ << nl + << "Unimplemented method " << KMethodTypeNames_[method_] << nl << "Please set 'kappa' to one of " << KMethodTypeNames_.toc() << " and 'kappaName' to the name of the volScalar" << " or volSymmTensor field (if kappa=lookup)" << exit(FatalError); } - break; } + return scalarField(0); } diff --git a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H index c0abdb8ef9b..575d6bc1ed2 100644 --- a/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H +++ b/src/turbulenceModels/compressible/turbulenceModel/derivedFvPatchFields/temperatureCoupledBase/temperatureCoupledBase.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2011-2012 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2011-2013 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -54,21 +54,25 @@ namespace Foam { /*---------------------------------------------------------------------------*\ - Class temperatureCoupledBase Declaration + Class temperatureCoupledBase Declaration \*---------------------------------------------------------------------------*/ class temperatureCoupledBase { public: + + // Public enumerations + //- Type of supplied Kappa enum KMethodType { - BASICTHERMO, - SOLIDTHERMO, - DIRECTIONALSOLIDTHERMO, - LOOKUP + mtFluidThermo, + mtSolidThermo, + mtDirectionalSolidThermo, + mtLookup }; + private: // Private data -- GitLab