pvtrace builds on over 3 years of research and development of Monte-Carlo simulation codes at Imperial College. It is the latest version of my luminescent concentrator simulation software and brings together some advanced concepts including:
- Constructive Solid Geometry
- Generalised 3D ray intersections (ray optics):
- ray-CSG object
- Arbitrary 3D object transformations:
- scaling and skewing
- Photon path visualiser
- Statistical collection of photonic properties:
- polarisation (to appear soon)
- Fresnel reflection and refraction
- Sampling from overlapping statistical distributions.
The complex solid geometry feature means that we are no limited to simulation of primitive shapes. Any shape that can be made using a union, difference or intersection operation can be made. In principle any shape can be simulated.
pvtrace is entirely written in Python. Using the numpy and scipy libraries. The philosophy here is to use a programming language that allows for rapid development rather than speed of execution. On a single core machine pvtrace only takes a few minutes to produce sensible results which for me is an acceptable trade-off considering the pleasure it is to write and debug in Python!