Моделювання в ASTRA. Частина 2.

Наступним кроком після підготовки початкового розподілу буде провести частинки через усі електричні і магнітні поля. Для цього їх треба описати їх: задати геометрію, конфігурацію тощо. Тож давайте розберемо скрипт запуску.Приклад скрипту можна знайти на сайті програми і називається він 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 максимальне поле.

Є ще програми в комплекті з астрою для побудови полів, але вони відверто уйобищні. Коли я працював з нею, я писав скрипти в матлабі. Розшифровка ВСІХ розширень файлів є в мануалі.

На цьому все. Щасти!

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *