Our projects involve algorithm and code development for high-fidelity modeling, simulation and optimization of charged particle beams and systems based on them. We emphasize state-of-the art algorithms for force computation, time propagation, structure preservation and capabilities for handling large-scale systems employing high-performance computing resources efficiently.
Most of our codes are based on COSY Infinity, the general purpose, nonlinear dynamics code with an underlying arbitrary order differential algebraic (DA) engine. Any application developed in COSY can be retrofitted with a Java-based, custom GUI from within the code with only a few additional commands.
PHAD is a COSYScript written for COSY Infinity. PHAD is an efficient method for solving equations of motion of a large number of charged particles in beams interacting through Coulomb forces. PHAD combines the adaptive, multilevel fast multipole method with our Simo integrator via Strang splitting. Therefore, its main features include implementation of algorithms of optimal complexity for force computations, provable best efficiency for time propagation, combined with an attractive method to reduce the number of FMM calls while preserving symplecticity.
Currently, we offer an example of beamlets simulation for detailed observation of space charge dynamics in cold beams.
PHAD Example (ZIP) (file includes beamlets example with documentation.)
Fixed bug in initial relg scaling of z-coordinate passed to FMM
Added PHAD documentation
Uploaded publications using PHAD
The Poisson integral solver with curved surfaces (PISCS) is a package written in COSYScript for MSU COSY Infinity v10.1. PISCS is a 3D Poisson boundary value problem-solver accelerated by the fast multipole method (FMM). In this case, the Poisson BVP represents the electrostatic interactions within a charged particle distribution within specified boundaries. High accuracy solutions are feasible for realistic enclosures and boundary conditions.
Fixed bug in SVDCMP algorithm when inverting sparse matrices
One of the oldest problems to remain analytically unsolvable, except in specific cases or by practically useless series solutions, is the calculation of gravitational or electrostatic interactions between N bodies. Many numerical methods have been developed over the last century to address this problem. This is our take on the computational N-body problem.
The simulation code uses COSY Infinity. There are two variants that differ with respect to the numerical integrator used internally. The earlier version is a Picard iteration-based integrator, and the newer version implements a more sophisticated integrator, which we termed the Simo integrator. The basic N-body simulation code has a fixed time step and order. The Simo N-body simulation code is adaptive and has a variable order with optimized time step size and order. The MPI Simo N-body simulation code is a parallelized version of the Simo N-body simulation code that can be run using the MPI COSY.
Added application "Picard iteration-based variable-order integrator with dense output employing algorithmic differentiation."
Added application "An accurate and efficient numerical integrator for pair-wise interactions."
Uploaded documentation and examples.
Fixed bugs related to the treatment of relativistic cases.
Modified to account for the relativistic factor, γ.
Uploaded V1.0.
This is a reasonably well-optimized code for our differential algebraic multilevel fully adaptive 3D fast multipole method for the Laplace kernel of point particles in Cartesian basis. The data structures are coded in standard, portable C++ to allow dynamic memory management and bit-level operations, in addition to speed and easier parallelization. The expansions and translations are done in a compact COSYScript code to take advantage of the following:
More details and examples can be found in the documentation.
Example files (ZIP) (Instructions for examples may be found in the 3D FMM manual)
Minor bug fix in summary file
Minor bug fix
Efficiency improvements.
COMFY is a COSY Infinity plug-in written in COSYScript for v9.1 to extend its capabilities to include transverse space charge in beam dynamics. It allows for self-consistent space charge calculations, as well as space charge transfer map extractions using truncated Taylor expansions. The modes include transverse mean field estimation (fast, with low-medium accuracy) and discrete open N-body Poisson solver (slower, with high accuracy).
COMFY can calculate charged particle interactions through two different methods. The method of statistical moments (MoM) is used to calculate the space charge transfer map in the mean field sense. The transfer map is then used for particle advancement. The fast multipole method (2D single-layer-FMM) solves the N-body Poisson problem with open boundary conditions for particle tracking. A hybrid mode may also be used, where the moment method calculates the space charge map and the fast multipole method advances the particles.
You will need to install COSY first. You can run COMFY in parallel or serially. To run COMFY in parallel, you will need an MPI package such as OpenMPI or Intel MPI. To use COMFY, you will need the customized cosy.fox and comfy.fox files and the COMFYFILES folder included in the comfy.zip download. Please read the COMFY manual for more details on installation and use.
Fixes for efficient smoothing
Bug fixes
Bug fixes
This first order system of ordinary differential equations (ODEs) integrator is based on Picard iterations implemented with differential algebraic methods. This results in an efficient, highly accurate variable order integrator with a dense output. There are two independent parameters to optimize, order and time step. This makes it possible to choose optimal values that make the integrator the fastest possible for a given level of accuracy.
The implementation also uses COSY Infinity. The documentation explains how to adapt the supplied example to different systems of ODEs.
Picard Integrator manual (PDF)
Picard Integrator example data (ZIP)
Added application "Picard iteration-based variable-order integrator with dense output employing algorithmic differentiation."
Uploaded V1.0 with documentation/examples
This section includes reference material and resources that may be helpful in running the simulations included on this site and visualizing the resulting data.
The COSY user guide describes the process of setting up and running the COSY executable on the NIU compute cluster GAEA (much of the information will be applicable to other compute clusters).
This Mathematica notebook walks through a variety of plotting options (including advanced features) for visualizing data with Mathematica.