From b94c99d1c4802377577287fe647dd3a060f23285 Mon Sep 17 00:00:00 2001 From: fedorovv Date: Mon, 5 Feb 2024 07:14:10 +0700 Subject: [PATCH] Add refs for appendices --- nsu.cls | 5 +- src/texts/envelope_equations.tex | 2 +- src/texts/kenv_listing.tex | 74 +++++++-------- src/texts/kenv_theory.tex | 150 ++++++++++++++++--------------- src/texts/redpic_features.tex | 5 +- src/texts/runge_kutta.tex | 2 +- 6 files changed, 117 insertions(+), 121 deletions(-) diff --git a/nsu.cls b/nsu.cls index d8aa85b..e769739 100644 --- a/nsu.cls +++ b/nsu.cls @@ -175,7 +175,10 @@ \renewcommand{\thetable}{\Asbuk{appendix}.\arabic{table}} \setcounter{figure}{0} \renewcommand{\thefigure}{\Asbuk{appendix}.\arabic{figure}} - + \setcounter{equation}{0} + \renewcommand{\theequation}{\Asbuk{appendix}.\arabic{equation}} + \setcounter{lstlisting}{0} + \renewcommand{\thelstlisting}{\Asbuk{appendix}.\arabic{lstlisting}} }%заголовок Приложение с добавлением в оглавление без номера, с увеличением счётчика diff --git a/src/texts/envelope_equations.tex b/src/texts/envelope_equations.tex index 41252f1..052b6f6 100644 --- a/src/texts/envelope_equations.tex +++ b/src/texts/envelope_equations.tex @@ -1,7 +1,7 @@ \section{Уравнения огибающей для пучка}\label{sec:envelope_equation} В ускорительных комплексах используются соленоидальные и квадрупольные линзы, при этом преимущественно соленоидальные линзы расположены вместе с ускоряющими модулями, а квадрупольные линзы только в каналах разводки. Рассмотрим два случая: уравнение огибающей для аксиально-симметричного пучка в канале с соленоидальными линзами и уравнения огибающей для эллиптического пучка с фокусировкой квадрупольными линзами. -Подробный вывод уравнений Капчинского-Владимирского приведен в приложении~А. +Подробный вывод уравнений Капчинского-Владимирского приведен в приложении~\ref{eq:first_appendix_kenv}-\ref{eq:last_appendix_kenv}. \subsection{Уравнение огибающей для аксиально симметричного пучка в канале с соленоидальными линзами}\label{subsec:envelope_equation_solenoid} Движение аксиально-симметричного пучка в транспортном канале при наличии соленоидов может быть описано следующим уравнением~\ref{eq:envelope_axial}~\cite{Louson}: diff --git a/src/texts/kenv_listing.tex b/src/texts/kenv_listing.tex index 9292d57..88cee84 100644 --- a/src/texts/kenv_listing.tex +++ b/src/texts/kenv_listing.tex @@ -4,7 +4,7 @@ \end{center} Сначала подключим необходимые библиотеки и настроим параметры графики -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Подключение необходимых библиотек}, label={lst:first_appendix_kenv}] import numpy as np import holoviews as hv hv.extension('matplotlib') @@ -22,7 +22,7 @@ \[ f(x) = \frac{1}{L}\frac{1}{1+\exp(\frac{2}{rt}(2*|x|-L))}, rt < \frac{L}{2} \] -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Настройка параметров изображения}] dx = 0.001 x_min = -1 x_max = 1 @@ -33,7 +33,7 @@ \end{lstlisting} Соленоид 0.25 м. -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля соленоида}] L = 0.25 rt = 0.05 f_sol = 1/(1+np.exp(2/rt*(2*abs(x)-L))) @@ -42,7 +42,7 @@ \end{lstlisting} Ускоряющий зазор 0.25 м. -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля ускоряющего зазора}] L = 0.25 rt = 0.05 f_sol = 1/(1+np.exp(2/rt*(2*abs(x)-L))) @@ -51,7 +51,7 @@ \end{lstlisting} Квадруполи 0.1, 0.2, 0.4 м. -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профилей поля квадруполей}] L = 0.1 rt = 0.05 f_quad_0_10 = 1/(1+np.exp(2/rt*(2*abs(x)-L))) @@ -71,7 +71,7 @@ \end{lstlisting} Поворотные магниты 0.5 м -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профилей поля поворотных магнитов}] L = 0.5 rt = 0.05 f_bend_0_50 = 1/(1+np.exp(2/rt*(2*abs(x)-L))) @@ -81,7 +81,7 @@ \end{lstlisting} Настроим область и шаг счета -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Настройка параметров счета}] dz = 0.001 # m z_min = 0.707 z_max = 10.707 @@ -90,7 +90,7 @@ Определим элемент ускорителя (напр. соленоид, или ускоряющий зазор). Ускоритель будем представлять в виде последовательности таких элементов. -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Определение класса элемента ускорителя}] class Element: def __init__(self, z0, MaxField, filename, name): self.z0 = z0 @@ -100,7 +100,7 @@ \end{lstlisting} Фокусирующие соленоиды: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Список соленоидов}] Bz_beamline = {} for z0, B0, filename, name in [ # m T Unique name @@ -126,7 +126,7 @@ \end{lstlisting} Квадруполи: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Список квадруполей}] Gz_beamline = {} for z0, G0, filename, name in [ # m T/m Unique name @@ -143,7 +143,7 @@ \end{lstlisting} Диполи: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Список поворотных магнитов}] Kz_beamline = {} ### Curvature for z0, K0, filename, name in [ # m 1/m Unique name @@ -151,9 +151,7 @@ [ 120.000, 0.78, 'Bend_0_50.txt', 'Bend. 2'], ]: Kz_beamline[name] = Element(z0, K0, filename, name) -\end{lstlisting} -\begin{lstlisting}[language=python] Nz_beamline = {} ### The indicator of the decline of the magnetic field for z0, N0, filename, name in [ # m Unique name @@ -164,7 +162,7 @@ \end{lstlisting} Ускоряющие элементы: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Список ускоряющих зазоров}] Ez_beamline = {} for z0, E0, filename, name in [ # m MV/m Unique name @@ -182,10 +180,10 @@ Ez_beamline[name] = Element(z0, E0, filename, name) \end{lstlisting} -Считывание профилей фокусирующего и ускоряющего поля +Считывание профилей фокусирующего и ускоряющего поля. Сперва мы просто считываем поля из файлов и сшиваем их в один массив: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Функция считывания профилей поля}] from scipy import interpolate FieldFiles = {} # buffer for field files @@ -207,22 +205,22 @@ return F \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Считывание профилей фокусирующего поля}] Bz = read_field(Bz_beamline, z) \end{lstlisting} -Для интегрирования уравнения на огибающую необходимо сконвертировать массив Bz в функцию Bz(z) -\begin{lstlisting}[language=python] +Для интегрирования уравнения на огибающую необходимо сконвертировать массив $B_z$ в функцию $B_z(z)$ +\begin{lstlisting}[language=python, caption={Конвертация массива $B_z$ в функцию $B_z(z)$}] Bz = interpolate.interp1d(z, Bz, fill_value=(0, 0), bounds_error=False) \end{lstlisting} Теперь Bz уже функция, которая быстро может вывести поле в любых точках вдоль ускорителя. -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Расчет значения поля в заданной точке}] Bz(2.11111) \end{lstlisting} Построим поле $Bz(z)$ -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля соленоидов}] dim_z = hv.Dimension('z', unit='m', range=(0,z_max)) dim_Bz = hv.Dimension('Bz', unit='T', label='$B_z$') @@ -231,7 +229,7 @@ \end{lstlisting} Аналогично для квадрупольных полей: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля квадруполей}] Gz = read_field(Gz_beamline, z) Gz = interpolate.interp1d(z, Gz, fill_value=(0, 0), bounds_error=False) dim_Gz = hv.Dimension('Gz', unit='T/m', label='$G_z$') @@ -240,15 +238,13 @@ \end{lstlisting} Аналогично для диполей: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля диполей}] Kz = read_field(Kz_beamline, z) Kz = interpolate.interp1d(z, Kz, fill_value=(0, 0), bounds_error=False) dim_Kz = hv.Dimension('Kz', unit='1/m', label='$K_z$') z_Kz = hv.Area((z,Kz(z)), kdims=dim_z, vdims=dim_Kz) z_Kz -\end{lstlisting} -\begin{lstlisting}[language=python] Nz = read_field(Nz_beamline, z) Nz = interpolate.interp1d(z, Nz, fill_value=(0, 0), bounds_error=False) dim_Nz = hv.Dimension('Nz', label='$N_z$') @@ -257,7 +253,7 @@ \end{lstlisting} Аналогично для ускоряющего электрического поля: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение профиля поля ускоряющих зазоров}] Ez = -1*read_field(Ez_beamline, z) Ez = interpolate.interp1d(z, Ez, fill_value=(0, 0), bounds_error=False) dim_Ez = hv.Dimension('Ez', unit='MV/m', label=r'$-E_z$') @@ -273,7 +269,7 @@ \frac{d\gamma}{dz} \approx \frac{eE_z}{mc^2}, \] Тогда достаточно один раз проинтегрировать функцию $E_z(z)$: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Задание начальных параметров пучка}] mc = 0.511 # MeV/c #p_z = 2.459 # MeV/c E_0 = 2.000 # MeV @@ -281,7 +277,7 @@ #gamma_0 = p_z/mc \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Расчет продольной динамики пучка}] from scipy import integrate gamma = gamma_0 + integrate.cumtrapz(-Ez(z)/mc, z) dim_gamma = hv.Dimension('gamma', label=r'$\gamma$', range=(0,None)) @@ -290,7 +286,7 @@ \end{lstlisting} Для дальнейшего использования в решении уравнения на огибающую преобразуем массив gamma в функцию: -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Преобразование массива в функцию}] gamma = interpolate.interp1d(z[1:], gamma, fill_value=(gamma[0], gamma[-1]), bounds_error=False) hv.Curve((z,gamma(z)), kdims=dim_z, vdims=dim_gamma) \end{lstlisting} @@ -326,7 +322,7 @@ \), теперь можем составить дифференциальное уравнение \(X' = F(X).\) Зададим начальные условия и константы -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Начальные условия и константы}] c = 299792458 # (m/s) dpp = 0.0 I = 2000.000 # A @@ -336,7 +332,7 @@ dadz, dbdz = 0.0e-3, 0.0e-3 # dr_rms/dz beam \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Уравнения на характеристики Капчинского-Владимирского}] from scipy.integrate import solve_ivp from scipy.misc import derivative @@ -374,7 +370,7 @@ return [dxdz, dsigma_xdz, dydz, dsigma_ydz] \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Решение уравнений Капчинского-Владимирского}] def find_sigma_x(z): X0 = np.array([dadz, a, dbdz, b]) @@ -382,9 +378,7 @@ sigma_x = sol.y[1, :] return sigma_x # m -\end{lstlisting} -\begin{lstlisting}[language=python] def find_sigma_y(z): X0 = np.array([dadz, a, dbdz, b]) @@ -394,26 +388,20 @@ return sigma_y # m \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Построение огибающей пучка}] sigma_x = find_sigma_x(z) sigma_y = find_sigma_y(z) -\end{lstlisting} -\begin{lstlisting}[language=python] dim_sig_x = hv.Dimension('x', label="$2sigma$", unit='mm', range=(0,100)) dim_sig_y = hv.Dimension('y', label="$2sigma$", unit='mm', range=(0,100)) -\end{lstlisting} -\begin{lstlisting}[language=python] sigma_x_img = hv.Area((z,sigma_x*1e3), label = '2sigma_x', kdims=[dim_z], vdims=[dim_sig_x], group='Beam_x') sigma_y_img = hv.Area((z,sigma_y*1e3), label = '2sigma_y', kdims=[dim_z], vdims=[dim_sig_y], group='Beam_y') -\end{lstlisting} -\begin{lstlisting}[language=python] sigma_x_img*sigma_y_img \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Настройка динамического изображения огибающей}] dim_Sol1_B = hv.Dimension( 'Sol1_B', unit='T', label='Sol. 1 B', range=(0,1.0), default=Bz_beamline['Sol. 1'].MaxField) dim_Sol2_B = hv.Dimension( @@ -456,7 +444,7 @@ return sigma_x_img*sigma_y_img \end{lstlisting} -\begin{lstlisting}[language=python] +\begin{lstlisting}[language=python, caption={Вывод динамического изображения огибающей}, label={lst:last_appendix_kenv}] dmap = hv.DynamicMap(sigma_plot, kdims=[dim_I, dim_Sol1_B, dim_Sol2_B, dim_Sol3_B, dim_Sol4_B]) dmap.redim.range() diff --git a/src/texts/kenv_theory.tex b/src/texts/kenv_theory.tex index ce36e4b..e06588c 100644 --- a/src/texts/kenv_theory.tex +++ b/src/texts/kenv_theory.tex @@ -8,71 +8,72 @@ Объемная плотность тока пучка \(\jmath = \rho\upsilon\), где \(\rho\) - объемная плотность заряда, \(\upsilon\) - скорость пучка. Запишем дифференциальные уравнения Максвелла: -\begin{gather*} +\begin{equation} + \label{eq:first_appendix_kenv} \begin{cases} \nabla \vec{D}= 4\pi\rho,\\ \nabla\times \vec{H} =\frac{4\pi\vec{\jmath}}{c},\\ \end{cases} -\end{gather*} где \(\vec{D}\) - индукция электрического поля, \(\vec{H}\)— +\end{equation} где \(\vec{D}\) - индукция электрического поля, \(\vec{H}\)— напряженность магнитного поля, \(с\)— скорость света. Используем теорему Стокса об интегрировании дифференциальных форм, чтобы получить уравнения Максвелла в интегральной форме: -\begin{gather*} +\begin{equation} \begin{cases} \oint\limits_{\eth V} \vec{D}\vec{dS} = 4\pi\int\limits_V\rho{dV},\\ \oint\limits_{\eth S} \vec{H}\vec{dl} = \frac{4\pi}{c}\int\limits_S\vec{\jmath}\vec{dS}.\\ \end{cases} -\end{gather*} +\end{equation} Найдем \(D_r\) для цилиндрического пучка радиуса \(a\) с постоянной плотностью\(\rho_0\): -\begin{gather*} +\begin{equation} \begin{cases} D_r = \frac{4\pi}{r}\int\limits^r_0\rho(\xi)\xi d\xi = \displaystyle 2\pi\rho_0 r, r < a,\\ D_r = \frac{4\pi}{r}\int\limits^r_0\rho(\xi)\xi d\xi = \displaystyle \frac{2\pi\rho_0 a^2}{r}, r > a.\\ \end{cases} -\end{gather*} +\end{equation} Учитывая, что в вакууме \(D = E\), \(H = B\), \(E\) - напряженность электрического поля, \(B\)— индукция магнитного поля, и в плоском пространстве в декартовой системе координат \(H_\alpha = \beta D_r\), где \(\displaystyle\beta = \frac{\upsilon}{c}\), радиальная компонента -силы \(F_r\) из силы Лоренца: \[ +силы \(F_r\) из силы Лоренца: \begin{equation} F_r = eE_r - \frac{e\upsilon_z B_\alpha}{c} = eE_r(1-\displaystyle \frac{\upsilon^2}{c^2}) = \displaystyle \frac{eE_r}{\gamma^2}. -\]Полезно выразить поле через ток \[ +\end{equation}Полезно выразить поле через ток \begin{equation} I = \rho_0\upsilon\pi a^2, -\]тогда: -\begin{gather*} +\end{equation}тогда: +\begin{equation} \begin{cases} E_r = \displaystyle \frac{2 I r}{a^2\upsilon}, r < a,\\ E_r = \displaystyle \frac{2 I}{r\upsilon}, r > a.\\ \end{cases} -\end{gather*} +\end{equation} % \hypertarget{ux443ux440ux430ux432ux43dux435ux43dux438ux44f-ux434ux432ux438ux436ux435ux43dux438ux44f}{% %\subsection{Уравнения %движения}\label{ux443ux440ux430ux432ux43dux435ux43dux438ux44f-ux434ux432ux438ux436ux435ux43dux438ux44f}} Второй закон Ньютона \(\dot p_r = F_r\), используем параксиальное -приближение и считаем \(\gamma = const\): \[ +приближение и считаем \(\gamma = const\): \begin{equation} \gamma m \ddot r = \displaystyle \frac{eE_r}{\gamma^2} = \displaystyle \frac{2 I e}{\gamma^2 a^2 \upsilon} r, -\] получилось линейное уравнение, но так как все частицы движутся нужно +\end{equation} получилось линейное уравнение, но так как все частицы движутся нужно учесть, что \(a = a(t)\). Решение линейного уравнения можно представить как линейное преобразование фазовой плоскости. Так как отрезок на фазовой плоскости при невырожденном линейном преобразовании переходит в отрезок, то его можно охарактеризовать одной точкой. Следовательно, выберем крайнюю точку \(r = a\), которая будет характеризовать крайнюю -траекторию: \[ +траекторию: \begin{equation} \gamma m \ddot r = \displaystyle \frac{2 I e}{\gamma^2 a \upsilon}. -\] Перейдем к дифференцированию по \(z\), учтем, что -\(\displaystyle dt = \frac{dz}{v}\), тогда: \[ +\end{equation} Перейдем к дифференцированию по \(z\), учтем, что +\(\displaystyle dt = \frac{dz}{v}\), тогда: \begin{equation} a'' = \displaystyle \frac{e}{a}\frac{2I}{m\gamma^3\upsilon^3}. -\] Введем характерный альфвеновский ток -\(I_a = \displaystyle \frac{mc^3}{e} \approx\) 17 kA, следовательно: \[ +\end{equation} Введем характерный альфвеновский ток +\(I_a = \displaystyle \frac{mc^3}{e} \approx\) 17 kA, следовательно: \begin{equation} a'' = \displaystyle \frac{2I}{I_a (\beta\gamma)^3} \frac{1}{a}. -\] Учтем внешнюю фокусировку, предполагая суперпозицию полей (верно не -всегда, например, в нелинейных средах это не выполняется), получим: \[ +\end{equation} Учтем внешнюю фокусировку, предполагая суперпозицию полей (верно не +всегда, например, в нелинейных средах это не выполняется), получим: \begin{equation} a'' + k(z)a - \displaystyle \frac{2I}{I_a (\beta\gamma)^3} \frac{1}{a} = 0, -\] что напоминает уравнение огибающей: -\[ w'' + kw - \displaystyle \frac{1}{w^3} = 0 ,\] где \( w +\end{equation} что напоминает уравнение огибающей: +\begin{equation} w'' + kw - \displaystyle \frac{1}{w^3} = 0 ,\end{equation} где \( w =\displaystyle \sqrt \beta .\) % \hypertarget{ux443ux440ux430ux432ux43dux435ux43dux438ux44f-ux43eux433ux438ux431ux430ux44eux449ux435ux439-ux434ux43bux44f-ux44dux43bux43bux438ux43fux442ux438ux447ux435ux441ux43aux43eux433ux43e-ux43fux443ux447ux43aux430-ux441-ux440ux430ux441ux43fux440ux435ux434ux435ux43bux435ux43dux438ux435ux43c-ux43aux430ux43fux447ux438ux43dux441ux43aux43eux433ux43e-ux432ux43bux430ux434ux438ux43cux438ux440ux441ux43aux43eux433ux43e-ux441-ux432ux43dux435ux448ux43dux435ux439-ux444ux43eux43aux443ux441ux438ux440ux43eux432ux43aux43eux439-ux43bux438ux43dux435ux439ux43dux44bux43cux438-ux43fux43eux43bux44fux43cux438}{% @@ -81,36 +82,36 @@ %линейными %полями}\label{ux443ux440ux430ux432ux43dux435ux43dux438ux44f-ux43eux433ux438ux431ux430ux44eux449ux435ux439-ux434ux43bux44f-ux44dux43bux43bux438ux43fux442ux438ux447ux435ux441ux43aux43eux433ux43e-ux43fux443ux447ux43aux430-ux441-ux440ux430ux441ux43fux440ux435ux434ux435ux43bux435ux43dux438ux435ux43c-ux43aux430ux43fux447ux438ux43dux441ux43aux43eux433ux43e-ux432ux43bux430ux434ux438ux43cux438ux440ux441ux43aux43eux433ux43e-ux441-ux432ux43dux435ux448ux43dux435ux439-ux444ux43eux43aux443ux441ux438ux440ux43eux432ux43aux43eux439-ux43bux438ux43dux435ux439ux43dux44bux43cux438-ux43fux43eux43bux44fux43cux438}} - Распределение Капчинского-Владимирского: \[ + Распределение Капчинского-Владимирского: \begin{equation} f = A\delta(1 - \displaystyle\frac{\beta_x x'^2 + 2\alpha_x x x' + \gamma_x x^2}{\epsilon_x} - \displaystyle\frac{\beta_y y'^2 + 2\alpha_y y y' + \gamma_y y^2}{\epsilon_y} ), -\] где \(А\) - инвариант Куранта-Снайдера. Полуоси эллипса: \[ +\end{equation} где \(А\) - инвариант Куранта-Снайдера. Полуоси эллипса: \begin{equation} a = \sqrt{\epsilon_x \beta_x}, b = \sqrt{\epsilon_y \beta_y}. -\] Поле получается линейно внутри заряженного эллиптического цилиндра: -\[ +\end{equation} Поле получается линейно внутри заряженного эллиптического цилиндра: +\begin{equation} E_x = \displaystyle \frac{4I}{\upsilon}\frac{x}{a(a+b)}, -\] \[ +\end{equation} \begin{equation} E_y = \displaystyle \frac{4I}{\upsilon}\frac{y}{b(a+b)}. -\] Проверим, что \(\nabla \vec{E} = 4\pi\rho:\) \[ +\end{equation} Проверим, что \(\nabla \vec{E} = 4\pi\rho:\) \begin{equation} \displaystyle I = \rho \upsilon \pi ab, -\] \[ +\end{equation} \begin{equation} \nabla \vec{E} = \displaystyle \frac{4I(a+b)}{\pi(a+b)ab} = \displaystyle \frac{4I}{\pi ab} = 4\pi\rho. -\] Так как поля линейные, они добавятся к полям фокусирующей линзы. +\end{equation} Так как поля линейные, они добавятся к полям фокусирующей линзы. Подставим в уравнение огибающей -\(\displaystyle a = \sqrt \epsilon_x w_x, b = \sqrt \epsilon_y w_y:\) \[ +\(\displaystyle a = \sqrt \epsilon_x w_x, b = \sqrt \epsilon_y w_y:\) \begin{equation} a'' + k_{xt} a - \frac{\epsilon_x^2}{a^3} = 0, -\] где \(k_{xt} = k_x + k_{xsc}\) - полная жесткость, \(k_x\) - +\end{equation} где \(k_{xt} = k_x + k_{xsc}\) - полная жесткость, \(k_x\) - жесткость линзы, а \(\displaystyle k_{xsc} = \frac{4I}{I_a (\beta\gamma)^3}\frac{1}{a(a+b)}.\) В итоге получаем систему уравнений, связанных через пространственный заряд: -\begin{equation*} +\begin{equation} \begin{cases} \displaystyle a'' + k_xa - \frac{4I}{I_a (\beta\gamma)^3}\frac{1}{(a+b)} - \frac{\epsilon_x^2}{a^3} = 0 , \\ \displaystyle b'' + k_yb - \frac{4I}{I_a (\beta\gamma)^3}\frac{1}{(a+b)} - \frac{\epsilon_y^2}{b^3} = 0. \end{cases} -\end{equation*} +\end{equation} % \hypertarget{ux43aux43eux43bux438ux447ux435ux441ux442ux432ux435ux43dux43dux44bux439-ux43aux440ux438ux442ux435ux440ux438ux439-ux43fux440ux438ux43cux435ux43dux438ux43cux43eux441ux442ux438-ux43fux440ux438ux431ux43bux438ux436ux435ux43dux438ux44f-ux43bux430ux43cux438ux43dux430ux440ux43dux43eux441ux442ux438-ux442ux435ux447ux435ux43dux438ux44f}{% %\subsection{Количественный критерий применимости приближения @@ -123,9 +124,9 @@ Когда ток \(I\) малый - слабое отталкивание, если ток \(I\) большой - сильное отталкивание, следовательно, эммитанс можно откинуть и считать течение ламинарным. Очевидно, количественный критерий применимости -ламинарности течения выглядит так: \[ +ламинарности течения выглядит так: \begin{equation} \displaystyle \sqrt{\frac{2I}{I_a(\beta\gamma)^3}} \gg \sqrt{\frac{\epsilon}{\beta}}. -\] Видно, что пространственный заряд влияет на огибающую больше там, где +\end{equation} Видно, что пространственный заряд влияет на огибающую больше там, где \(\beta\)-функция больше, а в вблизи фокуса влиянием пространственного заряда можно пренебречь. @@ -141,20 +142,20 @@ Рассмотрим заряд \(q\), движущийся в магнитном поле \(\vec B = (B_r,0,B_z)\). Приравняем \(\theta \) -составляющую силы -Лоренца к производной момента импульса по времени, деленной на \(r\): \[ +Лоренца к производной момента импульса по времени, деленной на \(r\): \begin{equation} F_\theta = -q(\ddot r B_z - \dot z B_r) = \frac{d}{rdt}(\gamma m r^2 \dot \theta). -\] Поток, пронизывающий площадь, охваченную окружностью радиуса \(r\), +\end{equation} Поток, пронизывающий площадь, охваченную окружностью радиуса \(r\), центр которой расположен на оси, а сама она проходит через точку, в которой расположен заряд, записывается в виде \(\psi = \int\limits^r_0 2\pi r B_z dr\). Когда частица перемещается на \(\vec{dl} = (dr,dz)\), скорость изменения потока, охваченного этой окружностью, можно найти из второго уравнения Максвелла -\(\nabla \vec{B} = 0.\) Таким образом, \[ +\(\nabla \vec{B} = 0.\) Таким образом, \begin{equation} \dot\psi = 2\pi r (-B_r \dot z + B_z \dot r). -\] После интегрирования по времени из приведенных уравнений получаем -следующее выражение: \[ +\end{equation} После интегрирования по времени из приведенных уравнений получаем +следующее выражение: \begin{equation} \dot \theta = (-\frac{q}{2\pi \gamma m r^2})(\psi - \psi_0). -\] +\end{equation} % \hypertarget{ux443ux440ux430ux432ux43dux435ux43dux438ux435-ux43fux430ux440ux430ux43aux441ux438ux430ux43bux44cux43dux43eux433ux43e-ux43bux443ux447ux430}{% %\subsection{Уравнение параксиального @@ -164,38 +165,38 @@ системе с аксиальнорй симметрией при принятых ранее допущениях. Чтобы вывести уравнение параксиального луча, приравняем силу радиального ускорения силам электрическим и магнитным со стороны внешних полей. -Нужно помнить, что величина \(\gamma = \gamma(t).\) \[ +Нужно помнить, что величина \(\gamma = \gamma(t).\) \begin{equation} \frac{d}{dt}(\gamma m \dot r) - \gamma m r (\dot \theta)^2 = q(E_r + r\dot \theta B_z). -\] Применим теорему Буша и независимость \(B_z\) от \(r:\) \[ +\end{equation} Применим теорему Буша и независимость \(B_z\) от \(r:\) \begin{equation} -\dot \theta = \frac{q}{2\gamma m}(B_z - \frac{\psi_0}{\pi r}). -\] Исключим \(\dot \theta\) и подставим -\(\displaystyle \dot \gamma \approx \frac {\beta q E_z }{mc}:\) \[ +\end{equation} Исключим \(\dot \theta\) и подставим +\(\displaystyle \dot \gamma \approx \frac {\beta q E_z }{mc}:\) \begin{equation} \ddot r + \frac{\beta q E_z}{\gamma m c} \dot r + \frac{q^2 B^2_z}{4\gamma ^2 m^2} r - \frac{ q^2 \psi^2_0}{4\pi^2\gamma^2 m^2} (\frac{1}{r^3}) - \frac{q E_r}{\gamma m } = 0. -\] +\end{equation} % \hypertarget{ux443ux440ux430ux432ux43dux435ux43dux438ux435-ux43eux433ux438ux431ux430ux44eux449ux435ux439-ux434ux43bux44f-ux43aux440ux443ux433ux43bux43eux433ux43e-ux438-ux44dux43bux43bux438ux43fux442ux438ux447ux435ux441ux43aux43eux433ux43e-ux43fux443ux447ux43aux430}{% %\subsection{Уравнение огибающей для круглого и эллиптического %пучка}\label{ux443ux440ux430ux432ux43dux435ux43dux438ux435-ux43eux433ux438ux431ux430ux44eux449ux435ux439-ux434ux43bux44f-ux43aux440ux443ux433ux43bux43eux433ux43e-ux438-ux44dux43bux43bux438ux43fux442ux438ux447ux435ux441ux43aux43eux433ux43e-ux43fux443ux447ux43aux430}} - Учитывая, что: \[ + Учитывая, что: \begin{equation} \dot r = \beta c r', -\] \[ +\end{equation} \begin{equation} \ddot r = r'' (\dot z)^2 + r'\ddot z \approx r'' \beta^2 c^2 + r' \beta' \beta c^2. -\] А также, если в области пучка нет никаких зарядов, то, разлагая в ряд +\end{equation} А также, если в области пучка нет никаких зарядов, то, разлагая в ряд Тейлора в окрестности оси и оставляя только первый член, с учетом -\[\nabla \vec{E} = 0\] получаем \[ +\begin{equation}\nabla \vec{E} = 0\end{equation} получаем \begin{equation} E_r = -0.5 r E'_z \approx - 0.5 r \gamma'' mc^2/q. -\] Тогда окончательно можем записать уравнение огибающей для круглого +\end{equation} Тогда окончательно можем записать уравнение огибающей для круглого пучка радиуса \(r\) с распределением Капчинского-Владимирского с внешней -фокусировкой линейными полями: \[ +фокусировкой линейными полями: \begin{equation} \displaystyle r'' + \frac{1}{\beta^2\gamma} \gamma' r' + \frac{1}{2\beta^2\gamma}\gamma''r + kr - \frac{2I}{I_a (\beta\gamma)^3}\frac{1}{r} - \frac{\epsilon^2}{r^3} = 0 ; -\] и для эллиптического пучка: \begin{equation*} +\end{equation} и для эллиптического пучка: \begin{equation} \begin{cases} \displaystyle a'' + \frac{1}{\beta^2\gamma} \gamma' a' + \frac{1}{2\beta^2\gamma}\gamma''a + k_xa - \frac{4I}{I_a (\beta\gamma)^3}\frac{1}{(a+b)} - \frac{\epsilon_x^2}{a^3} = 0 , \\ \displaystyle b'' + \frac{1}{\beta^2\gamma} \gamma' b' + \frac{1}{2\beta^2\gamma}\gamma''b + k_yb - \frac{4I}{I_a (\beta\gamma)^3}\frac{1}{(a+b)} - \frac{\epsilon_y^2}{b^3} = 0. \end{cases} -\end{equation*} +\end{equation} % \hypertarget{ux43cux430ux433ux43dux438ux442ux43dux44bux435-ux43bux438ux43dux437ux44b}{% %\subsection{Магнитные @@ -207,20 +208,20 @@ %\hypertarget{ux441ux43eux43bux435ux43dux43eux438ux434ux44b}{% %\subsubsection{Соленоиды}\label{ux441ux43eux43bux435ux43dux43eux438ux434ux44b}} -\(k_x = k_y = k_s\) - жесткость соленоида: \[ +\(k_x = k_y = k_s\) - жесткость соленоида: \begin{equation} k_s = \left ( \frac{eB_z}{2m_ec\beta\gamma} \right )^2 = \left ( \frac{e B_z}{2\beta\gamma\cdot 0.511\cdot 10^6 e \cdot \mathrm{volt}/c} \right )^2 = \left ( \frac{cB_z[\mathrm{T}]}{2\beta\gamma\cdot 0.511\cdot 10^6 \cdot \mathrm{volt}} \right )^2. -\] +\end{equation} %\hypertarget{ux43aux432ux430ux434ux440ux443ux43fux43eux43bux438}{% %\subsubsection{Квадруполи}\label{ux43aux432ux430ux434ux440ux443ux43fux43eux43bux438}} \(k_q = \displaystyle\frac{eG}{pc}\) - жесткость квадруполя, где \(G = \displaystyle\frac{\partial B_x}{\partial y} = \displaystyle\frac{\partial B_y}{\partial x}\) -- градиент магнитного поля, причем \(k_x = k_q, k_y = -k_q.\) \[ +- градиент магнитного поля, причем \(k_x = k_q, k_y = -k_q.\) \begin{equation} k_q = \left ( \frac{eG}{m_ec\beta\gamma} \right ) = \left ( \frac{eG}{\beta\gamma\cdot 0.511\cdot 10^6 e \cdot \mathrm{volt}/c} \right ) = \left ( \frac{cG}{\beta\gamma\cdot 0.511\cdot 10^6 \cdot \mathrm{volt}} \right ). -\] +\end{equation} % \hypertarget{ux444ux43eux43aux443ux441ux438ux440ux43eux432ux43aux430-ux43fux43eux432ux43eux440ux43eux442ux43dux44bux43c-ux43cux430ux433ux43dux438ux442ux43eux43c}{% %\subsection{Фокусировка поворотным @@ -242,21 +243,21 @@ проекция отклоненной траектории на рисунке траектория \(b.\) Независимая переменная изменяется от \(s\) до \(s+ds.\) Обозначим \(\buildrel\,\,\frown\over{AB} = ds,\buildrel\,\,\frown\over{CD} = \delta s .\) -Тогда: \[ +Тогда: \begin{equation} \delta s = ds\left({1+\frac{x}{R}}\right), -\] следовательно, при отклонении наружу траектория удлиняется, при +\end{equation} следовательно, при отклонении наружу траектория удлиняется, при отклонении внутрь траектория укорачивается. Рассмотрим изменение угла -\(x'(s)\): \[ +\(x'(s)\): \begin{equation} x'(s+ds) - x'(s) = \frac{ds}{R} - \frac{\delta s}{R_1} =\left[{\frac{1}{R} - \frac{1}{R_1}\left({1+\frac{x}{R}}\right)}\right]ds \approx \left[{\frac{1}{R} - \frac{1}{R_1} - \frac{x}{R^2}}\right]ds, -\] здесь учтено малое отличие кривизны отклоненной траектории от +\end{equation} здесь учтено малое отличие кривизны отклоненной траектории от кривизны опорной траектории. Эта разница может быть вызвана неоднородностью магнитного поля \(\displaystyle B\_y(x,s) \approx B\_y(0,s) + \frac{\partial B_y}{\partial x}(0,s)x \) и различной -энергией \(p,p+\delta p.\) Т.е. : \[ +энергией \(p,p+\delta p.\) Т.е. : \begin{equation} \frac{1}{R_1} - \frac{1}{R} \approx \frac{1}{B_y(0,s)R} \frac{\partial B_y}{\partial x}(0,s)x, -\] \[ +\end{equation} \begin{equation} \frac{1}{R_1} - \frac{1}{R} \approx -\frac{1}{R}\frac{\delta p}{p}. -\] +\end{equation} % \hypertarget{ux438ux442ux43eux433}{% %\subsection{Итог}\label{ux438ux442ux43eux433}} @@ -265,13 +266,13 @@ \(\displaystyle n = - \frac{R}{B_y(0,s)}\frac{\partial B_y}{\partial x}(0,s) = - \frac{\partial ln B_y}{\partial ln (R+x)};\) перейдем к первеансу \(\displaystyle P = \frac{2I}{I_a\beta^3\gamma^3}\) и \(\displaystyle k_x = k_s + k_q , k_y = k_s - k_q.\) Тогда: -\begin{equation*} +\begin{equation} \begin{cases} \displaystyle a'' + \frac{1}{\beta^2\gamma} \gamma' a' + \frac{1}{2\beta^2\gamma}\gamma''a + (k_s+k_q + \frac{1-n}{R^2})a - \frac{2P}{(a+b)} - \frac{\epsilon_x^2}{a^3} - \frac{1}{R}\frac{\delta p}{p} = 0 , \\ \displaystyle b'' + \frac{1}{\beta^2\gamma} \gamma' b' + \frac{1}{2\beta^2\gamma}\gamma''b + (k_s - k_q + \frac{n}{R^2})b - \frac{2P}{(a+b)} - \frac{\epsilon_y^2}{b^3} = 0. \end{cases} -\end{equation*} +\end{equation} *При наличии диполей \(z\) нужно считать за натуральный параметр. @@ -285,9 +286,9 @@ достаточно близка к скорости света и следовательно его продольная координата \(z \approx ct\), а импульс \(p_z \approx \gamma mc\) - \[ + \begin{equation} \frac{d\gamma}{dz} \approx \frac{eE_z}{mc^2}, -\] +\end{equation} Тогда достаточно один раз проинтегрировать функцию \(E_z(z)\): @@ -298,24 +299,25 @@ Уравнение огибающей для эллиптического пучка с полуосями \(a, b\) с распределением Капчинского-Владимирского с внешней фокусировкой -линейными полями: \begin{equation*} +линейными полями: \begin{equation} \begin{cases} \displaystyle a'' + \frac{1}{\beta^2\gamma} \gamma' a' + \frac{1}{2\beta^2\gamma}\gamma''a + (k_s+k_q + \frac{1-n}{R^2})a - \frac{2P}{(a+b)} - \frac{\epsilon_x^2}{a^3} - \frac{1}{R}\frac{\delta p}{p} = 0 , \\ \displaystyle b'' + \frac{1}{\beta^2\gamma} \gamma' b' + \frac{1}{2\beta^2\gamma}\gamma''b + (k_s - k_q + \frac{n}{R^2})b - \frac{2P}{(a+b)} - \frac{\epsilon_y^2}{b^3} = 0. \end{cases} -\end{equation*} +\end{equation} Пусть \(\displaystyle x = \frac{da}{dz}, y = \frac{db}{dz}, \displaystyle \frac{d\gamma }{dz}\approx \frac{e E_z}{m c^2}, k = -\frac{1}{R} - \) кривизна, тогда \begin{equation*} +\frac{1}{R} - \) кривизна, тогда \begin{equation} + \label{eq:last_appendix_kenv} \begin{cases} \displaystyle \frac{dx}{dz}= - \frac{1}{\beta^2\gamma} \gamma' a' - \frac{1}{2\beta^2\gamma}\gamma''a - (k_s + k_q + k^2(1-n))a + \frac{2P}{(a+b)} + \frac{\epsilon_x^2}{a^3} + \frac{1}{R}\frac{\delta p}{p}\\ \displaystyle\frac{da}{dz} = x\\ \displaystyle \frac{dy}{dz}= - \frac{1}{\beta^2\gamma} \gamma' b' - \frac{1}{2\beta^2\gamma}\gamma''b - (k_s - k_q + k^2n)b + \frac{2P}{(a+b)} + \frac{\epsilon_x^2}{b^3}\\ \displaystyle\frac{db}{dz} = y \end{cases} -\end{equation*} +\end{equation} Пусть \(\vec X = \begin{bmatrix} diff --git a/src/texts/redpic_features.tex b/src/texts/redpic_features.tex index 31b3303..cf78429 100644 --- a/src/texts/redpic_features.tex +++ b/src/texts/redpic_features.tex @@ -4,7 +4,10 @@ \section{Особенности разработки ПО}\label{sec:redpic_feat \subsection{Гибкий код} ... -\subsection{Автоматическое тестирование} +\subsection{Тестирование} +... + +\subsection{Инфраструктура проекта} ... \subsection{Процессы CI/CD} diff --git a/src/texts/runge_kutta.tex b/src/texts/runge_kutta.tex index 7cc4cf4..e344e99 100644 --- a/src/texts/runge_kutta.tex +++ b/src/texts/runge_kutta.tex @@ -3,7 +3,7 @@ \section{Вычислительная сложность}\label{sec:algorithms_k Авторами данной библиотеки рекомендуется использовать метод Рунге-Кутта 4 порядка для решения дифференциальных уравнений. Рассмотрим точность этого метода. -Листинг основных функций KENV с комментариями приведен в приложении~Б. +Листинг основных функций KENV с комментариями приведен в приложении~\ref{lst:first_appendix_kenv}-\ref{lst:last_appendix_kenv}. \subsection{Метод Рунге-Кутта 4-го порядка}\label{subsec:runge_kutta_4}