The Simulation Package VITESS
History and Applications
The program VITESS (Virtual Instrumentation Tool for the ESS), which simulates neutron scattering instruments has been developed at HZB since 1999. Although the development of the program was originally motivated by the ESS planning phase (http://ess-scandinavia.eu), all kinds of instruments and most instrument components at any source can be simulated by VITESS. Thus the program is used world wide at many research institutes. At HZB all newly built instruments have at least partially been simulated with VITESS. Users may contact the team of developers at email@example.com.
The development of VITESS and competing programs McStas (http://www.mcstas.org) and Restrax (http://neutron.ujf.cas.cz/restrax) have been supported by the European Commission for many years. At the moment further development of VITESS is funded in the framework of the German in-kind contribution to ESS. It is the aim of this project to complete and improve some modules, to visualise instruments and neutron trajectories, to simplify the use of numerical optimisation programs and to prepare a complete documentation. Simultaneously, many instruments and components of the ESS are being simulated, partially in comparison with McStas and/or Restrax simulations.
In the framework of the German In-kind contribution to the ESS design update phase VITESS has been extensively used to design and optimize novel ESS instrument concepts, including a horizontal reflectometer concept, an imaging instrument and a multi-purpose extreme environment instrument. In addition, several innovative neutron optical concepts have been developed and investigated.
The simulation of the instrument EXED is a good example of the application of VITESS. The entire instrument from the source to the detector was simulated and an optimal solution was found for a number of components, either by comparison of different simulations (extraction system, chopper system, coating, kink) or by numerical optimisation (converging guide.)
VITESS has thus a modular structure consisting of independently executable program components (e.g. source, guide, chopper, polarizer, sample, focussing monochromator/analyser, etc). Each module processes the neutron beam input and the output neutron beam is a function of the parameters chosen for that respective module. For example, the number of neutrons that are lost in a guide segment depends on its geometry parameters and the coating of its surfaces.
The neutron beam input and output represent an optionally large number of neutron trajectories each of which is described by 12 coordinates:
time, lambda, probability weight, position (x, y, z), direction (cos(alpha), cos(beta), cos(gamma)) and Spin (S_x, S_y, S_z)
These 12 parameters per neutron trajectory are consecutively written to or read from the stream in a double precision binary form. By sticking to some conventions you can not only use the provided executables, but also write and add your own ones in order to study the characteristics of the neutrons anywhere in your instrument according to your needs. To understand how your modules fit to the framework you may read the report on VITESS Software Technique (PDF).