transvrs.zip contains:

readme.txt -- readme file
transvrs.exe -- executable
transvrs.f -- fortran90 source code
set_files.for-- fortran90 source code
ug_plots -- fortran90 source code
h60vg3.trin.txt-- example input
h60vg3.trout.txt-- example output
h60vg3.trmodest.txt-- example output
h60vg3.trnew.txt-- example output

Transvrs finds eigenfrequencies, loss factors, group velocities of modes in a periodic disk-loaded accelerating structure by field matching, for modes with higher azimuthal mode numbers (m>0). The contribution to the mth longitudinal wakefield of the ith mode is [(r_e/a)^m(r/a)^m*cos(m*fi)]* 2(k_loss)_i*cos(omega_i s/c)/ (1-vg_i/c), with r_e offset of leading particle, a beam pipe radius, r test particle offset, fi azimuthal angle of leading particle, k_loss loss factor, omega eigenfrequency, vg group velocity. The vg factor is often neglected. The transverse mth wake can be obtained from the longitudinal mth wake using the Panofsky-Wenzel theorem. See A. Chao's book.

For description of the math the program solves, see "Transverse Modes in Periodic Cylindrical Cavities," B. Zotter, and K. Bane, HEAC 1980, p. 581.

Transvrs can be compiled and run using Compaq Visual Fortran 6.5. A small part is written in Fortran 90, but most is written in earlier versions of Fortran. The 3 files that need to be compiled are: transvrs.f, set_files.for (sets up input/output file names), ug_plots.for (mostly dummy routines, that used to be used for plotting).

The way it is set up now, once a transvrs.exe file is produced, it is run by e.g. typing "transvrs.exe h60vg3". In this example the program looks for an input file with the name "h60vg3.trin.txt".

transvrs.exe--executable file; works under Windows XP.

Input file content:

line 1: comments

namelist variables:

ak--iris radius, in cm
bk--cavity radius, in cm
gk--gap, in cm
hk--period, in cm
m--azimuthal mode number (>0)

maxn--there are 2maxn+1 space harmonics in tube region
maxs--there are maxs+1 space harmonics in cavity region
[want (2maxn+1)/hk~ (maxs+1)/gp]

xksbeg, xksdel, ixks, nstep: initial frequency,
(omega/c)^2 in cm^-2, frequency step [delta (omega/c)^2
in cm^-2], number of steps, number of blocks of runs

b00, db0, nb0--only used when w_sync=F, to get omega-beta diagram:
beta0 [in units of 2pi, e.g. b00= 0.5 gives the pi mode],
delbeta [units of 2pi], number of steps

w_sync--synchronous mode?
w_solve--find loss factors, too?

output files:
fn.trout.txt--main output, showing search for modes

fn.trmodest.txt--summary of modes found, giving, (omega/c)^2
in cm^2, rkloss in V/pC, rkloss/(1-vg/c), 1/(1-vg/c), vg/c

fn.trnew.txt--determinant of system matrix with known
solutions removed; useful for finding missing pairs of modes

November 10, 2005.