O-Matrix User Stories

Accelerator Modeling and Simulation with O-Matrix

An interactive GUI, flexible programmability, a simple and efficient method of linking to existing C/C++ code, and data graphing/plotting capabilities are required for accelerator modeling and simulation. Dr. Hiroshi Nishimura and colleagues at Lawrence Berkeley National Laboratory (LBNL), implemented TracyM which is built on top of O-Matrix to achieve these goals. The TracyM system uses O-Matrix to present numeric results, graphs, provide matrix calculations, and to enable programmability of their existing C++ class library, Goemon.

TracyM GUI
The TracyM User Interface in O-Matrix

The interactive, matrix-based scripting in O-Matrix makes it quick and easy for accelerator physicists to prototype tests and simulations. The following O-Matrix script calculates the ALS booster ring properties and plots the results.
O-Matrix script to calculate ALS booster ring properties

A key requirement of the system was the ability to link to existing, tested C++ functions. In the following O-Matrix script which calculates the dynamic aperture of the ALS storage ring, the function quickTurns() is a C++ function in the Goemon class library. All of the Goemon functions can be integrated into O-Matrix with a single DLL which provides a simple and efficient method of leveraging this library.
O-Matrix DLL calling
Calling a C++ function from O-Matrix

The O-Matrix ability to link end user created DLL files enables us to maintain compatibility with the code we already have, and enables accessibility to external hardware devices. This approach proved to be significantly easier than the Matlab MEX facilities.
- Hiroshi Nishimura, LBNL, ICAP'98 paper

The TracyM system includes several external GUI programs that communicate data and commands with O-Matrix through inter-process communication and Win32 shared memory. The following architecture diagram illustrates the two external program TableView and GraphView communicating with TracyM.
TracyM Architecture Diagram
TracyM Architecture Diagram

Another external tool is CommandView that manipulates a standard set of knobs of the virtual machine using a GUI. In this mode TracyM becomes a server for the CommandView panel and communicates with it through a Win32 pipe.

This user story was condensed from the article, Matlab-like Environment for Accelerator Modeling and Simulation, International Computational Accelerator Physics Conference 1998, (ICAP'98)

Company |  Products |  Showcase |  Support |  Ordering
Copyright© 1994-2009 Harmonic Software Inc. - All rights reserved.