core icon indicating copy to clipboard operation
core copied to clipboard

Bolometer slit CSG aperture should be a disk

Open jacklovell opened this issue 6 years ago • 1 comments

The CSG aperture for the BolometerSlit at the moment is a box with the rectangular slit subtracted from it. This box is a cuboid of side length max(slit_width, slit_height), which is roughly the same size as the (rectangular) target. However, the bolometer pixel will target the slit target's bounding sphere, which is larger than the CSG aperture box. This means some rays will pass outside the CSG aperture, in the region bounded by the bounding sphere but not the box, and potentially see emission which should be blocked by the slit.

I propose we make the CSG aperture a disk (i.e. a cylinder of very small height), with a radius equal to that of the bounding sphere. As long as targetted_path_prob=1 for the foil, this will mean no rays make it past the CSG aperture unless they go through the slit itself.

We should also include a warning in the documentation that this CSG aperture is larger than the slit itself. If there are two slits very close together, their CSG apertures could overlap and cause partial occlusion of one another.

We should probably also include a warning about using the CSG aperture for very large slits close to the foil. If the foil is inside the slit target's bounding sphere, sampling is from the entire hemisphere and so some rays will pass outside the CSG aperture. In this case the only solution is to have a proper geometry for the camera, including side walls, as the CSG aperture will not work unless it is infinitely wide. This can also be explained in the documentation, and perhaps it can also be added as a sanity check during the setting of the BolometerFoil.slit attribute.

jacklovell avatar Dec 04 '19 08:12 jacklovell

After discussing this earlier, it was agreed that we should remove the CSG aperture capability from the BolometerSlit object, as it's too error prone (this being just one example of potential errors). I'll make an example which does the same thing, and then remove this feature. The BolometerSlit object will then solely function as a target for the foil, and users will be required to provide a camera geometry which describes the camera box with an aperture in the same place as the BolometerSlit.

jacklovell avatar Dec 04 '19 15:12 jacklovell