Free Electron Laser Pass Profile and Energy Generator

    The program uses a Green functions approach to numerically calculate the pass radiation profiles and the energy of the resulting radiation profile for a free electron laser (FEL)  in  the  linear  regime. The output of it ranges from postscript  files of the  n-th pass radiation profile (if you have GnuPlot) to files which contain all information on the energy of the pulse and the phase shifts.

Usage:

The program needs 2 files to run from the initial conditions:

These files can be generated by the program called generator. To use it one needs to provide a function which he needs to sample in C code and recompile the program. Some initial and most used functions are already there ( ex. Delta, Gaussian, Identity, etc. )

    usage: generator function_name sample_points
        (ex. generator gaussian 128)

The sampling rate of the electron beam has to be twice as much as the sampling rate for the radiation.  And sampling rates have to be 2^n points. For explanation please read the paper provided below. So an example might be:

    generator gaussian 128
    file to output to: optical.dat
    generator delta 256
    file to output to: electron.dat

After everything is setup you might want to set a variable GNUPLOT which tells you where GnuPlot is located ( ex. setenv GNUPLOT /usr/bin ).

The program felppeg allows both command line and manual input of simulation parameters.

    Usage: felppeg detuning colson_param Q_factor cavity_detuning pass_number

After the program is done the following files are output:
 

EXAMPLES OF OUTPUT:

 Figure 1  - Delta function electron beam for multiple passes
 Figure 2 - Delta function electron beam with cavity detuning at 0.04 which is maximum growth
 Figure 3 - Energy gain for different values of cavity detuning for the same Delta function beam
 Figure 4 - Energy gain for Gaussian like electron beams with different spreads.

PAPER:

 Computational Exploration of the Free Electron Laser

CODE:

FELPPEG Code ( C++)  - The code is not neat or easy to read since I haven't had time to put it into a release like form. It still lacks README files or any instructions. 



Questions or Comments:  Emil Moshkovich

Back to XCF Home Page