diff --git a/presentation.tex b/presentation.tex index 80665bd..dd6be9b 100644 --- a/presentation.tex +++ b/presentation.tex @@ -190,24 +190,137 @@ \section{REDPIC} + \subsection{Кинетическое уравнение Власова и метод PIC} + \begin{frame} + \frametitle{\insertsection: \insertsubsection} + \begin{itemize} + \item Уравнение Власова описывает эволюцию функции распределения частиц в фазовом пространстве. + \item Электрические и магнитные поля определяются из уравнений Максвелла. + \item Метод частиц в ячейках (PIC) использует ансамбль макрочастиц для решения уравнения Власова и уравнений Максвелла на дискретной сетке. + \end{itemize} + \[ + \begin{cases} + \frac{dx}{dt} = v\\ + \frac{dp}{dt} = q_{\alpha} \left( E + v \times B \right) + \end{cases} + \] + \end{frame} + \subsection{Релятивистская разностная схема} - \begin{frame}[c] + \begin{frame} \frametitle{\insertsection: \insertsubsection} + В начальный момент времени $t$ задаются декартовы координаты $i-$ частицы ${r_{i}} = (x_i, y_i, z_i)$ ) и начальные импульсы ${p_{i}} = (p_{x_i}, p_{y_i}, p_{z_i})$. + Минимальный шаг по времени устанавливается $\delta t$. + + Для удобства физические величины делаются безразмерными (с тильдой): + \[ + \widetilde{{r_i}} = \frac{{r_i}}{c \delta t}, + \] + \[ + \widetilde{{E_i}} = \frac{{E_i}e}{mc} \delta t, + \] + \[ + \widetilde{{H_i}} = \frac{{H_i}e}{mc} \delta t, + \] + где $c$ - скорость света, $e$ и $m$ заряд и масса частицы соответственно. + \end{frame} + + \begin{frame}[allowframebreaks] + \frametitle{\insertsection: \insertsubsection} + \begin{enumerate} + \item Расчет электрических полей ${E_i}$ в точках, где находятся частицы. + \item Приращение импульса: + \[ + {p_i} = {p_i} + 2\cdot{E_i}, + \] + где коэффициент означает, что приращение импульса сделано за весь временной интервал $2\delta t.$ + \item Новые скорости вычисляются по новым импульсам: + \[ + {v_i} = \frac{{p_i}}{\gamma_i}, + \] + где $\gamma_i = \sqrt{1 + {p_i}^2}.$ + \item По новым скоростям вычисляются новые координаты: + \[ + {r_i} = {r_i} + 1\cdot{v_i}, + \] + где коэффициент означает, что приращение координаты сделано за временной интервал $\delta t.$ + \item Расчет магнитных полей ${H_i}$ в новых точках, где находятся частицы. + \item Вычисленные значения скорости (после вращения в магнитном поле): + + \[ + b_1 = 1 - \frac{H_i^2}{\gamma_i}, + b_2 = 1 + \frac{H_i^2}{\gamma_i}, + b_3 = 2\cdot \frac{{v_i}\cdot{H_i}}{\gamma_i}, + {f_i} = 2\cdot \frac{{v_i}\times {H_i}}{\gamma_i}, + \] + + \[ + {v_i} = \frac{{v_i}b_1 + {f_i} + \frac{{H_i}}{\gamma_i}b_3}{b_2}. + \] + \item По новым скоростям вычисляются новые координаты: + \[ + {r_i} = {r_i} + 1\cdot{v_i}, + \] + где коэффициент означает, что приращение координаты сделано за временной интервал $\delta t.$ + \item Новые импульсы вычисляются по новым скоростям: + \[ + {p_i} = {v_i}\gamma_i. + \] + \end{enumerate} + Один цикл выполняется за временной интервал $2\delta t.$ \end{frame} \subsection{Повышение производительности ПО} - \begin{frame}[c] + \begin{frame} + \frametitle{\insertsection: \insertsubsection} + \begin{itemize} + \item Требования к производительности ПО растут. + \item Оптимизация через JIT-компиляцию и параллелизм. + \item Использование библиотеки Numba для Python. + \end{itemize} + \end{frame} + + \begin{frame} \frametitle{\insertsection: \insertsubsection} + \begin{itemize} + \item Значительное улучшение производительности при использовании JIT. + \item Дополнительное ускорение с параллелизмом на CPU для больших наборов данных. + \end{itemize} + \begin{figure} + \centering + \begin{minipage}[h]{0.48\linewidth} + \center{\includegraphics[width=1\textwidth]{test_redpic_performance_1}} + \end{minipage} + \hfill + \begin{minipage}[h]{0.48\linewidth} + \center{\includegraphics[width=1\textwidth]{test_redpic_performance_2}} + \end{minipage} + \end{figure} \end{frame} + \subsection{Моделирование транспортировки пучка} \begin{frame}[c] \frametitle{\insertsection: \insertsubsection} + ... \end{frame} \subsection{Итоги} - \begin{frame}[c] + \begin{frame} \frametitle{\insertsection: \insertsubsection} + \begin{itemize} + \item Разработан REDPIC - инструмент на основе релятивистской разностной схемы. + \item ... + \end{itemize} + \end{frame} + + \begin{frame} + \frametitle{\insertsection: \insertsubsection} + \begin{itemize} + \item REDPIC оформлен как python-библиотека и доступен на Github. + \item Программа зарегистрирована и внесена в Реестр программ для ЭВМ (№~2023688768). + \item ... + \end{itemize} \end{frame} @@ -215,6 +328,7 @@ \begin{frame}[c] \frametitle{\insertsection} + ... \end{frame} \end{document}