Наступним кроком після підготовки початкового розподілу буде провести частинки через усі електричні і магнітні поля. Для цього їх треба описати їх: задати геометрію, конфігурацію тощо. Тож давайте розберемо скрипт запуску.Приклад скрипту можна знайти на сайті програми і називається він Example.in. Там же можна знайти файли з полями.
&NEWRUN
Head=' Example of ASTRA users manual'
RUN=1
Distribution = 'Example.ini', Xoff=0.0, Yoff=0.0,
TRACK_ALL=T, Auto_phase=T
H_max=0.001, H_min=0.00
/
&OUTPUT
ZSTART=0.0, ZSTOP=1.5
Zemit=500, Zphase=1
RefS=T
EmitS=T, PhaseS=T
/
&CHARGE
LSPCH=F
Nrad=10, Cell_var=2.0, Nlong_in=10
min_grid=0.0
Max_Scale=0.05
/
&CAVITY
LEField=T,
File_Efield(1)='3_cell_L-Band.dat', C_pos(1)=0.3
Nue(1)=1.3, MaxE(1)=40.0, Phi(1)=0.0,
/
&SOLENOID
LBField=T,
File_Bfield(1)='Solenoid.dat', S_pos(1)=1.2
MaxB(1)=0.35, S_smooth(1)=10
/
Тут я не буду описувати кожен аргумент, а лише пройдусь по основних. Тут вже набагато більше полів імен і описують вони або різні частини прискорювача, або різні конфігурації роботи програми. Наприклад APERTURE, CAVITY, SOLENOID, QUADRUPOLE, DIPOLE -- це опис відповідних частин прискорювача, а от NEWRUN, OUTPUT, CHARGE -- до конфігурації обрахунків.
Отож, по черзі про кожне поле.
NEWRUN
RUN=1 -- задаєте ран. Досить зручно, якщо запускаєте програму у іншому скрипті. Змінюєте наприклад його і ще якийсь параметр, залежність від якого досліджуєте. І ASTRA записує у різні файли (в кінці назви файлу -- номер рану). Distribution = 'Example.ini' -- згенерований розподіл; Xoff=0.0, Yoff=0.0, -- задаєте положення референсної частинки. Часто-густо початок прискорювача відраховується від виходу gun-a. Тоді катод получається зміщений в мінуса. Не проблема Zoff=-0.1. Про одиниці вимірювання можна почитати у тому ж мануалі. Auto_phase=T -- автопідбір фази, аби отримати найбільше підсилення по енергії. Варто вимикати, якщо ви вручну намагаєтесь отримати цю залежність
OUTPUT
ZSTART=0.0, ZSTOP=1.5 -- звідки починається і де закінчується трекінг частинок. Наприклад, якщо у вас прискорювач на 10м, а ви тестуєте gun, то резону вам моделювати весь прискорювач немає. Zphase=1 - скільки "зрізів" буде на проміжку (ZSTART, ZSTOP). Ви можете наприклад поставити 15 (2 - див мануал) і тоді кожні 10 см вам буде зберігатись файл з усіма частинками (їх коодринатами, імпульсами, часом ...)
CHARGE
LSPCH=F -- включає, виключає space charge.
CAVITY
Це може бути що завгодно: DC, SWS, TWS... Як кожну з них описувати є в інших прикладах. Наприклад тут у нас SWS (Standing wave structure). Зазвичай використовується як bancher і попередній прискорювач до TWS. Отож,
LEField=T,-- вкл/викл
File_Efield(1)='3_cell_L-Band.dat', -- файл з полем
C_pos(1)=0.3 -- позиція кавіті відносно тої, що у файлі. Тобто просто зсув на це число.
Nue(1)=1.3, --частота RF cavity у ГГц. Тут треба бути обережним, бо зазвичай це число не ціле, хоча і пишуть його цілим. Наприклад, на LEP здається лінак був на 2.99855 ГГц, а пишуть кругом 3 ГГц. Я так розумію, що простіше виточити кавіті довжиною рівно 10см, ніж 9.999см. В американців інчі, тому в них ця частота теж трохи відрізняются. MaxE(1)=40.0 -- максимальне поле в кавіті, Phi(1)=0.0 -- фаза кавіті. Якщо у вас в цьому просторі імен кілька кавіті, то замість (1) треба писати її номер, наприклад (2) для другої.
SOLENOID
File_Bfield(1)='Solenoid.dat',--файл з полем. Я поля розраховував за формулкою, котру знайшов в інтернеті. Якщо знайдете якусь нормальну програмку, напишіть в коментарях. CST не пропонувати, бо це СЛОЖНА. S_pos(1)=1.2 -- позиція і MaxB(1)=0.35 максимальне поле.
Є ще програми в комплекті з астрою для побудови полів, але вони відверто уйобищні. Коли я працював з нею, я писав скрипти в матлабі. Розшифровка ВСІХ розширень файлів є в мануалі.
На цьому все. Щасти!