diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C index d887867658482fd608c4b63ded7f47791ec48f1e..dea53edd9195d98168676ae6492853348a212918 100644 --- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C +++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.C @@ -206,6 +206,12 @@ void Foam::solarCalculator::init() } case mSunLoadFairWeatherConditions: { + dict_.readIfPresent + ( + "skyCloudCoverFraction", + skyCloudCoverFraction_ + ); + A_ = readScalar(dict_.lookup("A")); B_ = readScalar(dict_.lookup("B")); @@ -218,7 +224,9 @@ void Foam::solarCalculator::init() calculateBetaTetha(); } - directSolarRad_ = A_/exp(B_/sin(beta_)); + directSolarRad_ = + (1.0 - 0.75*pow(skyCloudCoverFraction_, 3.0)) + * A_/exp(B_/sin(beta_)); groundReflectivity_ = readScalar(dict_.lookup("groundReflectivity")); @@ -257,6 +265,7 @@ Foam::solarCalculator::solarCalculator B_(0.0), beta_(0.0), tetha_(0.0), + skyCloudCoverFraction_(0.0), Setrn_(0.0), SunPrime_(0.0), C_(readScalar(dict.lookup("C"))), diff --git a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H index 6d3b13c12ba2641ef3d35e17f5a16c8cb0e4a4c8..ca7c7a3746884eb139595de076f93ed912b63669 100644 --- a/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H +++ b/src/thermophysicalModels/radiation/submodels/solarCalculator/solarCalculator.H @@ -2,7 +2,7 @@ ========= | \\ / F ield | OpenFOAM: The Open Source CFD Toolbox \\ / O peration | - \\ / A nd | Copyright (C) 2015 OpenCFD Ltd. + \\ / A nd | Copyright (C) 2015-2017 OpenCFD Ltd. \\/ M anipulation | ------------------------------------------------------------------------------- License @@ -52,6 +52,7 @@ Description 2) SunLoadFairWeatherConditions: The solar fluxes are calculated following the Fair Weather Conditions Method from the ASHRAE Handbook. The entries are: + skyCloudCoverFraction: Fraction of sky covered by clouds (0-1) A : Apparent solar irradiation at air mass m = 0 B : Atmospheric extinction coefficient beta: Solar altitude (in degrees) above the horizontal. This @@ -61,7 +62,7 @@ Description In this model the flux is calculated as: - directSolarRad = A/exp(B/sin(beta)); + directSolarRad = skyCloudCoverFraction*A/exp(B/sin(beta)); 3) SunLoadTheoreticalMaximum: The entries are: Setrn @@ -158,6 +159,9 @@ private: scalar beta_; scalar tetha_; + //- Sky cloud cover fraction [0-1] + scalar skyCloudCoverFraction_; + //- Maximum theoretical direct solar load model parameters scalar Setrn_;