# Diffuse Reflection of Beam Solar and Sky Solar Radiation[LINK]

A ray-tracing method is used to calculate beam solar and sky solar radiation that is diffusely reflected onto each of a building’s exterior surfaces (walls, roofs, windows and doors), called here “receiving surfaces.” The calculation begins by generating a set of rays proceeding into the outward hemisphere at each receiving point on a receiving surface. Then it determinines whether each ray hits the sky, ground or an obstruction. The radiance at the hit point from reflection of incident beam or sky solar is determined and the contribution of this radiance to the receiving surface is calculated, added to the contribution from other hit points, and averaged over the receiving points. Separate calculations are done for beam-to-diffuse and sky solar reflection from all obstructions and beam-to-diffuse and sky solar reflection from the ground. (For beam-to-beam reflection see “Beam Solar Radiation Specularly Reflected from Obstructions,” below.)

##
*Receiving points*[LINK]

An *N*-sided surface is assigned *N* receiving points with the following coordinates, expressed in terms of the surface vertex coordinates:

Pij=N∑k=1akivkj,i=1,3;j=1,3

where

*Pij = jth* coordinate of the* ith* receiving point

*vkj* = * jth* coordinate of the *kth* surface vertex

If *N* = 3: *akj* = 3/5 if *k* = *i*; = 1/5 otherwise

If *N* > 3: *akj* = N+12N if *k* = *i*; = 12N otherwise

For example, for a vertical 3m by 5m rectangle with vertices (0,0,3), (0,0,0), (5,0,0) and (5,0,3), this expression gives receiving points at (1.25,0,2.25), (1.25,0,0.75), (3.75,0,0.75) and (3.75,0,2.25), as shown in Figure.

A total of 90 rays are sent out into the exterior hemisphere surrounding each receiving point. An upgoing ray may hit an obstruction or the sky. A downgoing ray may hit an obstruction or the ground. See Figure.

In subroutine InitSolReflRecSurf, the following is determined for each ray, *i,*:

1. Unit vector in direction of ray

2. Cosine of angle between ray and plane of receiving surface (cosαi )

3. Element of solid angle associated with ray (dΩi )

4. If the ray hits one or more obstructions, the coordinates of the hit point on the obstruction nearest the receiving point

5. For the surface containing the hit point: the surface number, the solar reflectance (ρobs,i if an obstruction), and the surface unit vector at the hit point pointing into the hemisphere containing the receiving point

6. If the ray is downgoing and hits the ground, the coordinates of the ground hit point

7. Distance from receiving point to hit point

## Sky Solar Radiation Diffusely Reflected from Obstructions[LINK]

The factor for reflection of sky radiation from obstructions onto a receiving surface is calculated in subroutine CalcSkySolDiffuseReflFactors. It is given by:

ReflFacSkySolObs(RecSurfNum)=1NrecNrec∑1Nray∑i=1Hitobs,iViewFacSkyobs,iDifShdgRatioIsoSkyobs,iρobs,icosαi/π

where

RecSurfNum is the receiving surface number,

Nrec is the number of receiving points,

Nray is the number of rays,

“*obs,i*” denotes the obstruction hit by ray *i*,

*Hitobs,i* = 1 if ray *i* hits an obstruction, = 0 otherwise,

*ViewFacSkyobs,i* = unobstructed sky view factor of the obstruction = (1+costiltobs)/2 ,

*DifShdgRatioIsoSkyobs,i* = (obstructed sky irradiance on obstruction)/(unobstructed sky irradiance on obstruction)

In this equation the product *ViewFacSky*DifShdgRatioIsoSky* is the sky irradiance at the hit point divided by the horizontal sky irradiance taking into account shadowing of sky diffuse radiation on the obstruction by other obstructions, and assuming that the radiance of the sky is uniform. Note that we ignore secondary reflections here and in the following sections. In the present case this means that the irradiance at the hit point due to reflection of sky radiation from the ground or from other obstructions is not considered.

