3 phase method solar


I’m learning Radiance and I need some assurance, that what I understood so far is correct.
I’m trying to recreate 3phase method(Subramaniam), and hoping to get a W/m2 output.
please correct me if I’m wrong(I’ve slightly modifying the procedure hoping to get calculate irradiance on horizontal surface in W/m2)

gendaymtx -m 1 -of -O1 –c 1 1 1 London.wea > London-m1O1.smx
Oconv -f materials.mtl room.rad > room.oct
rfluxmtx -v -I+ -ab 4 -ad 5000 -lw 0.0002 -n 16 -y 28 - objects/GlazingVmtx.rad -i room.oct < points.txt > v.mtx
rfluxmtx -v -ff -ab 4 -ad 1000 -lw 0.001 -c 1000 -n 16 GlazingVmtx.rad skyglow.rad -i room.oct > daylight.dmx
dctimestep v.mtx clear.xml aylight.dmx London-m1O1.smx | rmtxop -fa -t -c 1 1 1 - > results/CLEAR.ill

what I’m interested the most is if my use of

  1. -O1 and -c 1 1 1 @ gendaymtx would use total solar radiance (W/m2) as gray sky(and if it’s needed);
  2. if my understanding of the rmtxop -c 1 1 1 would provide me in W/m2 as oposed to Lux value (with -c 47.4 119 11.6)
  3. is it to expect the result conversion from Lux/W/m2 to be as simple as 1/179?

thank you for reading and any comment

  1. Your use of the -O1 and -c 1 1 1 options to gendaymtx should do what you expect.
  2. You should use -c .33333 .33333 .33333 to average the three channels into a single output channel. (If all surface are gray, then -c 0 1 0 will work as well.) Using -c 1 1 1 will add the three channels together, giving you a result that is 3x too high.
  3. The 179 lumens/watt factor is roughly the luminous efficacy of equal-energy white light over the visible spectrum, and the standard conversion used in Radiance.


hi, and thank you for swift reply and corrections

Unfortunately, I’m missing some piece of the puzzle, since the values I get dont correspond to expected values.
For example, incident radiation I expect getting should be few times as high;
my sensor reading ranges from 20 to 700(at best) for most hourly results. I’m not sure if I’m missing a time factor, surface area or some other thing I failed to take into account. Please let me know if my flaw is obvious :frowning:

for example, my (south) daily hourly max values for January are in the 20-155 W/m2 ; while according to table 2 i it should be in the 680 W/m2 value.

also, I’m not sure if I should worry about the epw file, since its the common epw file, found online, energy plus etc.


The 3-phase method does tend to spread beam radiation out and lower its value. This could probably account for the under-prediction you are seeing. I would have to know more about your simulation to offer further help. Perhaps someone else who has run through the tutorial can advise you.


Hi Lilth,

You’re simulating the solar irradiance on a workplane, which isn’t equivalent to solar heat gain through a window. A better way to you want to calculate the optical portion of heat gain through the window you should place your sensor point just inside the window, facing the window. You should also use the solar spectrum of a BSDF generated by Berkeley Window. To do this you have to trick radiance by editing the BSDF file and changing the visible tags to something else, and change the solar tag to visible.

To simulate the thermal portion of heat gain (solar optical energy absorbed by the window and conducted/radiated into the building) you’re probably better off using different tools.



thank you for the reply, and awesome tutorials!

I did something similar to what you recommended.

I’ve used a point at facade with outside vector and used
“clear”.xml data to get the “outside” condition;

and “facade.xml” data to get the “inside” condition on the same point.
(xml file created using window7, with both opticla calcs in vis and solar band)

unfortunately, results appear to be less than half the value. So I’m not sure if its the weather file, or 3pm may not be the best way to conduct the experiment.

I plan on trying to try the same thing with “rsensor”.

I’ll look into alternatives, but its a way of testing radiance capabilities, and a way of learning how to work with it.


Maybe you could start with something that is apples to apples.
I’d suggest a simple simulation using one of the timesteps in the weather file. If you open the wea file in a text editor, you can pick a line, for example from a wea file created from a London Gatwick weather file I pulled the following line:
1 1 12.5000 22 110

the fields are month, day, hour, direct normal irradiance, diffuse horizontal irradiance. The low value for direct normal irradiance indicates that its mostly cloudy for this hour. These fields can be used to generate a perez sky as follows:
gendaylit 1 1 12.5 -a 51.15 -o 0.18 -m 0 -01 -W 22 110 > test.sky

And I get 102.2 W/m2 from rtrace using the following command:
echo 0 0 0 0 -1 0 | rtrace -I+ -ab 1 -ad 5000 test.oct | rcalc -e ‘$1=$10.33+$20.34+$3*0.33’

Then I’d compare the value from the basic radiance simulation to that timestep of the three-phase simulation. I’d expect close agreement between these two, but not exact because gendaylit and gendaymtx have different implementations of the perez model, and because as Greg mentioned, the three-phase method spreads the suns energy among sky patches (sky matrix) and then klems patches (BSDF).

Hope that helps,


To satisfy my curiosity, I ran a quick three-phase test to compare.

Here are the files I created:


#@rfluxmtx u=Z h=kf
#Td=0 Ts=1 Rd=0 Rs=0
void trans window
7 1 1 1 0 0 1 1
window polygon testwindow
12 -1 0 -1 -1 0 1 1 0 1 1 0 -1


void polygon window
12 0 0 -.0001 1 0 -.0001 1 1 -.0001 0 1 -.0001


#@rfluxmtx h=u u=Y
void glow ground_glow
4 1 1 1 0
ground_glow source ground
4 0 0 -1 180

#@rfluxmtx h=r4 u=Y
void glow sky_glow
4 1 1 1 0
sky_glow source sky
4 0 0 1 180


0 0.001 0 0 -1 0

Here are the commands for the three phase method:


rfluxmtx -I+ -ab 1 -ad 1000000 -lw 1e-6 <points.txt - window.rad > view.mtx
rfluxmtx -ab 1 -ad 1000000 -lw 1e-6 window.rad sky_mf4.rad > day.mtx
genbsdf +f +b -c 500 -geom meter void.rad > void.xml

Then running the matrix multiplication using a sky vector for a single timestep:
gendaylit 1 1 12.5 -a 51.15 -o 0.18 -m 0 -O 1 -W 22 110 |
genskyvec -m 4 -c 1 1 1 |
dctimestep view.mtx void.xml day.mtx |
rmtxop -t -c 0.33 0.34 0.33 -

gives a result of 99.9 W/m2, which is close enough to 102.2

And using a sunnier time in January from the weather file: (1 7 12.500 644 61 ) I get 725 W/m2 with the three phase and 730 W/m2 with the basic simulation.

So there must be something wrong with your setup. Do you want to share your files?



here it is;

I hope one day, I’ll be able to contribute as well.


Hi Lilith,

In your results/3ph/3phCLEAR.ill
In line 313 of the file, the last column (which corresponds to your vertical sensor facing the window) has: 6.690689000000000e+02
which is 669 W/m2
The conditions in the weather file are the same for which I got ~730 W/m2.
Given that your clear.xml BSDF has a transmission of about 90%, your result seems correct.

Am I missing something?