Das Software-Paket VITESS
Geschichte und Nutzung
Seit 1999 wird das Programm VITESS zur Simulation von Neutronenstreuinstrumenten am HZB entwickelt. VITESS is short for Virtual Instrumentation Tool for the ESS. Zwar war die Planung der ESS (http://ess-scandinavia.eu) Motivation ein neues Programm zu entwickeln, das Programm ist aber darauf ausgelegt, alle Arten von Instrumenten an beliebigen Quellen zu simulieren. Die meisten Komponenten, die in Neutronenstreuinstrumenten heutzutage verwendet werden, können simuliert werden.
So ist VITESS an vielen Forschungsinstituten in der ganzen Welt zum Einsatz gekommen. Am HZB sind alle neu gebauten oder umgebauten Instrumente zumindest in Teilen mit VITESS simuliert worden. Benutzer können sich über vitess@helmholtz-berlin.de mit Fragen an das Entwickler-Team wenden.
Seine Entwicklung ist wie die der Konkurrenzprogramme McStas (http://www.mcstas.org) und Restrax (http://neutron.ujf.cas.cz/restrax) über viele Jahre von der Europäischen Kommission gefördert worden. Im Moment wird die Weiterentwicklung innerhalb des deutschen In-Kind-Beitrags zur ESS unterstützt. Ziel ist neben der Ergänzung und Verbesserung einiger Module die Visualisierung von Instrument und Neutronentrajektorien und eine vereinfachte Benutzung von numerischen Optimierungsprogrammen sowie eine vollständige Dokumentation.
Gleichzeitig werden viele Simulationen für Instrumente oder Teile der ESS mit VITESS durchgeführt, teilweise im Vergleich mit McStas und/oder Restrax-Simulationen.
Anwendungsbeispiel
Ein Beispiel für seine Anwendung ist die Simulation des HZB-Instruments EXED. Das komplette Instrument ist von Quelle bis Detektor simuliert worden, und für mehrere Bauteile konnte eine optimale Lösung gefunden werden, entweder mittels Vergleich von Simulationen (Extraktionssystem, Choppersystem, Coating, Knick) oder durch numerische Optimierung (konvergierender Guide).
Konzept
VITESS ist modular aufgebaut, das heißt die einzelnen Module sind voneinander völlig unabhängige ausführbare Programmkomponenten (z.B. „source“, „guide“, „chopper“, „polarizer“, „sample“, „focussing monochromator/analyser“, usw). Jedes Modul verarbeitet die Neutronentrajektorien, die vom vorhergehenden Modul weitergereicht wurden, abhängig von den vom Benutzer eingestellten Parametern. Zum Beispiel ist die Verlustrate der Neutronen in einem Leiterelement eine Funktion der geometrischen Parameter des Leiters und der Beschichtung der Leiteroberfläche.
Die Neutronendaten bestehen aus einer gegebenen Menge der Neutronentrajektorien, jede von ihnen wird durch insgesamt 12 Parameter beschrieben:
time, lambda, probability weight, position (x, y, z), direction (cos(alpha), cos(beta), cos(gamma)), Spin (S_x, S_y, S_z)
Diese Parameter werden für jede Trajektorie vom Stream eingelesen oder für die Ausgabe in den Stream geschrieben. Wenn Sie diesen und einige weitere Grundsätze von VITESS beachten, dann ist es möglich, nicht nur die vorhandenen Module zu nutzen, sondern das Programm um eigene Module zu erweitern, die Sie nach Ihren individuellen Bedürfnissen ausrichten. Eine Anleitung zur Konzeption und Einbindung eigener Module in das VITESS Framework finden Sie hier.