Ray voxel traversal - CST-Modelling-Tools/fluxtracer GitHub Wiki

INTRODUCTION

The Voxel Traversal functionality is the main functionality of FluxTracer. In short, this algorithm post-processes a set, or sets of rays generated by running a Monte Carlo ray tracer. Currently, FluxTracer operates along with Tonatiuh [1] and Tonatiuh++, (it is envisioned that further releases of the program will be able to import rays from other Monte Carlo ray tracers and in other formats) and then cleverly computes the radiant energy flux that traverses a given volume in space and in time (i.e monthly, annually), which is typically the three-dimensional (3D) space around the focal point/line of a solar concentrator configuration system. Since the voxel traversal algorithm is a key element of the program, a substantial effort has been devoted to identifying a fast and computationally efficient one. For this reason, the classical voxel traversal algorithm developed by Amanatides and Woo [2] has been implemented in the program.

OPERATING PRINCIPLE

In this analysis, FluxTracer computes the density distribution of radiant energy within the region of interest during a specified time interval. To compute the density distribution of radiant energy within the region of interest during a specified time interval, the starting point is the sets of rays generated by MCRT, which are representative of the optical behavior of the solar concentrator during the interval of time considered.

To carry out the radiant density analysis, the user should specify the following information:

  • The size and location of the three-dimensional region of interest. In the current implementation, this is a cuboid with sides aligned to the global coordinate system of the solar concentrator being analyzed. The position and dimensions of the cuboid are defined by the minimum (xmin, ymin, zmin) and maximum (xmax,ymax, zmax) coordinates of its corners.

  • The number of subdivisions (nx, ny, nz) for the region of interest in each of the three directions parallel to the axes of coordinates.

  • The set of MCRT rays to be processed by FluxTracer.

The first two items determine how the region of interest is defined and voxelized. Obviously, there must be a proportionality between the number of voxels defined within the region of interest (i.e., the voxel resolution) and the number of rays being processed. There are also obvious trade-offs between the size of the region of interest, the voxel resolution, and the number of rays.

Based on the input data, FluxTracer defines a three-dimensional array of dimension (nx, ny, nz) in which each element contains the sum of the radiant energy contributed by all the the rays that pierce the corresponding voxel when they are traversing the region of interest. When all the rays have been processed, the information contained in the tensor is transformed to radiant energy density by dividing their radiant energy content by the voxel volume. Since a key element of this FluxTracer functionality is the voxel traversal algorithm, a substantial effort has been devoted to identifying a fast and computationally efficient one. For the proof of concept, the classical voxel traversal algorithm of Amanatides and Woo [2] has been implemented in C++. The ray voxel traversal principle is also depicted in Figure 1 by means of a simplified 2D grid showing two rays passing through the bounding box space. Finally, the energy density is integrated in every voxel overtime, thus providing detailed information regarding the energy flow inside the 3D bounding box space.

image

CONCLUSIONS

The voxel traversal functionality of FluxTracer can be employed to provide insight or guidance in the development and optimization of solar receivers and other related solar applications. This could potentially lead to the design of complex in shape receiver geometries of interest. In addition, for solar tower technologies, application such as advanced power generation, heating and cooling, and solar chemistry are generating an ever-increasing research activity related to new receiver and system concepts. These emerging commercial CST applications are particularly demanding on the design of the Light Collection & Concentration (LCC) subsystem, and thus, the Voxel Traversal functionality may assist in the analysis and design of such systems, i.e. solar chemistry [3] and solar furnace concepts [4].

REFERENCES

[1] Blanco, M., Mutuberria, A., Monreal, A., & Albert, R. (2011). Results of the empirical validation of Tonatiuh at Mini-Pegase CNRS-PROMES facility. Proc SolarPACES.

[2] J. Amanatides and A. Woo, “A fast voxel traversal algorithm for ray tracing”, Eurographics. 1987

[3] Daniel Marxer, Philipp Furler, Michael Takacs and Aldo Steinfeld, Solar thermochemical splitting of CO2 into separate streams of CO and O2 with high selectivity, stability, conversion, and efficiency, Energy & Environmental Science, 10 (5): 1142-1149, Cambridge: Royal Society of Chemistry, 2017.

[4] Philipp Furler and Aldo Steinfeld, Heat transfer and fluid flow analysis of a 4 kW solar thermochemical reactor for ceria redox cycling, Chemical engineering science, 137: 373-383, Amsterdam: Elsevier, 2015.