From 19950fa3b8753da714c8c09e97c2188eb7ee8a87 Mon Sep 17 00:00:00 2001 From: Henry Weller Date: Fri, 3 Sep 2021 19:38:16 +0100 Subject: [PATCH] functionObjects::comfort: extended to calculate the draught rate (DR) The draught rate determines the percentage of affected people by an airflow caused due to room ventilation or buoyancy effects (cold windows). The draught rate calculation is valid for room temperatures between 20 and 26 degrees Celsius and airspeed less than 0.5 m/s. This quantity is used widely for quantifying offices, auditoriums, or similar rooms in which persons are working. Patch contributed by Tobias Holzmann --- src/functionObjects/field/comfort/comfort.C | 63 +++++++++++++++++++-- src/functionObjects/field/comfort/comfort.H | 20 ++++--- 2 files changed, 72 insertions(+), 11 deletions(-) diff --git a/src/functionObjects/field/comfort/comfort.C b/src/functionObjects/field/comfort/comfort.C index 5aad71231c..be894e6ed2 100644 --- a/src/functionObjects/field/comfort/comfort.C +++ b/src/functionObjects/field/comfort/comfort.C @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2019 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2019-2021 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -407,7 +407,7 @@ bool Foam::functionObjects::comfort::execute() Info<< "Calculating the predicted percentage of dissatisfaction (PPD)\n"; - // Equation (5) in EN ISO + // Equation (5) tmp PPD ( volScalarField::New @@ -417,13 +417,68 @@ bool Foam::functionObjects::comfort::execute() ) ); - return store(PMV) && store(PPD); + Info<< "Calculating the draught rating (DR)\n"; + + const dimensionedScalar Umin("Umin", dimVelocity, 0.05); + const dimensionedScalar Umax("Umax", dimVelocity, 0.5); + const dimensionedScalar pre("preU", dimless, 0.37); + const dimensionedScalar C1("C1", dimVelocity, 3.14); + + // Limit the velocity field to the values given in EN ISO 7733 + volScalarField Umag = mag(lookupObject("U")); + Umag.maxMin(Umin, Umax); + + // Calculate the turbulent intensity if turbulent kinetic energy field k + // exists + volScalarField TI + ( + IOobject + ( + "TI", + mesh_.time().timeName(), + mesh_ + ), + mesh_, + dimensionedScalar(dimensionSet(0, 0, 0, 0, 0, 0, 0), 0) + ); + + if (foundObject("k")) + { + const volScalarField& k = lookupObject("k"); + TI = sqrt(2/3*k)/Umag; + } + + // For unit correctness + const dimensionedScalar correctUnit + ( + "correctUnit", + dimensionSet(0,- 1.62, 1.62, -1, 0, 0, 0), + 1 + ); + + // Equation (6) + tmp DR + ( + volScalarField::New + ( + "DR", + correctUnit*(factor12 - T)*pow(Umag - Umin, 0.62)*(pre*Umag*TI + C1) + ) + ); + + return + store(PMV) + && store(PPD) + && store(DR); } bool Foam::functionObjects::comfort::write() { - return writeObject("PMV") && writeObject("PPD"); + return + writeObject("PMV") + && writeObject("PPD") + && writeObject("DR"); } diff --git a/src/functionObjects/field/comfort/comfort.H b/src/functionObjects/field/comfort/comfort.H index c0d3803256..a1839ffdf1 100644 --- a/src/functionObjects/field/comfort/comfort.H +++ b/src/functionObjects/field/comfort/comfort.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | Website: https://openfoam.org - \\ / A nd | Copyright (C) 2019-2020 OpenFOAM Foundation + \\ / A nd | Copyright (C) 2019-2021 OpenFOAM Foundation \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -25,8 +25,14 @@ Class Foam::functionObjects::comfort Description - Calculates the thermal comfort quantities predicted mean vote (PMV) and - predicted percentage of dissatisfaction (PPD) based on DIN ISO EN 7730:2005. + Calculates the thermal comfort quantities predicted mean vote (PMV), + predicted percentage of dissatisfaction (PPD) and the draught rate (DR) + based on DIN ISO EN 7730:2005. + + The draught rate is defined for velocities between 0 m/s and 0.5 m/s. Values + larger than 0.5 m/s will be set to 0.5 m/s. Furthermore, the draught rate is + defined between 20 degC and 26 degC. A temperature limitation is not + implemented. The draught rate is mainly used for HVAC analysis in rooms. Usage \table @@ -34,11 +40,11 @@ Usage clothing | The insulation value of the cloth | no | 0 metabolicRate | The metabolic rate | no | 0.8 extWork | The external work | no | 0 - Trad | Radiation temperature | no | -1 - relHumidity | Relative humidity of the air | no | 50 + Trad | Radiation temperature | no | 0 + relHumidity | Relative humidity of the air | no | 0.5 pSat | Saturation pressure of water | no | -1 - tolerance | Residual control for the cloth temperature | no | 1e-5 - maxClothIter | Maximum number of iterations | no | 0 + tolerance | Residual control for the cloth temperature | no | 1e-4 + maxClothIter | Maximum number of iterations | no | 100 meanVelocity | Use a constant mean velocity in the whole domain | no |\ false \endtable