From f849409c20604c0317037077811f1151c7a9d121 Mon Sep 17 00:00:00 2001 From: andy <andy> Date: Mon, 12 Mar 2012 08:47:16 +0000 Subject: [PATCH] BUG: Corrected use of rho if reference pressure is kinematic --- .../pressureCoefficient/pressureCoefficient.C | 27 +++++++++---------- .../pressureCoefficient/pressureCoefficient.H | 12 +++------ 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.C b/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.C index 5ec597f9bfe..b4d1e30c875 100644 --- a/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.C +++ b/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.C @@ -34,9 +34,16 @@ defineTypeNameAndDebug(Foam::pressureCoefficient, 0); // * * * * * * * * * * * * * Private Member Functions * * * * * * * * * * * // -Foam::tmp<Foam::volScalarField> Foam::pressureCoefficient::rho() const +Foam::tmp<Foam::volScalarField> Foam::pressureCoefficient::rho +( + const volScalarField& p +) const { - if (rhoName_ == "rhoInf") + if (p.dimensions() == dimPressure) + { + return(obr_.lookupObject<volScalarField>(rhoName_)); + } + else { const fvMesh& mesh = refCast<const fvMesh>(obr_); @@ -51,14 +58,10 @@ Foam::tmp<Foam::volScalarField> Foam::pressureCoefficient::rho() const mesh ), mesh, - dimensionedScalar("rho", dimDensity, rhoRef_) + dimensionedScalar("rho", dimless, 1.0) ) ); } - else - { - return(obr_.lookupObject<volScalarField>(rhoName_)); - } } @@ -76,8 +79,7 @@ Foam::pressureCoefficient::pressureCoefficient obr_(obr), active_(true), pName_("p"), - rhoName_(word::null), - rhoRef_(-GREAT), + rhoName_("rho"), magUinf_(0.0) { // Check if the available mesh is an fvMesh, otherwise deactivate @@ -114,12 +116,7 @@ void Foam::pressureCoefficient::read(const dictionary& dict) if (active_) { pName_ = dict.lookupOrDefault<word>("pName", "p"); - rhoName_ = dict.lookupOrDefault<word>("rhoName", "rho"); - if (rhoName_ == "rhoInf") - { - dict.lookup("rhoInf") >> rhoRef_; - } dict.lookup("magUinf") >> magUinf_; } @@ -153,7 +150,7 @@ void Foam::pressureCoefficient::write() obr_, IOobject::NO_READ ), - p/(0.5*rho()*sqr(magUinf_)) + p/(0.5*rho(p)*sqr(magUinf_)) ); pressureCoefficient.write(); diff --git a/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.H b/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.H index aaf0ca499b3..5f0379aa7f5 100644 --- a/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.H +++ b/src/postProcessing/functionObjects/utilities/pressureCoefficient/pressureCoefficient.H @@ -77,21 +77,15 @@ class pressureCoefficient //- Name of density field (optional) word rhoName_; - //- Reference density needed for incompressible calculations [kg/m3] - scalar rhoRef_; - //- Free stream velocity magnitude [m/s] scalar magUinf_; // Private Member Functions - //- Return rho if rhoName is specified otherwise rhoRef - tmp<volScalarField> rho() const; - - //- Return rhoRef if the pressure field is dynamic, i.e. p/rho - // otherwise return 1 - scalar rho(const volScalarField& p) const; + //- Return 1 if the pressure field is kinematic, i.e. p/rho + // otherwise return rho from database + tmp<volScalarField> rho(const volScalarField& p) const; //- Disallow default bitwise copy construct pressureCoefficient(const pressureCoefficient&); -- GitLab