SolTrace is a software tool developed at the National Renewable Energy Laboratory (NREL) to model concentrating solar power (CSP) systems and analyze their optical performance. Although ideally suited for solar applications, the code can also be used to model and characterize many general optical systems. The creation of the code evolved out of a need to model more complex solar optical systems than could be modeled with existing tools.
More information is available.
The code uses Monte-Carlo ray-tracing methodology. The user selects a given number of rays to be traced. Each ray is traced through the system while encountering various optical interactions. Some of these interactions are probabilistic in nature (e.g., selection of sun angle from sun angular intensity distribution) while others are deterministic (e.g., calculation of ray intersection with an analytically described surface and resultant redirection). Because it replicates real photon interactions, the code can provide accurate results for complex systems that cannot be modeled otherwise. Accuracy increases with the number of rays traced, but larger ray numbers means more processing time. Complex geometries also translate into longer run times. The code (written in C++) is extremely fast and automatically takes advantage of every processor present in a particular Windows- or Mac-based operating system. Although the input is text (or spreadsheet), a plug-in is provided for the free solid modeling tool Trimble SketchUp that will allow users to graphically design and save optical geometries for SolTrace analysis.
SolTrace can be used to model parabolic trough collectors, linear Fresnel lens systems, power tower geometries, and point-focus optical systems (dishes and solar furnaces). It displays data as scatter plots and flux maps, and can save data for processing with other software. It also can model optical geometries as a series of stages composed of any number of optical elements that possess attributes including shape, contour, and optical quality. Stages can be either physical or virtual to allow for easier accounting of power and flux throughout the system. A scripting language is provided to allow the user to create parametric runs and additional functionality beyond the core ray-tracing capabilities.