Grid Based Simulation - Simulation Termination Condition?

Hello all,

I’ve long wondered how Radiance/Honeybee determines when to terminate a simulation. At first I thought this was a simple question, but after spending a bit too long in the Radiance and Honeybee documentation I still could not identify a clear answer.

Related Questions:

  1. Do the rays get generated at nodes in the grid? If not, where does the engine generate the rays?
  2. If the answer to the first question is yes, how many rays get generated at a single node? Perhaps a better question is which parameters determine the number of rays generated at a node?

Max Chmielinski

Hi, Max.
For the first question, yes, the rays are generated at the nodes and traced backwards to the light sources. This is the common practice in the path tracing algorithms. See Chap. 10.1 of Rendering with Radiance or google “path tracing” for details.
For the second question, there is a parameter “-c” for the rfluxmtx function of Radiance that controls how many rays is sampled the “-ad” parameter (short for “ambient division”) controls how many sample rays are taken from each node. I guess Honybee has the same control parameters, but I am new with Honeybee :stuck_out_tongue: .

Thanks JWKodomo,

I just finished reading the rfluxmtx.pdf documentation and found the reference to the “-c” sample count

The sample count, unless set by the −c option, defaults to 10000 when a sender file is given, or to 1 for pass-through mode

I just want to confirm a couple of things:

  1. the surface represented in sender.rad is the grid surface.
  2. the 10000 generated rays means that 10000 rays are generated over the whole surface, not that 10000 rays get generated from a single node.



For the first one,

, yes. Also check Chap. 6.1 of Daylighting Simulations with Radiance
using Matrix-based Methods
by @sarith, which gives a good description with some examples.

For the second one,

, sorry, but I was wrong about this one. The “-ad” parameter (short for ambient divisions) is what really controls how many sample rays one node sends out.

The -c parameter, on the other hand, controls

how many rays to accumulate for each record. The default value is one, meaning
a full record will be produced for each input ray. For values greater than one, contributions will be
av eraged together over the given number of input rays.

The above description is from the manual of rcontrib function, which is what’s behind the rfluxmtx function. My understanding is that it controls how many record is produced for each sampled ray. I have never used this parameter, so it would be great if someone could confirm or correct me.

Much thanks.

After reading through all the references you linked (except for Rendering with Radiance, which I do not yet have access to) I came to the same conclusion. Specifically, I think you are correct that -ad controls both the generation of rays at the origin nodes/pixels and also the number of rays generated at subsequent surface points.

I have a two follow-up questions that I do not believe actually affects the solution to the original question:

  1. In the copy/paste describing the -c parameter, the word “record” seems to refer to the allocated memory location containing the energy value of a ray. Is this correct?
  2. If I designate one of your two posts as the ‘solution’ (which I am happy to do as it gave me some references to read and at least begin to form answers) will that cause others who may have taken a look to not open this forum?


For your first question, yes, I believe so. But I would set up a new thread to ask specifically about the meaning of the “-c” parameter, as it is a new question arising from the discussion.