Skip to content

Commit

Permalink
Add redpic part for presentation
Browse files Browse the repository at this point in the history
  • Loading branch information
fuodorov committed Feb 14, 2024
1 parent f73f2f9 commit c01f8eb
Showing 1 changed file with 117 additions and 3 deletions.
120 changes: 117 additions & 3 deletions presentation.tex
Original file line number Diff line number Diff line change
Expand Up @@ -190,31 +190,145 @@

\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}


\section{Заключение}

\begin{frame}[c]
\frametitle{\insertsection}
...
\end{frame}

\end{document}

0 comments on commit c01f8eb

Please sign in to comment.