The Radia software package was designed for solving physical and technical problems one encounters during the development of Insertion Devices for Synchrotron Light Sources. However, it can also be used in different branches of physics, where efficient solutions of 3D boundary problems of Magnetostatics are needed.
The Radia package is essentially a 3D magnetostatics computer code optimized for Undulators and Wigglers. In the Radia very special attention is paid to the accurate and fast computation of the magnetic field and the field integrals along a line.
Radia can solve a variety of problems with linear and nonlinear, isotropic and anisotropic magnetic materials (such as iron and permanent magnets, respectively) and, of course, with current-carrying elements of different shapes.
The code has been extensively benchmarked with respect to a commercial finite element code. All ESRF Insertion Devices built since 1992 have been designed using this code or its earlier versions. A large number of predictions made by Radia concerning the magnetic field and field integrals were verified on real insertion devices after manufacture. We are therefore convinced that by an efficient use of Radia one can design nearly any permanent magnet undulator or wiggler ab-initio, including the central field as well as the extremities.
The method used in Radia belongs to the category of boundary Integral Methods and differs strongly from the Finite Element Methods (FEM). Volume objects are created, material properties are applied to these objects. Each object can be subdivided into a number of smaller objects for which one tries to solve for the general problem in terms of the magnetization. The solution is performed by building a large matrix in memory which represents mutual interactions between the objects. We call this an Interaction Matrix. The final magnetization in each small object is obtained iteratively, by a sequence of multiplications of the Interaction Matrix by instant magnetizations vector, taking into account the material properties. We call this a Relaxation procedure. In this approach, one applies some kind of segmentation to the field-producing objects (typically iron) but, contrary to the FEM approach, one does not need to mesh the vacuum. This has a number of important consequences:
The core part of Radia is written in object-oriented C++. The application is interfaced to Mathematica via MathLink. Pre and post processing of the field data is done in the Mathematica Language. 1D and 2D field Plots are performed using the Graphics facilities built in Mathematica. Geometries can be exported into 3D Mathematica objects for display and rendering in the Mathematica Front-End.
Radia is currently available on PowerMac and Windows 95/NT platforms.