University of Colorado at Boulder
Object-Oriented Computational Accelerator Physics
John Cary, Svetlana Shasharina and David Bruhwiler, University of Colorado
This course will give an introduction to computational accelerator physics using modern, object-oriented methods. The course begins with a discussion of the concepts of classes, interfaces, encapsulation, inheritance, and polymorphism, and the use of C++ for implementation of these concepts. C and C++ syntax will be taught as needed. Problem sets will include the application of these ideas to linear algebra objects. Object-oriented methods will next be used within a framework for beam optics simulations. This framework contains a hierarchy of optics elements and methods for combining these elements into beamlines. This framework is usable from within Graphical User Interfaces. Students will learn how to extend this framework, developing plug-ins for new optics elements that are then immediately visible within the GUI. Time permitting, a third application, advanced accelerator simulation, will be studied. Here, object-oriented methods can be used to develop components from which a particle-in-cell simulation code can be obtained. Students will learn how to run this code and add diagnostics through hierarchy extension. Prerequisites: Accelerator Physics, C or Fortran languages.