# SolTrace FAQs

You may send questions and comments to the user support team at SolTrace Support.

## Q: What changes have been implemented in the current version of SolTrace?

**A:** Here are the highlights of the modifications made since version 2012.3.28:

- We updated sample files, including example scripts to set up a system programmatically.
- We fixed situations in which SolTrace would hang on certain geometry files.
- We made scripting enhancements, including several additional built-in functions:
- Random number generator: rand()
- Statistical functions: sum(), mean(), stddev(), min(), max(), pearson()
- User interface option to change input screens: switch()
- Extracting hits per element: rayhits()
- traceopt() function has additional options 'include_sunshape', 'optical_errors' (enable/disable)
- LK scripting engine can dynamically load externally developed and compiled extension modules
- Removed 'local' specifier in scripts this simplifies language and syntax and reduces chance of inadvertent errors.

- We updated the help system.

## Q: What features are not implemented yet?

**A: **We had anticipated that a finite-element option for surfaces would be implemented,
but that option has proved to be more challenging than time and current budget will
allow. Thus, this admittedly highly useful option will not be available until the
budget situation improves.

Another planned option is to compile a 64-bit version. This should both improve performance and allow for better usage of memory. Implementation of this option is not budget limited, but time limited, and it will be a priority for the near future.

## Q: Are there any known bugs?

**A: **We try hard to fix all the bugs we find. We appreciate the assistance that users have
provided in finding these bugs and reporting them to us. We are aware of one bug that
should be noted: when using a cubic spline file to describe a surface, if that file
contains a change in derivative (e.g., certain types of two-dimensional compund parabolic
concentrator designs), some rays will leak through the surface. We are currently working
on this problem and hope to remedy it in the near future.

## Q: Is there any contextual help for script functions?

**A: **Yes, when typing a script function within the scripting window, as you type the initial
left parenthesis, a pop-up will appear that shows the inputs along with a general
description of the function. An example for the function *elementstats* is shown below.

## Q: Is there a limit to the number of rays that SolTrace can trace?

**A:** There is no hard limit, but as a practical matter, a limit can be reached and is
a function of available memory, number of stages and elements within the geometry,
and the number of rays selected. The practical limit is usually sufficient for most
analyses to yield acceptable results. When the limit is reached, SolTrace generates
the following error message (Windows version; Mac message will be similar):

SolTrace will recover from this error; the user can then reduce the number of rays to achieve a successful trace. For example, the provided sample file for the NREL High-Flux Solar Furnace has three stages and a total of 27 elements. SolTrace fails to complete the trace at somewhere between 5M and 6M rays on a Windows XP machine with a dual-core processor and 4GB of RAM. This number of rays is more than sufficient for assessing all but the finest detail in the flux distribution at the target..

## Q: What surface contours are available for reflector panels?

**A:** A wide range of surface contour options are available in SolTrace. These include
both analytic and non-analytic surface descriptions. Analytic surfaces include flat,
spherical, parabolic, hyperbolic, elliptical, conical, and cylindrical surfaces. There
are also several non-analytic surface descriptions available, including a spline,
polynomial, Zernike polynomial, and data from NREL's VSHOT (Video Scanning Hartmann
Optical Test) characterization tool. In the future, data from finite-element analysis
codes may be added as an input option. Numerous aperture shapes can be used in conjunction
with these surfaces, including circular, hexagonal, triangular (regular or irregular),
rectangular, an irregular quadrilateral, annular, and a special single-axis curvature
section. This last option is used when the geometry calls specifically for a surface
with curvature in one direction only, e.g., a parabolic trough. For surfaces like
the spline and polynomial, the single-axis curvature section forces the curvature
to be in one direction only. For a spherical or parabolic surface, the code neglects
any user input that sets any dual-axis curvature parameters, warns the user when the
geometry is traced, and forces a modification to allow tracing. The Help section of
the code under Geometry provides a detailed set of instructions for the use of both
Aperture and Surface options and parameter descriptions. Further restrictions on some
combinations of options are also described in Help.

Share