Zero radiation field amplitude (PRAD0=0) can cause on some platforms an illdefine radiation phase. This case is now catched and a phase of zero degree is assigned.
Using the BETAZ option in BEAMFILE was bugged, fixed. Some back and forth definition of IMAGL while importing an external distribution could altered the value significantly in time-dependent runs, fixed. The internal generation to put two undulator modules into a FODO cell if the module length is shorter than half the FODO cell length has been corrected. The harmonic conversion had a bug which would exceed an array boundary, fixed.
A minor bug that in the upconversion of an imported DISTFILE to a higher harmonic the program loops from 0 to NPART. Most compiler are giving a warning or ignore it. Fixed.
The quiet loading of the electron phase space distribution can cause a very small correlation between the position and the momentum of the macro particles. Although hardly noticible with strong focusing, it prevents a perfect matching to the natural focusing of an undulor.
If a template file is created the file has the element OUTPUT='template.in', thus overwriting itself when running with Genesis. Fixed.
The new feature of reading in a radiation description file had some conflicts, so that any beamfile is not recognized anymore. Fixed
Not exactly a bug, but simulations of long wavelength FELs (e.g. above 300 microns) have shown that the space charge can blow up the particle distribution for too large integration steps. Sometimes it results in a complete loss of the particle energy and causing NaN results in the particle dynamics. It is advised to reduced the integration step length down to 0.1 per period or even below.
Two minor bugs have been remove, which causes problems with certain compilers.
If importing an external distribution, the code calculates the rms values of the distribution. If the number of macro particles is small for certain slices, it can cause a floating point exception (NaN) by taking the square root of a negative number. Fixed by enforcing double precission for the computation of the rms values.
Notification of particle losses results to asign a 4 digit number to a 3 character string. Fixed by increasing the string size.
Generating a Gaussian distribution for undulator field error didn/t work, because essential variables for the subroutinge GASRAN in math.f weren't save to the heap/stack. Fixed
In case of 100% partile losses the calculation of beam parameters cause a 'division by zero' error. To make the output files readable, this exception is catched and the corresponding beam parameters are set to zero.
Zero size beams caused in the space charge routine 'esource.f' a division by zero error due to its ill-defined grid size. Fixed (for this case grid size is set to the same size as the radiation grid size).
The columns of XBEAM and YBEAM in a BEAMFILE were ignored and could be misidentified as RXBEAM and RYBEAM, respectively. Fixed
The parameter FFSPEC was always set to zero. Fixed
The scan feature for BEAMFILE, BEAMOPT and BEAMGAM were incompatible with the readbeam file distribution, rejecting the external distribution. Fixed
Reading external distribution might cause a segmentation fault while opening the file. the use of a temporary file ID resolved the problem.
The treatment of quadrupole misalignment has been improved. Instead off an applied kick it is calculated self-consistently in the symplectic integrator (propagation by matrix multiplication). The quadrupole offsets are now global parameters, which can be access with the magnet common block.
The length of an input line for reading the BEAMFILE is limited 255 character, but they can easily be longer, using the elegant2genesis tool. The limit has been extended to 511 characters.