The above reflection factor is used in the timestep calculation to find the irradiance on a receiving surface due to sky radiation reflected from obstructions:

QRadSWOutIncSkyDiffReflObs(RecSurfNum)=DifSolarRad∗ReflFacSkySolObs(RecSurfNum)(W/m2)

where *DifSolarRad* is the horizontal sky irradiance on an unobstructed horizontal plane (W/m2).

## Sky Solar Radiation Diffusely Reflected from the Ground[LINK]

If a downgoing ray from a receiving point hits the ground (for example, rays 1-6 in Figure), the program calculates the radiance at the ground hit point due to sky diffuse solar reaching that point. To do this, rays are sent upward from the ground hit point and it is determined which of these rays are unobstructed and so go to the sky (for example, rays 6-10 in Figure). For this calculation it is assumed that the radiance of the sky is uniform.

The factor for reflection of sky radiation from the ground onto a receiving surface is calculated in subroutine CalcSkySolDiffuseReflFactors. It is given by:

ReflFacSkySolGnd(RecSurfNum)=1NrecNrec∑1Nray∑i=1[(Hitgnd,idΩicosαi/π)Nray∑j(i)Hitsky,j(i)cosαj(i)dΩj(i)/π]

where

*j(i) * denotes an upgoing ray from the ground point hit by ray *i*from the receiving point,

*Hitskyj(i)* = 1 if ray *j(i)* hits the sky, = 0 otherwise,

αj(i) is the angle of incidence of ray j(i) with respect to the ground plane,

dΩj(i) is the solid angle element associated with ray j(i) .

This factor is used in the timestep calculation to find the irradiance on a receiving surface due to sky radiation reflected from the ground:

QRadSWOutIncSkyDiffReflGnd(RecSurfNum) = DifSolarRad * ρgnd * ReflFacSkySolGnd(RecSurfNum) (W/m2)

where ρgnd is the solar reflectance of the ground, which is assumed to be uniform over the ground plane but may vary monthly (because of snow cover, for example).

## Beam Solar Radiation Diffusely Reflected from Obstructions[LINK]

This calculation is similar to that for sky solar reflected from obstructions. However, to find the radiance at a hit point on an obstruction a line is drawn from the hit point to center of the sun. From this line it is determined (1) if there is an obstruction between the hit point and the sun, in which case it is assumed that no beam solar reaches the hit point; and (2) if beam solar does reach the hit point, what the the solar angle of incidence at that point is.

The calculation is done for the hourly sun positions on each of the design days. It is also done for hourly sun positions on selected days during the weather file run period (the same days for which the shadowing calculations are done).

The factor for diffuse reflection of beam solar radiation from obstructions onto a receiving surface is calculated in subroutine CalcBeamSolDiffuseReflFactors. It is given by:

ReflFacBmToDiffSolObs(RecSurfNum,IHr)=1NrecNrec∑1Nray∑i=1Hitobs,iHitobs,i,sundΩicosαiρobs,icosαsun,obs,i

where

*IHr* = hour number

Hitobs,i = 1 if ray *i* from the receiving point hits an obstruction, = 0 otherwise,

Hitobs,i,sun = 1 if the line from ray *i*’s hit point to the sun is unobstructed, = 0 otherwise,

αsun,obs,i is the angle of incidence of the sun on the obstruction.

This factor is used in the timestep calculation to find the diffuse irradiance on a receiving surface due to beam solar diffusely reflected from obstructions:

