SimulTrough is a C++ library containing classes
and functions designed to simulate the optical properties of a parabolical
The library can be included in C or C++ programs; the user is
required to provide the properties and the size of the collector and of
the receiver, and to define the optical functions relative to the
various components (a set of optical functions is given in a header file
as an example). The library includes functions to calculate the efficiency
and the distribution of the absorbed radiation on the receiver.
Ray-tracing model used for the simulation, for a
glass-covered receiver. Solar rays that hit the mirror are followed along all
the reflections and refractions due to the system components, until their
energy becomes negligible.
The simulation is performed with a ray-tracing technique. Each ray
is followed until it is absorbed or lost; the same technique is applied to the
secondary rays generated by refraction, as shown in the figure. The effects that
can be taken into account are:
- angular solar rays distribution (limb-darkened model);
- multiple reflections and refractions at the mirror, at the possible
glass covering, at the receiver layer;
- arbitrary position of the sun (tracking error, etc.);
- possible defects (out-of-focus receiver, imperfections and deformations of the
A detailed description can be found in the User's Guide.
The library can be downloaded
Four files are given:
SimulTrough.cpp (library source file),
SimulTrough.h (library header file),
opt_fun_definition.h (optical functions) e
SimulTrough_UserGuide.pdf (library User's Guide).
The library is distributed under the GPL license: it can be freely
downloaded and diffused (without any warranty), but it cannot be included
in proprietary software. The full text of the GPL license is in
Appendix A of the User's Guide.
Author: Roberto Grena, ENEA DTE-STSN-SCIS.