QRadSWOutIncBmToDiffReflObs(RecSurfNum) = BeamSolarRad * (WeightNow * ReflFacBmToDiffSolObs(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToDiffSolObs(RecSurfNum,PreviousHour))

where *BeamSolarRad* is the timestep value of beam normal solar intensity (W/m2), and *WeightNow* and *WeightPreviousHour* are time-averaging factors.

## Beam Solar Radiation Diffusely Reflected from the Ground[LINK]

This calculation is the same as that for beam solar diffusely reflected from obstructions except that only rays from a receiving point that hit the ground are considered. The factor for diffuse reflection of beam solar from the ground onto a receiving surface is calculated in subroutine CalcBeamSolDiffuseReflFactors. It is given by:

ReflFacBmToDiffSolGnd(RecSurfNum,IHr)=1NrecNrec∑1Nray∑i=1Hitgnd,iHitgnd,i,sundΩicosαgnd,icosαsun,gnd

where

Hitgnd,i = 1 if ray *i* hits the ground, = 0 otherwise,

Hitgnd,i,sun = 1 if the line from ray *i*’s hit point ot the sun is unobstructed, = 0 otherwise,

αsun,gnd = angle of incidence of sun on ground ( = solar zenith angle).

This factor is used in the timestep calculation to find the diffuse irradiance on a receiving surface due to beam solar diffusely reflected from the ground:

QRadSWOutIncBmToDiffReflGnd(RecSurfNum) = BeamSolarRad * ρgnd * (WeightNow * ReflFacBmToDiffSolGnd(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToDiffSolGnd(RecSurfNum,PreviousHour))

## Beam Solar Radiation Specularly Reflected from Obstructions[LINK]

Figure shows schematically how specular (beam-to-beam) reflection from an obstruction is calculated.

The calculation procedure is as follows:

1. Select receiving point D on receiving surface JK.

2. Select specularly reflecting surface EF.

3. Find the mirror image, B, of the sun with respect to the plane of EF and construct ray DB.

4. Check if DB passes through EF; if yes, find intersection point C and construct ray CD.

5. Check if CD is obstructed.

6. If no, construct ray AC and check if it is obstructed.

7. If no, find reflected beam irradiance (W/m2) at D:

IbmD,refl=BeamSolarRad∗ρspec(αC)cosαD

where

αC = angle of incidence of beam solar at point C of the obstruction,

ρspec(αC) = reflectance of obstruction as a function of the angle of incidence,

αD = angle of incidence of ray CD on JK.

The factor for specular reflection of beam solar from obstruction onto a receiving surface is calculated in subroutine CalcBeamSolSpecularReflFactors. It is given by:

ReflFacBmToBmSolObs(RecSurfNum,IHr)=∑specularlyreflectingsurfaces[1NrecNrec∑1fC,glazedρspec(αC)cosαD]

The program assumes that specular reflection from a surface is due to glazing. If the reflecting surface is a window belonging to the building itself (as in Figure), then fC,glazed is the fraction of the window that is glazed (which is 1.0 unless the window has dividers).

If the surface is a shading surface (that represents, for example, the glazed façade of a neigboring building) the surface reflection information is entered with the Shading Surface Reflectance object. This object contains values for:

1. Diffuse solar reflectance of the unglazed part of the shading surface

2. Diffuse visible reflectance of the unglazed part of the shading surface

3. Fraction of shading surface that is glazed

4. Name of glazing construction

In this case fC,glazed is “Fraction of shading surface that is glazed” and ρspec(αC) is the front reflectance of the indicated glazing construction as a function of beam solar incidence angle.

The above specular reflection factor is used in the timestep calculation to find the beam irradiance on a receiving surface due to beam-beam reflection from obstructions:

QRadSWOutIncBmToBmReflObsRecSurfNum) = BeamSolarRad * (WeightNow * ReflFacBmToBmSolObs(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToBmSolObs(RecSurfNum,PreviousHour))

## Diffuse Reflection of Beam Solar and Sky Solar Radiation[LINK]

A ray-tracing method is used to calculate beam solar and sky solar radiation that is diffusely reflected onto each of a building’s exterior surfaces (walls, roofs, windows and doors), called here “receiving surfaces.” The calculation begins by generating a set of rays proceeding into the outward hemisphere at each receiving point on a receiving surface. Then it determinines whether each ray hits the sky, ground or an obstruction. The radiance at the hit point from reflection of incident beam or sky solar is determined and the contribution of this radiance to the receiving surface is calculated, added to the contribution from other hit points, and averaged over the receiving points. Separate calculations are done for beam-to-diffuse and sky solar reflection from all obstructions and beam-to-diffuse and sky solar reflection from the ground. (For beam-to-beam reflection see “Beam Solar Radiation Specularly Reflected from Obstructions,” below.)

Receiving points[LINK]An

N-sided surface is assignedNreceiving points with the following coordinates, expressed in terms of the surface vertex coordinates:Pij=N∑k=1akivkj,i=1,3;j=1,3

where

Pij = jthcoordinate of the* ith* receiving pointvkj= * jth* coordinate of thekthsurface vertexIf

N= 3:akj= 3/5 ifk=i; = 1/5 otherwiseIf

N> 3:akj= N+12N ifk=i; = 12N otherwiseFor example, for a vertical 3m by 5m rectangle with vertices (0,0,3), (0,0,0), (5,0,0) and (5,0,3), this expression gives receiving points at (1.25,0,2.25), (1.25,0,0.75), (3.75,0,0.75) and (3.75,0,2.25), as shown in Figure.

Vertical rectangular exterior heat transfer surface showing location of receiving points for calculating incident solar radiation reflected from obstructions.

Rays[LINK]A total of 90 rays are sent out into the exterior hemisphere surrounding each receiving point. An upgoing ray may hit an obstruction or the sky. A downgoing ray may hit an obstruction or the ground. See Figure.

In subroutine InitSolReflRecSurf, the following is determined for each ray,

i,:1. Unit vector in direction of ray

2. Cosine of angle between ray and plane of receiving surface (cosαi )

3. Element of solid angle associated with ray (dΩi )

4. If the ray hits one or more obstructions, the coordinates of the hit point on the obstruction nearest the receiving point

5. For the surface containing the hit point: the surface number, the solar reflectance (ρobs,i if an obstruction), and the surface unit vector at the hit point pointing into the hemisphere containing the receiving point

6. If the ray is downgoing and hits the ground, the coordinates of the ground hit point

7. Distance from receiving point to hit point

Two-dimensional schematic showing rays going outward from a point on a receiving surface. Rays 1-6 hit the ground, rays 7-11 hit an obstruction, and rays 12-15 hit the sky.

## Sky Solar Radiation Diffusely Reflected from Obstructions[LINK]

The factor for reflection of sky radiation from obstructions onto a receiving surface is calculated in subroutine CalcSkySolDiffuseReflFactors. It is given by:

ReflFacSkySolObs(RecSurfNum)=1NrecNrec∑1Nray∑i=1Hitobs,iViewFacSkyobs,iDifShdgRatioIsoSkyobs,iρobs,icosαi/π

where

RecSurfNum is the receiving surface number,

Nrec is the number of receiving points,

Nray is the number of rays,

“

obs,i” denotes the obstruction hit by rayi,Hitobs,i= 1 if rayihits an obstruction, = 0 otherwise,ViewFacSkyobs,i= unobstructed sky view factor of the obstruction = (1+costiltobs)/2 ,DifShdgRatioIsoSkyobs,i= (obstructed sky irradiance on obstruction)/(unobstructed sky irradiance on obstruction)In this equation the product

ViewFacSky*DifShdgRatioIsoSkyis the sky irradiance at the hit point divided by the horizontal sky irradiance taking into account shadowing of sky diffuse radiation on the obstruction by other obstructions, and assuming that the radiance of the sky is uniform. Note that we ignore secondary reflections here and in the following sections. In the present case this means that the irradiance at the hit point due to reflection of sky radiation from the ground or from other obstructions is not considered.The above reflection factor is used in the timestep calculation to find the irradiance on a receiving surface due to sky radiation reflected from obstructions:

QRadSWOutIncSkyDiffReflObs(RecSurfNum)=DifSolarRad∗ReflFacSkySolObs(RecSurfNum)(W/m2)

where

DifSolarRadis the horizontal sky irradiance on an unobstructed horizontal plane (W/m2).## Sky Solar Radiation Diffusely Reflected from the Ground[LINK]

If a downgoing ray from a receiving point hits the ground (for example, rays 1-6 in Figure), the program calculates the radiance at the ground hit point due to sky diffuse solar reaching that point. To do this, rays are sent upward from the ground hit point and it is determined which of these rays are unobstructed and so go to the sky (for example, rays 6-10 in Figure). For this calculation it is assumed that the radiance of the sky is uniform.

Two-dimensional schematic showing rays going upward from a ground hit point.

The factor for reflection of sky radiation from the ground onto a receiving surface is calculated in subroutine CalcSkySolDiffuseReflFactors. It is given by:

ReflFacSkySolGnd(RecSurfNum)=1NrecNrec∑1Nray∑i=1[(Hitgnd,idΩicosαi/π)Nray∑j(i)Hitsky,j(i)cosαj(i)dΩj(i)/π]

where

j(i)denotes an upgoing ray from the ground point hit by rayifrom the receiving point,Hitskyj(i)= 1 if rayj(i)hits the sky, = 0 otherwise,αj(i) is the angle of incidence of ray j(i) with respect to the ground plane,

dΩj(i) is the solid angle element associated with ray j(i) .

This factor is used in the timestep calculation to find the irradiance on a receiving surface due to sky radiation reflected from the ground:

QRadSWOutIncSkyDiffReflGnd(RecSurfNum) = DifSolarRad * ρgnd * ReflFacSkySolGnd(RecSurfNum) (W/m2)

where ρgnd is the solar reflectance of the ground, which is assumed to be uniform over the ground plane but may vary monthly (because of snow cover, for example).

## Beam Solar Radiation Diffusely Reflected from Obstructions[LINK]

This calculation is similar to that for sky solar reflected from obstructions. However, to find the radiance at a hit point on an obstruction a line is drawn from the hit point to center of the sun. From this line it is determined (1) if there is an obstruction between the hit point and the sun, in which case it is assumed that no beam solar reaches the hit point; and (2) if beam solar does reach the hit point, what the the solar angle of incidence at that point is.

The calculation is done for the hourly sun positions on each of the design days. It is also done for hourly sun positions on selected days during the weather file run period (the same days for which the shadowing calculations are done).

The factor for diffuse reflection of beam solar radiation from obstructions onto a receiving surface is calculated in subroutine CalcBeamSolDiffuseReflFactors. It is given by:

ReflFacBmToDiffSolObs(RecSurfNum,IHr)=1NrecNrec∑1Nray∑i=1Hitobs,iHitobs,i,sundΩicosαiρobs,icosαsun,obs,i

where

IHr= hour numberHitobs,i = 1 if ray

ifrom the receiving point hits an obstruction, = 0 otherwise,Hitobs,i,sun = 1 if the line from ray

i’s hit point to the sun is unobstructed, = 0 otherwise,αsun,obs,i is the angle of incidence of the sun on the obstruction.

This factor is used in the timestep calculation to find the diffuse irradiance on a receiving surface due to beam solar diffusely reflected from obstructions:

QRadSWOutIncBmToDiffReflObs(RecSurfNum) = BeamSolarRad * (WeightNow * ReflFacBmToDiffSolObs(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToDiffSolObs(RecSurfNum,PreviousHour))

where

BeamSolarRadis the timestep value of beam normal solar intensity (W/m2), andWeightNowandWeightPreviousHourare time-averaging factors.## Beam Solar Radiation Diffusely Reflected from the Ground[LINK]

This calculation is the same as that for beam solar diffusely reflected from obstructions except that only rays from a receiving point that hit the ground are considered. The factor for diffuse reflection of beam solar from the ground onto a receiving surface is calculated in subroutine CalcBeamSolDiffuseReflFactors. It is given by:

ReflFacBmToDiffSolGnd(RecSurfNum,IHr)=1NrecNrec∑1Nray∑i=1Hitgnd,iHitgnd,i,sundΩicosαgnd,icosαsun,gnd

where

Hitgnd,i = 1 if ray

ihits the ground, = 0 otherwise,Hitgnd,i,sun = 1 if the line from ray

i’s hit point ot the sun is unobstructed, = 0 otherwise,αsun,gnd = angle of incidence of sun on ground ( = solar zenith angle).

This factor is used in the timestep calculation to find the diffuse irradiance on a receiving surface due to beam solar diffusely reflected from the ground:

QRadSWOutIncBmToDiffReflGnd(RecSurfNum) = BeamSolarRad * ρgnd * (WeightNow * ReflFacBmToDiffSolGnd(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToDiffSolGnd(RecSurfNum,PreviousHour))

## Beam Solar Radiation Specularly Reflected from Obstructions[LINK]

Figure shows schematically how specular (beam-to-beam) reflection from an obstruction is calculated.

^{1}Two-dimensional schematic showing specular reflection from an obstruction such as the glazed façade of a neighboring building. The receiving point receives specularly reflected beam solar radiation if (1) DB passes through specularly reflecting surface EF, (2) CD does not hit any obstructions (such as RS), and (3) AC does not hit any obstructions (such as PQ).

The calculation procedure is as follows:

1. Select receiving point D on receiving surface JK.

2. Select specularly reflecting surface EF.

3. Find the mirror image, B, of the sun with respect to the plane of EF and construct ray DB.

4. Check if DB passes through EF; if yes, find intersection point C and construct ray CD.

5. Check if CD is obstructed.

6. If no, construct ray AC and check if it is obstructed.

7. If no, find reflected beam irradiance (W/m2) at D:

IbmD,refl=BeamSolarRad∗ρspec(αC)cosαD

where

αC = angle of incidence of beam solar at point C of the obstruction,

ρspec(αC) = reflectance of obstruction as a function of the angle of incidence,

αD = angle of incidence of ray CD on JK.

The factor for specular reflection of beam solar from obstruction onto a receiving surface is calculated in subroutine CalcBeamSolSpecularReflFactors. It is given by:

ReflFacBmToBmSolObs(RecSurfNum,IHr)=∑specularlyreflectingsurfaces[1NrecNrec∑1fC,glazedρspec(αC)cosαD]

The program assumes that specular reflection from a surface is due to glazing. If the reflecting surface is a window belonging to the building itself (as in Figure), then fC,glazed is the fraction of the window that is glazed (which is 1.0 unless the window has dividers).

If the surface is a shading surface (that represents, for example, the glazed façade of a neigboring building) the surface reflection information is entered with the Shading Surface Reflectance object. This object contains values for:

1. Diffuse solar reflectance of the unglazed part of the shading surface

2. Diffuse visible reflectance of the unglazed part of the shading surface

3. Fraction of shading surface that is glazed

4. Name of glazing construction

In this case fC,glazed is “Fraction of shading surface that is glazed” and ρspec(αC) is the front reflectance of the indicated glazing construction as a function of beam solar incidence angle.

The above specular reflection factor is used in the timestep calculation to find the beam irradiance on a receiving surface due to beam-beam reflection from obstructions:

QRadSWOutIncBmToBmReflObsRecSurfNum) = BeamSolarRad * (WeightNow * ReflFacBmToBmSolObs(RecSurfNum,HourOfDay) + WeightPreviousHour * ReflFacBmToBmSolObs(RecSurfNum,PreviousHour))

The ground surface is assumed to be diffusely reflecting so there is no specular reflection from the ground. The program could be improved by adding a ground surface specular component, which could be important for snow-cover conditions.↩

Documentation content copyright © 1996-2017 The Board of Trustees of the University of Illinois and the Regents of the University of California through the Ernest Orlando Lawrence Berkeley National Laboratory. All rights reserved. EnergyPlus is a trademark of the US Department of Energy.

This documentation is made available under the EnergyPlus Open Source License v1.0.