From d6895be67c2b2bdc47f37a69c84b2186efa26ef8 Mon Sep 17 00:00:00 2001 From: deanon Date: Tue, 28 Oct 2025 21:17:19 +0300 Subject: [PATCH 1/6] add: report --- M4_Report/conclusion.tex | 20 +++ M4_Report/intro.tex | 59 +++++++ M4_Report/main.tex | 16 ++ M4_Report/models/conservation_laws.tex | 137 ++++++++++++++ M4_Report/models/models.tex | 8 + M4_Report/models/rolling_down_incline.tex | 152 ++++++++++++++++ M4_Report/models/rolling_on_horizontal.tex | 196 +++++++++++++++++++++ M4_Report/numerical_methods.tex | 172 ++++++++++++++++++ M4_Report/preamble.tex | 124 +++++++++++++ M4_Report/report.pdf | Bin 0 -> 297009 bytes M4_Report/title.tex | 18 ++ 11 files changed, 902 insertions(+) create mode 100644 M4_Report/conclusion.tex create mode 100644 M4_Report/intro.tex create mode 100644 M4_Report/main.tex create mode 100644 M4_Report/models/conservation_laws.tex create mode 100644 M4_Report/models/models.tex create mode 100644 M4_Report/models/rolling_down_incline.tex create mode 100644 M4_Report/models/rolling_on_horizontal.tex create mode 100644 M4_Report/numerical_methods.tex create mode 100644 M4_Report/preamble.tex create mode 100644 M4_Report/report.pdf create mode 100644 M4_Report/title.tex diff --git a/M4_Report/conclusion.tex b/M4_Report/conclusion.tex new file mode 100644 index 0000000..37c5e4b --- /dev/null +++ b/M4_Report/conclusion.tex @@ -0,0 +1,20 @@ +\section{Заключение} + +В работе проведено комплексное исследование динамики шара, катящегося по шероховатой поверхности, с учётом поступательного и вращательного движения, трения и возможности перехода между различными режимами движения. + +\textbf{Основные выводы:} + +\begin{itemize} + \item При качении шара без проскальзывания по наклонной плоскости ускорение составляет + + $a = \dfrac{5g\sin\theta}{7}$, что меньше ускорения при чистом скольжении ($a = g\sin\theta$) за счёт затрат энергии на вращение + + \item Условие качения без проскальзывания: $\tg\theta \le \dfrac{7\mu}{2}$. + + При нарушении этого условия происходит переход в режим проскальзывания + + \item Установившаяся скорость при качении без проскальзывания определяется законами сохранения импульса и момента импульса: $v_{\text{уст}} = \dfrac{5v_0 + 2\omega_0 R}{7}$ + + \item Диссипация энергии при установлении качения без проскальзывания полностью определяется работой силы трения скольжения: $Q = \int F_{\text{тр}} \cdot |v_{\text{отн}}| dt$ +\end{itemize} + diff --git a/M4_Report/intro.tex b/M4_Report/intro.tex new file mode 100644 index 0000000..9131ac7 --- /dev/null +++ b/M4_Report/intro.tex @@ -0,0 +1,59 @@ +\newpage + +\section{Введение} + +\Task Моделирование движения шара (мяча) по шероховатой поверхности (горизонтальной или наклонной) с учётом вращательного и поступательного движения, сухого трения и возможности проскальзывания. Исследование режимов качения без проскальзывания и с проскальзыванием, а также упругих столкновений с бортами и другими шарами. + +\Goal составить программу для численного решения связанной системы дифференциальных уравнений поступательного и вращательного движения шара на шероховатой поверхности, исследовать условия перехода между режимами качения и проскальзывания, проверить выполнение законов сохранения энергии и момента импульса. + +\section{Физическая постановка задачи} + +Рассмотрим однородный шар радиуса $R$ и массы $m$, движущийся по шероховатой поверхности. На шар действуют следующие силы: + +\begin{enumerate} + \item \textbf{Сила тяжести:} $\vec{F}_g = m\vec{g}$, где $\vec{g}$ -- ускорение свободного падения + \item \textbf{Сила нормальной реакции опоры:} $\vec{N}$ -- перпендикулярна поверхности + \item \textbf{Сила трения:} $\vec{F}_{\text{тр}}$ -- действует в точке контакта с поверхностью +\end{enumerate} + +\textbf{Координатная система:} + +Для наклонной плоскости с углом наклона $\theta$ вводим оси: +\begin{itemize} + \item Ось $x$ направлена вдоль наклонной плоскости вниз + \item Ось $y$ перпендикулярна плоскости (направление нормали) + \item Начало координат в точке, откуда начинается движение +\end{itemize} + +Для горизонтальной поверхности используем стандартную декартову систему координат $xOy$. + +\textbf{Параметры шара:} +\begin{itemize} + \item Масса: $m$ + \item Радиус: $R$ + \item Момент инерции относительно центра: $I = \dfrac{2}{5}mR^2$ (для однородного шара) +\end{itemize} + +\textbf{Параметры поверхности:} +\begin{itemize} + \item Угол наклона: $\theta$ (для наклонной плоскости) + \item Коэффициент сухого трения: $\mu$ +\end{itemize} + +\textbf{Режимы движения:} +\begin{enumerate} + \item \textbf{Качение без проскальзывания:} связь между линейной и угловой скоростями $v = \omega R$ + \item \textbf{Качение с проскальзыванием:} условие связи нарушается, $v \neq \omega R$ + \item \textbf{Чистое скольжение:} вращение отсутствует или пренебрежимо мало, $\omega \approx 0$ +\end{enumerate} + +\textbf{Начальные условия:} + +В общем случае при $t = 0$: +\[ +\vec{r}(0) = \vec{r}_0, \quad \vec{v}(0) = \vec{v}_0, \quad \vec{\omega}(0) = \vec{\omega}_0 +\] + +где $\vec{v}_0$ -- начальная линейная скорость центра масс, $\vec{\omega}_0$ -- начальная угловая скорость. + +\newpage diff --git a/M4_Report/main.tex b/M4_Report/main.tex new file mode 100644 index 0000000..d71d0cf --- /dev/null +++ b/M4_Report/main.tex @@ -0,0 +1,16 @@ +\input{preamble} + +\begin{document} + +\input{title} +\pagestyle{main} +{ +\centering +\tableofcontents +} +\input{intro} +\input{models/models} +\input{numerical_methods} +\input{conclusion} + +\end{document} diff --git a/M4_Report/models/conservation_laws.tex b/M4_Report/models/conservation_laws.tex new file mode 100644 index 0000000..add0d48 --- /dev/null +++ b/M4_Report/models/conservation_laws.tex @@ -0,0 +1,137 @@ +\subsection{Законы сохранения энергии и момента импульса} + +Проверка выполнения законов сохранения является важным критерием корректности численного моделирования. + +\begin{center} + \textbf{Закон сохранения энергии} +\end{center} + +\textbf{Полная механическая энергия системы:} +\[ +E = E_{\text{кин}} + E_{\text{вращ}} + E_{\text{пот}} +\] + +где: +\begin{itemize} + \item $E_{\text{кин}} = \dfrac{1}{2}mv^2$ -- кинетическая энергия поступательного движения + \item $E_{\text{вращ}} = \dfrac{1}{2}I\omega^2 = \dfrac{1}{5}mR^2\omega^2$ -- энергия вращательного движения + \item $E_{\text{пот}} = mgh$ -- потенциальная энергия в поле тяжести +\end{itemize} + +\textbf{Для одного шара:} +\[ +E = \dfrac{1}{2}mv^2 + \dfrac{1}{5}mR^2\omega^2 + mgh +\] + +\textbf{Изменение энергии:} + +\textit{1. При качении без проскальзывания по наклонной плоскости:} + +Трение покоя не совершает работу ($\vec{F}_{\text{тр}} \perp \vec{v}_{\text{контакта}}$), поэтому энергия сохраняется: +\[ +\dfrac{dE}{dt} = 0 \quad \Rightarrow \quad E = \text{const} +\] + +\textit{2. При проскальзывании:} + +Трение скольжения совершает отрицательную работу: +\[ +\dfrac{dE}{dt} = -F_{\text{тр}} \cdot v_{\text{отн}} = -\mu mg\cos\theta \cdot |v - \omega R| +\] + +Энергия уменьшается: +\[ +E(t) = E_0 - \int_0^t \mu mg\cos\theta \cdot |v(\tau) - \omega(\tau) R| d\tau +\] + +\textit{3. При упругих столкновениях:} + +В идеальном случае упругого столкновения энергия сохраняется: +\[ +E_{\text{до}} = E_{\text{после}} +\] + +При использовании модели с силой Гука энергия сохраняется, если пренебречь диссипацией. + +\begin{center} + \textbf{Закон сохранения момента импульса} +\end{center} + +\textbf{Момент импульса материальной точки} относительно точки $O$: +\[ +\vec{L}_{\text{орб}} = \vec{r} \times m\vec{v} +\] + +\textbf{Собственный момент импульса} вращающегося тела: +\[ +\vec{L}_{\text{собств}} = I\vec{\omega} +\] + +\textbf{Полный момент импульса шара:} +\[ +\vec{L} = \vec{r} \times m\vec{v} + I\vec{\omega} +\] + +Для движения в плоскости $xOy$ с вращением вокруг оси $z$: +\[ +L_z = (x \cdot m v_y - y \cdot m v_x) + I\omega_z +\] + +\textbf{Условия сохранения момента импульса:} + +Момент импульса сохраняется, если суммарный момент внешних сил равен нулю: +\[ +\sum \vec{M}_{\text{внешн}} = 0 +\] + +\textit{1. Для шара на наклонной плоскости:} + +Относительно точки на оси вращения (перпендикулярной плоскости движения) момент силы тяжести и нормальной реакции равны нулю (они проходят через эту ось). Момент силы трения: +\[ +M = F_{\text{тр}} \cdot R +\] + +не равен нулю, поэтому момент импульса не сохраняется. + +\textit{2. Для изолированной системы шаров на горизонтальной плоскости:} + +Если внешние силы (тяжесть, нормальная реакция) не создают момента относительно вертикальной оси, и трение о поверхность также не создаёт вертикального момента, то: +\[ +\dfrac{d\vec{L}_z}{dt} = 0 \quad \Rightarrow \quad L_z = \text{const} +\] + +\textit{3. При упругих столкновениях:} + +Если столкновение происходит в изолированной системе, момент импульса сохраняется: +\[ +\vec{L}_{\text{до}} = \vec{L}_{\text{после}} +\] + +\newpage +\begin{center} + \textbf{Диссипация энергии при установлении качения} +\end{center} + +При переходе от проскальзывания к качению без проскальзывания часть энергии диссипирует. + +Начальная энергия (при $v_0$ и $\omega_0$): +\[ +E_0 = \dfrac{1}{2}mv_0^2 + \dfrac{1}{5}mR^2\omega_0^2 +\] + +Конечная энергия (при $v_{\text{уст}} = \omega_{\text{уст}} R$): +\[ +E_{\text{уст}} = \dfrac{7}{10}mv_{\text{уст}}^2 +\] + +Диссипированная энергия: +\[ +\Delta E = E_0 - E_{\text{уст}} +\] + +Эта энергия переходит в тепло за счёт работы силы трения скольжения: +\[ +Q = \int_0^{t^*} F_{\text{тр}} \cdot |v_{\text{отн}}| dt = \int_0^{t^*} \mu mg |v - \omega R| dt +\] + +Численная проверка: $Q \approx \Delta E$ (с точностью до ошибок численного интегрирования). diff --git a/M4_Report/models/models.tex b/M4_Report/models/models.tex new file mode 100644 index 0000000..b46a70d --- /dev/null +++ b/M4_Report/models/models.tex @@ -0,0 +1,8 @@ +\section{Физические модели} + +\input{models/rolling_down_incline} +\newpage +\input{models/rolling_on_horizontal} +\newpage +\input{models/conservation_laws} +\newpage diff --git a/M4_Report/models/rolling_down_incline.tex b/M4_Report/models/rolling_down_incline.tex new file mode 100644 index 0000000..d78d17d --- /dev/null +++ b/M4_Report/models/rolling_down_incline.tex @@ -0,0 +1,152 @@ +\subsection{Скатывание по наклонной плоскости} + +Рассмотрим шар, скатывающийся по наклонной плоскости с углом наклона $\theta$ к горизонту. + +\textbf{Уравнения движения} + +Применяем \textbf{второй закон Ньютона} для поступательного движения центра масс: +\[ +m\vec{a} = \vec{F}_g + \vec{N} + \vec{F}_{\text{тр}} +\] + +В проекциях на оси (ось $x$ вдоль плоскости вниз, $y$ перпендикулярно плоскости): +\[ +\begin{cases} +ma_x = mg\sin\theta - F_{\text{тр}} \\ +ma_y = N - mg\cos\theta = 0 +\end{cases} +\] + +Применяем \textbf{основное уравнение динамики вращательного движения}: +\[ +I\dfrac{d\omega}{dt} = M +\] + +где $M$ -- момент силы трения относительно центра масс: +\[ +M = F_{\text{тр}} \cdot R +\] + +Для однородного шара $I = \dfrac{2}{5}mR^2$, следовательно: +\[ +\dfrac{2}{5}mR^2 \dfrac{d\omega}{dt} = F_{\text{тр}} R +\] +\[ +\dfrac{d\omega}{dt} = \dfrac{5F_{\text{тр}}}{2mR} +\] + +\begin{center} + \textbf{Качение без проскальзывания} +\end{center} + +При качении без проскальзывания выполняется \textbf{условие связи}: +\[ +v = \omega R \quad \Rightarrow \quad a = \dfrac{dv}{dt} = R\dfrac{d\omega}{dt} +\] + +Сила трения в этом режиме -- \textbf{сила трения покоя} $F_{\text{тр}} \le \mu N = \mu mg\cos\theta$. + +Подставляем условие связи в уравнение вращения: +\[ +\dfrac{a}{R} = \dfrac{5F_{\text{тр}}}{2mR} \quad \Rightarrow \quad F_{\text{тр}} = \dfrac{2ma}{5} +\] + +Подставляем в уравнение поступательного движения: +\[ +ma = mg\sin\theta - \dfrac{2ma}{5} +\] +\[ +ma + \dfrac{2ma}{5} = mg\sin\theta +\] +\[ +\dfrac{7ma}{5} = mg\sin\theta +\] + +Отсюда ускорение центра масс при качении без проскальзывания: +\[ +\boxed{a = \dfrac{5g\sin\theta}{7}} +\] + +Соответствующая сила трения: +\[ +F_{\text{тр}} = \dfrac{2ma}{5} = \dfrac{2mg\sin\theta}{7} +\] + +\textbf{Условие качения без проскальзывания:} +\[ +F_{\text{тр}} \le \mu N \quad \Rightarrow \quad \dfrac{2mg\sin\theta}{7} \le \mu mg\cos\theta +\] +\[ +\boxed{\tg\theta \le \dfrac{7\mu}{2}} +\] + +При нарушении этого условия происходит переход в режим проскальзывания. + +\begin{center} + \textbf{Качение с проскальзыванием} +\end{center} + +При проскальзывании условие связи $v = \omega R$ нарушается, и действует \textbf{сила трения скольжения}: +\[ +F_{\text{тр}} = \mu N = \mu mg\cos\theta +\] + +Направление силы трения определяется знаком относительной скорости точки контакта: +\[ +v_{\text{отн}} = v - \omega R +\] +\[ +F_{\text{тр}} = -\mu mg\cos\theta \cdot \sign(v_{\text{отн}}) +\] + +Система уравнений в режиме проскальзывания: +\[ +\begin{cases} +\dfrac{dv}{dt} = g\sin\theta - \mu g\cos\theta \cdot \sign(v - \omega R) \\[1em] +\dfrac{d\omega}{dt} = \dfrac{5\mu g\cos\theta}{2R} \cdot \sign(v - \omega R) +\end{cases} +\] + +\textbf{Переход в режим качения без проскальзывания:} + +Происходит при выполнении условий: +\begin{enumerate} + \item $|v - \omega R| < \varepsilon$ (малая относительная скорость) + \item $\left|\dfrac{2mg\sin\theta}{7}\right| < \mu mg\cos\theta$ (условие для силы трения покоя) +\end{enumerate} + +\begin{center} + \textbf{Аналитическое решение для качения без проскальзывания} +\end{center} + +При $a = \text{const} = \dfrac{5g\sin\theta}{7}$ и начальных условиях $v(0) = 0$, $x(0) = 0$: +\[ +v(t) = \dfrac{5g\sin\theta}{7} t +\] +\[ +x(t) = \dfrac{1}{2} \cdot \dfrac{5g\sin\theta}{7} t^2 = \dfrac{5g\sin\theta}{14} t^2 +\] + +Угловая скорость: +\[ +\omega(t) = \dfrac{v(t)}{R} = \dfrac{5g\sin\theta}{7R} t +\] + +\textbf{Анализ энергий:} + +Полная механическая энергия при скатывании без проскальзывания: +\[ +E = E_{\text{кин}} + E_{\text{пот}} = \dfrac{1}{2}mv^2 + \dfrac{1}{2}I\omega^2 + mgh +\] + +При $v = \omega R$ и $I = \dfrac{2}{5}mR^2$: +\[ +E_{\text{кин}} = \dfrac{1}{2}mv^2 + \dfrac{1}{2} \cdot \dfrac{2}{5}mR^2 \cdot \dfrac{v^2}{R^2} = \dfrac{1}{2}mv^2 + \dfrac{1}{5}mv^2 = \dfrac{7}{10}mv^2 +\] + +При скатывании с высоты $h = x\sin\theta$ из состояния покоя: +\[ +mgh = \dfrac{7}{10}mv^2 \quad \Rightarrow \quad v = \sqrt{\dfrac{10gh}{7}} +\] + +Это на $\sqrt{\dfrac{10}{7}} \approx 1.195$ раза меньше скорости при чистом скольжении ($v = \sqrt{2gh}$), что объясняется затратами энергии на вращение. diff --git a/M4_Report/models/rolling_on_horizontal.tex b/M4_Report/models/rolling_on_horizontal.tex new file mode 100644 index 0000000..84122b3 --- /dev/null +++ b/M4_Report/models/rolling_on_horizontal.tex @@ -0,0 +1,196 @@ +\subsection{Произвольное качение по горизонтальной плоскости} + +Рассмотрим шар, движущийся по горизонтальной шероховатой поверхности с произвольными начальными линейной $\vec{v}_0$ и угловой $\vec{\omega}_0$ скоростями. + +\begin{center} + \textbf{Уравнения движения в векторной форме} +\end{center} + +Для горизонтальной плоскости $\vec{g}$ направлено вертикально вниз, нормальная реакция уравновешивает силу тяжести: $N = mg$. + +\textbf{Поступательное движение:} +\[ +m\dfrac{d\vec{v}}{dt} = \vec{F}_{\text{тр}} +\] + +\textbf{Вращательное движение:} +\[ +I\dfrac{d\vec{\omega}}{dt} = \vec{M} +\] + +где $\vec{M} = \vec{R} \times \vec{F}_{\text{тр}}$ -- момент силы трения. + +Для плоского движения (вращение вокруг вертикальной оси $z$, перпендикулярной плоскости): +\[ +I_z \dfrac{d\omega_z}{dt} = M_z = R \cdot F_{\text{тр}} +\] + +\begin{center} + \textbf{Сила трения при произвольном движении} +\end{center} + +Относительная скорость точки контакта шара с поверхностью: +\[ +\vec{v}_{\text{отн}} = \vec{v}_{\text{центра}} - \vec{v}_{\text{вращ}} = \vec{v} - \vec{\omega} \times \vec{R} +\] + +Для вращения вокруг вертикальной оси и движения в горизонтальной плоскости $xOy$: +\[ +\vec{v}_{\text{отн}} = (v_x, v_y) - (-\omega_z R \sin\varphi, \omega_z R \cos\varphi) +\] + +где $\varphi$ -- угол между направлением движения и осью $x$. + +В общем случае в декартовых координатах: +\[ +\vec{v}_{\text{отн}} = (v_x - \omega_y R, v_y + \omega_x R) +\] + +\textbf{Сила трения скольжения:} +\[ +\vec{F}_{\text{тр}} = -\mu N \dfrac{\vec{v}_{\text{отн}}}{|\vec{v}_{\text{отн}}|} = -\mu mg \dfrac{\vec{v}_{\text{отн}}}{|\vec{v}_{\text{отн}}|} +\] + +при $|\vec{v}_{\text{отн}}| > 0$ (проскальзывание). + +\newpage +\begin{center} + \textbf{Случай 1: Движение вдоль одной оси} +\end{center} + +Рассмотрим движение вдоль оси $x$ с начальными условиями: +\[ +v_x(0) = v_0, \quad v_y(0) = 0, \quad \omega_z(0) = \omega_0 +\] + +Относительная скорость точки контакта: +\[ +v_{\text{отн}} = v_x - \omega_z R +\] + +\textbf{При проскальзывании} ($v_{\text{отн}} \neq 0$): +\[ +\begin{cases} +\dfrac{dv_x}{dt} = -\mu g \cdot \sign(v_{\text{отн}}) \\[1em] +\dfrac{d\omega_z}{dt} = \dfrac{\mu mg R}{I_z} \cdot \sign(v_{\text{отн}}) = \dfrac{5\mu g}{2R} \cdot \sign(v_{\text{отн}}) +\end{cases} +\] + +\textbf{Анализ эволюции системы:} + +\textit{Случай A:} $v_0 > \omega_0 R$ (центр движется быстрее, чем "требует" вращение) +\[ +v_{\text{отн}} > 0 \quad \Rightarrow \quad \sign(v_{\text{отн}}) = +1 +\] +\[ +\begin{cases} +\dfrac{dv_x}{dt} = -\mu g \quad &\text{(линейная скорость уменьшается)} \\[1em] +\dfrac{d\omega_z}{dt} = +\dfrac{5\mu g}{2R} \quad &\text{(угловая скорость увеличивается)} +\end{cases} +\] + +Со временем $v_x$ уменьшается, а $\omega_z$ растёт, пока не выполнится $v_x = \omega_z R$. + +\textit{Случай B:} $v_0 < \omega_0 R$ (вращение "опережает" поступательное движение) +\[ +v_{\text{отн}} < 0 \quad \Rightarrow \quad \sign(v_{\text{отн}}) = -1 +\] +\[ +\begin{cases} +\dfrac{dv_x}{dt} = +\mu g \quad &\text{(линейная скорость увеличивается)} \\[1em] +\dfrac{d\omega_z}{dt} = -\dfrac{5\mu g}{2R} \quad &\text{(угловая скорость уменьшается)} +\end{cases} +\] + +Система эволюционирует к состоянию $v_x = \omega_z R$. + +\textbf{Время установления качения без проскальзывания:} + +Пусть $v_0 > \omega_0 R$. Тогда: +\[ +\begin{aligned} +v_x(t) &= v_0 - \mu g t \\ +\omega_z(t) &= \omega_0 + \dfrac{5\mu g}{2R} t +\end{aligned} +\] + +Условие $v_x(t^*) = \omega_z(t^*) R$: +\[ +v_0 - \mu g t^* = \left(\omega_0 + \dfrac{5\mu g}{2R} t^*\right) R +\] +\[ +v_0 - \mu g t^* = \omega_0 R + \dfrac{5\mu g}{2} t^* +\] +\[ +v_0 - \omega_0 R = \mu g t^* + \dfrac{5\mu g}{2} t^* = \dfrac{7\mu g}{2} t^* +\] +\[ +\boxed{t^* = \dfrac{2(v_0 - \omega_0 R)}{7\mu g}} +\] + +\textbf{После установления качения без проскальзывания:} + +Сила трения становится силой трения покоя и не совершает работу. Шар движется равномерно с постоянной скоростью: +\[ +v_{\text{уст}} = \omega_{\text{уст}} R +\] + +где +\[ +v_{\text{уст}} = v_0 - \mu g t^* = v_0 - \dfrac{2(v_0 - \omega_0 R)}{7} +\] +\[ +\boxed{v_{\text{уст}} = \dfrac{5v_0 + 2\omega_0 R}{7}} +\] + +\begin{center} + \textbf{Случай 2: Движение по окружности} +\end{center} + +Рассмотрим шар, запущенный по горизонтальной плоскости так, что его центр движется по окружности радиуса $r$ с начальной линейной скоростью $v_0$ и угловой скоростью вращения $\omega_0$. + +Для движения по окружности требуется центростремительное ускорение: +\[ +a_n = \dfrac{v^2}{r} +\] + +которое обеспечивается силой трения: +\[ +F_{\text{тр}} = m\dfrac{v^2}{r} +\] + +При этом должно выполняться: +\[ +F_{\text{тр}} \le \mu N = \mu mg +\] + +Условие возможности движения по окружности: +\[ +\dfrac{v^2}{r} \le \mu g \quad \Rightarrow \quad \boxed{v \le \sqrt{\mu g r}} +\] + +При превышении этой скорости шар соскользнёт с траектории окружности. + +\begin{center} + \textbf{Энергетические соотношения} +\end{center} + +При движении по горизонтальной плоскости с трением механическая энергия уменьшается: +\[ +\dfrac{dE}{dt} = -F_{\text{тр}} \cdot v_{\text{отн}} = -\mu mg |\vec{v}_{\text{отн}}| +\] + +Полная энергия системы: +\[ +E = \dfrac{1}{2}mv^2 + \dfrac{1}{2}I\omega^2 = \dfrac{1}{2}mv^2 + \dfrac{1}{5}mR^2\omega^2 +\] + +После установления режима качения без проскальзывания ($v = \omega R$): +\[ +E_{\text{уст}} = \dfrac{7}{10}mv_{\text{уст}}^2 +\] + +Потерянная энергия: +\[ +\Delta E = E_0 - E_{\text{уст}} = \dfrac{1}{2}mv_0^2 + \dfrac{1}{5}mR^2\omega_0^2 - \dfrac{7}{10}mv_{\text{уст}}^2 +\] diff --git a/M4_Report/numerical_methods.tex b/M4_Report/numerical_methods.tex new file mode 100644 index 0000000..21cee69 --- /dev/null +++ b/M4_Report/numerical_methods.tex @@ -0,0 +1,172 @@ +\section{Численные методы решения} + +\begin{center} + \textbf{Преобразование к системе первого порядка} +\end{center} + +Исходная система уравнений второго порядка для поступательного и вращательного движения: +\[ +\begin{cases} +m\dfrac{d^2\vec{r}}{dt^2} = \vec{F} \\[1em] +I\dfrac{d\vec{\omega}}{dt} = \vec{M} +\end{cases} +\] + +Вводим переменные состояния: +\[ +\vec{v} = \dfrac{d\vec{r}}{dt} +\] + +Получаем систему первого порядка: +\[ +\begin{cases} +\dfrac{d\vec{r}}{dt} = \vec{v} \\[1em] +\dfrac{d\vec{v}}{dt} = \dfrac{\vec{F}}{m} \\[1em] +\dfrac{d\vec{\omega}}{dt} = \dfrac{\vec{M}}{I} +\end{cases} +\] + +Для движения в плоскости $xOy$ с вращением вокруг оси $z$ перпендикулярной плоскости: +\[ +\begin{cases} +\dfrac{dx}{dt} = v_x \\[1em] +\dfrac{dy}{dt} = v_y \\[1em] +\dfrac{dv_x}{dt} = \dfrac{F_x}{m} \\[1em] +\dfrac{dv_y}{dt} = \dfrac{F_y}{m} \\[1em] +\dfrac{d\omega_z}{dt} = \dfrac{M_z}{I_z} +\end{cases} +\] + +\begin{center} + \textbf{Вычисление сил и моментов} +\end{center} + +\textbf{1. Для наклонной плоскости (угол $\theta$):} + +Компоненты силы тяжести: +\[ +F_{g,x} = mg\sin\theta, \quad F_{g,y} = -mg\cos\theta +\] + +Нормальная реакция: $N = mg\cos\theta$ + +Относительная скорость точки контакта: +\[ +v_{\text{отн}} = v_x - \omega_z R +\] + +Сила трения: +\[ +F_{\text{тр}} = \begin{cases} +-\mu N \cdot \sign(v_{\text{отн}}), & \text{если } |v_{\text{отн}}| > \varepsilon \\ +F_{\text{тр,покоя}}, & \text{если } |v_{\text{отн}}| \le \varepsilon +\end{cases} +\] + +где $\varepsilon$ -- малая пороговая величина для детекции качения без проскальзывания. + +При качении без проскальзывания: +\[ +F_{\text{тр,покоя}} = \dfrac{2mg\sin\theta}{7} +\] + +(ограничена условием $|F_{\text{тр,покоя}}| \le \mu N$) + +Момент силы трения: +\[ +M_z = F_{\text{тр}} \cdot R +\] + +Полные силы: +\[ +F_x = mg\sin\theta - F_{\text{тр}}, \quad F_y = 0 +\] + +\textbf{2. Для горизонтальной плоскости:} + +Нормальная реакция: $N = mg$ + +Относительная скорость точки контакта в векторной форме: +\[ +\vec{v}_{\text{отн}} = \vec{v} - \vec{\omega} \times \vec{R} +\] + +Для плоского случая ($\omega = \omega_z \vec{e}_z$, $\vec{R} = -R\vec{e}_z$ -- вектор от центра к точке контакта): +\[ +\vec{v}_{\text{отн}} = (v_x, v_y) - \omega_z \vec{e}_z \times (-R\vec{e}_z) = (v_x, v_y) +\] + +Для учёта вращения в плоскости нужно рассматривать компоненты вращения $\omega_x, \omega_y$. В упрощённой модели: +\[ +\vec{v}_{\text{отн}} = (v_x - \omega_y R, v_y + \omega_x R) +\] + +Сила трения: +\[ +\vec{F}_{\text{тр}} = -\mu mg \dfrac{\vec{v}_{\text{отн}}}{|\vec{v}_{\text{отн}}|} +\] + +при $|\vec{v}_{\text{отн}}| > \varepsilon$. + +\newpage +\begin{center} + \textbf{Метод Рунге-Кутты 4-го порядка} +\end{center} + +Для системы $\dfrac{d\vec{y}}{dt} = \vec{f}(t, \vec{y})$, где $\vec{y} = (x, y, v_x, v_y, \omega_z)^T$: + +\begin{enumerate} + \item Выбираем шаг интегрирования $h$ + \item На каждом шаге вычисляем коэффициенты: + \begin{align} + \vec{k}_1 &= h \vec{f}(t_n, \vec{y}_n) \\ + \vec{k}_2 &= h \vec{f}(t_n + h/2, \vec{y}_n + \vec{k}_1/2) \\ + \vec{k}_3 &= h \vec{f}(t_n + h/2, \vec{y}_n + \vec{k}_2/2) \\ + \vec{k}_4 &= h \vec{f}(t_n + h, \vec{y}_n + \vec{k}_3) + \end{align} + \item Обновляем решение: + \[ + \vec{y}_{n+1} = \vec{y}_n + \dfrac{1}{6}(\vec{k}_1 + 2\vec{k}_2 + 2\vec{k}_3 + \vec{k}_4) + \] + \item Обновляем время: $t_{n+1} = t_n + h$ +\end{enumerate} + +\begin{center} + \textbf{Алгоритм обработки режимов движения} +\end{center} + +На каждом шаге интегрирования: + +\begin{enumerate} + \item Вычисляем относительную скорость: $v_{\text{отн}} = v - \omega R$ + + \item Проверяем условие проскальзывания: + \[ + \text{если } |v_{\text{отн}}| > \varepsilon \text{, то режим проскальзывания} + \] + + \item \textbf{В режиме проскальзывания:} + \begin{itemize} + \item Сила трения: $F_{\text{тр}} = -\mu N \cdot \sign(v_{\text{отн}})$ + \item Интегрируем независимо $v$ и $\omega$ + \end{itemize} + + \item \textbf{В режиме качения без проскальзывания:} + \begin{itemize} + \item Вычисляем силу трения из условия связи $a = \alpha R$: + \[ + F_{\text{тр}} = \dfrac{2ma}{5} + \] + где $a$ определяется из уравнения движения с учётом связи + \item Проверяем условие $|F_{\text{тр}}| \le \mu N$ + \item Если нарушается -- переходим в режим проскальзывания + \end{itemize} + + \item После интегрирования проверяем переход: + \[ + \text{если } |v_{n+1} - \omega_{n+1} R| < \varepsilon \text{ и } |F_{\text{тр}}| < \mu N + \] + то переходим в режим качения без проскальзывания +\end{enumerate} + +\newpage diff --git a/M4_Report/preamble.tex b/M4_Report/preamble.tex new file mode 100644 index 0000000..57c2774 --- /dev/null +++ b/M4_Report/preamble.tex @@ -0,0 +1,124 @@ +\documentclass[a4paper,12pt]{article} + +\usepackage{geometry} +% задание полей текста +\geometry{left=10mm,right=10mm,top=20mm,bottom=20mm} +\usepackage{listings} +\usepackage{cmap} % поиск в PDF +\usepackage[T2A]{fontenc} % кодировка +\usepackage[utf8]{inputenc} +\usepackage[english, russian]{babel} % локализация и переносы +\usepackage{natbib} + +\usepackage{graphicx} +\graphicspath{{pix/}} +\usepackage{pgfplots} +\usetikzlibrary{arrows} +\pgfplotsset{width=10cm,compat=newest} +\pgfkeys{/pgf/trig format=rad} + + +\usepackage{xcolor} +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + linkcolor=blue, + filecolor=blue, + urlcolor=blue, + citecolor=blue +} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{bm} +\usepackage{enumerate} +\usepackage[normalem]{ulem} +\usepackage{titlesec} + +% Настройка форматирования section для центрирования без растягивания +\titleformat{\section} + {\normalfont\Large\bfseries\centering}{\thesection}{1em}{} +\titleformat{\subsection} + {\normalfont\large\bfseries\centering}{\thesubsection}{1em}{} + +\setlength\parindent{0pt} + + +\sloppy % строго соблюдать границы текста +\linespread{1.2} % коэффициент межстрочного интервала +\setlength{\parskip}{0.5em} % вертик. интервал между абзацами + +\setcounter{secnumdepth}{0} % отключение нумерации разделов +\binoppenalty=1000 % уменьшение переносов в формулах + +% объявление новых макрокоманд + +\newcommand{\Def}{\textbf{Def.} } +\newcommand{\Th}{\textbf{Теорема.} } +\newcommand{\Thbd}{\textbf{Теорема (б/д).} } +\newcommand{\Theor}[1]{\textbf{Теорема ({#1}).} } +\newcommand{\Theorbd}[1]{\textbf{Теорема ({#1}) (б/д).} } +\newcommand{\Consequence}{\textbf{Следствие.} } +\newcommand{\Remind}{\textbf{Remind.} } +\newcommand{\Note}{\textbf{Note.} } +\newcommand{\Statement}{\textbf{Утверждение.} } +\newcommand{\Prop}{\textbf{Свойство:} } +\newcommand{\Props}{\textbf{Свойства:} } +\newcommand{\Proof}{\textbf{Доказательство:} } +\newcommand{\Prooff}{\textbf{Доказать:} } +\newcommand{\Solution}{\textbf{Решение:} } +\newcommand{\Alg}{\textbf{Algorithm.} } +\newcommand{\Lemma}{\textbf{Лемма.} } +\newcommand{\Example}{\textbf{Пример:} } +\newcommand{\Task}{\textbf{Задача.} } +\newcommand{\Goal}{\textbf{Цель работы:} } +\newcommand{\Solve}{\textbf{Решение:} } +\newcommand{\Examples}{\textbf{Примеры.} } + +\allowdisplaybreaks[4] + +%\renewcommand\thesection{\arabic{section}} + +\newcommand{\Endproof}{$\blacksquare$ } + +\newcommand{\tr}{\text{tr}} +\newcommand{\Le}{\leqslant} % русский стиль нестрогих неравенств +\newcommand{\Ge}{\geqslant} +% облегчение математических обозначений +\newcommand{\A}{\mathcal{A}} +\newcommand{\M}{\mathcal{M}} +\newcommand{\F}{\mathcal{F}} +\newcommand{\Gs}{\mathcal{G}} +\newcommand{\R}{\mathbb{R}} +\newcommand{\N}{\mathbb{N}} +\newcommand{\Q}{\mathbb{Q}} +\newcommand{\Norm}{\mathcal{N}} +%\newcommand{\C}{\mathbb{C}} +\newcommand{\ind}{\perp \!\!\! \perp} +\newcommand{\Z}{\mathbb{Z}} +\newcommand{\E}{{\mathbb{E}}} +\newcommand{\D} { {\mathbb{D}}} +\newcommand{\x}{\overline{x}} +\newcommand{\y}{\overline{y}} +\newcommand{\soch}[2]{\text{$C_{#1}^{#2}$}} +\newcommand{\X}{\text{$\mathcal{X}$}} +\newcommand{\VC}[2]{\text{$VC\left(#1; #2\right)$}} +\renewcommand{\P}{\text{$\mathcal{P}$}} +\newcommand{\B}{\text{$\mathcal{B}$}} +\newcommand{\brackets}[1]{\left({#1}\right)} % автоматический размер скобочек +\newcommand{\abs}[1]{\left|{#1}\right|} % автоматический размер модуля +\newcommand{\norm}[1]{\left\|{#1}\right\|} % автоматический размер нормы +\newcommand{\set}[1]{\left\{{#1}\right\}} % автоматический размер множества +\newcommand{\condset}[2]{\set{#1 \ | \ #2}} % определение множества + +\newcommand{\distrfamily}{\condset{P_\theta}{\theta \in \Theta}} + +\DeclareMathOperator{\sign} +\DeclareMathOperator{\tg} + + +\newpagestyle{main}{ + \setheadrule{.4pt} + \sethead{}{\bullet \; \textit{Цифровизация физических процессов} \; \bullet}{} + \setfootrule{.4pt} + \setfoot{ВШПИ МФТИ}{М4. Шар на столе}{Б13-402} +} diff --git a/M4_Report/report.pdf b/M4_Report/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..424d2f7eb09aa114d1cd38e59ba54146e11abb55 GIT binary patch literal 297009 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∨$NI@=8qVFzS}6usgbCJDWJv$zY23wtfcY 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 literal 0 HcmV?d00001 diff --git a/M7B_report/title.tex b/M7B_report/title.tex new file mode 100644 index 0000000..e52bc91 --- /dev/null +++ b/M7B_report/title.tex @@ -0,0 +1,18 @@ +\begin{titlepage} + \centering + {\scshape\Large Московский физико-технический институт \par} + \vspace{1cm} + {\scshape\Large Высшая школа программной инженерии \par} + \vspace{2cm} + {\huge \textbf{М7Б. Статистика идеального газа} \par} + \vspace{1.5cm} + {\Large \textit{Численное моделирование установления равновесия \\ + в системе молекул идеального газа в гравитационном поле} \par} + \vspace{2cm} + {\Large Выполнили студенты Б13-402: \par} + {\Large Жердев Егор \par} + {\Large Савельев Данил \par} + \vfill + {\large Долгопрудный \par} + {\large \today \par} +\end{titlepage} From eba52a52d632ebf951a1e13cd0bf0675882069fe Mon Sep 17 00:00:00 2001 From: Zherdev Egor <56653555+MrEndor@users.noreply.github.com> Date: Wed, 10 Dec 2025 01:21:21 +0300 Subject: [PATCH 6/6] feat(m7b): implementation of the m7b projec --- src/main.py | 6 + src/models/ideal_gas/__init__.py | 204 +++++++++++++++++++++ src/models/ideal_gas/charts.py | 225 +++++++++++++++++++++++ src/models/ideal_gas/config.py | 36 ++++ src/models/ideal_gas/objects.py | 296 +++++++++++++++++++++++++++++++ src/models/ideal_gas/utils.py | 71 ++++++++ tests/m7b/__init__.py | 0 tests/m7b/conftest.py | 26 +++ tests/m7b/test_simulation.py | 260 +++++++++++++++++++++++++++ 9 files changed, 1124 insertions(+) create mode 100644 src/models/ideal_gas/__init__.py create mode 100644 src/models/ideal_gas/charts.py create mode 100644 src/models/ideal_gas/config.py create mode 100644 src/models/ideal_gas/objects.py create mode 100644 src/models/ideal_gas/utils.py create mode 100644 tests/m7b/__init__.py create mode 100644 tests/m7b/conftest.py create mode 100644 tests/m7b/test_simulation.py diff --git a/src/main.py b/src/main.py index 947693b..d0cfb45 100644 --- a/src/main.py +++ b/src/main.py @@ -1,6 +1,7 @@ import streamlit from models.billiard import page as billiard_page +from models.ideal_gas import page as ideal_gas_page from models.pendulum import page as pendulum_page from models.rolling_ball import page as rolling_ball_page from models.stone_flight import page as stone_flight_page @@ -18,6 +19,11 @@ def main() -> None: streamlit.Page( pendulum_page, title="M5 Физический маятник", url_path="pendulum" ), + streamlit.Page( + ideal_gas_page, + title="M7Б Статистика идеального газа со столкновениями частиц", + url_path="ideal_gas", + ), ]) pages.run() diff --git a/src/models/ideal_gas/__init__.py b/src/models/ideal_gas/__init__.py new file mode 100644 index 0000000..930e586 --- /dev/null +++ b/src/models/ideal_gas/__init__.py @@ -0,0 +1,204 @@ +import numpy as np +import streamlit as st + +from models.ideal_gas.charts import ( + create_3d_particle_positions_chart, + create_energy_evolution_chart, + create_height_distribution_chart, + create_temperature_evolution_chart, + create_velocity_distribution_chart, +) +from models.ideal_gas.config import SimulationConfig +from models.ideal_gas.objects import IdealGasSimulation +from models.ideal_gas.utils import ( + calculate_barometric_formula, + calculate_maxwell_distribution, +) + + +def page() -> None: # noqa: PLR0915, PLR0914 + st.set_page_config( + page_title="М7Б. Статистика идеального газа со столкновениями частиц", + layout="wide", + ) + st.title("М7Б. Статистика идеального газа со столкновениями частиц") + + with st.sidebar: + st.header("Параметры симуляции") + + num_particles = st.slider( + "Количество молекул", + min_value=50, + max_value=400, + value=150, + step=50, + help=( + "Меньше частиц - быстрее симуляция. " + "100–200 обычно достаточно, чтобы увидеть распределения." + ), + ) + + container_height = st.slider( + "Высота сосуда (м)", + min_value=0.5, + max_value=3.0, + value=1.5, + step=0.5, + ) + + container_radius = st.slider( + "Радиус сосуда (м)", + min_value=0.5, + max_value=2.0, + value=1.0, + step=0.5, + ) + + initial_velocity = st.slider( + "Начальная скорость молекул (м/с)", + min_value=1.0, + max_value=30.0, + value=10.0, + step=1.0, + ) + + simulation_time = st.slider( + "Время симуляции (с)", + min_value=0.5, + max_value=5.0, + value=2.0, + step=0.5, + help="Большее время - больше шагов и медленнее визуализация.", + ) + + dt = st.slider( + "Шаг времени (мс)", + min_value=0.5, + max_value=2.0, + value=1.0, + step=0.5, + help="Крупный шаг ускоряет расчёт, но делает траектории грубее.", + ) + + use_thermostat = st.checkbox( + "Использовать термостат", + value=False, + ) + + if use_thermostat: + target_temperature = st.slider( + "Температура термостата (K)", + min_value=100.0, + max_value=800.0, + value=300.0, + step=50.0, + ) + else: + target_temperature = None + + config = SimulationConfig( + num_particles=num_particles, + container_height=container_height, + container_radius=container_radius, + initial_velocity=initial_velocity, + simulation_time=simulation_time, + dt=dt / 1000.0, + use_thermostat=use_thermostat, + target_temperature=target_temperature, + ) + + if st.button("Запустить симуляцию", use_container_width=True): + with st.spinner("Выполняется симуляция молекулярной динамики..."): + simulation = IdealGasSimulation(config) + + positions_history, velocities_history, times = simulation.run() + + final_positions = positions_history[-1] + final_velocities = velocities_history[-1] + + kinetic_energy = ( + 0.5 + * config.particle_mass + * np.sum(final_velocities**2) + / config.num_particles + ) + temperature = 2.0 * kinetic_energy / (3.0 * config.k_B) + + max_speed = np.max(np.linalg.norm(final_velocities, axis=1)) + maxwell_speeds = np.linspace(0, max_speed * 1.2, 100) + maxwell_dist = calculate_maxwell_distribution( + maxwell_speeds, temperature, config.particle_mass + ) + + heights = np.linspace(0, config.container_height, 100) + scale_height = ( + config.k_B * temperature / (config.particle_mass * config.g) + ) + barometric_dist = calculate_barometric_formula( + heights, scale_height + ) + + st.success("Симуляция завершена") + + col1, col2, col3, col4 = st.columns(4) + with col1: + st.metric("Определенная температура", f"{temperature:.1f} K") + with col2: + st.metric("Масштаб высоты", f"{scale_height:.3f} м") + with col3: + mean_height = np.mean(final_positions[:, 2]) + st.metric("Средняя высота", f"{mean_height:.3f} м") + with col4: + mean_speed = np.mean(np.linalg.norm(final_velocities, axis=1)) + st.metric("Средняя скорость", f"{mean_speed:.2f} м/с") + + tab1, tab2, tab3, tab4, tab5 = st.tabs([ + "Распределение скоростей", + "Распределение высот", + "Эволюция энергии", + "Эволюция температуры", + "3D позиции частиц", + ]) + + with tab1: + st.subheader("Распределение Максвелла по скоростям") + chart = create_velocity_distribution_chart( + final_velocities, + maxwell_speeds, + maxwell_dist, + temperature, + ) + st.altair_chart(chart, use_container_width=True) + + with tab2: + st.subheader("Барометрическое распределение по высоте") + chart = create_height_distribution_chart( + final_positions[:, 2], + heights, + barometric_dist, + scale_height, + ) + st.altair_chart(chart, use_container_width=True) + + with tab3: + st.subheader("Эволюция энергии системы") + chart = create_energy_evolution_chart( + positions_history, velocities_history, times, config + ) + st.altair_chart(chart, use_container_width=True) + + with tab4: + st.subheader("Эволюция температуры") + chart = create_temperature_evolution_chart( + velocities_history, times, config + ) + st.altair_chart(chart, use_container_width=True) + + with tab5: + st.subheader("3D позиции молекул в конечном состоянии") + chart = create_3d_particle_positions_chart( + final_positions, config + ) + st.altair_chart(chart, use_container_width=True) + + st.divider() diff --git a/src/models/ideal_gas/charts.py b/src/models/ideal_gas/charts.py new file mode 100644 index 0000000..9237bec --- /dev/null +++ b/src/models/ideal_gas/charts.py @@ -0,0 +1,225 @@ +import altair as alt +import numpy as np +import pandas as pd + +from models.ideal_gas.config import SimulationConfig +from models.ideal_gas.utils import ( + calculate_speed_from_velocity, + create_statistics_dataframe, +) + + +def create_velocity_distribution_chart( + velocities: np.ndarray, + maxwell_speeds: np.ndarray, + maxwell_dist: np.ndarray, + temperature: float, +) -> alt.Chart: + speeds = calculate_speed_from_velocity(velocities) + + hist, bin_edges = np.histogram(speeds, bins=50, density=True) + bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2 + + sim_data = pd.DataFrame({ + "speed": bin_centers, + "probability": hist, + "source": "Simulation", + }) + + theory_data = pd.DataFrame({ + "speed": maxwell_speeds, + "probability": maxwell_dist, + "source": "Maxwell", + }) + + combined_data = pd.concat([sim_data, theory_data], ignore_index=True) + + return ( + alt.Chart(combined_data) + .mark_line(point=True) + .encode( + x=alt.X( + "speed:Q", title="Скорость (m/s)", scale=alt.Scale(zero=False) + ), + y=alt.Y("probability:Q", title="Вероятность"), + color=alt.Color( + "source:N", + title="Источник", + scale=alt.Scale( + domain=["Simulation", "Maxwell"], + range=["#1f77b4", "#ff7f0e"], + ), + ), + strokeDash=alt.StrokeDash( + "source:N", + scale=alt.Scale( + domain=["Simulation", "Maxwell"], range=[[1, 0], [5, 5]] + ), + ), + ) + .properties( + width=600, + height=400, + title=f"Распределение Максвелла (T={temperature:.1f}K)", + ) + ) + + +def create_height_distribution_chart( + heights: np.ndarray, + heights_theory: np.ndarray, + barometric_dist: np.ndarray, + scale_height: float, +) -> alt.Chart: + hist, bin_edges = np.histogram(heights, bins=40, density=True) + bin_centers = (bin_edges[:-1] + bin_edges[1:]) / 2 + + sim_data = pd.DataFrame({ + "height": bin_centers, + "probability": hist, + "source": "Simulation", + }) + + theory_data = pd.DataFrame({ + "height": heights_theory, + "probability": barometric_dist, + "source": "Barometric", + }) + + combined_data = pd.concat([sim_data, theory_data], ignore_index=True) + + return ( + alt.Chart(combined_data) + .mark_line(point=True) + .encode( + x=alt.X("height:Q", title="Высота (m)"), + y=alt.Y("probability:Q", title="Плотность вероятности"), + color=alt.Color( + "source:N", + title="Модель", + scale=alt.Scale( + domain=["Simulation", "Barometric"], + range=["#1f77b4", "#2ca02c"], + ), + ), + strokeDash=alt.StrokeDash( + "source:N", + scale=alt.Scale( + domain=["Simulation", "Barometric"], range=[[1, 0], [5, 5]] + ), + ), + ) + .properties( + width=600, + height=400, + title=f"Барометрическая формула (H0={scale_height:.3f}m)", + ) + ) + + +def create_energy_evolution_chart( + positions_history: np.ndarray, + velocities_history: np.ndarray, + times: np.ndarray, + config: SimulationConfig, +) -> alt.Chart: + stats_df = create_statistics_dataframe( + positions_history, velocities_history, config.particle_mass, times + ) + + pe_initial = stats_df["potential_energy"].iloc[0] + + energy_df = pd.DataFrame({ + "time": stats_df["time"], + "Potential": ( + stats_df["potential_energy"] / abs(pe_initial) + if pe_initial != 0 + else stats_df["potential_energy"] + ), + }) + + energy_melted = energy_df.melt( + id_vars=["time"], var_name="energy_type", value_name="normalized_value" + ) + + return ( + alt.Chart(energy_melted) + .mark_line() + .encode( + x=alt.X("time:Q", title="Время (s)"), + y=alt.Y("normalized_value:Q", title="Нормализованная энергия"), + color=alt.Color( + "energy_type:N", + title="Компонента", + scale=alt.Scale( + domain=["Potential"], + range=["#ff7f0e"], + ), + ), + ) + .properties(width=600, height=400, title="Эволюция энергии системы") + ) + + +def create_temperature_evolution_chart( + velocities_history: np.ndarray, + times: np.ndarray, + config: SimulationConfig, +) -> alt.Chart: + temps = [] + for vel_step in velocities_history: + kinetic_per_particle = ( + 0.5 + * config.particle_mass + * np.sum(vel_step**2) + / config.num_particles + ) + temp = 2.0 * kinetic_per_particle / (3.0 * config.k_B) + temps.append(temp) + + df = pd.DataFrame({"time": times, "temperature": temps}) + + return ( + alt.Chart(df) + .mark_line(point=True) + .encode( + x=alt.X("time:Q", title="Время (s)"), + y=alt.Y("temperature:Q", title="Температура (K)"), + color=alt.value("#d62728"), + ) + .properties(width=600, height=400, title="Эволюция температуры") + ) + + +def create_3d_particle_positions_chart( + positions: np.ndarray, + config: SimulationConfig, +) -> alt.Chart: + df = pd.DataFrame({ + "x": positions[:, 0], + "y": positions[:, 1], + "z": positions[:, 2], + }) + + height_scale = alt.Scale( + zero=False, domainMin=0, domainMax=config.container_height + ) + + return ( + alt.Chart(df) + .mark_circle(size=50, opacity=0.6) + .encode( + x=alt.X("x:Q", title="X (м)", scale=alt.Scale(zero=False)), + y=alt.Y("z:Q", title="Z - Высота (м)", scale=height_scale), + color=alt.Color( + "z:Q", + title="Высота (m)", + scale=alt.Scale( + scheme="viridis", + domainMin=0, + domainMax=config.container_height, + ), + ), + ) + .properties(width=500, height=400, title="Позиции молекул (XZ сечение)") + ) diff --git a/src/models/ideal_gas/config.py b/src/models/ideal_gas/config.py new file mode 100644 index 0000000..4f44c2e --- /dev/null +++ b/src/models/ideal_gas/config.py @@ -0,0 +1,36 @@ +from dataclasses import dataclass + +MAX_DT = 0.01 + + +@dataclass +class SimulationConfig: + num_particles: int + + container_height: float + container_radius: float + + initial_velocity: float + + simulation_time: float + dt: float + + use_thermostat: bool = False + target_temperature: float | None = None + + g: float = 9.81 + k_B: float = 1.38e-23 # noqa: N815 + + initial_height: float = 0.1 + particle_mass: float = 6.63e-26 + particle_diameter: float = 3.4e-10 + + def __post_init__(self): + if self.num_particles <= 0: + raise ValueError("Количество молекул должно быть положительным") + if self.dt <= 0 or self.dt > MAX_DT: + raise ValueError(f"Шаг времени должен быть <= {MAX_DT}") + if self.initial_height > self.container_height: + raise ValueError( + "Начальная высота не может быть больше высоты сосуда" + ) diff --git a/src/models/ideal_gas/objects.py b/src/models/ideal_gas/objects.py new file mode 100644 index 0000000..117f975 --- /dev/null +++ b/src/models/ideal_gas/objects.py @@ -0,0 +1,296 @@ +import numpy as np + +from models.ideal_gas.config import SimulationConfig + + +class IdealGasSimulation: + def __init__(self, config: SimulationConfig): + self.config = config + self.num_steps = int(config.simulation_time / config.dt) + + self.collision_pairs_checked = 0 + self.collisions_detected = 0 + + self.cell_size = config.particle_diameter * 2.5 + self.cells_per_axis = int(config.container_radius / self.cell_size) + 1 + self.cells = {} + + def run(self) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + positions = np.zeros((self.config.num_particles, 3), dtype=np.float32) + velocities = np.zeros((self.config.num_particles, 3), dtype=np.float32) + self._initialize_particles(positions, velocities) + + positions_history = [] + velocities_history = [] + times = [] + + for step in range(self.num_steps): + t = step * self.config.dt + times.append(t) + + positions_history.append(positions.copy()) + velocities_history.append(velocities.copy()) + + self._velocity_verlet_step(positions, velocities) + + collided_with_walls = self._handle_collisions(positions, velocities) + + if ( + self.config.use_thermostat + and self.config.target_temperature is not None + ): + self._apply_thermostat_at_wall(velocities, collided_with_walls) + + return ( + np.array(positions_history), + np.array(velocities_history), + np.array(times), + ) + + def _initialize_particles( + self, positions: np.ndarray, velocities: np.ndarray + ) -> None: + num_particles = self.config.num_particles + + theta = np.random.uniform(0, 2 * np.pi, num_particles) + radius_factor = self.config.container_radius * 0.9 + r = np.sqrt(np.random.uniform(0, 1, num_particles)) * radius_factor + + positions[:, 0] = r * np.cos(theta) + positions[:, 1] = r * np.sin(theta) + positions[:, 2] = np.random.uniform( + 0, self.config.initial_height, num_particles + ) + + phi = np.random.uniform(0, 2 * np.pi, num_particles) + cos_theta = np.random.uniform(-1, 1, num_particles) + sin_theta = np.sqrt(1 - cos_theta**2) + + v0 = self.config.initial_velocity + velocities[:, 0] = v0 * sin_theta * np.cos(phi) + velocities[:, 1] = v0 * sin_theta * np.sin(phi) + velocities[:, 2] = v0 * cos_theta + + def _velocity_verlet_step( + self, positions: np.ndarray, velocities: np.ndarray + ) -> None: + dt = self.config.dt + g = self.config.g + + positions[:, 0] += velocities[:, 0] * dt + positions[:, 1] += velocities[:, 1] * dt + + positions[:, 2] += velocities[:, 2] * dt - 0.5 * g * dt**2 + + velocities[:, 2] -= g * dt + + def _handle_collisions( + self, positions: np.ndarray, velocities: np.ndarray + ) -> np.ndarray: + collided_with_walls = self._handle_wall_collisions( + positions, velocities + ) + + self._handle_intermolecular_collisions_optimized(positions, velocities) + + return collided_with_walls + + def _handle_wall_collisions( + self, positions: np.ndarray, velocities: np.ndarray + ) -> np.ndarray: + collided_indices = [] + + r = np.sqrt(positions[:, 0] ** 2 + positions[:, 1] ** 2) + collided = r > self.config.container_radius + + if np.any(collided): + collided_indices.extend(np.where(collided)[0]) + cos_phi = np.divide( + positions[collided, 0], + r[collided], + where=r[collided] != 0, + out=np.zeros_like(positions[collided, 0]), + ) + sin_phi = np.divide( + positions[collided, 1], + r[collided], + where=r[collided] != 0, + out=np.zeros_like(positions[collided, 1]), + ) + + v_r = ( + velocities[collided, 0] * cos_phi + + velocities[collided, 1] * sin_phi + ) + v_t = ( + -velocities[collided, 0] * sin_phi + + velocities[collided, 1] * cos_phi + ) + + v_r *= -1 + + velocities[collided, 0] = v_r * cos_phi - v_t * sin_phi + velocities[collided, 1] = v_r * sin_phi + v_t * cos_phi + + positions[collided, 0] *= self.config.container_radius / r[collided] + positions[collided, 1] *= self.config.container_radius / r[collided] + + collided_floor = positions[:, 2] < 0 + if np.any(collided_floor): + collided_indices.extend(np.where(collided_floor)[0]) + velocities[collided_floor, 2] *= -1 + positions[collided_floor, 2] = 0 + + collided_ceiling = positions[:, 2] > self.config.container_height + if np.any(collided_ceiling): + collided_indices.extend(np.where(collided_ceiling)[0]) + velocities[collided_ceiling, 2] *= -1 + positions[collided_ceiling, 2] = self.config.container_height + + return np.unique(collided_indices) + + def _handle_intermolecular_collisions_optimized( # noqa: PLR0912 + self, positions: np.ndarray, velocities: np.ndarray + ) -> None: + self.cells.clear() + + for i, pos in enumerate(positions): + ix = int((pos[0] + self.config.container_radius) / self.cell_size) + iy = int((pos[1] + self.config.container_radius) / self.cell_size) + iz = int(pos[2] / self.cell_size) + + ix = max(0, min(ix, 2 * self.cells_per_axis - 1)) + iy = max(0, min(iy, 2 * self.cells_per_axis - 1)) + iz = max(0, min(iz, self.cells_per_axis)) + + cell_key = (ix, iy, iz) + if cell_key not in self.cells: + self.cells[cell_key] = [] + self.cells[cell_key].append(i) + + d_collision = self.config.particle_diameter + checked_pairs = set() + + for cell_key, particles in self.cells.items(): # noqa: PLR1702 + ix, iy, iz = cell_key + + for i in range(len(particles)): + for j in range(i + 1, len(particles)): + p1, p2 = particles[i], particles[j] + pair = (min(p1, p2), max(p1, p2)) + if pair not in checked_pairs: + checked_pairs.add(pair) + self._check_and_resolve_collision( + p1, p2, positions, velocities, d_collision + ) + + for dix in [-1, 0, 1]: + for diy in [-1, 0, 1]: + for diz in [-1, 0, 1]: + if dix == 0 and diy == 0 and diz == 0: + continue + + neighbor_key = (ix + dix, iy + diy, iz + diz) + if neighbor_key in self.cells: + for p1 in particles: + for p2 in self.cells[neighbor_key]: + if p1 < p2: + pair = (p1, p2) + if pair not in checked_pairs: + checked_pairs.add(pair) + self._check_and_resolve_collision( + p1, + p2, + positions, + velocities, + d_collision, + ) + + def _check_and_resolve_collision( + self, + i: int, + j: int, + positions: np.ndarray, + velocities: np.ndarray, + d_collision: float, + ) -> None: + r = positions[j] - positions[i] + dist_sq = np.sum(r**2) + + if dist_sq < d_collision**2: + dist = np.sqrt(dist_sq) + if dist > 0: + self.collisions_detected += 1 + self._resolve_collision_inline( + i, j, positions, velocities, r, dist + ) + + def _resolve_collision_inline( + self, + i: int, + j: int, + positions: np.ndarray, + velocities: np.ndarray, + r: np.ndarray, + dist: float, + ) -> None: + n = r / dist + + v_rel = velocities[i] - velocities[j] + v_rel_n = np.dot(v_rel, n) + + if v_rel_n >= 0: + return + + delta_v = v_rel_n * n + velocities[i] -= delta_v + velocities[j] += delta_v + + overlap = self.config.particle_diameter - dist + if overlap > 0: + shift = (overlap / 2 + 1e-6) * n + positions[i] -= shift + positions[j] += shift + + def _apply_thermostat_at_wall( + self, velocities: np.ndarray, collided_indices: np.ndarray + ) -> None: + if not self.config.target_temperature or len(collided_indices) == 0: + return + + sigma = np.sqrt( + self.config.k_B + * self.config.target_temperature + / self.config.particle_mass + ) + velocities[collided_indices] = np.random.normal( + 0, sigma, size=(len(collided_indices), 3) + ) + + +class EquilibriumAnalyzer: + def __init__(self, config: SimulationConfig): + self.config = config + + def calculate_temperature(self, velocities: np.ndarray) -> float: + kinetic_energy = ( + 0.5 + * self.config.particle_mass + * np.sum(velocities**2) + / self.config.num_particles + ) + return 2.0 * kinetic_energy / (3.0 * self.config.k_B) + + def calculate_pressure( + self, + positions: np.ndarray, + velocities: np.ndarray, + collisions_count: int, + ) -> float: + n_density = self.config.num_particles / ( + np.pi + * self.config.container_radius**2 + * self.config.container_height + ) + temperature = self.calculate_temperature(velocities) + return n_density * self.config.k_B * temperature diff --git a/src/models/ideal_gas/utils.py b/src/models/ideal_gas/utils.py new file mode 100644 index 0000000..ac82616 --- /dev/null +++ b/src/models/ideal_gas/utils.py @@ -0,0 +1,71 @@ +import numpy as np +import pandas as pd + + +def calculate_maxwell_distribution( + speeds: np.ndarray, temperature: float, particle_mass: float +) -> np.ndarray: + k_b = 1.38e-23 + + if temperature <= 0 or particle_mass <= 0: + return np.zeros_like(speeds) + + sqrt_term = np.sqrt(particle_mass / (2 * np.pi * k_b * temperature)) + norm_factor = 4 * np.pi * (sqrt_term**3) + exp_arg = -particle_mass * speeds**2 / (2 * k_b * temperature) + + return norm_factor * speeds**2 * np.exp(exp_arg) + + +def calculate_barometric_formula( + heights: np.ndarray, scale_height: float +) -> np.ndarray: + if scale_height <= 0: + return np.zeros_like(heights) + + return (1.0 / scale_height) * np.exp(-heights / scale_height) + + +def calculate_speed_from_velocity(velocities: np.ndarray) -> np.ndarray: + return np.linalg.norm(velocities, axis=1) + + +def create_statistics_dataframe( + positions: np.ndarray, + velocities: np.ndarray, + particle_mass: float, + times: np.ndarray, +) -> pd.DataFrame: + num_steps = len(times) + + data = { + "time": [], + "kinetic_energy": [], + "potential_energy": [], + "total_energy": [], + "temperature": [], + "mean_height": [], + } + + g = 9.81 + k_b = 1.38e-23 + + for step in range(num_steps): + pos = positions[step] + vel = velocities[step] + + kinetic_energy = 0.5 * particle_mass * np.sum(vel**2) + + potential_energy = particle_mass * g * np.sum(pos[:, 2]) + + kinetic_per_particle = kinetic_energy / len(pos) + temperature = 2.0 * kinetic_per_particle / (3.0 * k_b) + + data["time"].append(times[step]) + data["kinetic_energy"].append(kinetic_energy) + data["potential_energy"].append(potential_energy) + data["total_energy"].append(kinetic_energy + potential_energy) + data["temperature"].append(temperature) + data["mean_height"].append(np.mean(pos[:, 2])) + + return pd.DataFrame(data) diff --git a/tests/m7b/__init__.py b/tests/m7b/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/m7b/conftest.py b/tests/m7b/conftest.py new file mode 100644 index 0000000..d0e5b8e --- /dev/null +++ b/tests/m7b/conftest.py @@ -0,0 +1,26 @@ +import pytest + +from models.ideal_gas.config import SimulationConfig +from models.ideal_gas.objects import IdealGasSimulation + + +@pytest.fixture +def basic_config(): + return SimulationConfig( + num_particles=100, + container_height=2.0, + container_radius=1.0, + initial_velocity=10.0, + simulation_time=1.0, + dt=0.01, + ) + + +@pytest.fixture +def simulation(basic_config): + return IdealGasSimulation(basic_config) + + +@pytest.fixture +def simulation_results(simulation): + return simulation.run() diff --git a/tests/m7b/test_simulation.py b/tests/m7b/test_simulation.py new file mode 100644 index 0000000..8e444bf --- /dev/null +++ b/tests/m7b/test_simulation.py @@ -0,0 +1,260 @@ +import numpy as np +from scipy.integrate import trapezoid + +from models.ideal_gas.config import SimulationConfig +from models.ideal_gas.objects import EquilibriumAnalyzer, IdealGasSimulation +from models.ideal_gas.utils import ( + calculate_barometric_formula, + calculate_maxwell_distribution, + calculate_speed_from_velocity, +) + + +def test_simulation_output_shapes(basic_config): + sim = IdealGasSimulation(basic_config) + positions, velocities, times = sim.run() + + num_steps = int(basic_config.simulation_time / basic_config.dt) + + assert positions.shape == (num_steps, basic_config.num_particles, 3) + assert velocities.shape == (num_steps, basic_config.num_particles, 3) + assert times.shape == (num_steps,) + + +def test_particles_stay_in_bounds(basic_config): + sim = IdealGasSimulation(basic_config) + positions, _, _ = sim.run() + + final_positions = positions[-1] + + assert np.all(final_positions[:, 2] >= 0), "Some particles went below floor" + assert np.all(final_positions[:, 2] <= basic_config.container_height), ( + "Some particles went above ceiling" + ) + + r = np.sqrt(final_positions[:, 0] ** 2 + final_positions[:, 1] ** 2) + assert np.all(r <= basic_config.container_radius * 1.01), ( + "Some particles outside cylinder" + ) + + +def test_time_progression(basic_config): + sim = IdealGasSimulation(basic_config) + _, _, times = sim.run() + + assert np.all(np.diff(times) > 0), "Time should increase monotonically" + assert times[0] == 0.0, "Time should start at 0" + assert times[-1] <= basic_config.simulation_time, ( + "Final time should not exceed simulation_time" + ) + + +def test_total_energy_conserved(basic_config): + sim = IdealGasSimulation(basic_config) + positions, velocities, _ = sim.run() + + total_energies = [] + g = basic_config.g + m = basic_config.particle_mass + + for pos_step, vel_step in zip(positions, velocities, strict=False): + kinetic_energy = 0.5 * m * np.sum(vel_step**2) + potential_energy = m * g * np.sum(pos_step[:, 2]) + total_energies.append(kinetic_energy + potential_energy) + + total_energies = np.array(total_energies) + + initial_energy = total_energies[0] + + rel_energy_error = np.max(np.abs(total_energies - initial_energy)) / np.abs( + initial_energy + ) + assert rel_energy_error < 0.05, ( + f"Energy conservation error too large: {rel_energy_error:.2%}" + ) + + +def test_kinetic_energy_decreases_initially(basic_config): + sim = IdealGasSimulation(basic_config) + _, velocities, _ = sim.run() + + m = basic_config.particle_mass + kinetic_energies = [] + for vel_step in velocities: + kinetic_energy = 0.5 * m * np.sum(vel_step**2) + kinetic_energies.append(kinetic_energy) + + kinetic_energies = np.array(kinetic_energies) + + assert kinetic_energies[0] > kinetic_energies[-1], ( + "KE should decrease (particles rise against gravity)" + ) + + +def test_potential_energy_increases(basic_config): + sim = IdealGasSimulation(basic_config) + positions, _, _ = sim.run() + + g = basic_config.g + m = basic_config.particle_mass + + potential_energies = [] + for pos_step in positions: + potential_energy = m * g * np.sum(pos_step[:, 2]) + potential_energies.append(potential_energy) + + potential_energies = np.array(potential_energies) + + assert potential_energies[-1] > potential_energies[0], ( + "PE should increase (particles rise)" + ) + + +def test_mechanical_energy_conservation_no_collisions(): + config = SimulationConfig( + num_particles=10, + container_height=5.0, + container_radius=2.0, + initial_velocity=5.0, + simulation_time=0.5, + dt=0.01, + ) + + sim = IdealGasSimulation(config) + positions, velocities, _ = sim.run() + + g = config.g + m = config.particle_mass + + total_energies = [] + for pos_step, vel_step in zip(positions, velocities, strict=False): + kinetic_energy = 0.5 * m * np.sum(vel_step**2) + potential_energy = m * g * np.sum(pos_step[:, 2]) + total_energies.append(kinetic_energy + potential_energy) + + total_energies = np.array(total_energies) + initial_energy = total_energies[0] + + rel_energy_error = np.max(np.abs(total_energies - initial_energy)) / np.abs( + initial_energy + ) + assert rel_energy_error < 0.02, ( + f"Energy drift too large: {rel_energy_error:.2%}" + ) + + +def test_temperature_calculation(basic_config): + sim = IdealGasSimulation(basic_config) + _, velocities, _ = sim.run() + + analyzer = EquilibriumAnalyzer(basic_config) + temperature = analyzer.calculate_temperature(velocities[-1]) + + assert temperature > 0, "Temperature should be positive" + assert temperature < 10000, "Temperature seems unreasonably high" + + +def test_pressure_calculation(basic_config): + sim = IdealGasSimulation(basic_config) + positions, velocities, _ = sim.run() + + analyzer = EquilibriumAnalyzer(basic_config) + pressure = analyzer.calculate_pressure(positions[-1], velocities[-1], 0) + + assert pressure > 0, "Pressure should be positive" + + +def test_maxwell_distribution_normalization(): + speeds = np.linspace(0, 1000, 1000) + maxwell = calculate_maxwell_distribution(speeds, 300, 6.63e-26) + + integral = trapezoid(maxwell, speeds) + assert 0.9 < integral < 1.1, ( + f"Maxwell integral should be ~1, got {integral}" + ) + + +def test_barometric_formula_normalization(): + heights = np.linspace(0, 5, 100) + barometric = calculate_barometric_formula(heights, 1.0) + + integral = trapezoid(barometric, heights) + assert 0.9 < integral < 1.1, ( + f"Barometric integral should be ~1, got {integral}" + ) + + +def test_speed_calculation(): + velocities = np.array([ + [3, 4, 0], # speed = 5 + [0, 0, 5], # speed = 5 + [1, 1, 1], # speed = sqrt(3) + ]) + + speeds = calculate_speed_from_velocity(velocities) + + assert np.isclose(speeds[0], 5.0), "Speed calculation for [3,4,0]" + assert np.isclose(speeds[1], 5.0), "Speed calculation for [0,0,5]" + assert np.isclose(speeds[2], np.sqrt(3)), "Speed calculation for [1,1,1]" + + +def test_simulation_doesnt_diverge(basic_config): + sim = IdealGasSimulation(basic_config) + positions, velocities, _ = sim.run() + + assert np.all(np.isfinite(positions)), "Positions contain non-finite values" + assert np.all(np.isfinite(velocities)), ( + "Velocities contain non-finite values" + ) + + assert np.all(np.abs(velocities) < 1000), ( + "Velocities are unreasonably large" + ) + + +def test_no_negative_kinetic_energy(basic_config): + sim = IdealGasSimulation(basic_config) + _, velocities, _ = sim.run() + + for vel_step in velocities: + kinetic_energy = np.sum(vel_step**2) + assert kinetic_energy >= 0, "Kinetic energy cannot be negative" + + +def test_gravity_pulls_downward(basic_config): + config = SimulationConfig( + num_particles=1, + container_height=10.0, + container_radius=5.0, + initial_velocity=20.0, + initial_height=0.0, + simulation_time=1.0, + dt=0.01, + ) + + sim = IdealGasSimulation(config) + positions, velocities, _ = sim.run() + + initial_v_z = velocities[0, 0, 2] + final_v_z = velocities[-1, 0, 2] + + if initial_v_z <= 0: + velocity_changed = abs(final_v_z - initial_v_z) > 0.1 + + assert velocity_changed, "Gravity should affect velocity" + return + + velocity_decreased = False + for i in range(1, min(10, len(velocities))): + current_v_z = velocities[i, 0, 2] + if current_v_z < initial_v_z: + velocity_decreased = True + break + + assert velocity_decreased, "Gravity should reduce upward velocity" + + initial_z = positions[0, 0, 2] + max_z = np.max(positions[:, 0, 2]) + assert max_z > initial_z, ( + "Particle should rise due to initial upward velocity" + )

NQRsGLT2usXzK(EAN43{1#*{nPqqzIq zttrov3dBJG1KWO-0z($lBqUoF>5hx|RfyH19D zkIE8an4o1Q4kF_T4Qa86IN)+1gS{zyHx}{x7^Qi)f^lRn#I*S`SpUR~MX>tu2{x}B zqBx>BH;UH%Tmd4T*gzq~Kql;dwT*xduNW4jf|Lqc-4=U2Fj&d+g&30Z%P7d3H&C9l z-itj6n2QLPY>!k|@Xk}~3|$M+cS*vft3shckBlZ`wFw$|28ef}MUVNQJHkX;{DRKNY0+|0yBv6D9 z*R+F!t@mjriw!qb8T(0g0%TitMkN`uXQEv*mf-)`faafUNiY#gBVwBC8peoDL3#nAS~ zH66v&+>h7U(#b9 z=5Rb}AZGG5Go%g`Gm)kqzlht3zUI5dEompH)uugD31URK?b$9q^~y1q!KcG zvuWQ}4Kz5h-t@l0)Bl-jAN>{-0@%mX)&9)p1P)_-Rtf@SKaQwGnoG5MA8YW}v3GV3 zV8UubTcQX+ygH50_OShSAiZ_Ksn0>R#sZ27!>@%$|8gWg!x=`ine-RQ+&-!@neA>( z5VhWlvPSTmDw_v<6H23BUn!{*m*2piY#>_553-Yx_iXG@$qY*#+@9p-60JH#Z9@gy zMwnJTEXNA>`jPX~=-1s_9T+!uHX5FLgOC>J&2r(;R8TLAE`S;Ps3VUqLA{m6ikTde{K7Y3A)hn3mHDEp~?U|2hvs?%EN|`n_5VZT~xMFukQX80HW8q zT7sWb<+y%EYskcRSNBGPTG}AsYWe3bUZOF@_U!w4xPb*cL;yHOEEDsp{mq~hx1>GO zUh&KK_OXZg*eRbgNMOeQ5w{GH!06)>jy>#ox zHETVcDM6HNB&u637yK^C_ekR6Ir3fOS(0z>HV55mPXWRx?x#gJP_) z2F|fJ+ykjIII*!d><>F37N3F!mPtIHdl7lo0W=s#Khxe-VusuI(bVgF`!0 zV;r*oJwq@@nmx+Gyt3!M2TmU0#vgiyqiQ1O7Hv7fnv3lIkZ)fcji2+IQ13=N?<`DY z?-rxhv}H_foq&dR@f7VBS}g`?ag{zJx%QZrdyHv&sL7f`k+K`@sq$Y zBA8~OVvN2OExN>X6s4)Nc>lU)U2AAV9bRSFKmn_zM9~TbEYuQ(P^p&!@!%@8cQQTr{KSK7AHT2- z|F;^!4>O^`tymZX6L0IYci2ubx{9{5O-y-V)Gv0W>*q!4k8CM~rq=I~3PM71 zGiXZukQuv*wAzl3P8jUmUDvnJ3#?v{9qpHwdrfqmHGW^^BjM8m4(yUSYNcoFz=aa7 zVm0f$uvEjg`NkKO+!`q7{3CTarc;tVWZtorv#>Y-wV>dhjpFhmx5&3aB^Xp~$pp;&Jj^l03X*rY6}c z_9l;T*rwtK*QnT%U|azM;b&lX<>psEhgoRiJ<X`qW#F3@x9^^U`5tG@%3>q8yok0^^X-E(N=9jBtw{vhHvA zb3T|^nTT2J1%G-+HRp|d+MV~d$LXu&+= z;h9wl+okSjG83z`P^8+tHNkV^aNwP#tXZIg<_@+xSwtGzl8QTk7HF*H<2d%}*Bam0 z5-eVra%g7i@1o8YVHdrW#PZTJpx-kl$A<<7Vs@==%je&NiC^8P;ISZUyubIV-bk|!|IMraK4 zgd4&_=5p0XPj7?T{tNR<<_q~pIh=EJl$r9Ujf?KV!zWcJA9!%hj}~FM4oTm4!IpV} z^aaeUW-|1BDh0t7q4t+;xRN0j^&dz#KxBaYO;o9-B2LZT<_F4e{m90*+d|)Y(wH-S z(4OEn;QL26Va+i-VG6`5DxBHHdNKZ0VpNx$eXaIzWax>QxpMTeG>dnQ7kpf1urfYy z-j&(mD9T>yn*Qb7zgVH^Al)V*xD##7yMEMvi7vdkg}zH!YHi4LI6r8BVjd>2&n#L4 zzt2{df0ch&^rQ}fP=6%mAt=LM&P_}H*!#SGyF|SG^f`_vPY_GJ#!KRSqHuT^u-|OB zhTA1ozd5BU@yz>*SRf$gWmJ=((*lO01*p$8&nI@!9TvKHo0w%`{8d*L;42L2zTD07 zbv<#sQ8jZQ2Cd>0RCE7|f4qhhNjcn1`aWo6h)B$@?{kEcui)e|=Ivu<@7#M2{`uN_ z*ls77O_sOp90FO0Iyexq(+C^;I2MG3Sm)PG}P<9=w z*+dJ+aA6Zz1Q?|vhBVp%iftVHadEDwj=ki27F-4S>y4{nIOJgttX0}a6xu&MMO=N9k;w~78WQb@*~Ug2v_GY z?G&*OO7}*ayCc#{3kt1(okw6AEs*3J5l{f9baks3i)*q2|5;2)lfw6!jyKJC5}V_X zO0t4>hobYTtsO)m5dhi`5UddbxeVFax%^z-tBIe-B5nL4f;ZL+iDe3K#+*_{73RCB zd*Bbx1|JDIW}oL$ZA8LZZ^mE+@E21O!o0XGD8VsxKq&tG@wDBV=j^+0lK>jJHHOQ@ zbEB8e6BAvUUx-Qhk|vV4(@SHlYBM<$Z0%KsGC?HdgQ+uB}TIIW>*L?NdY;w2=D$!>fC&JP(G1rh{D?3})5qvwY5YT>= zn)^e=8kPB&vcT$6wu!7!a+h>(V*PUa)kZOV&{D*eIv!a63!vdi?5hh?j~-W^z->p1 zEyg3LCQo@UwV>!Kk zHcAVT7WSlqM>uJfLYxvlf=mwmPV*c8V&e2^^u}rNA~pcr<)W!T&Xll*uA5xP2RZ(r zyKb@5AO=q1)Ct4=?;1w@B{23CR&TB7t?-}<=@>})_KIE*<*E8s%8Gx3XQ9)qP`LsO z$e&(HE9h9FEAe>#Tu}w8wz8h4X!191rjWtPe zH<~?CC9uYCJn9dl>0gv2vW|nNMOqlaE!x|C$R}sQ%MT7iR!(sctfEJAB#xIi#R*<|r>oYASG_=}z)4x@A1F zp@FWtdt+qgPXU?nc~HA)tyX0A^0beBXoj08B_(aHAb-j5eIM(RZBT^-q3qY+W=Hij z#(+yo6tn?z+!7SG)WC&G{1byEY}bgT5VsKZtn)X&ULc|1{-`&rG@&Krs5JsTFz6DY zAN{}s-IV<YT8g2Di={SLp_&=|129by9q>l0C939Q!PkEyaq}-hbxQ>^K1AkZ@wL1kw4wM{Wvz!%IED1V>zcWc;ku8R#kJCsyoT;_51{a+WmqVl< z(ds;i2Qf&NpikOD(Q%!(@g$~+zN&vbKd3}wMddur)F3}3gb){tM`g1#sA-zFsGi@m zfLi*&qkb*mLKL4)XM`Rmt!70*>d~5J(J&C56mNei!Sr?_vc(TYucC~llJLm zxe=KjDs@R~xGw|Wd$LU`&U-l|VL^f{<@g&kqK@He!T4 zx)1?I5nm=UDjNnr#M40XnG1?b0{)y&A6i7dw2M;$?d*F@gzdoqNtS`9kmoYvZh~?u zwQ?*b)86Rz0+mlB;N;qAxit%`G2Sh&@?8>1VdX-qDgJwG2%$3v2_y*oK%|{%V=pgh zg-C}h-=~1YY&MRN6f-D+|@X19QdNGp* zKNsIW38PZ2%eW#w+TuJk67eX$^2*F|39DVkYctiL)!=dqH*}T9s4^Fy4fBmHs(x;A zqE7`BSNt5B-L^0MQWj{bT^x%WSt1utDR`b5?2cwkol3t9TJb+tlIUSyr5H-LAw$-)*_f(sy#6eWJodXt#z0 z&QCv6ThP(mxn&~S?@_IE5D;F}2FTbN`ah10_9X(K)~2r%1LTiyQWrofgfhw!Q@M(O zkeN-@ZUUq&Q75!flP*lblTqQE(s+=Tha0l9=Bs_YjbWDfAaM`-pa6xc-r7M3Fs^GxslrrNQ#5q8;ngjAIWi;$5;Gu}*;IFV*jld{eiA zKO9B3j2qHr(Kj#W(CplRVh?c!g<_|S=sk+H2t%F_n%SbABvz=_bN`YjH;Q;nmYrlr ze+3FUqh-71LX*Yt`U6Ms?t3jN6&5Xr2p&LL)KYQ#ph`aqAjblJxm|P5XDJb@5mh+u zQ9Qgv0YREXQBi_@^Bt+n9&Roc&;UUY>#4VK+?(~c(tg4EnwlmSY z1Ynngl%)>NDPRzV&GA)}VMkEC%{M!9%%HI$vcBK8Q(TQ>|5;Q7m`5<$w8VI@K>>> zkjQwm;ZRn}A{9FrTs=`~a!{tAG0HCYA6;7@rPfrs&R5G(9-4s$C#;)g(Z@y~KA_p% zsr5iqq%bz&d>P`4TvT=wMSXD&0@GjnX#R@p0@Ux?O((#gw5b6fO2T0Y*3Z=E25g!F<6_=5TY_kBoDF&3EG24dJ?@ZgHr9HD>Bbhn1tz>arC-gTlLlqQgq zHSHp6MpC?$MrNlxQ*~+4_6d4OnPGBrMmRlj)Pjy0!rR>1_gM@;AdA$`>kNba72YPW zF-D-yoYT-`>;18!!pY9tw4S=ENS!JAa$=aL6alcnK9tsZin#afRxV?O(~QhVoc3Ak zeOwpiwP6lw!5cykuf_qcDyh1z&<1o@Ci* zVjC7c+(&;Qoo)v|WRzsMu&QtaXS$98Zj)?S9;rIVeTZbO9n(E`V3~S!-t1}2joskg z-)aydp4qI&l5?E&h9?O0d-3h0L*G@6w?s6m92RWhTb)6qMSv$DKzzlOKl9`U%upKp-j>rtL);|Tlmxq=|>`StxHbyA!KXO$o$E+l+yXl5q&rLdE1rib4KGnw55pW56 zyE>f$F%Z(-_9D>)TA*xHX2z|m2`#?$vAjZ^W$Ktvmb~eps*cITtgaXBi~X5T!#x3| zhz5|>Qpic>S1S&KO`_E@KuVx8?zt^5pD5taA})>GyxKv-sdf!A>Cb!_F*=7J|IJGv z0NwyLPO7KU@JLjP6pBYG*53$u0;a&@io}avq7v|Ng27yp)ZpHju7myRRutN3k0r!) z_jeaK^Qkc5^Sc%?T^@&|iZvWcne`-=+ZvtV{h>SWq~gB-&r$&W1}i0_L^k3Y9qEl* z3vwWG4Ony>?Gmszw$Z~D2b$%~BuyVid{X_m_r0fg!i`F=`ArM_1ixyk!4b3iWEh4e z5C*h1<~t$+_4EFQS3lXHG<=K0}86-~R@cS=H7g-R-kg8k#gy z?x*v!)>;nMUxGG&L7a3IHcXdo>z)6umr!>(xzZ1@B%EI+X)fdJ%^k1($<}jxR2G^> zEzcdth&}(`qmL>L)4sRKVrFZcVnO1?pxZxD*g*V}s}QC@m^l{jy&3vR4Epc+Zt$Ku z)gc=fweA-uO^wt``OrS z4Vku$r1horh~0lDIoNODrggeM<5rU$<4CJN&^nXWJ3w$SF@z) zDtnp46%5y1l!Q&`L3V#}alZ1z`L2nZ@D9X=?TKel(h_z2g-m{MtRGOC9_w8$uZo%6;3=VkjMf-G|9CwzZLFF^a;xe{R`xMLJe%yQ9RM)dql?6sF zH2ZARMb|l2gNaFX>MMq8QS}?CN%-OMM{_GmhNLv$iD%NSk{c5h$%DX78UsKXs_bpS zReq8&(U8RUHe^Vp`Ms`;z~fq{o)iFBc=*CYKZ%ohDE=F&%%=epVk@#DLcS}YG_-_`=u91N}xaaTDl*Ox>F zqSAeGZbI-of*+oWa+1jX(v4sWKa$3R6?KSkd=2DbL&(@a%e1cf!GkyDFvErr%zd}F zE;s0td_V+`jlVi~GCA3nfrELrj1-P>6htzn52@&SwoWudQ_#D|#Wa$}K{M7Nn5T*) zkW^JEVs|CbfkJEzuOTKIXl_#1j87(65@Hlh_*0Vy5eyQJQ1v{KKi8!ndEb``*Hfd; zPOj#-m;yn=He|H6lq8`G2S(6z_lqyo#5RQ)JAIvk*pkTzin1f$ol%>+Qt4f6Rr>5i zAp5sMQ8%!6e-i_x2Qu~&FQX4+XQXv;*HwY^#(gRJb`+6L;Vxjy%LZ%y36`Nss1Usv znzFrXLp@`;x$h7fyuzt`vrrGWR1E@~1|6CZr^#W6-Jm~k@Ck{%XKdWP3K2aNYDsG@_I~Tcs@Fi4p zU<&drGGq6ueqYr_dex`ft%O=v$oG6Fy$cQxe%Q$0SXkDshjn3=4+uHuXeui#UmimR zeNFdFWwB8E90yxsaY=rrFTCz+pElO4FcK^btU6mVZ7@YoXuA-!%f*Nybh( zSyEvuAYNDRk$#73FQUQmX6aSr@Lr#8a+9Pq->*a)OCiDo{%5#|YiiGUE4_J6Pg*N> z5it`KkS_71i?Og1I`aNOR)`_J7iw=`l#x(?Zj9N_>bspt6)6BDpvAwiHcAEc?*gIu zhb>0M2a^NCxmK$sHeb-qcA|JQ|1F|Rg(x4RFNyq~9Fj4X0SB8hy*B|^pxX22V?llK zO)8N60=%zQ^2hd8b;l7jqlFpX4y_y2gV$U5&Up~p4aaAGm#l>3lN}^cAooI1_-%^Y z4~_hD zQZXBS&EL(Gu?4RB!O0{+&*|Ov5>k`_gu3=AhlyeJcVp$(?^2txg6bg*j*yvfjSIl9 z8(u4B%h%R)+Hm2gG$xmyF#gY|M<(Hrd+xW+*H0exkwXV!T556bN4}pYXd$%|;irt| zzM&CZ!B>2+H}m&COWFt@1B%#CqgHE*)*CmRk|aKU+oIE<$d6dWnEOPg1C@A9u=pbX za*SuAQ1=*q+NCaI{2ZsrKxp90ohX1%9b~w@LMyZs1Z)4od()?yzM_wzbAQEs2oi1` zb#6?N7jg`p!N!96!9;^Z3BH%CIso zbAb`QJs;Py(`H(3n~M%oesoM&p}R4{-~Nq{VJH<#4dZH)lhLV4g?yx%807C>Ju(FY zQp?yN7vBU~(Le~u&e!-On@!N`QW%7mIX{s3dg>+7OP%v#^E2UgaHL%Q@0mk8E4t?C zWPk8kr+IjiPk`oc!eBP6omFZ7_~u4U&` zDzgV8;%TX13Y%;BiMDELqwJVs>oQ9GxB^|Xh7y`c10IvuTNrZxUm4DoK5a*_gnkWP z-7c{Uin0y9Pmms5j=TEzIi~FbT!1iOXI|}Y+;!KWTSU#Tr+*FON$NvvMRzM?jE)Cr zBWi{Kk?7TYnV_~CCCySNc+jvs6cNWi$b*q6i8_?rQwlT65RpNy7q4U^e;LI2SN0Q5XvJj| zP0ERqE-!#1TAHhaS~-e5uw8Eno}bn2U9RqJ>k;a+Q;Y-E+P0$_~`X?FtSBHy^{-DuX$|S49$E7tcerW>ZQG zL+`Nnd|*2HQol@NCPpa<>_iS>EUuSwYzwF;{Tyy~Dx*sCiaBg>f8p>7_Lg7sX=uXQG=PV|uNapSfOfLZXL9L_IBJ`XM}{4vrdMh^ z@&QZ=Y@%KrKlEDB-i84t9CX*74elZkvA+?n%N1H`1a}@EW7J}b=wmuM*KBa{dz>u< zS|O#P5uR4wOG>dassIUW@&RYQ-9Z0-b-qhwN>o~gR5hK-x@ z?1(-Xo?=5d`3}{R8nS@s8Ett9=)(gfE7U1L zm~GnB-hvGUTb?pR{Ur3Z-EZD#(6B;9ediK@xmOcD)x`{I|8o0gc)g8d3i!8r`N}r> zoXOm-RYrHLJcn@HTdJ3NB!XjgOQ7WDZ_fIJpbW;1+T1VT!-NX|d3!(z17_ef?Vr;K zFV1pcko6QC$)HTzWyFr(WUx`zkU>ALP*hKHR6+Y-!F9>&Q^aC)An^(V8Ko2kXkc__ zKDuAHiWZYokq6z*#cE8SrN4!=KUfXnam1cYu(OJsztuSy?P?EmejmC}4vE$3IWosY zFRYM)dj4u8+=bF0>={hIE8a==hk4#4Qv(OOA#qGtqgmjZ2sa`6pWBc{k+u`KfO8I7WIN_b%Er&| z`zsgp(_CHL&&YE9oKPmlp5LxO{;iVm-Z*m@TNL1A5bgdxaZuTq>5qbUs zK_6I1Vp$$9?Jk@)m`hf#TZAJ;Oju&1M+_`!=$3a80Y}Qff%&%Gc(!pOceE~HyCX@z zQQMs)N3l;kY?Ae0NWgq(@1G?BSn#14#<@RGs7OQAg-g9MKPOXquDOi(`wr*0=P{ro z29>M=jaXumFp$=m9lOCva1I_l6<*h7TF(nc+)CNFrqg;9KJO05wzmBL*I3`{rj*^2 z`GLIlWBFJbFp;nOp8LShnaB9(0%pYIkt@rleC_x7KT!tp7d* zIVi_h80c3yc)3EgVN6WcPNz$vhTrzD6gse@IZ8DmFaHFH?%Nx2;4OshI@v#r^^Hi*PKd56NkJx&2 zM95Z7snfmtjg5LdR`?Fd>j}K;wbOk7S=+(CoL;bQ&J1e$@CYp4V0i`e|DOPJER54* zVpnV&FU0)KFRzTy%%&^1V$9amc86M%l-oW3;bud*>E>u@a!Z1?9lgQE@?jfY5g+U$ zftn&El+mil&4EyWDJIggjhB4&oy}W+NHIGXcg zsMdF3!1AHpa9})tliYG=MLGtJl+Sw0OD0Ky4N>3C+HSnok1H2?_h+~^_HugJg9a#v zt}br{r!SScAupF!)qwUfm$SY}LrJ?ESYp&FbfVA+W77M~PC1@CyBSY|RF4E8{Z`52 z&_8Fg@8>laBa3WuN0DLG^}+R3}Rq;wfk=f7}1f%^*x_ReG2_bv9bc2U24DX){2N zr~I)e3MgFAX?#h>LyAZybTyD1eu8qr$*sB0gBduWpj@IEz<;E)-_zdbAb5$fr}5Zr zb(_2=%c%R5vyJd+p1h!<5XI+r*8|#d2RI0#Ont&|%W%iI0qW?^1 zC#ugHxK&DUpeI-3*=EUZ!XvGZZC5{b{dxr#(=?i)^8+f0%N@3 z5P}8ksLUi;(g>$*M~4*YbL{r_W-nyI+4ne}Ljmang&zT37wDxwq1oq16&MjFNq%8C!sZ&3aK`_?Gi9M<`dK+64Q!cP(ta^!`2OWzhP)nzd+80a-)0L{>UcLS=N|khLp=QLr`4f*G3=-T!*K*rI=H`ZY_0i%EBZs zFhst6-R+NoUeL~*K6BjcrMOsCFPL2xfbwr!vXlZci(MSO!I*r5FOF`v^%o|mZ)^1( zz*YZ`p^2ortgyLwrH;@+75M3i?=?nb;VgtCB;YCUm>DOrA~ME9vG!NKRk@Vgj9VAA z{rRmM4L?R@*98qkuL`u@)MU2Rok<#XiBI|ih%|?Ybnnj+2C6CQ!-dJ-;#|9c|3LKB zF+M;V3O5@XpgQ`v1j)=CO2#sL)V5~U`4t5fGfDct+C--Xo>2JVC;%a_91QQ_kMpJ%nclI}X^P(!$ZkQSJ3_1bmNN=y;z%G^D4 zoe7*IhkO0vfN7M+_o@Bh=z*J`a-ka&KyFO8Bd^})73gjlZlZV~1;3pQ3EhQ8=SJ-% ze6$8Ej|~?kt`crj48>r*)8-gVS_58&L5cV!m?raM`j208@~r0bwcHFs&#VO=W>n*O z{!u_>|F)WIo)_tHMatLR4eM<$Ib}Gj$OnU`zV->+X-SPVFmAWzx6xHsn<-x;PHeQ{ zoMtY<%LKi&`{JC$V7&LNb(hGMhWE^&>k?;N%CRSwkGSYKjlGKSOUec75H@lW5%{X- z$S^DzMRAjkHWzyPX3UpvX$QwL&H(l|&Uiwg-b+se_WNjQ6}Q&Tl%SEKet1SI)qL2n z1hsrWm^QoeFn@g>gH%sHfdO^zCD7tZ69l<52%+c%M6B9U6P}{Xv8%6fqg^|p?PiJ~ zh^iC#0UNd&_%aq~Fz6d;8y_F;f=QdX+a{m7*x{#_^T2A4_qMJ-^x(;*#@Q7YS!#?I z4LRDZYH1e%FTW0}EP0A7^%@yNxCT7Y2{Qb59yht;-082KYR;CtYpA~pn_vcc@*2p0 zsWcNLm&!|!oQuwND|Kw(*67>V(@UeqN5AUa83Mp9nb^|>=dZDov_esN;HN1ApER=? zSdXqlXd0IYO5sf1SU-L!copU#Zz;d2-z%qSl1#VgPVSTGTLhaqGZTs0Hq>k_uYjPs z?6WAUEzU)#4QcjLS{!RD`5y@XM+#!&gWg^5QtcgWtT#Hm2b*;~j|ehHNwbK~!W?#B zfp^VOV@t1{^Ga1kN2z*nrvR$|d>-{``l?!xV3W1kY>%0O7VI}-0a9p=FhdF(#V1DRD@_AoAP z)L?%ZPuow5_90#{QMd~2^WN+cdwZ7ziaUi^igM1Zp!r!iP^LFlRv>kbC*=MN3xRro z7AAQIY^jPR_asj)aOd6M#hd3c)=`4iAe+RA zN2XmlE2gP}(^rNsgM+z=@D41ci1Rggl9JUP?6V92BBRA%LzAo z1H*Qi>8Kd=g!mZkYR|6GKBgd5x7Zv=m5W>-+n`V#2pU%}PJc;kspF$U9m~hGCK;9=HkKM-$ zj~51*Z!6>uSD&SPGMnrg>5+*ZrhIMtZnp?Q>5Yff7}o}(Y(4&l4}rn7GIIO zzeS&4fe67cpfwn$qOx*YAayt_)$UE*{Sek|g|;qhblQoo?GE+1Ps3y&IT-eu^FngBqd_D=70C_60qdnavE`PWM zbzbKX0m4%ykUp$cfBCUc@=z!uF-Wc*2k5Xg{+=D;``=2kv$q)n){IlmprQUsnUimu z)U$<#a>CEZe*HzanRnX$vl8$QHGPafFWA8HdfT#At+~OMsVjBwai_m$4sP?|Nm>`+ zyF9JO!f}_Tgd3xKg$eQ^GCcm3$6R46G|#^ExD4oo{<*QcFMTAcypCxz0PW2=kA`fn zOchbq5< zJD9A1=U`HardiPw6rGfCB$^Bbd#%?hBDw8qerygz^Ykr~^-2vTTTToMvJ$O;XL8Ha z=Mjn-mJVt%!Em?2^tAbd&$Jv^@ z_@NGHsUfB{fVTovzNcU3lUD?O%a;o-q?$Ql5&AMf81=;0hl~+{=4W1eA0Y!<0MiGh z-F^)W@+{l-k&_Mtoya&s^dOc^nljrWB~sN=dmZoHigMruhTGwzHe01GD6uh3IEAlH zGuGMHfS+b}`tRHd0wN|RxS5ed(MGF#r-FM?fw>v+HCsCm`@Sf6*^+f>Lrx`X@JHsl zT9G~kZ67wJISx5xN?Ar|3!{G{k3i&?m?VOYy@{AgBOaMM->(6lN0VG90*W7`yv2?a ze9|_kj^_d7`G;9_t80yy@)%y@!44vT7__ZWIpgtBDyX^23`l~?5tQC`Z_a;LEN9N(bNc%-5F)njHE{qr^(_7vfA=%XkICTt|o%_N+SQ+!tn>6KU8cepIH+! z$Kx<+c0O5|UvrBqhihUy%u!uo)p~W7UfP>^?EQQEf*nMBXs{ame7@L{T{`jFevb8i z-R}aB$5RmEJR`IWmNN>>Fx3vuGbIB2I6t@p*7*#nV;P>8q$^ZAvau*>q0opm6T;4i zeWCa1Y~f3qg@3(xqO9HtNpHuHEfkFML)=WAX2}Wa`VSv$NX=Oo209i4EhtML3O3v= znk~LkMh&`*`>mIX7d8AADVFRm8)XM(S-Al$!2`{E8F4xt;AvS?EJRCt&s zGe&M>#GWhAkj*d{t{g_Bn%*@Qp%*@Qp z%#y_nmSmAv-~2lhGrKbp`??)n(Giu^S*I#G<2+t~aZ23+UwmYys9% zRP*E3TY;Rvi9R}p3}KYRg=Wjp=1X<@ z%M-gAh2d(vg@fg%>DbmP7X_JK>+P^8+=X?x8a7u3hIZ4JKxN8G2XpK_44vBI|~r6xkC#;cql=BAE9=%Z3dqS7;AYrar zsxT~8`Sd87qVY_dhN3zz4N7A3670s08u_@xw~TrRLMjh?&O)*{P>UU!qL~#upRjGX z&~fGt=WZ7h>v#=%?*$n9|57 z3b4e6odGHm-Dx^$KoZr9LGz6b&0UcGi;;Dy|A%{?10`1E{^lO7u7m?!F8t^s)lYEc ziiuOMQjIQX;9r+n6a~K1UDzC8XG&TOlTo$1>AHV~_ct{jJKL0S=8{-OjwrnPui#RN zjAgBChPC-$G|%gU|LBo(E@dZ-rk3>y7Kj}lvwg2j_#z&flP5c9mv78Ib+yncIcS$L z$~EE5@R7;pQ&CsZJKKV;`@Iy2tefi+k|2P`Kpae(0J$WKMT#$qGrKdd7)nzphGI-D z7cDlvjSd1C<*~pJntOVrMn?0N6!K&gI_8*RQ~O?!DAnLPgh|-`t}}=S=Kih?yeS0J zNH?F&+JnRID%TqEHtx!gGpL1ZUSH|#q2|p-TMQ0fP-y*USz%a@7uVkV+AZ?wJ#Rs` z{Hgj}$f@2rNjpTQaFxp-IT)o_T)L^d@FVv9tXPu0bcw!PaNjh`FOpe&CfWg6)SH_g zlfzj>)qO<8h7wl8R$6&>nQSdR!gKno=5TlbS#j?4KvT;f-;FSm11G+B^PkG;&~KP& zdtx?K&56Ya;fq)_dKWF$zbWMD#ODDpQT|l#{@w$*7~J<`MGBP0KC2!+*Bn}suG1Wj zgHlORN7E&hbM9Edph;5!+fx~>{VYxAsB7uF&@T=%d|lqFbHU=1Ixc*}Pw&8ZWfd&q z9Cmg^4BNaz`PIr__0AtUC%@yS7G%S=e$Cn|p!6^Oc&8s9Wo$=AcivS`QS zMX7_f@rzcxS!dZC3yH1hfk!OO3UZ2d25d(tt}t$ets`f%8wEke!Qrv-g>3d;XDjzI z7m~%^BEkcUyBBU4@XKvfZ&&GNHBF%mrtudSAWn#Pvu-yFzww(+$49ucbFMq=c=t*$ zw4UY%!`6(vT(<>kU+Qqm^jri^GwQD8veRGJNd(vGD*|&UNtlq7V)oueeK4=0a`rQOETi4Zv;Xj>f%olO!mM!ZE0b)K zq$;5Dpmg(K*l8OzIO>{J%0b;6(xo|MGEA|ceB;CbBSAl<=^x~K@7j!!X}wtKb` z{1VZ8<|hrz?*p^~ih4i-^_NFJyrnmK2ko*{wah$lCM8nMC76>Z(G{cy0^qig!;mtY zjOljR>$hl5qgvMRwROMwGSuEa@NR5s`5|XHm?+bjk=%*OXYy`Pq>>b1>>q)lVZRlqpklYzQdfKJE z>CS5grMO%Dr=QJ9se>T63@c36^X6K`73#9ENn~=doK=E>iJ~YSNS_j1l|oD8p1(G$ zqQbtW8VhOH-l#n)+SqCc%IAGA8t!mZe;N zb8bRUrf-W+$*uZZV({Q4veL5uY%gILr3IIS98WCn5Vg;gS_D>_qokJrAkmZkZ{qs} zvycnHCCk9zJe)y&TE}9#h8cm0xJG2oq9&B)?mpx6L5?oCB)Q{L7+gW7my}Lz?~wou zG5O=5d3tk>>t|*6eFEEc82R;pEN~79P{O$sbvlvi$P$$hWH~I!y5sE08w}qd`qWr! zd^vB4ojq8Lwb)ciZU)@kK6|Q(Xk`Dq-w;m0rzC*KZXLORM?VWeBXji@XUSA5ULGXi zXuTQp-8V@jOEhML*V?R)8A3`rMc=7^(0E+Z!J|NNE7qxbbW?`j;7do{dKi`ef{N}= z&v`LDc;V>uqZ78TptuIjYnZ3A&Ynp^TV=!k;O%4ssvNS6HRY&>4asodzt!Y+#2LCqk708>la}6?4bJzG zCb|!}Q$(!wxB@$*yw^6791Tp}xv!&ikjiYP~u7;xgTu}yc;5?g2dTdAOc=T;&aUs|NS5T=v!j-F5fB*@na zhKqon`o{O$;l??ryJ&=?OCw=uWc;G;-R(}->dcO9r6AVEE>$?=j;$y`J)EwH#tR5R zR!)v&$)o7WbK9^KC$5SBYg=!Y68cCs?t5KgtHPkAs^+??VIYgB)|axzQ#0?Vlhtm*(PkksU7l@IcAgD~D14JTMWXdNME}jzWU6#Wf`!-_ z{{?UujEhixBkX`pNzff3+d8ybmfTq$*p8EHUN&}8d z69kERwp4UDca$E^=AjPb{jvB;@gC~5Tueb*o11XEpxq7y>_e}lmPK3L)_We>}qL{a|=vNlA6VHi*r(U;<(JTj8-IcfhgqgPM0C(O9I? z8Jl+MR2lR7D5wX=izl~%&5)3~Z`1E|6tT=xA_IQJT7NBc3@D73aNgh`HRc$+91XqK zM_r8+JicBoLgjTP7|Uk)%dhuhy|-Ia2I;=3ToQo!^< z?$;u-qU(4Q6>dU;9v^qRzbcu1?d0*NNp10&ySiNI50i=4clcIa_C7k<(@%#()PcTX z%Q=fp_d4*cfL9FwtJvDcWuk`tw*#CbT3E}jl>;S90miPkFUU2d>f>qYL_%uR_DY zwuhLbx<2pK3u9whl?wuYp)2!k))z(}2-ZQ)xJ7|`vpZu<7pa#AdI@(MS(~ARpiNJ=`(mafZ1g{_8%3pKyC9)kI$s; zjd8PE$8>CE~;u zAcb4A=NRahfEI=>MEj!;f#jh+r7KIiIvBgSc=i%S_sQS(qFk%R)2anOkRbS&Gj*HF zE(isE8Fy_hLpPau?egag9oH$oGn$R3`&OaYZi&j1?tupjiq94(++&2)DSg&)!oat2{`+wxEIVQ2nCr6 zZKR179sjtX@KYJRrMPO3q#3FINdy&N>KnofHdioSmL9{dd|WWvC~?KM7=uzJYF*tz;BK7Ju!`t`8cIOtHXr2hNDVRdvUU&bok! zb<|M4)l>md7vm9*(U~)m05F9gn7MsboMbQMK}c19hPs-V$*97sd~?@r$v;{dKnRVt2$3 z!HW_>gGiN+_2c@sA+iV|^%wa9uzZS{_T>9TZ4p17%`#Cf;`|)Tcd6iEhKQ_pJC5m# zKLyW{KMx79w^0IyF)MK8wx!HrGg{uteu$llC0;5z1`)r@rY{C`CazM)FAld$sP}yB z*}M-xgtXRuh(2uEp4%V)nayskE{7$+;t!nNhxFge5ph``yf4#cg-S?FctG#p5M%sZRVN_HslawSbC+ zLhR6QuCveN2^EyF1m$KlTfMEpNff9K^+Ar(%cxtK#@Tk`yVuW+Ko%#;)=E*{N|hG zGnM@GS7%jouGp>7XZw!g!R!X-y#vE4zhhMSyZ!P3{JsE8$sTp@_yL zyuQ?!+buRy+!M2wsC|Os@6-YdNvClO@N$VSML_d>`}-X?g7b2aUxKbj;~ z(Fxh;@!31F^x2I_jfC;7CafIS%#cIonT6KJ-9o^ua$x50URkC~%wSh1XWL>EH;T{s zf+sOk=q(p(slg6vyP>*%w8=aOr^kqS5Sc0sr47bWNxX(wQ79$gw@{~5W+h&ZSZJUoyi+6gP8~a=h(oAr)1<-5SBzg~B3!eo z6pFPRkgEdQh+%)ti-81LPj&Ih5B`RJKPsKrGf2wqw*1sK-y&6t-2GNmr@6!Z7za=A z)nIfHYdVEaNV!^0HSf07zJ3XD^S}0oOTL=;*(1`9^dv&=2a4caHYCKIXv{H*^?cgU zp^4*`P+CAn+(n<#ph>vhQo_WR`^@*zL!;a1OXApx$Lr&AMi~0rFT{3FA(tpu?!7@D zY%Abh|6Rm@iELoi1M8zm<578tZ?p7RsM=DPGT`uQI2~sdu%A-+wi)4?I_j|0vr#R4 z5t|;|?U`Wzl;Q(RKL~OQ#5Q7Zi_P!593Lp=zUa>YW*iNxZ<-B7#{H~qrjM(-XrnJ2 zTguqNEjr^UMrG;raJp0fqf1Z{ok)O|Cxq=@92mJpf}(j}__DP4?2C_yzcBA`s`h2k zPw^?(>c)sKtyQx+u)L_84N$zy$mDdd6Gfn`N z4a2D^lZuYSmXUGr>L^>M&z`N4tYB|Yr&rk*ij>S(wGvtd-6u&kO9ST4p_ZdQ#3mjKIUv0;Q%)d=OI5c%*+ODHq_W2ivFUsGOo z%aIy3!q!pECuRAfS@szp$Xr5HKg$}9;hK-M4&Ou65ZQ;0QXwg@itk64U9ci>IVENb zSvMg9y!iZQzSE0K6ouQXmUo1H>vHaU9v|MD$(A1BL3kEn$XD|y*XzoPktS1YBDi?# zr=vgx=k=3SxQ48q*q`?wTK4jiW0IhA`i)5_U4^u%Y)huiZDdK?@MfnYUWP+H?+kyH zv{RMuw_2|zOJm`|u@_|w)(k5^^C?Sb%ooGIhksfaJImsle3kg=%b19oF-&Cuoa5pp z8%zYugA1uF{Mu9d>!RwBPO~rQur4!fR{~1-FoSeTrrR$1qGQxw?_P5AT6)ftKof9 zw4_3~6y&%{q60}nh~4w0LxE3eTBmA@DDL5S1{tfsu92WpBzqSAthyIQLW2Pu5bY!0 zJ|*CTj|ztmF}{ltMzqg+O+l6XyX~Hgn@!OM!VWiUpslk}n3>k%wSMAS&0CygdHuFy zkroAY<#3L}$U%fFMDg1 ztKLDkJa^)D5mt!&*Ew*!ukugPDV@}aT)7i#1@vUiSxa#9x;TM&OvbaLjkv5w@!Q{m zgneW*}DE&I2n4Ht*7E29d(Vp4!Hcde1dARd8v$ zB}~HPjuQQ8M^8W0`=g!DHTix!1v#8!<;X{ajr2HyCEVXr>%>je6~ zV;RKpHw=C90@S3aRzeNjmudYXupMZ1?&-P&neKJHXJqFg(f+8G^Ff|jHw9RmD-x;F6O+E8f9rM4vCNHkvSrzGz7EMJ~Xn*$^?WY zvZneB9?+!FnmPQBv#;WEF}5RJNzgn-Z%p-N+y6F)j>jUkUB?!=?0)%BS)rCXI)o^v z$JGTcGLl@UL+UT79vqS1JSFE2%<7N_RYZ!&oU>4fzzv#;3jWpNJ38yu71EPU}E5m);EH!;iMB#w?+SJKgA#MJupY3gfS$nb0G2ux}!~pa1g|D3oOfb>6F#N@Y|lV3O9`fLZI7 z|73X(th{E~@B=J0N1-`I7J=?&$wjJabLiI~zTb0QK$Mp&kmUwKt0!ptOF+!iRi)Gv z_-1R<@9eWjH{@G{W1G&FkWvGvKJh5CYRL%k&Q!D|S-uXR!xUAJmaKCrys5#C-aaqz z`z3+(nO1AVP7;53y|iCLhpPuo^@U)@iV;$!7*q9*Nq#oxS{%q@fH|MfbZaG;TXv~; z4Y=d@#ls&%V}Cv*WEh~~odB*vIc3ABtlJ1#XFE+V-;fIx(3Lsh z-dl}y3KK@Dlf7HfQp+4x4A&Tpa21$YOh|&l8@K1MNRF802~)-?i|4KC20yi8x!?KV z2A9SXuk@ixi=&O(Hvjw^Gp@uJ`+e#2REhMNAnOpnnbl^CjxGOpq-YgF0ufX+#Y|VI zf!2W4;eob}^YRw0yi=7_S(xX!{ZZPDaXs3rzGPB`{cKE-;{pp)iq|2BG71j5Ao2ya z-PH)s4h`Of_6AkQ$DIZ1O=qS9CTzvb7*UKG5+r81XNTESb^uE;W9j-PsFA7B+CB14 zRWo83-r)@cho_ZHImD{((EBBpCjqy3)bv%-TJyCj^B2f?U2pU)J4O-=gY!r@`a_CsTm1x*3|?;^RT@`zu`;=8Yb2?VArIkvTlLArKMBc|0G`Rt1Uqz%4xa= ziW7^#)!>_c-~hsR%HuhfaOE6TDCd}t4td7!ddYacv27^tu#Vz(QlFIz+JEe$R!v!Su~nrZL- zE$o2sD_c`SfjmxEn9L4Th7~+gA5csLb*uOlGe;Lkxg)G-uw}J&w%4MbO`h$br;{D# zvByXT_}#kqpzojOb!oT=rR3u$R^{$G<~BAvsGaVF4UkTX;KB4FjhBfe&36P5(Mz>S zxF6mqTTb--J#P;q)s$SUhC5k7++^(x z`Y?PqW$>f!a`Lmde%8U*P?DN(D{}FWH<0lvK8Ob(!V4}SdzXOvKd1mL=PlppB%^fh zxQc|K99)rFkYc;Pa0;K}d=%U3^I0}#V>PZ@$BOD3M<@Pmkc`4}=;6KX1pNpbEtQYx zQ2=k*w!iIU&$&{LpuY-aRsL^O+5VAKv-uPy9>6TpAS zt#SPyVr$l_eV~12%+6!_&Jd|fKcnxIeh6f1@NwK1&2&o^HLTZ&dI z53s15kr}o}gDdY&E9!EqM^khG`$vnHqfIQ+_>aw|zAfEl%;SWz5dGoAVnVZ5>c@GG zp=G2Cfi07ac6?$6H)Wg=2XnFICraz>igo2$lnx&@pRYq@820so>LYpO)P$QY7Tj9X zE(?>(tFlpTR6VjQ>ay>HgA~V`*vn37oYbx-0jHv{8PVfkRCS$kSgcUY{bDOC!}nP2 zcZSA@VX$okU-~jRf9Js`OLKZPCA`miaR;IFJ+#rwsxMt%e2ArGtz~aK0(1Ru4VsLK zcvgd#Uu(9;YENBYY7$#wmYGk7{Z+7J&0n0=Q$gxI83tp2!oS^nVx_jf*)Zl|y$(po zG9=C1VwD527y!V!NX1?34T!J8vO#U%0^5eruo%81*VS?>RvXyW$}p!D0tcbpX&w|J z&KcEKN=egV!ozzyuJW@&5E%}D3{)|GR7-ijA%Pq>kvI6<`9$2dGONGaE-sdZN-*bt zQ)1Xfq70XjFfmWRaSyq^hY8x>ZQ#51yP=Xz3-t!@k3ngm8BDdWht?%_AEt{o*b3hUA4l ze|n{4Hy?Jd(tj)_nL~i}vRRro6BX_WQn_#_K+hp4@&sW5M1RJ#ySlth9!q*n!w%=v zgZrfK97#shxXs^LW;>qT7n%vk^WM45*Ucozd1gOs9!oNLW;cFztRG93e46gv<}Gum zvtId%Hjins1mw#e+@#D_zB}}IK1q*k1iC!DoM9bTH=yKuSZxW1P*;~v{pJT{U{`F8 z@c%m4ff1W=yFsCkE!FyOf`$G6HCR~xt1_XNimXimGiulUzk+3$Gcc7de6S>OpjlP9 z>M`AaLDT{aoabSuW(P@9t)d)u*7(iz?PzUsD&{yVXK^dzcYp`2-ou&3e)9JX+l(k*?W!i5J+NNt+k0JvSyH^XJ zS7i>uq~!UU=nvPk%U$_`J1Tp=9!-xV$*Jut|@CR%5qHUKU7CgQ&L_FjEoVtT;|;`Th_VSMI5ku#_xZ( zxn*B;2Clo2wyDT!Y^EHQYklCO%2#7My@6fxma;DAu* zQg*A*2q6ntun0I3icEmu0mfJ|1zS=IT{CD!M>UoAHIxQtS_-RgSZ0B}WGh^~vD8l4 zkPF?s+Tac(lJJ@KjJIq@CA~aO`RE}@rbttC{$`4DuA+7+N44N;EDxorEa_^8NdJC$=ZQ$Izv$ag4JUG7t{10YHlynr|W9?J$ z+;ytCiNOa#d|!2sBEytznGjk{2)PO04}3&2X@sidF38^4&(7NBRvMVWUt=l)*_hE@ z5s8BN55Jo}yXTP%WJ_IG$5*&~?b2fw_O81Qo?-F>DKiI)2X{%=s!txL=gJY@bDhtHDrTv7cORc7WhWyGfU)Dh;Z-qrwEA53XRnIAp{*^zJr{|8$B7dDMG5v$Hs2NWx~v1WWvL0!eL|z;9%xr1+cLJ zIE+}C*||8l1^76b0nD5{#>@Z~ZWF^#8#^nj2{SvhiLogU2d6Qop@8mx5n(kp0t5dl zCKi;1B!h$$3HyVx0V!1%f}CfWVwGWovB$=Bio3h#J@GVgJOGKnrIj>ZgF2`{{jnNN|)lOTL4 z3!Iokt4?6ZIlKcT{y@}*@~sX>kaF~q{Ipt{B2}`a3T>Q*3LD{vth+Dvn_7WRh&M>l oU Date: Wed, 29 Oct 2025 10:59:45 +0300 Subject: [PATCH 2/6] feat(m4): implementation of the m4 project --- .devcontainer/devcontainer.json | 33 +++ Makefile | 2 +- pyproject.toml | 3 + src/main.py | 4 + src/models/billiard/__init__.py | 2 +- src/models/billiard/charts.py | 2 +- src/models/rolling_ball/__init__.py | 115 ++++++++ src/models/rolling_ball/advanced_charts.py | 296 +++++++++++++++++++++ src/models/rolling_ball/charts.py | 83 ++++++ src/models/rolling_ball/config.py | 33 +++ src/models/rolling_ball/objects.py | 104 ++++++++ src/models/rolling_ball/sidebar.py | 82 ++++++ src/models/rolling_ball/utils.py | 29 ++ tests/m4/__init__.py | 0 tests/m4/test_ball_physics.py | 90 +++++++ 15 files changed, 875 insertions(+), 3 deletions(-) create mode 100644 .devcontainer/devcontainer.json create mode 100644 src/models/rolling_ball/__init__.py create mode 100644 src/models/rolling_ball/advanced_charts.py create mode 100644 src/models/rolling_ball/charts.py create mode 100644 src/models/rolling_ball/config.py create mode 100644 src/models/rolling_ball/objects.py create mode 100644 src/models/rolling_ball/sidebar.py create mode 100644 src/models/rolling_ball/utils.py create mode 100644 tests/m4/__init__.py create mode 100644 tests/m4/test_ball_physics.py diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..611b2bb --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,33 @@ +{ + "name": "Python 3", + // Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile + "image": "mcr.microsoft.com/devcontainers/python:1-3.11-bookworm", + "customizations": { + "codespaces": { + "openFiles": [ + "README.md", + "src/main.py" + ] + }, + "vscode": { + "settings": {}, + "extensions": [ + "ms-python.python", + "ms-python.vscode-pylance" + ] + } + }, + "updateContentCommand": "[ -f packages.txt ] && sudo apt update && sudo apt upgrade -y && sudo xargs apt install -y None: stone_flight_page, title="M1 проект", url_path="stone_flight" ), streamlit.Page(billiard_page, title="M2 Бильярд", url_path="billiard"), + streamlit.Page( + rolling_ball_page, title="M4 Шар на столе", url_path="rolling_ball" + ), ]) pages.run() diff --git a/src/models/billiard/__init__.py b/src/models/billiard/__init__.py index ffacd32..2ef7fdf 100644 --- a/src/models/billiard/__init__.py +++ b/src/models/billiard/__init__.py @@ -94,7 +94,7 @@ def page() -> None: st.info("Попробуйте изменить параметры моделирования") -def display_simulation_results( # noqa: PLR0913, PLR0917 +def display_simulation_results( times: np.ndarray, x1: np.ndarray, y1: np.ndarray, diff --git a/src/models/billiard/charts.py b/src/models/billiard/charts.py index 9e2e47a..fe51f72 100644 --- a/src/models/billiard/charts.py +++ b/src/models/billiard/charts.py @@ -20,7 +20,7 @@ class TrajectoryData: method: CollisionMethod -def create_billiard_trajectory_chart( # noqa: PLR0917,PLR0913 +def create_billiard_trajectory_chart( times: np.ndarray, x1: np.ndarray, y1: np.ndarray, diff --git a/src/models/rolling_ball/__init__.py b/src/models/rolling_ball/__init__.py new file mode 100644 index 0000000..2530b30 --- /dev/null +++ b/src/models/rolling_ball/__init__.py @@ -0,0 +1,115 @@ +import streamlit as st + +from models.rolling_ball.advanced_charts import ( + create_acceleration_components_chart, + create_energy_balance_chart, + create_friction_force_chart, + create_phase_portrait_chart, + create_rolling_condition_chart, + create_trajectory_with_vectors, +) +from models.rolling_ball.charts import ( + create_energy_chart, + create_position_chart, + create_velocity_chart, +) +from models.rolling_ball.objects import BallModel +from models.rolling_ball.sidebar import create_ball_sidebar + + +def page() -> None: + st.set_page_config(page_title="М4. Шар на столе", layout="wide") + st.title("М4. Шар на столе") + st.write( + "Моделирование движения шара по" + " шероховатой поверхности с учётом вращения" + ) + + model = BallModel() + + analysis_type = st.sidebar.radio( + "Тип анализа:", + ["Основной анализ", "Расширенная визуализация"], + ) + params = create_ball_sidebar() + + try: + if analysis_type == "Основной анализ": + display_basic_analysis(model, params) + elif analysis_type == "Расширенная визуализация": + display_advanced_analysis(model, params) + + except Exception as e: + st.error(f"Ошибка при моделировании: {e}") + + +def display_basic_analysis(model, params): + x, y, vx, vy, omega_z, t = model.simulate_motion(params) + + col1, col2 = st.columns(2) + + with col1: + st.header("Траектория движения") + trajectory_chart = create_position_chart(x, y, t) + st.altair_chart(trajectory_chart, use_container_width=True) + + with col2: + st.header("Скорости") + velocity_chart = create_velocity_chart(vx, vy, omega_z, t) + st.altair_chart(velocity_chart, use_container_width=True) + + st.header("Анализ энергии") + energy_chart = create_energy_chart(model, params, vx, vy, omega_z, t) + st.altair_chart(energy_chart, use_container_width=True) + + +def display_advanced_analysis(model, params): + x, y, vx, vy, omega_z, t = model.simulate_motion(params) + + col1, col2 = st.columns(2) + + with col1: + st.header("Траектория с векторами скорости") + trajectory_vectors = create_trajectory_with_vectors(x, y, vx, vy, t) + st.altair_chart(trajectory_vectors, use_container_width=True) + + with col2: + st.header("Фазовый портрет") + phase_portrait = create_phase_portrait_chart(vx, omega_z, t) + st.altair_chart(phase_portrait, use_container_width=True) + + col3, col4 = st.columns(2) + + with col3: + st.header("Сила трения") + st.altair_chart( + create_friction_force_chart(model, params, vx, vy, omega_z, t), + use_container_width=True, + ) + + with col4: + st.header("Условие качения") + st.altair_chart( + create_rolling_condition_chart(vx, omega_z, params, t), + use_container_width=True, + ) + + col5, col6 = st.columns(2) + + with col5: + st.header("Компоненты ускорения") + st.altair_chart( + create_acceleration_components_chart( + model, params, vx, vy, omega_z, t + ), + use_container_width=True, + ) + + with col6: + st.header("Детальный баланс энергии") + st.altair_chart( + create_energy_balance_chart( + model, params, x, y, vx, vy, omega_z, t + ), + use_container_width=True, + ) diff --git a/src/models/rolling_ball/advanced_charts.py b/src/models/rolling_ball/advanced_charts.py new file mode 100644 index 0000000..62dcb84 --- /dev/null +++ b/src/models/rolling_ball/advanced_charts.py @@ -0,0 +1,296 @@ +import altair as alt +import numpy as np +import pandas as pd + + +def create_phase_portrait_chart(vx, omega_z, t): + df = pd.DataFrame({ + "vx": vx, + "omega_z": omega_z, + "t": t, + }) + + chart = ( + alt.Chart(df) + .mark_line(point=True, strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("vx:Q", title="Линейная скорость vx (м/с)"), + y=alt.Y("omega_z:Q", title="Угловая скорость ω (рад/с)"), + color=alt.Color( + "t:Q", title="Время (с)", scale=alt.Scale(scheme="viridis") + ), + tooltip=["vx:Q", "omega_z:Q", "t:Q"], + ) + .properties( + title="Фазовый портрет движения шара", width=400, height=300 + ) + ) + + rolling_condition_data = pd.DataFrame({ + "vx_roll": np.linspace(df["vx"].min(), df["vx"].max(), 100), + }) + rolling_condition_data["omega_roll"] = ( + rolling_condition_data["vx_roll"] / 0.1 + ) + + rolling_line = ( + alt.Chart(rolling_condition_data) + .mark_line(color="red", strokeDash=[5, 5], strokeWidth=2) + .encode(x="vx_roll:Q", y="omega_roll:Q") + ) + + return chart + rolling_line + + +def create_friction_force_chart(model, params, vx, vy, omega_z, t): + friction_forces = [] + modes = [] + + for i in range(len(t)): + fx, fy, mode = model.calculate_friction_force( + vx[i], vy[i], omega_z[i], params + ) + friction_magnitude = np.sqrt(fx**2 + fy**2) + friction_forces.append(friction_magnitude) + modes.append(mode) + + df = pd.DataFrame({ + "t": t, + "friction_force": friction_forces, + "mode": modes, + }) + + return ( + alt.Chart(df) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("friction_force:Q", title="Сила трения (Н)"), + color=alt.Color("mode:N", title="Режим движения"), + tooltip=["t:Q", "friction_force:Q", "mode:N"], + ) + .properties( + title="Изменение силы трения во времени", width=500, height=300 + ) + ) + + +def create_rolling_condition_chart(vx, omega_z, params, t): + radius = params.radius + rolling_violation = np.abs(vx - omega_z * radius) + + df = pd.DataFrame({ + "t": t, + "rolling_violation": rolling_violation, + "log_violation": np.log10(rolling_violation + 1e-10), + }) + + chart1 = ( + alt.Chart(df) + .mark_line(strokeWidth=2, color="blue") + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("rolling_violation:Q", title="|v - ωR| (м/с)"), + tooltip=["t:Q", "rolling_violation:Q"], + ) + .properties(title="Нарушение условия качения", width=400, height=250) + ) + + chart2 = ( + alt.Chart(df) + .mark_line(strokeWidth=2, color="red") + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("log_violation:Q", title="log₁₀|v - ωR|"), + tooltip=["t:Q", "log_violation:Q"], + ) + .properties( + title="Нарушение условия качения (лог. шкала)", + width=400, + height=250, + ) + ) + + return alt.vconcat(chart1, chart2) + + +def create_acceleration_components_chart(model, params, vx, vy, omega_z, t): + dt = t[1] - t[0] if len(t) > 1 else params.dt + + ax = np.gradient(vx, dt) + ay = np.gradient(vy, dt) + alpha = np.gradient(omega_z, dt) + + df = pd.DataFrame({ + "t": t, + "Ускорение X": ax, + "Ускорение Y": ay, + "Угловое ускорение": alpha, + }) + + df_melted = df.melt("t", var_name="Тип ускорения", value_name="Ускорение") + + return ( + alt.Chart(df_melted) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("Ускорение:Q", title="Ускорение"), + color=alt.Color("Тип ускорения:N"), + tooltip=["t:Q", "Тип ускорения:N", "Ускорение:Q"], + ) + .properties( + title="Компоненты ускорения во времени", width=500, height=300 + ) + ) + + +def create_energy_balance_chart(model, params, x, y, vx, vy, omega_z, t): + mass = params.mass + radius = params.radius + + kinetic_trans = 0.5 * mass * (vx**2 + vy**2) + moment_inertia = 2 / 5 * mass * radius**2 + kinetic_rot = 0.5 * moment_inertia * omega_z**2 + + height = x * np.sin(np.radians(params.theta_degrees)) + potential = mass * model.g * height + + total_mechanical = kinetic_trans + kinetic_rot + potential + + energy_loss = total_mechanical[0] - total_mechanical + + df = pd.DataFrame({ + "t": t, + "Поступательная кинетическая": kinetic_trans, + "Вращательная кинетическая": kinetic_rot, + "Потенциальная": potential, + "Полная механическая": total_mechanical, + "Потери энергии": energy_loss, + }) + + df_melted = df.melt("t", var_name="Тип энергии", value_name="Энергия (Дж)") + + return ( + alt.Chart(df_melted) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("Энергия (Дж):Q", title="Энергия (Дж)"), + color=alt.Color( + "Тип энергии:N", scale=alt.Scale(scheme="category10") + ), + tooltip=["t:Q", "Тип энергии:N", "Энергия (Дж):Q"], + ) + .properties( + title="Детальный баланс энергии системы", width=600, height=400 + ) + ) + + +def create_trajectory_with_vectors(x, y, vx, vy, t, step=10): + trajectory_df = pd.DataFrame({"x": x, "y": y, "t": t}) + + trajectory = ( + alt.Chart(trajectory_df) + .mark_line(strokeWidth=3) + .encode( + x=alt.X("x:Q", title="Позиция X (м)"), + y=alt.Y("y:Q", title="Позиция Y (м)"), + color=alt.Color( + "t:Q", title="Время (с)", scale=alt.Scale(scheme="viridis") + ), + tooltip=["x:Q", "y:Q", "t:Q"], + ) + ) + + vector_indices = range(0, len(x), step) + vectors_df = pd.DataFrame({ + "x_start": [x[i] for i in vector_indices], + "y_start": [y[i] for i in vector_indices], + "x_end": [x[i] + 0.1 * vx[i] for i in vector_indices], + "y_end": [y[i] + 0.1 * vy[i] for i in vector_indices], + "t_vector": [t[i] for i in vector_indices], + }) + + vectors = ( + alt.Chart(vectors_df) + .mark_rule(strokeWidth=2, color="red") + .encode( + x="x_start:Q", + y="y_start:Q", + x2="x_end:Q", + y2="y_end:Q", + tooltip=["t_vector:Q"], + ) + ) + + arrows = ( + alt.Chart(vectors_df) + .mark_point(shape="triangle-right", size=50, color="red", filled=True) + .encode(x="x_end:Q", y="y_end:Q", tooltip=["t_vector:Q"]) + ) + + return ( + (trajectory + vectors + arrows) + .properties( + title="Траектория движения с векторами скорости", + width=500, + height=400, + ) + .resolve_scale(color="independent") + ) + + +def create_comparative_analysis_chart(results_dict): + comparison_data = [] + + for param_name, (x, _y, vx, vy, _omega_z, t) in results_dict.items(): + final_distance = x[-1] + max_velocity = np.max(np.sqrt(vx**2 + vy**2)) + final_velocity = np.sqrt(vx[-1] ** 2 + vy[-1] ** 2) + total_time = t[-1] + + comparison_data.extend([ + { + "Параметр": param_name, + "Метрика": "Конечное расстояние (м)", + "Значение": final_distance, + }, + { + "Параметр": param_name, + "Метрика": "Макс. скорость (м/с)", + "Значение": max_velocity, + }, + { + "Параметр": param_name, + "Метрика": "Конечная скорость (м/с)", + "Значение": final_velocity, + }, + { + "Параметр": param_name, + "Метрика": "Время симуляции (с)", + "Значение": total_time, + }, + ]) + + df = pd.DataFrame(comparison_data) + + return ( + alt.Chart(df) + .mark_bar() + .encode( + x=alt.X("Параметр:N", title="Вариант параметров"), + y=alt.Y("Значение:Q", title="Значение метрики"), + color=alt.Color("Параметр:N"), + column=alt.Column("Метрика:N", title=""), + tooltip=["Параметр:N", "Метрика:N", "Значение:Q"], + ) + .properties( + width=150, height=200, title="Сравнительный анализ результатов" + ) + ) diff --git a/src/models/rolling_ball/charts.py b/src/models/rolling_ball/charts.py new file mode 100644 index 0000000..b48c420 --- /dev/null +++ b/src/models/rolling_ball/charts.py @@ -0,0 +1,83 @@ +import altair as alt +import pandas as pd + + +def create_position_chart(x: float, y: float, t: float) -> alt.Chart: + df = pd.DataFrame({ + "x": x, + "y": y, + "t": t, + }) + + return ( + alt.Chart(df) + .mark_line(point=True, strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("x:Q", title="Позиция X (м)"), + y=alt.Y("y:Q", title="Позиция Y (м)"), + color=alt.Color( + "t:Q", title="Время (с)", scale=alt.Scale(scheme="viridis") + ), + tooltip=["x:Q", "y:Q", "t:Q"], + ) + .properties(title="Траектория движения шара", width=400, height=300) + ) + + +def create_velocity_chart( + vx: float, vy: float, omega_z: float, t: float +) -> alt.Chart: + df = pd.DataFrame({ + "t": t, + "Скорость X": vx, + "Скорость Y": vy, + "Угловая скорость": omega_z, + }) + + df_melted = df.melt("t", var_name="Тип скорости", value_name="Значение") + + return ( + alt.Chart(df_melted) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("Значение:Q", title="Скорость"), + color=alt.Color("Тип скорости:N"), + tooltip=["t:Q", "Тип скорости:N", "Значение:Q"], + ) + .properties( + title="Изменение скоростей во времени", width=400, height=300 + ) + ) + + +def create_energy_chart(model, params, vx, vy, omega_z, t): + kinetic_translational = 0.5 * params.mass * (vx**2 + vy**2) + kinetic_rotational = ( + 0.5 * (2 / 5 * params.mass * params.radius**2) * omega_z**2 + ) + total_kinetic = kinetic_translational + kinetic_rotational + + df = pd.DataFrame({ + "t": t, + "Поступательная кинетическая": kinetic_translational, + "Вращательная кинетическая": kinetic_rotational, + "Полная кинетическая": total_kinetic, + }) + + df_melted = df.melt("t", var_name="Тип энергии", value_name="Энергия (Дж)") + + return ( + alt.Chart(df_melted) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время (с)"), + y=alt.Y("Энергия (Дж):Q", title="Энергия (Дж)"), + color=alt.Color("Тип энергии:N"), + tooltip=["t:Q", "Тип энергии:N", "Энергия (Дж):Q"], + ) + .properties(title="Анализ энергии системы", width=400, height=300) + ) diff --git a/src/models/rolling_ball/config.py b/src/models/rolling_ball/config.py new file mode 100644 index 0000000..3cb060f --- /dev/null +++ b/src/models/rolling_ball/config.py @@ -0,0 +1,33 @@ +from enum import Enum +from typing import Final + + +class SurfaceType(Enum): + INCLINED = "Наклонная плоскость" + HORIZONTAL = "Горизонтальная плоскость" + + +class RollingMode(Enum): + NO_SLIP = "Качение без проскальзывания" + WITH_SLIP = "Качение с проскальзыванием" + PURE_SLIDING = "Чистое скольжение" + + +PHYSICAL_CONSTANTS: Final[dict[str, float]] = { + "g": 9.81, + "ball_mass": 0.5, + "ball_radius": 0.05, + "moment_of_inertia_factor": 2 / 5, +} + +DEFAULT_PARAMS: Final[dict[str, float]] = { + "theta_deg": 30.0, + "mu_friction": 0.3, + "v0": 0.0, + "omega0": 0.0, + "x0": 0.0, + "y0": 0.0, + "t_max": 10.0, + "dt": 0.01, + "epsilon": 1e-10, +} diff --git a/src/models/rolling_ball/objects.py b/src/models/rolling_ball/objects.py new file mode 100644 index 0000000..a3071ae --- /dev/null +++ b/src/models/rolling_ball/objects.py @@ -0,0 +1,104 @@ +from dataclasses import dataclass + +import numpy as np +import streamlit as st +from scipy.integrate import solve_ivp + + +@dataclass +class BallParameters: + mass: float = 1.0 + radius: float = 0.1 + mu_friction: float = 0.3 + theta_degrees: float = 0.0 + x0: float = 0.0 + y0: float = 0.0 + vx0: float = 1.0 + vy0: float = 0.0 + omega_z0: float = 0.0 + t_max: float = 10.0 + dt: float = 0.01 + epsilon: float = 1e-4 + + +class BallModel: + def __init__(self): + self.g = 9.81 + + def calculate_friction_force(self, vx, vy, omega_z, params): + v_contact_x = vx - omega_z * params.radius + v_contact_y = vy + + v_contact_magnitude = np.sqrt(v_contact_x**2 + v_contact_y**2) + + normal_force = ( + params.mass * self.g * np.cos(np.radians(params.theta_degrees)) + ) + + if v_contact_magnitude < params.epsilon: + return 0.0, 0.0, "rolling" + max_friction_force = params.mu_friction * normal_force + + friction_x = -max_friction_force * v_contact_x / v_contact_magnitude + friction_y = -max_friction_force * v_contact_y / v_contact_magnitude + + return friction_x, friction_y, "sliding" + + def equations_of_motion(self, t, state, params): + _x, _y, vx, vy, omega_z = state + + gravity_x = self.g * np.sin(np.radians(params.theta_degrees)) + gravity_y = 0.0 + + friction_x, friction_y, mode = self.calculate_friction_force( + vx, vy, omega_z, params + ) + + if mode == "rolling": + acceleration_x = ( + (5.0 / 7.0) * self.g * np.sin(np.radians(params.theta_degrees)) + ) + acceleration_y = 0.0 + + angular_acceleration = acceleration_x / params.radius + + else: + acceleration_x = gravity_x + friction_x / params.mass + acceleration_y = gravity_y + friction_y / params.mass + + moment_of_inertia = (2.0 / 5.0) * params.mass * params.radius**2 + torque_z = friction_x * params.radius + angular_acceleration = torque_z / moment_of_inertia + + return [vx, vy, acceleration_x, acceleration_y, angular_acceleration] + + @st.cache_data(ttl=300) + def simulate_motion(_self, params: BallParameters): # noqa: N805 + initial_state = [ + params.x0, + params.y0, + params.vx0, + params.vy0, + params.omega_z0, + ] + + t_eval = np.arange(0, params.t_max, params.dt) + + solution = solve_ivp( + fun=lambda t, state: _self.equations_of_motion(t, state, params), + t_span=(0, params.t_max), + y0=initial_state, + t_eval=t_eval, + method="RK45", + rtol=1e-8, + atol=1e-10, + ) + + return ( + solution.y[0], + solution.y[1], + solution.y[2], + solution.y[3], + solution.y[4], + solution.t, + ) diff --git a/src/models/rolling_ball/sidebar.py b/src/models/rolling_ball/sidebar.py new file mode 100644 index 0000000..0db19d0 --- /dev/null +++ b/src/models/rolling_ball/sidebar.py @@ -0,0 +1,82 @@ +import streamlit as st + +from models.rolling_ball.objects import BallParameters + + +def create_ball_sidebar() -> BallParameters: + st.sidebar.header("Параметры шара") + + mass = st.sidebar.number_input( + "Масса шара (кг)", min_value=0.1, max_value=10.0, value=1.0, step=0.1 + ) + + radius = st.sidebar.number_input( + "Радиус шара (м)", min_value=0.01, max_value=1.0, value=0.1, step=0.01 + ) + + mu_friction = st.sidebar.number_input( + "Коэффициент трения", min_value=0.0, max_value=1.0, value=0.3, step=0.05 + ) + + st.sidebar.header("Поверхность") + + theta_degrees = st.sidebar.number_input( + "Угол наклона (градусы)", + min_value=0.0, + max_value=45.0, + value=0.0, + step=1.0, + ) + + st.sidebar.header("Начальные условия") + + x0 = st.sidebar.number_input("Начальная позиция X (м)", value=0.0, step=0.1) + y0 = st.sidebar.number_input("Начальная позиция Y (м)", value=0.0, step=0.1) + + vx0 = st.sidebar.number_input( + "Начальная скорость X (м/с)", + min_value=-10.0, + max_value=10.0, + value=1.0, + step=0.1, + ) + + vy0 = st.sidebar.number_input( + "Начальная скорость Y (м/с)", + min_value=-10.0, + max_value=10.0, + value=0.0, + step=0.1, + ) + + omega_z0 = st.sidebar.number_input( + "Начальная угловая скорость (рад/с)", + min_value=-20.0, + max_value=20.0, + value=0.0, + step=0.5, + ) + + st.sidebar.header("Параметры симуляции") + + t_max = st.sidebar.number_input( + "Время симуляции (с)", + min_value=1.0, + max_value=50.0, + value=10.0, + step=1.0, + ) + + return BallParameters( + mass=mass, + radius=radius, + mu_friction=mu_friction, + theta_degrees=theta_degrees, + x0=x0, + y0=y0, + vx0=vx0, + vy0=vy0, + omega_z0=omega_z0, + t_max=t_max, + dt=0.01, + ) diff --git a/src/models/rolling_ball/utils.py b/src/models/rolling_ball/utils.py new file mode 100644 index 0000000..ea7c655 --- /dev/null +++ b/src/models/rolling_ball/utils.py @@ -0,0 +1,29 @@ +from typing import Any + +import numpy as np + + +def calculate_ball_metrics( + x: int, y: int, vx: int, vy: int, omega_z: list[float], t: int +) -> dict[str, Any]: + final_position = (float(x[-1]), float(y[-1])) + total_distance = np.sum(np.sqrt(np.diff(x) ** 2 + np.diff(y) ** 2)) + + v_magnitude = np.sqrt(vx**2 + vy**2) + max_velocity = float(np.max(v_magnitude)) + final_velocity = float(v_magnitude[-1]) + + final_angular_velocity = float(omega_z[-1]) + + rolling_condition = np.abs(vx - omega_z * 0.1) + is_rolling_final = float(rolling_condition[-1]) < 1e-3 # noqa: PLR2004 + + return { + "final_position": final_position, + "total_distance_traveled": float(total_distance), + "max_velocity": max_velocity, + "final_velocity": final_velocity, + "final_angular_velocity": final_angular_velocity, + "is_rolling_at_end": is_rolling_final, + "simulation_time": float(t[-1]), + } diff --git a/tests/m4/__init__.py b/tests/m4/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/m4/test_ball_physics.py b/tests/m4/test_ball_physics.py new file mode 100644 index 0000000..eebaa38 --- /dev/null +++ b/tests/m4/test_ball_physics.py @@ -0,0 +1,90 @@ +import numpy as np +import pytest + +from models.rolling_ball.objects import BallModel, BallParameters + + +@pytest.fixture +def ball_model() -> BallModel: + return BallModel() + + +@pytest.fixture +def basic_ball_params() -> BallParameters: + return BallParameters( + mass=1.0, + radius=0.1, + mu_friction=0.3, + theta_degrees=0.0, + vx0=1.0, + vy0=0.0, + omega_z0=0.0, + t_max=5.0, + dt=0.01, + ) + + +@pytest.fixture +def inclined_params() -> BallParameters: + return BallParameters( + mass=1.0, + radius=0.1, + mu_friction=0.3, + theta_degrees=15.0, + vx0=0.0, + vy0=0.0, + omega_z0=0.0, + t_max=3.0, + dt=0.01, + ) + + +def test_ball_model_initialization(ball_model: BallModel) -> None: + assert ball_model.g == 9.81 + + +def test_horizontal_motion_energy_conservation( + ball_model: BallModel, basic_ball_params: BallParameters +) -> None: + x, y, vx, vy, omega_z, t = ball_model.simulate_motion(basic_ball_params) + + assert len(x) == len(y) == len(vx) == len(vy) == len(omega_z) == len(t) + assert x[0] == pytest.approx(basic_ball_params.x0) + assert y[0] == pytest.approx(basic_ball_params.y0) + assert vx[0] == pytest.approx(basic_ball_params.vx0) + + +def test_inclined_plane_acceleration( + ball_model: BallModel, inclined_params: BallParameters +) -> None: + _x, _y, vx, _vy, _omega_z, _t = ball_model.simulate_motion(inclined_params) + + expected_acceleration = ( + 5 * ball_model.g * np.sin(np.radians(inclined_params.theta_degrees)) / 7 + ) + + dt = inclined_params.dt + actual_acceleration = (vx[1] - vx[0]) / dt + + assert actual_acceleration == pytest.approx(expected_acceleration, rel=0.1) + + +def test_friction_force_calculation(ball_model: BallModel) -> None: + params = BallParameters(mass=1.0, radius=0.1, mu_friction=0.3) + + fx, _, mode = ball_model.calculate_friction_force(1.0, 0.0, 0.0, params) + assert mode == "sliding" + assert fx < 0 + + fx, _fy, mode = ball_model.calculate_friction_force( + 0.001, 0.0, 0.01, params + ) + assert mode == "rolling" + + +def test_momentum_conservation_properties( + ball_model: BallModel, basic_ball_params: BallParameters +) -> None: + _, _, vx, _, _, _ = ball_model.simulate_motion(basic_ball_params) + + assert not np.allclose(vx, basic_ball_params.vx0) From 56e713c15308755d4e95b8152206a59b1152fb65 Mon Sep 17 00:00:00 2001 From: Egor Zherdev Date: Wed, 5 Nov 2025 21:27:54 +0300 Subject: [PATCH 3/6] feat(m5): implementation of the m5 project --- .github/workflows/test.yaml | 2 +- pyproject.toml | 5 +- src/main.py | 4 + src/models/pendulum/__init__.py | 258 ++++++++++++++++++++++++++++++ src/models/pendulum/charts.py | 158 ++++++++++++++++++ src/models/pendulum/config.py | 21 +++ src/models/pendulum/objects.py | 160 ++++++++++++++++++ src/models/pendulum/sidebar.py | 74 +++++++++ src/models/pendulum/utils.py | 116 ++++++++++++++ tests/m5/__init__.py | 0 tests/m5/test_pendulum_physics.py | 217 +++++++++++++++++++++++++ uv.lock | 124 +------------- 12 files changed, 1020 insertions(+), 119 deletions(-) create mode 100644 src/models/pendulum/__init__.py create mode 100644 src/models/pendulum/charts.py create mode 100644 src/models/pendulum/config.py create mode 100644 src/models/pendulum/objects.py create mode 100644 src/models/pendulum/sidebar.py create mode 100644 src/models/pendulum/utils.py create mode 100644 tests/m5/__init__.py create mode 100644 tests/m5/test_pendulum_physics.py diff --git a/.github/workflows/test.yaml b/.github/workflows/test.yaml index bcef922..2d25902 100644 --- a/.github/workflows/test.yaml +++ b/.github/workflows/test.yaml @@ -11,7 +11,7 @@ permissions: jobs: build: - runs-on: ubuntu-latest + runs-on: ubuntu-22.04 steps: - uses: actions/checkout@v5 with: diff --git a/pyproject.toml b/pyproject.toml index 94aa525..1e55ecc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -3,14 +3,15 @@ name = "physics" version = "0.1.0" description = "Add your description here" readme = "README.md" -requires-python = ">=3.12" +requires-python = ">=3.12, <3.14" dependencies = [ "altair>=5.5.0", "numpy>=2.3.3", "pandas>=2.3.2", + "pyarrow>=21.0.0, <22.0.0", "python-dateutil>=2.9.0.post0", "scipy>=1.16.2", - "streamlit>=1.49.1", + "streamlit>=1.50.0", ] [dependency-groups] diff --git a/src/main.py b/src/main.py index a9dfc3f..947693b 100644 --- a/src/main.py +++ b/src/main.py @@ -1,6 +1,7 @@ import streamlit from models.billiard import page as billiard_page +from models.pendulum import page as pendulum_page from models.rolling_ball import page as rolling_ball_page from models.stone_flight import page as stone_flight_page @@ -14,6 +15,9 @@ def main() -> None: streamlit.Page( rolling_ball_page, title="M4 Шар на столе", url_path="rolling_ball" ), + streamlit.Page( + pendulum_page, title="M5 Физический маятник", url_path="pendulum" + ), ]) pages.run() diff --git a/src/models/pendulum/__init__.py b/src/models/pendulum/__init__.py new file mode 100644 index 0000000..ca97ed0 --- /dev/null +++ b/src/models/pendulum/__init__.py @@ -0,0 +1,258 @@ +import numpy as np +import pandas as pd +import streamlit as st + +from models.pendulum.charts import ( + create_amplitude_analysis_chart, + create_damping_analysis_chart, + create_energy_chart, + create_oscillation_chart, + create_phase_portrait, +) +from models.pendulum.objects import PendulumModel, PendulumParameters +from models.pendulum.sidebar import create_pendulum_sidebar +from models.pendulum.utils import ( + analyze_energy_conservation, + calculate_pendulum_metrics, + theoretical_period, +) + + +def page() -> None: + st.set_page_config(page_title="М5. Физический маятник", layout="wide") + st.title("М5. Физический маятник") + st.write( + "Численное моделирование колебаний физического маятника в поле тяжести" + ) + + model = PendulumModel() + params = create_pendulum_sidebar() + + analysis_type = st.sidebar.radio( + "Тип анализа:", + [ + "Основной анализ", + "Анализ зависимости от амплитуды", + "Анализ затухания", + ], + ) + + try: + if analysis_type == "Основной анализ": + display_basic_analysis(model, params) + elif analysis_type == "Анализ зависимости от амплитуды": + display_amplitude_analysis(model, params) + elif analysis_type == "Анализ затухания": + display_damping_analysis(model, params) + + except Exception as e: + st.error(f"Ошибка при моделировании: {e}") + + +def display_basic_analysis( # noqa: PLR0914 + model: PendulumModel, params: PendulumParameters +) -> None: + phi, omega, t = model.simulate_motion(params) + + if len(phi) == 0: + st.error("Моделирование не вернуло результатов") + return + + kinetic, potential, total = model.calculate_energy(phi, omega, params) + + col1, col2 = st.columns(2) + + with col1: + st.subheader("Колебания маятника") + oscillation_chart = create_oscillation_chart(phi, t) + st.altair_chart(oscillation_chart, use_container_width=True) + + with col2: + st.subheader("Фазовый портрет") + phase_chart = create_phase_portrait(phi, omega) + st.altair_chart(phase_chart, use_container_width=True) + + st.subheader("Анализ энергии системы") + energy_chart = create_energy_chart(kinetic, potential, total, t) + st.altair_chart(energy_chart, use_container_width=True) + + col3, col4 = st.columns(2) + + with col3: + st.subheader("Основные метрики") + metrics = calculate_pendulum_metrics(phi, omega, t) + + theoretical_t = theoretical_period( + params.length, + model.g, + np.radians(params.phi0_deg), + params.pendulum_type, + ) + + st.write("**Экспериментальные данные:**") + st.write( + f"• Максимальная амплитуда: {metrics['max_amplitude_deg']:.2f}°" + ) + st.write(f"• Период колебаний: {metrics['period_s']:.3f} с") + max_angular_vel = metrics["max_angular_velocity"] + st.write( + f"• Максимальная угловая скорость: {max_angular_vel:.3f} рад/с" + ) + + st.write("**Теоретические значения:**") + st.write(f"• Теоретический период: {theoretical_t:.3f} с") + period_diff = abs(metrics["period_s"] - theoretical_t) + period_error = period_diff / theoretical_t * 100 + st.write(f"• Относительная ошибка: {period_error:.2f}%") + + if params.friction_coeff > 0: + decay_rate = metrics["amplitude_decay_rate"] + st.write(f"• Коэффициент затухания: {decay_rate:.4f} с⁻¹") + + with col4: + st.subheader("Анализ сохранения энергии") + energy_analysis = analyze_energy_conservation(kinetic, potential, total) + + quality = energy_analysis["conservation_quality"] + st.write(f"**Качество сохранения энергии:** {quality}") + st.write( + f"• Начальная энергия: {energy_analysis['initial_energy']:.6f} Дж" + ) + st.write( + f"• Конечная энергия: {energy_analysis['final_energy']:.6f} Дж" + ) + rel_change = energy_analysis["relative_change"] * 100 + st.write(f"• Относительное изменение: {rel_change:.6f}%") + max_dev = energy_analysis["max_deviation"] * 100 + st.write(f"• Максимальное отклонение: {max_dev:.6f}%") + + +def display_amplitude_analysis( + model: PendulumModel, base_params: PendulumParameters +) -> None: + st.subheader("Зависимость периода колебаний от начальной амплитуды") + + amplitudes = [5, 10, 15, 30, 45, 60, 90, 120] + + results = {} + progress_bar = st.progress(0) + + for i, amp in enumerate(amplitudes): + params = PendulumParameters(**{ + **base_params.__dict__, + "phi0_deg": amp, + "friction_coeff": 0.0, + "t_max": 30.0, + }) + + try: + phi, _omega, t = model.simulate_motion(params) + period = model.calculate_period(phi, t) + + if period > 0: + results[amp] = period + + progress_bar.progress((i + 1) / len(amplitudes)) + except Exception as e: + st.warning(f"Ошибка для амплитуды {amp}°: {e}") + + if results: + chart = create_amplitude_analysis_chart(results) + st.altair_chart(chart, use_container_width=True) + + st.subheader("Таблица результатов") + table_data = [] + + theoretical_t0 = theoretical_period( + base_params.length, model.g, 0, base_params.pendulum_type + ) + + for amp in sorted(results.keys()): + period = results[amp] + theoretical_t = theoretical_period( + base_params.length, + model.g, + np.radians(amp), + base_params.pendulum_type, + ) + + error_pct = abs(period - theoretical_t) / theoretical_t * 100 + table_data.append({ + "Амплитуда (°)": amp, + "Период T (с)": f"{period:.4f}", + "T/T₀": f"{period / theoretical_t0:.4f}", + "Теория": f"{theoretical_t:.4f}", + "Ошибка (%)": f"{error_pct:.2f}", + }) + + df = pd.DataFrame(table_data) + st.dataframe(df) + else: + st.error("Не удалось получить данные для анализа") + + +def display_damping_analysis( # noqa: PLR0914 + model: PendulumModel, base_params: PendulumParameters +) -> None: + st.subheader("Анализ затухающих колебаний при различном трении") + + gamma_values = [0.0, 0.1, 0.3, 0.5, 1.0] + + damping_data = {} + progress_bar = st.progress(0) + + for i, gamma in enumerate(gamma_values): + params = PendulumParameters(**{ + **base_params.__dict__, + "friction_coeff": gamma, + "phi0_deg": 30.0, + "t_max": 20.0, + }) + + try: + phi, omega, t = model.simulate_motion(params) + damping_data[gamma] = (phi, t) + + progress_bar.progress((i + 1) / len(gamma_values)) + except Exception as e: + st.warning(f"Ошибка для γ = {gamma}: {e}") + + if damping_data: + chart = create_damping_analysis_chart(damping_data) + st.altair_chart(chart, use_container_width=True) + + st.subheader("Характеристики затухания") + + analysis_data = [] + for gamma, (phi, t) in damping_data.items(): + if gamma > 0: + omega = np.gradient( + phi, t[1] - t[0] if len(t) > 1 else base_params.dt + ) + metrics = calculate_pendulum_metrics(phi, omega, t) + + _i_o, _length_cm, omega0 = model._get_pendulum_properties( # noqa: SLF001 + base_params + ) + beta = gamma / 2 + omega_d = np.sqrt(omega0**2 - beta**2) if beta < omega0 else 0 + t_damped = 2 * np.pi / omega_d if omega_d > 0 else float("inf") + + decay_rate = metrics["amplitude_decay_rate"] + analysis_data.append({ + "γ (с⁻¹)": gamma, + "β (с⁻¹)": beta, + "Время затухания τ (с)": f"{1 / beta:.2f}" + if beta > 0 + else "∞", + "Период T_d (с)": f"{t_damped:.3f}" + if t_damped != float("inf") + else "∞", + "Коэфф. затухания (эксп.)": f"{decay_rate:.4f}", + }) + + if analysis_data: + df = pd.DataFrame(analysis_data) + st.dataframe(df) + else: + st.error("Не удалось получить данные для анализа затухания") diff --git a/src/models/pendulum/charts.py b/src/models/pendulum/charts.py new file mode 100644 index 0000000..8024503 --- /dev/null +++ b/src/models/pendulum/charts.py @@ -0,0 +1,158 @@ +import altair as alt +import numpy as np +import pandas as pd + +SMALL_AMPLITUDE_DEG = 5 + + +def create_oscillation_chart(phi: np.ndarray, t: np.ndarray) -> alt.Chart: + df = pd.DataFrame({"t": t, "phi_deg": np.degrees(phi), "phi_rad": phi}) + + return ( + alt.Chart(df) + .mark_line(strokeWidth=2, color="blue") + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время t (с)"), + y=alt.Y("phi_deg:Q", title="Угол φ (градусы)"), + tooltip=["t:Q", "phi_deg:Q", "phi_rad:Q"], + ) + .properties(title="Колебания маятника", width=600, height=300) + ) + + +def create_phase_portrait(phi: np.ndarray, omega: np.ndarray) -> alt.Chart: + df = pd.DataFrame({"phi_deg": np.degrees(phi), "omega": omega}) + + return ( + alt.Chart(df) + .mark_line( + strokeWidth=2, + color="red", + point=alt.OverlayMarkDef(size=20, opacity=0.3), + ) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("phi_deg:Q", title="Угол φ (градусы)"), + y=alt.Y("omega:Q", title="Угловая скорость ω (рад/с)"), + tooltip=["phi_deg:Q", "omega:Q"], + ) + .properties(title="Фазовый портрет", width=400, height=400) + ) + + +def create_energy_chart( + kinetic: np.ndarray, potential: np.ndarray, total: np.ndarray, t: np.ndarray +) -> alt.Chart: + df = pd.DataFrame({ + "t": t, + "Кинетическая": kinetic, + "Потенциальная": potential, + "Полная": total, + }) + + df_melted = df.melt("t", var_name="Тип энергии", value_name="Энергия (Дж)") + + return ( + alt.Chart(df_melted) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время t (с)"), + y=alt.Y("Энергия (Дж):Q", title="Энергия (Дж)"), + color=alt.Color( + "Тип энергии:N", scale=alt.Scale(scheme="category10") + ), + tooltip=["t:Q", "Тип энергии:N", "Энергия (Дж):Q"], + ) + .properties(title="Энергия системы", width=600, height=300) + ) + + +def create_amplitude_analysis_chart(amplitudes: dict) -> alt.Chart: + data = [] + for amp, period in amplitudes.items(): + period_ratio = ( + period / amplitudes[SMALL_AMPLITUDE_DEG] + if SMALL_AMPLITUDE_DEG in amplitudes + else 1.0 + ) + data.append({ + "Амплитуда (град)": amp, + "Период (с)": period, + "Период/T₀": period_ratio, + }) + + df = pd.DataFrame(data) + + chart1 = ( + alt.Chart(df) + .mark_circle(size=100, opacity=0.8) + .encode( + x=alt.X( + "Амплитуда (град):Q", title="Начальная амплитуда φ₀ (градусы)" + ), + y=alt.Y("Период (с):Q", title="Период T (с)"), + color=alt.value("blue"), + tooltip=["Амплитуда (град):Q", "Период (с):Q", "Период/T₀:Q"], + ) + .properties( + title="Зависимость периода от амплитуды", width=400, height=300 + ) + ) + + if SMALL_AMPLITUDE_DEG in amplitudes: + t0 = amplitudes[SMALL_AMPLITUDE_DEG] + theory_data = [] + for amp in range(SMALL_AMPLITUDE_DEG, 121, SMALL_AMPLITUDE_DEG): + phi_rad = np.radians(amp) + t_theory = t0 * (1 + phi_rad**2 / 16) + theory_data.append({"Амплитуда (град)": amp, "Теория": t_theory}) + + theory_df = pd.DataFrame(theory_data) + theory_line = ( + alt.Chart(theory_df) + .mark_line(color="red", strokeDash=[5, 5], strokeWidth=2) + .encode( + x="Амплитуда (град):Q", + y=alt.Y("Теория:Q", title="Период T (с)"), + ) + ) + + chart1 += theory_line + + return chart1 + + +def create_damping_analysis_chart(damping_data: dict) -> alt.Chart: + all_data = [] + + for gamma, (phi, t) in damping_data.items(): + phi_deg = np.degrees(phi) + all_data.extend([ + { + "t": t[i], + "phi": phi_deg[i], + "gamma": f"γ = {gamma} с⁻¹", + } + for i in range(len(t)) + ]) + + df = pd.DataFrame(all_data) + + return ( + alt.Chart(df) + .mark_line(strokeWidth=2) + .add_params(alt.selection_interval(bind="scales")) + .encode( + x=alt.X("t:Q", title="Время t (с)"), + y=alt.Y("phi:Q", title="Угол φ (градусы)"), + color=alt.Color("gamma:N", title="Коэффициент трения"), + tooltip=["t:Q", "phi:Q", "gamma:N"], + ) + .properties( + title="Затухающие колебания при разном трении", + width=600, + height=400, + ) + ) diff --git a/src/models/pendulum/config.py b/src/models/pendulum/config.py new file mode 100644 index 0000000..b308a92 --- /dev/null +++ b/src/models/pendulum/config.py @@ -0,0 +1,21 @@ +PHYSICAL_CONSTANTS = { + "g": 9.81, +} + +DEFAULT_PENDULUM_TYPES = { + "point_mass": { + "description": "Точечная масса на стержне", + "I_ratio": 1.0, + "l_ratio": 1.0, + }, + "uniform_rod": { + "description": "Однородный стержень", + "I_ratio": 1.0 / 3.0, + "l_ratio": 0.5, + }, + "thin_disk": { + "description": "Тонкий диск на стержне", + "I_ratio": 1.5, + "l_ratio": 1.0, + }, +} diff --git a/src/models/pendulum/objects.py b/src/models/pendulum/objects.py new file mode 100644 index 0000000..63348e8 --- /dev/null +++ b/src/models/pendulum/objects.py @@ -0,0 +1,160 @@ +from dataclasses import dataclass + +import numpy as np +import streamlit as st +from scipy import integrate + +from models.pendulum.config import PHYSICAL_CONSTANTS + + +@dataclass +class PendulumParameters: + length: float = 1.0 + mass: float = 1.0 + pendulum_type: str = "uniform_rod" + friction_coeff: float = 0.0 + phi0_deg: float = 30.0 + omega0: float = 0.0 + t_max: float = 20.0 + dt: float = 0.01 + + +class PendulumModel: + def __init__(self) -> None: + self.g = PHYSICAL_CONSTANTS["g"] + + def _get_pendulum_properties( + self, params: PendulumParameters + ) -> tuple[float, float, float]: + length = params.length + mass = params.mass + + if params.pendulum_type == "point_mass": + i_o = mass * length**2 + cm_distance = length + elif params.pendulum_type == "uniform_rod": + i_o = mass * length**2 / 3 + cm_distance = length / 2 + else: + i_o = mass * length**2 / 3 + cm_distance = length / 2 + + omega0 = np.sqrt(mass * self.g * cm_distance / i_o) + + return i_o, cm_distance, omega0 + + def _equations_of_motion( + self, t: float, state: np.ndarray, params: PendulumParameters + ) -> np.ndarray: + phi, omega = state + + _i_o, _cm_distance, omega0 = self._get_pendulum_properties(params) + + beta = params.friction_coeff / 2 + + dphi_dt = omega + domega_dt = -(omega0**2) * np.sin(phi) - 2 * beta * omega + + return np.array([dphi_dt, domega_dt]) + + @st.cache_data(ttl=300) + def simulate_motion( + _self, # noqa: N805 + params: PendulumParameters, + ) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + phi0 = np.radians(params.phi0_deg) + omega0 = params.omega0 + initial_state = np.array([phi0, omega0]) + + t_eval = np.arange(0, params.t_max, params.dt) + + solution = integrate.solve_ivp( + fun=lambda t, state: _self._equations_of_motion(t, state, params), # noqa: SLF001 + t_span=(0, params.t_max), + y0=initial_state, + t_eval=t_eval, + method="RK45", + rtol=1e-8, + atol=1e-10, + ) + + phi = solution.y[0] + omega = solution.y[1] + t = solution.t + + return phi, omega, t + + def calculate_energy( + self, phi: np.ndarray, omega: np.ndarray, params: PendulumParameters + ) -> tuple[np.ndarray, np.ndarray, np.ndarray]: + i_o, cm_distance, _ = self._get_pendulum_properties(params) + mass = params.mass + + kinetic = 0.5 * i_o * omega**2 + + potential = mass * self.g * cm_distance * (1 - np.cos(phi)) + + total = kinetic + potential + + return kinetic, potential, total + + def calculate_period(self, phi: np.ndarray, t: np.ndarray) -> float: # noqa: PLR6301 + min_samples = 100 + min_correlation_threshold = 0.5 + min_period_seconds = 0.5 + min_zero_crossings = 4 + + if len(phi) < min_samples: + return 0.0 + + try: + phi_centered = phi - np.mean(phi) + + correlation = np.correlate(phi_centered, phi_centered, mode="full") + correlation = correlation[correlation.size // 2 :] + + correlation /= correlation[0] + + dt = t[1] - t[0] if len(t) > 1 else 0.01 + min_period_samples = int(min_period_seconds / dt) + + if len(correlation) <= min_period_samples: + return 0.0 + + peaks = [ + i + for i in range(min_period_samples, len(correlation) - 1) + if ( + correlation[i - 1] < correlation[i] > correlation[i + 1] + and correlation[i] > min_correlation_threshold + ) + ] + + if peaks: + period_samples = peaks[0] + period = period_samples * dt + return float(period) + + except Exception: # noqa: S110 + pass + + zero_crossings = [] + + for i in range(1, len(phi)): + if phi[i - 1] * phi[i] < 0 and phi[i] != phi[i - 1]: + dt_interp = ( + -phi[i - 1] * (t[i] - t[i - 1]) / (phi[i] - phi[i - 1]) + ) + t_crossing = t[i - 1] + dt_interp + zero_crossings.append(t_crossing) + + if len(zero_crossings) >= min_zero_crossings: + periods = [ + zero_crossings[i + 2] - zero_crossings[i] + for i in range(0, len(zero_crossings) - 2, 2) + ] + + if periods: + return float(np.mean(periods)) + + return 0.0 diff --git a/src/models/pendulum/sidebar.py b/src/models/pendulum/sidebar.py new file mode 100644 index 0000000..6968891 --- /dev/null +++ b/src/models/pendulum/sidebar.py @@ -0,0 +1,74 @@ +import streamlit as st + +from models.pendulum.objects import PendulumParameters + + +def create_pendulum_sidebar() -> PendulumParameters: + st.sidebar.header("Параметры маятника") + + length = st.sidebar.number_input( + "Длина L (м)", min_value=0.1, max_value=10.0, value=1.0, step=0.1 + ) + + mass = st.sidebar.number_input( + "Масса m (кг)", min_value=0.1, max_value=10.0, value=1.0, step=0.1 + ) + + pendulum_type = st.sidebar.selectbox( + "Тип маятника", + options=["uniform_rod", "point_mass"], + format_func=lambda x: { + "uniform_rod": "Однородный стержень", + "point_mass": "Точечная масса", + }[x], + index=0, + ) + + st.sidebar.header("Физические параметры") + + friction_coeff = st.sidebar.number_input( + "Коэффициент трения γ (с⁻¹)", + min_value=0.0, + max_value=2.0, + value=0.0, + step=0.1, + ) + + st.sidebar.header("Начальные условия") + + phi0_deg = st.sidebar.number_input( + "Начальный угол φ₀ (градусы)", + min_value=-180.0, + max_value=180.0, + value=30.0, + step=5.0, + ) + + omega0 = st.sidebar.number_input( + "Начальная угловая скорость ω₀ (рад/с)", + min_value=-10.0, + max_value=10.0, + value=0.0, + step=0.5, + ) + + st.sidebar.header("Параметры симуляции") + + t_max = st.sidebar.number_input( + "Время симуляции (с)", + min_value=5.0, + max_value=100.0, + value=20.0, + step=5.0, + ) + + return PendulumParameters( + length=length, + mass=mass, + pendulum_type=pendulum_type, + friction_coeff=friction_coeff, + phi0_deg=phi0_deg, + omega0=omega0, + t_max=t_max, + dt=0.01, + ) diff --git a/src/models/pendulum/utils.py b/src/models/pendulum/utils.py new file mode 100644 index 0000000..ffa744f --- /dev/null +++ b/src/models/pendulum/utils.py @@ -0,0 +1,116 @@ +import numpy as np + +MIN_ZERO_CROSSINGS = 2 +MIN_DATA_POINTS_FOR_DECAY = 100 +EXCELLENT_THRESHOLD = 1e-6 +GOOD_THRESHOLD = 1e-4 +ACCEPTABLE_THRESHOLD = 1e-2 + + +def calculate_pendulum_metrics( + phi: np.ndarray, omega: np.ndarray, t: np.ndarray +) -> dict: + if len(phi) == 0: + return {"error": "Нет данных для анализа"} + + max_amplitude = float(np.max(np.abs(phi))) + + zero_crossings = [] + for i in range(1, len(phi)): + if phi[i - 1] * phi[i] < 0 and omega[i] < 0: + t_cross = t[i - 1] - phi[i - 1] * (t[i] - t[i - 1]) / ( + phi[i] - phi[i - 1] + ) + zero_crossings.append(t_cross) + + period = 0.0 + if len(zero_crossings) >= MIN_ZERO_CROSSINGS: + periods = np.diff(zero_crossings) + period = float(np.mean(periods)) + + max_omega = float(np.max(np.abs(omega))) + + kinetic_max = float(np.max(0.5 * omega**2)) + potential_max = float(max_amplitude**2 / 2) + + amplitude_decay_rate = 0.0 + if len(phi) > MIN_DATA_POINTS_FOR_DECAY: + peaks = [ + (t[i], phi[i]) + for i in range(1, len(phi) - 1) + if phi[i - 1] < phi[i] > phi[i + 1] and phi[i] > 0 + ] + + if len(peaks) >= MIN_ZERO_CROSSINGS: + peak_times = np.array([p[0] for p in peaks]) + peak_values = np.array([p[1] for p in peaks]) + + if np.all(peak_values > 0): + coeffs = np.polyfit(peak_times, np.log(peak_values), 1) + amplitude_decay_rate = float(-coeffs[0]) + + return { + "max_amplitude_rad": max_amplitude, + "max_amplitude_deg": float(np.degrees(max_amplitude)), + "period_s": period, + "max_angular_velocity": max_omega, + "kinetic_energy_max": kinetic_max, + "potential_energy_max": potential_max, + "amplitude_decay_rate": amplitude_decay_rate, + "simulation_time": float(t[-1]) if len(t) > 0 else 0.0, + "data_points": len(t), + } + + +def theoretical_period( + length: float, g: float, phi0_rad: float, pendulum_type: str = "uniform_rod" +) -> float: + if pendulum_type == "uniform_rod": + omega0 = np.sqrt(3 * g / (2 * length)) + elif pendulum_type == "point_mass": + omega0 = np.sqrt(g / length) + else: + omega0 = np.sqrt(3 * g / (2 * length)) + + t0 = 2 * np.pi / omega0 + + amplitude_correction = 1 + phi0_rad**2 / 16 + + return t0 * amplitude_correction + + +def analyze_energy_conservation( + kinetic: np.ndarray, potential: np.ndarray, total: np.ndarray +) -> dict: + if len(total) == 0: + return {"error": "Нет данных для анализа энергии"} + + e0 = total[0] + e_final = total[-1] + + relative_change = (e_final - e0) / e0 if e0 != 0 else 0 + + max_deviation = np.max(np.abs(total - e0)) / e0 if e0 != 0 else 0 + + mean_energy = float(np.mean(total)) + + energy_std = float(np.std(total)) + + if max_deviation < EXCELLENT_THRESHOLD: + quality = "excellent" + elif max_deviation < GOOD_THRESHOLD: + quality = "good" + elif max_deviation < ACCEPTABLE_THRESHOLD: + quality = "acceptable" + else: + quality = "poor" + + return { + "initial_energy": float(e0), + "final_energy": float(e_final), + "relative_change": float(relative_change), + "max_deviation": float(max_deviation), + "mean_energy": mean_energy, + "energy_std": energy_std, + "conservation_quality": quality, + } diff --git a/tests/m5/__init__.py b/tests/m5/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/tests/m5/test_pendulum_physics.py b/tests/m5/test_pendulum_physics.py new file mode 100644 index 0000000..cf5dbb4 --- /dev/null +++ b/tests/m5/test_pendulum_physics.py @@ -0,0 +1,217 @@ +import numpy as np +import pytest + +from models.pendulum.objects import PendulumModel, PendulumParameters + + +@pytest.fixture +def pendulum_model(): + return PendulumModel() + + +@pytest.fixture +def basic_params(): + return PendulumParameters( + length=1.0, + mass=1.0, + pendulum_type="uniform_rod", + friction_coeff=0.0, + phi0_deg=30.0, + omega0=0.0, + t_max=10.0, + dt=0.01, + ) + + +@pytest.fixture +def small_amplitude_params(): + return PendulumParameters( + length=1.0, + mass=1.0, + pendulum_type="uniform_rod", + friction_coeff=0.0, + phi0_deg=5.0, + omega0=0.0, + t_max=20.0, + dt=0.005, + ) + + +def test_pendulum_model_initialization(pendulum_model): + assert pendulum_model.g == 9.81 + + +def test_pendulum_properties_uniform_rod(pendulum_model): + params = PendulumParameters( + length=1.0, mass=1.0, pendulum_type="uniform_rod" + ) + + i_o, cm_distance, omega0 = pendulum_model._get_pendulum_properties(params) + + expected_i_o = 1.0 * 1.0**2 / 3 + expected_cm_distance = 1.0 / 2 + expected_omega0 = np.sqrt(1.0 * 9.81 * expected_cm_distance / expected_i_o) + + assert pytest.approx(expected_i_o) == i_o + assert cm_distance == pytest.approx(expected_cm_distance) + assert omega0 == pytest.approx(expected_omega0) + + +def test_pendulum_properties_point_mass(pendulum_model): + params = PendulumParameters( + length=1.0, mass=1.0, pendulum_type="point_mass" + ) + + i_o, cm_distance, omega0 = pendulum_model._get_pendulum_properties(params) + + expected_i_o = 1.0 * 1.0**2 + expected_cm_distance = 1.0 + expected_omega0 = np.sqrt(1.0 * 9.81 * expected_cm_distance / expected_i_o) + + assert pytest.approx(expected_i_o) == i_o + assert cm_distance == pytest.approx(expected_cm_distance) + assert omega0 == pytest.approx(expected_omega0) + + +def test_small_amplitude_oscillations(pendulum_model, small_amplitude_params): + phi, omega, t = pendulum_model.simulate_motion(small_amplitude_params) + + assert len(phi) == len(omega) == len(t) + assert len(phi) > 0 + + assert phi[0] == pytest.approx( + np.radians(small_amplitude_params.phi0_deg), abs=1e-6 + ) + assert omega[0] == pytest.approx(small_amplitude_params.omega0, abs=1e-6) + + _i_o, _cm_distance, omega0_calc = pendulum_model._get_pendulum_properties( + small_amplitude_params + ) + theoretical_period = 2 * np.pi / omega0_calc + + period = pendulum_model.calculate_period(phi, t) + + assert period > 0, "Не удалось определить период колебаний" + assert period == pytest.approx(theoretical_period, rel=0.005) + + +def test_energy_conservation_no_friction(pendulum_model, basic_params): + phi, omega, _t = pendulum_model.simulate_motion(basic_params) + + _kinetic, _potential, total = pendulum_model.calculate_energy( + phi, omega, basic_params + ) + + initial_energy = total[0] + final_energy = total[-1] + + relative_change = abs(final_energy - initial_energy) / initial_energy + + assert relative_change < 1e-3 + + +def test_damped_oscillations(pendulum_model): + params = PendulumParameters( + length=1.0, + mass=1.0, + pendulum_type="uniform_rod", + friction_coeff=0.2, + phi0_deg=30.0, + omega0=0.0, + t_max=20.0, + dt=0.01, + ) + + phi, _omega, _t = pendulum_model.simulate_motion(params) + + max_amplitudes = [ + phi[i] + for i in range(1, len(phi) - 1) + if phi[i - 1] < phi[i] > phi[i + 1] and phi[i] > 0 + ] + + assert len(max_amplitudes) >= 3 + + for i in range(1, len(max_amplitudes)): + assert max_amplitudes[i] < max_amplitudes[i - 1] + + +def test_period_amplitude_dependence(pendulum_model): + base_params = PendulumParameters( + length=1.0, + mass=1.0, + pendulum_type="uniform_rod", + friction_coeff=0.0, + t_max=25.0, + dt=0.005, + ) + + amplitudes = [5, 30, 60] + periods = [] + + for amp in amplitudes: + params = PendulumParameters(**{**base_params.__dict__, "phi0_deg": amp}) + phi, _omega, t = pendulum_model.simulate_motion(params) + period = pendulum_model.calculate_period(phi, t) + + if period > 0: + periods.append(period) + else: + periods.append(0) + + valid_periods = [p for p in periods if p > 0] + if len(valid_periods) >= 2: + assert max(valid_periods) > min(valid_periods), ( + "Период должен зависеть от амплитуды" + ) + else: + pytest.skip("Не удалось определить достаточно периодов для анализа") + + +def test_equations_of_motion(pendulum_model): + params = PendulumParameters() + + state_equilibrium = np.array([0.0, 0.0]) + derivatives = pendulum_model._equations_of_motion( + 0, state_equilibrium, params + ) + + assert derivatives[0] == 0.0 + assert derivatives[1] == 0.0 + + state_displaced = np.array([np.radians(30), 0.0]) + derivatives = pendulum_model._equations_of_motion( + 0, state_displaced, params + ) + + assert derivatives[0] == 0.0 + + assert derivatives[1] < 0 + + +def test_energy_calculation(pendulum_model): + params = PendulumParameters( + length=1.0, mass=1.0, pendulum_type="uniform_rod" + ) + + phi = np.array([np.radians(30)]) + omega = np.array([0.0]) + + kinetic, potential, total = pendulum_model.calculate_energy( + phi, omega, params + ) + + assert kinetic[0] == 0.0 + assert potential[0] > 0.0 + assert total[0] == potential[0] + + phi = np.array([0.0]) + omega = np.array([2.0]) + + kinetic, potential, total = pendulum_model.calculate_energy( + phi, omega, params + ) + + assert kinetic[0] > 0.0 + assert potential[0] == 0.0 + assert total[0] == kinetic[0] diff --git a/uv.lock b/uv.lock index 515ab8b..9add58b 100644 --- a/uv.lock +++ b/uv.lock @@ -1,6 +1,6 @@ version = 1 revision = 1 -requires-python = ">=3.12" +requires-python = ">=3.12, <3.14" [[package]] name = "altair" @@ -11,7 +11,7 @@ dependencies = [ { name = "jsonschema" }, { name = "narwhals" }, { name = "packaging" }, - { name = "typing-extensions", marker = "python_full_version < '3.14'" }, + { name = "typing-extensions" }, ] sdist = { url = "https://files.pythonhosted.org/packages/16/b1/f2969c7bdb8ad8bbdda031687defdce2c19afba2aa2c8e1d2a17f78376d8/altair-5.5.0.tar.gz", hash = "sha256:d960ebe6178c56de3855a68c47b516be38640b73fb3b5111c2a9ca90546dd73d", size = 705305 } wheels = [ @@ -91,17 +91,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/70/99/f1c3bdcfaa9c45b3ce96f70b14f070411366fa19549c1d4832c935d8e2c3/charset_normalizer-3.4.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:18343b2d246dc6761a249ba1fb13f9ee9a2bcd95decc767319506056ea4ad4dc", size = 152699 }, { url = "https://files.pythonhosted.org/packages/a3/ad/b0081f2f99a4b194bcbb1934ef3b12aa4d9702ced80a37026b7607c72e58/charset_normalizer-3.4.3-cp313-cp313-win32.whl", hash = "sha256:6fb70de56f1859a3f71261cbe41005f56a7842cc348d3aeb26237560bfa5e0ce", size = 99580 }, { url = "https://files.pythonhosted.org/packages/9a/8f/ae790790c7b64f925e5c953b924aaa42a243fb778fed9e41f147b2a5715a/charset_normalizer-3.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:cf1ebb7d78e1ad8ec2a8c4732c7be2e736f6e5123a4146c5b89c9d1f585f8cef", size = 107366 }, - { url = "https://files.pythonhosted.org/packages/8e/91/b5a06ad970ddc7a0e513112d40113e834638f4ca1120eb727a249fb2715e/charset_normalizer-3.4.3-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:3cd35b7e8aedeb9e34c41385fda4f73ba609e561faedfae0a9e75e44ac558a15", size = 204342 }, - { url = "https://files.pythonhosted.org/packages/ce/ec/1edc30a377f0a02689342f214455c3f6c2fbedd896a1d2f856c002fc3062/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b89bc04de1d83006373429975f8ef9e7932534b8cc9ca582e4db7d20d91816db", size = 145995 }, - { url = "https://files.pythonhosted.org/packages/17/e5/5e67ab85e6d22b04641acb5399c8684f4d37caf7558a53859f0283a650e9/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2001a39612b241dae17b4687898843f254f8748b796a2e16f1051a17078d991d", size = 158640 }, - { url = "https://files.pythonhosted.org/packages/f1/e5/38421987f6c697ee3722981289d554957c4be652f963d71c5e46a262e135/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8dcfc373f888e4fb39a7bc57e93e3b845e7f462dacc008d9749568b1c4ece096", size = 156636 }, - { url = "https://files.pythonhosted.org/packages/a0/e4/5a075de8daa3ec0745a9a3b54467e0c2967daaaf2cec04c845f73493e9a1/charset_normalizer-3.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:18b97b8404387b96cdbd30ad660f6407799126d26a39ca65729162fd810a99aa", size = 150939 }, - { url = "https://files.pythonhosted.org/packages/02/f7/3611b32318b30974131db62b4043f335861d4d9b49adc6d57c1149cc49d4/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ccf600859c183d70eb47e05a44cd80a4ce77394d1ac0f79dbd2dd90a69a3a049", size = 148580 }, - { url = "https://files.pythonhosted.org/packages/7e/61/19b36f4bd67f2793ab6a99b979b4e4f3d8fc754cbdffb805335df4337126/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:53cd68b185d98dde4ad8990e56a58dea83a4162161b1ea9272e5c9182ce415e0", size = 159870 }, - { url = "https://files.pythonhosted.org/packages/06/57/84722eefdd338c04cf3030ada66889298eaedf3e7a30a624201e0cbe424a/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:30a96e1e1f865f78b030d65241c1ee850cdf422d869e9028e2fc1d5e4db73b92", size = 157797 }, - { url = "https://files.pythonhosted.org/packages/72/2a/aff5dd112b2f14bcc3462c312dce5445806bfc8ab3a7328555da95330e4b/charset_normalizer-3.4.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d716a916938e03231e86e43782ca7878fb602a125a91e7acb8b5112e2e96ac16", size = 152224 }, - { url = "https://files.pythonhosted.org/packages/b7/8c/9839225320046ed279c6e839d51f028342eb77c91c89b8ef2549f951f3ec/charset_normalizer-3.4.3-cp314-cp314-win32.whl", hash = "sha256:c6dbd0ccdda3a2ba7c2ecd9d77b37f3b5831687d8dc1b6ca5f56a4880cc7b7ce", size = 100086 }, - { url = "https://files.pythonhosted.org/packages/ee/7a/36fbcf646e41f710ce0a563c1c9a343c6edf9be80786edeb15b6f62e17db/charset_normalizer-3.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:73dc19b562516fc9bcf6e5d6e596df0b4eb98d87e4f79f3ae71840e6ed21361c", size = 107400 }, { url = "https://files.pythonhosted.org/packages/8a/1f/f041989e93b001bc4e44bb1669ccdcf54d3f00e628229a85b08d330615c5/charset_normalizer-3.4.3-py3-none-any.whl", hash = "sha256:ce571ab16d890d23b5c278547ba694193a45011ff86a9162a71307ed9f86759a", size = 53175 }, ] @@ -295,12 +284,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/98/43/b7e429fc4be10e390a167b0cd1810d41cb4e4add4ae50bab96faff695a3b/mypy-1.18.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a0e70b87eb27b33209fa4792b051c6947976f6ab829daa83819df5f58330c71", size = 13346944 }, { url = "https://files.pythonhosted.org/packages/89/4e/899dba0bfe36bbd5b7c52e597de4cf47b5053d337b6d201a30e3798e77a6/mypy-1.18.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:c378d946e8a60be6b6ede48c878d145546fb42aad61df998c056ec151bf6c746", size = 13512574 }, { url = "https://files.pythonhosted.org/packages/f5/f8/7661021a5b0e501b76440454d786b0f01bb05d5c4b125fcbda02023d0250/mypy-1.18.1-cp313-cp313-win_amd64.whl", hash = "sha256:2cd2c1e0f3a7465f22731987fff6fc427e3dcbb4ca5f7db5bbeaff2ff9a31f6d", size = 9837684 }, - { url = "https://files.pythonhosted.org/packages/bf/87/7b173981466219eccc64c107cf8e5ab9eb39cc304b4c07df8e7881533e4f/mypy-1.18.1-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:ba24603c58e34dd5b096dfad792d87b304fc6470cbb1c22fd64e7ebd17edcc61", size = 12900265 }, - { url = "https://files.pythonhosted.org/packages/ae/cc/b10e65bae75b18a5ac8f81b1e8e5867677e418f0dd2c83b8e2de9ba96ebd/mypy-1.18.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:ed36662fb92ae4cb3cacc682ec6656208f323bbc23d4b08d091eecfc0863d4b5", size = 11942890 }, - { url = "https://files.pythonhosted.org/packages/39/d4/aeefa07c44d09f4c2102e525e2031bc066d12e5351f66b8a83719671004d/mypy-1.18.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:040ecc95e026f71a9ad7956fea2724466602b561e6a25c2e5584160d3833aaa8", size = 12472291 }, - { url = "https://files.pythonhosted.org/packages/c6/07/711e78668ff8e365f8c19735594ea95938bff3639a4c46a905e3ed8ff2d6/mypy-1.18.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:937e3ed86cb731276706e46e03512547e43c391a13f363e08d0fee49a7c38a0d", size = 13318610 }, - { url = "https://files.pythonhosted.org/packages/ca/85/df3b2d39339c31d360ce299b418c55e8194ef3205284739b64962f6074e7/mypy-1.18.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1f95cc4f01c0f1701ca3b0355792bccec13ecb2ec1c469e5b85a6ef398398b1d", size = 13513697 }, - { url = "https://files.pythonhosted.org/packages/b1/df/462866163c99ea73bb28f0eb4d415c087e30de5d36ee0f5429d42e28689b/mypy-1.18.1-cp314-cp314-win_amd64.whl", hash = "sha256:e4f16c0019d48941220ac60b893615be2f63afedaba6a0801bdcd041b96991ce", size = 9985739 }, { url = "https://files.pythonhosted.org/packages/e0/1d/4b97d3089b48ef3d904c9ca69fab044475bd03245d878f5f0b3ea1daf7ce/mypy-1.18.1-py3-none-any.whl", hash = "sha256:b76a4de66a0ac01da1be14ecc8ae88ddea33b8380284a9e3eae39d57ebcbe26e", size = 2352212 }, ] @@ -370,28 +353,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/5b/8e/3ab61a730bdbbc201bb245a71102aa609f0008b9ed15255500a99cd7f780/numpy-2.3.3-cp313-cp313t-win32.whl", hash = "sha256:a333b4ed33d8dc2b373cc955ca57babc00cd6f9009991d9edc5ddbc1bac36bcd", size = 6442776 }, { url = "https://files.pythonhosted.org/packages/1c/3a/e22b766b11f6030dc2decdeff5c2fb1610768055603f9f3be88b6d192fb2/numpy-2.3.3-cp313-cp313t-win_amd64.whl", hash = "sha256:4384a169c4d8f97195980815d6fcad04933a7e1ab3b530921c3fef7a1c63426d", size = 12927281 }, { url = "https://files.pythonhosted.org/packages/7b/42/c2e2bc48c5e9b2a83423f99733950fbefd86f165b468a3d85d52b30bf782/numpy-2.3.3-cp313-cp313t-win_arm64.whl", hash = "sha256:75370986cc0bc66f4ce5110ad35aae6d182cc4ce6433c40ad151f53690130bf1", size = 10265275 }, - { url = "https://files.pythonhosted.org/packages/6b/01/342ad585ad82419b99bcf7cebe99e61da6bedb89e213c5fd71acc467faee/numpy-2.3.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:cd052f1fa6a78dee696b58a914b7229ecfa41f0a6d96dc663c1220a55e137593", size = 20951527 }, - { url = "https://files.pythonhosted.org/packages/ef/d8/204e0d73fc1b7a9ee80ab1fe1983dd33a4d64a4e30a05364b0208e9a241a/numpy-2.3.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:414a97499480067d305fcac9716c29cf4d0d76db6ebf0bf3cbce666677f12652", size = 14186159 }, - { url = "https://files.pythonhosted.org/packages/22/af/f11c916d08f3a18fb8ba81ab72b5b74a6e42ead4c2846d270eb19845bf74/numpy-2.3.3-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:50a5fe69f135f88a2be9b6ca0481a68a136f6febe1916e4920e12f1a34e708a7", size = 5114624 }, - { url = "https://files.pythonhosted.org/packages/fb/11/0ed919c8381ac9d2ffacd63fd1f0c34d27e99cab650f0eb6f110e6ae4858/numpy-2.3.3-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:b912f2ed2b67a129e6a601e9d93d4fa37bef67e54cac442a2f588a54afe5c67a", size = 6642627 }, - { url = "https://files.pythonhosted.org/packages/ee/83/deb5f77cb0f7ba6cb52b91ed388b47f8f3c2e9930d4665c600408d9b90b9/numpy-2.3.3-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9e318ee0596d76d4cb3d78535dc005fa60e5ea348cd131a51e99d0bdbe0b54fe", size = 14296926 }, - { url = "https://files.pythonhosted.org/packages/77/cc/70e59dcb84f2b005d4f306310ff0a892518cc0c8000a33d0e6faf7ca8d80/numpy-2.3.3-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ce020080e4a52426202bdb6f7691c65bb55e49f261f31a8f506c9f6bc7450421", size = 16638958 }, - { url = "https://files.pythonhosted.org/packages/b6/5a/b2ab6c18b4257e099587d5b7f903317bd7115333ad8d4ec4874278eafa61/numpy-2.3.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:e6687dc183aa55dae4a705b35f9c0f8cb178bcaa2f029b241ac5356221d5c021", size = 16071920 }, - { url = "https://files.pythonhosted.org/packages/b8/f1/8b3fdc44324a259298520dd82147ff648979bed085feeacc1250ef1656c0/numpy-2.3.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:d8f3b1080782469fdc1718c4ed1d22549b5fb12af0d57d35e992158a772a37cf", size = 18577076 }, - { url = "https://files.pythonhosted.org/packages/f0/a1/b87a284fb15a42e9274e7fcea0dad259d12ddbf07c1595b26883151ca3b4/numpy-2.3.3-cp314-cp314-win32.whl", hash = "sha256:cb248499b0bc3be66ebd6578b83e5acacf1d6cb2a77f2248ce0e40fbec5a76d0", size = 6366952 }, - { url = "https://files.pythonhosted.org/packages/70/5f/1816f4d08f3b8f66576d8433a66f8fa35a5acfb3bbd0bf6c31183b003f3d/numpy-2.3.3-cp314-cp314-win_amd64.whl", hash = "sha256:691808c2b26b0f002a032c73255d0bd89751425f379f7bcd22d140db593a96e8", size = 12919322 }, - { url = "https://files.pythonhosted.org/packages/8c/de/072420342e46a8ea41c324a555fa90fcc11637583fb8df722936aed1736d/numpy-2.3.3-cp314-cp314-win_arm64.whl", hash = "sha256:9ad12e976ca7b10f1774b03615a2a4bab8addce37ecc77394d8e986927dc0dfe", size = 10478630 }, - { url = "https://files.pythonhosted.org/packages/d5/df/ee2f1c0a9de7347f14da5dd3cd3c3b034d1b8607ccb6883d7dd5c035d631/numpy-2.3.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9cc48e09feb11e1db00b320e9d30a4151f7369afb96bd0e48d942d09da3a0d00", size = 21047987 }, - { url = "https://files.pythonhosted.org/packages/d6/92/9453bdc5a4e9e69cf4358463f25e8260e2ffc126d52e10038b9077815989/numpy-2.3.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:901bf6123879b7f251d3631967fd574690734236075082078e0571977c6a8e6a", size = 14301076 }, - { url = "https://files.pythonhosted.org/packages/13/77/1447b9eb500f028bb44253105bd67534af60499588a5149a94f18f2ca917/numpy-2.3.3-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:7f025652034199c301049296b59fa7d52c7e625017cae4c75d8662e377bf487d", size = 5229491 }, - { url = "https://files.pythonhosted.org/packages/3d/f9/d72221b6ca205f9736cb4b2ce3b002f6e45cd67cd6a6d1c8af11a2f0b649/numpy-2.3.3-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:533ca5f6d325c80b6007d4d7fb1984c303553534191024ec6a524a4c92a5935a", size = 6737913 }, - { url = "https://files.pythonhosted.org/packages/3c/5f/d12834711962ad9c46af72f79bb31e73e416ee49d17f4c797f72c96b6ca5/numpy-2.3.3-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0edd58682a399824633b66885d699d7de982800053acf20be1eaa46d92009c54", size = 14352811 }, - { url = "https://files.pythonhosted.org/packages/a1/0d/fdbec6629d97fd1bebed56cd742884e4eead593611bbe1abc3eb40d304b2/numpy-2.3.3-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:367ad5d8fbec5d9296d18478804a530f1191e24ab4d75ab408346ae88045d25e", size = 16702689 }, - { url = "https://files.pythonhosted.org/packages/9b/09/0a35196dc5575adde1eb97ddfbc3e1687a814f905377621d18ca9bc2b7dd/numpy-2.3.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8f6ac61a217437946a1fa48d24c47c91a0c4f725237871117dea264982128097", size = 16133855 }, - { url = "https://files.pythonhosted.org/packages/7a/ca/c9de3ea397d576f1b6753eaa906d4cdef1bf97589a6d9825a349b4729cc2/numpy-2.3.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:179a42101b845a816d464b6fe9a845dfaf308fdfc7925387195570789bb2c970", size = 18652520 }, - { url = "https://files.pythonhosted.org/packages/fd/c2/e5ed830e08cd0196351db55db82f65bc0ab05da6ef2b72a836dcf1936d2f/numpy-2.3.3-cp314-cp314t-win32.whl", hash = "sha256:1250c5d3d2562ec4174bce2e3a1523041595f9b651065e4a4473f5f48a6bc8a5", size = 6515371 }, - { url = "https://files.pythonhosted.org/packages/47/c7/b0f6b5b67f6788a0725f744496badbb604d226bf233ba716683ebb47b570/numpy-2.3.3-cp314-cp314t-win_amd64.whl", hash = "sha256:b37a0b2e5935409daebe82c1e42274d30d9dd355852529eab91dab8dcca7419f", size = 13112576 }, - { url = "https://files.pythonhosted.org/packages/06/b9/33bba5ff6fb679aa0b1f8a07e853f002a6b04b9394db3069a1270a7784ca/numpy-2.3.3-cp314-cp314t-win_arm64.whl", hash = "sha256:78c9f6560dc7e6b3990e32df7ea1a50bbd0e2a111e05209963f5ddcab7073b0b", size = 10545953 }, ] [[package]] @@ -484,6 +445,7 @@ dependencies = [ { name = "altair" }, { name = "numpy" }, { name = "pandas" }, + { name = "pyarrow" }, { name = "python-dateutil" }, { name = "scipy" }, { name = "streamlit" }, @@ -503,9 +465,10 @@ requires-dist = [ { name = "altair", specifier = ">=5.5.0" }, { name = "numpy", specifier = ">=2.3.3" }, { name = "pandas", specifier = ">=2.3.2" }, + { name = "pyarrow", specifier = ">=21.0.0,<22.0.0" }, { name = "python-dateutil", specifier = ">=2.9.0.post0" }, { name = "scipy", specifier = ">=1.16.2" }, - { name = "streamlit", specifier = ">=1.49.1" }, + { name = "streamlit", specifier = ">=1.50.0" }, ] [package.metadata.requires-dev] @@ -559,28 +522,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/49/6b/00187a044f98255225f172de653941e61da37104a9ea60e4f6887717e2b5/pillow-11.3.0-cp313-cp313t-win32.whl", hash = "sha256:2a3117c06b8fb646639dce83694f2f9eac405472713fcb1ae887469c0d4f6788", size = 6277546 }, { url = "https://files.pythonhosted.org/packages/e8/5c/6caaba7e261c0d75bab23be79f1d06b5ad2a2ae49f028ccec801b0e853d6/pillow-11.3.0-cp313-cp313t-win_amd64.whl", hash = "sha256:857844335c95bea93fb39e0fa2726b4d9d758850b34075a7e3ff4f4fa3aa3b31", size = 6985102 }, { url = "https://files.pythonhosted.org/packages/f3/7e/b623008460c09a0cb38263c93b828c666493caee2eb34ff67f778b87e58c/pillow-11.3.0-cp313-cp313t-win_arm64.whl", hash = "sha256:8797edc41f3e8536ae4b10897ee2f637235c94f27404cac7297f7b607dd0716e", size = 2424803 }, - { url = "https://files.pythonhosted.org/packages/73/f4/04905af42837292ed86cb1b1dabe03dce1edc008ef14c473c5c7e1443c5d/pillow-11.3.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:d9da3df5f9ea2a89b81bb6087177fb1f4d1c7146d583a3fe5c672c0d94e55e12", size = 5278520 }, - { url = "https://files.pythonhosted.org/packages/41/b0/33d79e377a336247df6348a54e6d2a2b85d644ca202555e3faa0cf811ecc/pillow-11.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0b275ff9b04df7b640c59ec5a3cb113eefd3795a8df80bac69646ef699c6981a", size = 4686116 }, - { url = "https://files.pythonhosted.org/packages/49/2d/ed8bc0ab219ae8768f529597d9509d184fe8a6c4741a6864fea334d25f3f/pillow-11.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0743841cabd3dba6a83f38a92672cccbd69af56e3e91777b0ee7f4dba4385632", size = 5864597 }, - { url = "https://files.pythonhosted.org/packages/b5/3d/b932bb4225c80b58dfadaca9d42d08d0b7064d2d1791b6a237f87f661834/pillow-11.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:2465a69cf967b8b49ee1b96d76718cd98c4e925414ead59fdf75cf0fd07df673", size = 7638246 }, - { url = "https://files.pythonhosted.org/packages/09/b5/0487044b7c096f1b48f0d7ad416472c02e0e4bf6919541b111efd3cae690/pillow-11.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41742638139424703b4d01665b807c6468e23e699e8e90cffefe291c5832b027", size = 5973336 }, - { url = "https://files.pythonhosted.org/packages/a8/2d/524f9318f6cbfcc79fbc004801ea6b607ec3f843977652fdee4857a7568b/pillow-11.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:93efb0b4de7e340d99057415c749175e24c8864302369e05914682ba642e5d77", size = 6642699 }, - { url = "https://files.pythonhosted.org/packages/6f/d2/a9a4f280c6aefedce1e8f615baaa5474e0701d86dd6f1dede66726462bbd/pillow-11.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7966e38dcd0fa11ca390aed7c6f20454443581d758242023cf36fcb319b1a874", size = 6083789 }, - { url = "https://files.pythonhosted.org/packages/fe/54/86b0cd9dbb683a9d5e960b66c7379e821a19be4ac5810e2e5a715c09a0c0/pillow-11.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:98a9afa7b9007c67ed84c57c9e0ad86a6000da96eaa638e4f8abe5b65ff83f0a", size = 6720386 }, - { url = "https://files.pythonhosted.org/packages/e7/95/88efcaf384c3588e24259c4203b909cbe3e3c2d887af9e938c2022c9dd48/pillow-11.3.0-cp314-cp314-win32.whl", hash = "sha256:02a723e6bf909e7cea0dac1b0e0310be9d7650cd66222a5f1c571455c0a45214", size = 6370911 }, - { url = "https://files.pythonhosted.org/packages/2e/cc/934e5820850ec5eb107e7b1a72dd278140731c669f396110ebc326f2a503/pillow-11.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:a418486160228f64dd9e9efcd132679b7a02a5f22c982c78b6fc7dab3fefb635", size = 7117383 }, - { url = "https://files.pythonhosted.org/packages/d6/e9/9c0a616a71da2a5d163aa37405e8aced9a906d574b4a214bede134e731bc/pillow-11.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:155658efb5e044669c08896c0c44231c5e9abcaadbc5cd3648df2f7c0b96b9a6", size = 2511385 }, - { url = "https://files.pythonhosted.org/packages/1a/33/c88376898aff369658b225262cd4f2659b13e8178e7534df9e6e1fa289f6/pillow-11.3.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:59a03cdf019efbfeeed910bf79c7c93255c3d54bc45898ac2a4140071b02b4ae", size = 5281129 }, - { url = "https://files.pythonhosted.org/packages/1f/70/d376247fb36f1844b42910911c83a02d5544ebd2a8bad9efcc0f707ea774/pillow-11.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:f8a5827f84d973d8636e9dc5764af4f0cf2318d26744b3d902931701b0d46653", size = 4689580 }, - { url = "https://files.pythonhosted.org/packages/eb/1c/537e930496149fbac69efd2fc4329035bbe2e5475b4165439e3be9cb183b/pillow-11.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ee92f2fd10f4adc4b43d07ec5e779932b4eb3dbfbc34790ada5a6669bc095aa6", size = 5902860 }, - { url = "https://files.pythonhosted.org/packages/bd/57/80f53264954dcefeebcf9dae6e3eb1daea1b488f0be8b8fef12f79a3eb10/pillow-11.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c96d333dcf42d01f47b37e0979b6bd73ec91eae18614864622d9b87bbd5bbf36", size = 7670694 }, - { url = "https://files.pythonhosted.org/packages/70/ff/4727d3b71a8578b4587d9c276e90efad2d6fe0335fd76742a6da08132e8c/pillow-11.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4c96f993ab8c98460cd0c001447bff6194403e8b1d7e149ade5f00594918128b", size = 6005888 }, - { url = "https://files.pythonhosted.org/packages/05/ae/716592277934f85d3be51d7256f3636672d7b1abfafdc42cf3f8cbd4b4c8/pillow-11.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41342b64afeba938edb034d122b2dda5db2139b9a4af999729ba8818e0056477", size = 6670330 }, - { url = "https://files.pythonhosted.org/packages/e7/bb/7fe6cddcc8827b01b1a9766f5fdeb7418680744f9082035bdbabecf1d57f/pillow-11.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:068d9c39a2d1b358eb9f245ce7ab1b5c3246c7c8c7d9ba58cfa5b43146c06e50", size = 6114089 }, - { url = "https://files.pythonhosted.org/packages/8b/f5/06bfaa444c8e80f1a8e4bff98da9c83b37b5be3b1deaa43d27a0db37ef84/pillow-11.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:a1bc6ba083b145187f648b667e05a2534ecc4b9f2784c2cbe3089e44868f2b9b", size = 6748206 }, - { url = "https://files.pythonhosted.org/packages/f0/77/bc6f92a3e8e6e46c0ca78abfffec0037845800ea38c73483760362804c41/pillow-11.3.0-cp314-cp314t-win32.whl", hash = "sha256:118ca10c0d60b06d006be10a501fd6bbdfef559251ed31b794668ed569c87e12", size = 6377370 }, - { url = "https://files.pythonhosted.org/packages/4a/82/3a721f7d69dca802befb8af08b7c79ebcab461007ce1c18bd91a5d5896f9/pillow-11.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:8924748b688aa210d79883357d102cd64690e56b923a186f35a82cbc10f997db", size = 7121500 }, - { url = "https://files.pythonhosted.org/packages/89/c7/5572fa4a3f45740eaab6ae86fcdf7195b55beac1371ac8c619d880cfe948/pillow-11.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:79ea0d14d3ebad43ec77ad5272e6ff9bba5b679ef73375ea760261207fa8e0aa", size = 2512835 }, ] [[package]] @@ -824,35 +765,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/86/e3/84507781cccd0145f35b1dc32c72675200c5ce8d5b30f813e49424ef68fc/rpds_py-0.27.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:dd2135527aa40f061350c3f8f89da2644de26cd73e4de458e79606384f4f68e7", size = 555300 }, { url = "https://files.pythonhosted.org/packages/e5/ee/375469849e6b429b3516206b4580a79e9ef3eb12920ddbd4492b56eaacbe/rpds_py-0.27.1-cp313-cp313t-win32.whl", hash = "sha256:3020724ade63fe320a972e2ffd93b5623227e684315adce194941167fee02688", size = 216714 }, { url = "https://files.pythonhosted.org/packages/21/87/3fc94e47c9bd0742660e84706c311a860dcae4374cf4a03c477e23ce605a/rpds_py-0.27.1-cp313-cp313t-win_amd64.whl", hash = "sha256:8ee50c3e41739886606388ba3ab3ee2aae9f35fb23f833091833255a31740797", size = 228943 }, - { url = "https://files.pythonhosted.org/packages/70/36/b6e6066520a07cf029d385de869729a895917b411e777ab1cde878100a1d/rpds_py-0.27.1-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:acb9aafccaae278f449d9c713b64a9e68662e7799dbd5859e2c6b3c67b56d334", size = 362472 }, - { url = "https://files.pythonhosted.org/packages/af/07/b4646032e0dcec0df9c73a3bd52f63bc6c5f9cda992f06bd0e73fe3fbebd/rpds_py-0.27.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:b7fb801aa7f845ddf601c49630deeeccde7ce10065561d92729bfe81bd21fb33", size = 345676 }, - { url = "https://files.pythonhosted.org/packages/b0/16/2f1003ee5d0af4bcb13c0cf894957984c32a6751ed7206db2aee7379a55e/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fe0dd05afb46597b9a2e11c351e5e4283c741237e7f617ffb3252780cca9336a", size = 385313 }, - { url = "https://files.pythonhosted.org/packages/05/cd/7eb6dd7b232e7f2654d03fa07f1414d7dfc980e82ba71e40a7c46fd95484/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b6dfb0e058adb12d8b1d1b25f686e94ffa65d9995a5157afe99743bf7369d62b", size = 399080 }, - { url = "https://files.pythonhosted.org/packages/20/51/5829afd5000ec1cb60f304711f02572d619040aa3ec033d8226817d1e571/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed090ccd235f6fa8bb5861684567f0a83e04f52dfc2e5c05f2e4b1309fcf85e7", size = 523868 }, - { url = "https://files.pythonhosted.org/packages/05/2c/30eebca20d5db95720ab4d2faec1b5e4c1025c473f703738c371241476a2/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bf876e79763eecf3e7356f157540d6a093cef395b65514f17a356f62af6cc136", size = 408750 }, - { url = "https://files.pythonhosted.org/packages/90/1a/cdb5083f043597c4d4276eae4e4c70c55ab5accec078da8611f24575a367/rpds_py-0.27.1-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:12ed005216a51b1d6e2b02a7bd31885fe317e45897de81d86dcce7d74618ffff", size = 387688 }, - { url = "https://files.pythonhosted.org/packages/7c/92/cf786a15320e173f945d205ab31585cc43969743bb1a48b6888f7a2b0a2d/rpds_py-0.27.1-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:ee4308f409a40e50593c7e3bb8cbe0b4d4c66d1674a316324f0c2f5383b486f9", size = 407225 }, - { url = "https://files.pythonhosted.org/packages/33/5c/85ee16df5b65063ef26017bef33096557a4c83fbe56218ac7cd8c235f16d/rpds_py-0.27.1-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0b08d152555acf1f455154d498ca855618c1378ec810646fcd7c76416ac6dc60", size = 423361 }, - { url = "https://files.pythonhosted.org/packages/4b/8e/1c2741307fcabd1a334ecf008e92c4f47bb6f848712cf15c923becfe82bb/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:dce51c828941973a5684d458214d3a36fcd28da3e1875d659388f4f9f12cc33e", size = 562493 }, - { url = "https://files.pythonhosted.org/packages/04/03/5159321baae9b2222442a70c1f988cbbd66b9be0675dd3936461269be360/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:c1476d6f29eb81aa4151c9a31219b03f1f798dc43d8af1250a870735516a1212", size = 592623 }, - { url = "https://files.pythonhosted.org/packages/ff/39/c09fd1ad28b85bc1d4554a8710233c9f4cefd03d7717a1b8fbfd171d1167/rpds_py-0.27.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:3ce0cac322b0d69b63c9cdb895ee1b65805ec9ffad37639f291dd79467bee675", size = 558800 }, - { url = "https://files.pythonhosted.org/packages/c5/d6/99228e6bbcf4baa764b18258f519a9035131d91b538d4e0e294313462a98/rpds_py-0.27.1-cp314-cp314-win32.whl", hash = "sha256:dfbfac137d2a3d0725758cd141f878bf4329ba25e34979797c89474a89a8a3a3", size = 221943 }, - { url = "https://files.pythonhosted.org/packages/be/07/c802bc6b8e95be83b79bdf23d1aa61d68324cb1006e245d6c58e959e314d/rpds_py-0.27.1-cp314-cp314-win_amd64.whl", hash = "sha256:a6e57b0abfe7cc513450fcf529eb486b6e4d3f8aee83e92eb5f1ef848218d456", size = 233739 }, - { url = "https://files.pythonhosted.org/packages/c8/89/3e1b1c16d4c2d547c5717377a8df99aee8099ff050f87c45cb4d5fa70891/rpds_py-0.27.1-cp314-cp314-win_arm64.whl", hash = "sha256:faf8d146f3d476abfee026c4ae3bdd9ca14236ae4e4c310cbd1cf75ba33d24a3", size = 223120 }, - { url = "https://files.pythonhosted.org/packages/62/7e/dc7931dc2fa4a6e46b2a4fa744a9fe5c548efd70e0ba74f40b39fa4a8c10/rpds_py-0.27.1-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:ba81d2b56b6d4911ce735aad0a1d4495e808b8ee4dc58715998741a26874e7c2", size = 358944 }, - { url = "https://files.pythonhosted.org/packages/e6/22/4af76ac4e9f336bfb1a5f240d18a33c6b2fcaadb7472ac7680576512b49a/rpds_py-0.27.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:84f7d509870098de0e864cad0102711c1e24e9b1a50ee713b65928adb22269e4", size = 342283 }, - { url = "https://files.pythonhosted.org/packages/1c/15/2a7c619b3c2272ea9feb9ade67a45c40b3eeb500d503ad4c28c395dc51b4/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9e960fc78fecd1100539f14132425e1d5fe44ecb9239f8f27f079962021523e", size = 380320 }, - { url = "https://files.pythonhosted.org/packages/a2/7d/4c6d243ba4a3057e994bb5bedd01b5c963c12fe38dde707a52acdb3849e7/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:62f85b665cedab1a503747617393573995dac4600ff51869d69ad2f39eb5e817", size = 391760 }, - { url = "https://files.pythonhosted.org/packages/b4/71/b19401a909b83bcd67f90221330bc1ef11bc486fe4e04c24388d28a618ae/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fed467af29776f6556250c9ed85ea5a4dd121ab56a5f8b206e3e7a4c551e48ec", size = 522476 }, - { url = "https://files.pythonhosted.org/packages/e4/44/1a3b9715c0455d2e2f0f6df5ee6d6f5afdc423d0773a8a682ed2b43c566c/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f2729615f9d430af0ae6b36cf042cb55c0936408d543fb691e1a9e36648fd35a", size = 403418 }, - { url = "https://files.pythonhosted.org/packages/1c/4b/fb6c4f14984eb56673bc868a66536f53417ddb13ed44b391998100a06a96/rpds_py-0.27.1-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1b207d881a9aef7ba753d69c123a35d96ca7cb808056998f6b9e8747321f03b8", size = 384771 }, - { url = "https://files.pythonhosted.org/packages/c0/56/d5265d2d28b7420d7b4d4d85cad8ef891760f5135102e60d5c970b976e41/rpds_py-0.27.1-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:639fd5efec029f99b79ae47e5d7e00ad8a773da899b6309f6786ecaf22948c48", size = 400022 }, - { url = "https://files.pythonhosted.org/packages/8f/e9/9f5fc70164a569bdd6ed9046486c3568d6926e3a49bdefeeccfb18655875/rpds_py-0.27.1-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fecc80cb2a90e28af8a9b366edacf33d7a91cbfe4c2c4544ea1246e949cfebeb", size = 416787 }, - { url = "https://files.pythonhosted.org/packages/d4/64/56dd03430ba491db943a81dcdef115a985aac5f44f565cd39a00c766d45c/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:42a89282d711711d0a62d6f57d81aa43a1368686c45bc1c46b7f079d55692734", size = 557538 }, - { url = "https://files.pythonhosted.org/packages/3f/36/92cc885a3129993b1d963a2a42ecf64e6a8e129d2c7cc980dbeba84e55fb/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:cf9931f14223de59551ab9d38ed18d92f14f055a5f78c1d8ad6493f735021bbb", size = 588512 }, - { url = "https://files.pythonhosted.org/packages/dd/10/6b283707780a81919f71625351182b4f98932ac89a09023cb61865136244/rpds_py-0.27.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:f39f58a27cc6e59f432b568ed8429c7e1641324fbe38131de852cd77b2d534b0", size = 555813 }, - { url = "https://files.pythonhosted.org/packages/04/2e/30b5ea18c01379da6272a92825dd7e53dc9d15c88a19e97932d35d430ef7/rpds_py-0.27.1-cp314-cp314t-win32.whl", hash = "sha256:d5fa0ee122dc09e23607a28e6d7b150da16c662e66409bbe85230e4c85bb528a", size = 217385 }, - { url = "https://files.pythonhosted.org/packages/32/7d/97119da51cb1dd3f2f3c0805f155a3aa4a95fa44fe7d78ae15e69edf4f34/rpds_py-0.27.1-cp314-cp314t-win_amd64.whl", hash = "sha256:6567d2bb951e21232c2f660c24cf3470bb96de56cdcb3f071a83feeaff8a2772", size = 230097 }, ] [[package]] @@ -920,26 +832,6 @@ wheels = [ { url = "https://files.pythonhosted.org/packages/4e/7b/f127a5795d5ba8ece4e0dce7d4a9fb7cb9e4f4757137757d7a69ab7d4f1a/scipy-1.16.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:fa01f0f6a3050fa6a9771a95d5faccc8e2f5a92b4a2e5440a0fa7264a2398472", size = 38783985 }, { url = "https://files.pythonhosted.org/packages/3e/9f/bc81c1d1e033951eb5912cd3750cc005943afa3e65a725d2443a3b3c4347/scipy-1.16.2-cp313-cp313t-win_amd64.whl", hash = "sha256:116296e89fba96f76353a8579820c2512f6e55835d3fad7780fece04367de351", size = 38631367 }, { url = "https://files.pythonhosted.org/packages/d6/5e/2cc7555fd81d01814271412a1d59a289d25f8b63208a0a16c21069d55d3e/scipy-1.16.2-cp313-cp313t-win_arm64.whl", hash = "sha256:98e22834650be81d42982360382b43b17f7ba95e0e6993e2a4f5b9ad9283a94d", size = 25787992 }, - { url = "https://files.pythonhosted.org/packages/8b/ac/ad8951250516db71619f0bd3b2eb2448db04b720a003dd98619b78b692c0/scipy-1.16.2-cp314-cp314-macosx_10_14_x86_64.whl", hash = "sha256:567e77755019bb7461513c87f02bb73fb65b11f049aaaa8ca17cfaa5a5c45d77", size = 36595109 }, - { url = "https://files.pythonhosted.org/packages/ff/f6/5779049ed119c5b503b0f3dc6d6f3f68eefc3a9190d4ad4c276f854f051b/scipy-1.16.2-cp314-cp314-macosx_12_0_arm64.whl", hash = "sha256:17d9bb346194e8967296621208fcdfd39b55498ef7d2f376884d5ac47cec1a70", size = 28859110 }, - { url = "https://files.pythonhosted.org/packages/82/09/9986e410ae38bf0a0c737ff8189ac81a93b8e42349aac009891c054403d7/scipy-1.16.2-cp314-cp314-macosx_14_0_arm64.whl", hash = "sha256:0a17541827a9b78b777d33b623a6dcfe2ef4a25806204d08ead0768f4e529a88", size = 20850110 }, - { url = "https://files.pythonhosted.org/packages/0d/ad/485cdef2d9215e2a7df6d61b81d2ac073dfacf6ae24b9ae87274c4e936ae/scipy-1.16.2-cp314-cp314-macosx_14_0_x86_64.whl", hash = "sha256:d7d4c6ba016ffc0f9568d012f5f1eb77ddd99412aea121e6fa8b4c3b7cbad91f", size = 23497014 }, - { url = "https://files.pythonhosted.org/packages/a7/74/f6a852e5d581122b8f0f831f1d1e32fb8987776ed3658e95c377d308ed86/scipy-1.16.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:9702c4c023227785c779cba2e1d6f7635dbb5b2e0936cdd3a4ecb98d78fd41eb", size = 33401155 }, - { url = "https://files.pythonhosted.org/packages/d9/f5/61d243bbc7c6e5e4e13dde9887e84a5cbe9e0f75fd09843044af1590844e/scipy-1.16.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d1cdf0ac28948d225decdefcc45ad7dd91716c29ab56ef32f8e0d50657dffcc7", size = 35691174 }, - { url = "https://files.pythonhosted.org/packages/03/99/59933956331f8cc57e406cdb7a483906c74706b156998f322913e789c7e1/scipy-1.16.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:70327d6aa572a17c2941cdfb20673f82e536e91850a2e4cb0c5b858b690e1548", size = 36070752 }, - { url = "https://files.pythonhosted.org/packages/c6/7d/00f825cfb47ee19ef74ecf01244b43e95eae74e7e0ff796026ea7cd98456/scipy-1.16.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5221c0b2a4b58aa7c4ed0387d360fd90ee9086d383bb34d9f2789fafddc8a936", size = 38701010 }, - { url = "https://files.pythonhosted.org/packages/e4/9f/b62587029980378304ba5a8563d376c96f40b1e133daacee76efdcae32de/scipy-1.16.2-cp314-cp314-win_amd64.whl", hash = "sha256:f5a85d7b2b708025af08f060a496dd261055b617d776fc05a1a1cc69e09fe9ff", size = 39360061 }, - { url = "https://files.pythonhosted.org/packages/82/04/7a2f1609921352c7fbee0815811b5050582f67f19983096c4769867ca45f/scipy-1.16.2-cp314-cp314-win_arm64.whl", hash = "sha256:2cc73a33305b4b24556957d5857d6253ce1e2dcd67fa0ff46d87d1670b3e1e1d", size = 26126914 }, - { url = "https://files.pythonhosted.org/packages/51/b9/60929ce350c16b221928725d2d1d7f86cf96b8bc07415547057d1196dc92/scipy-1.16.2-cp314-cp314t-macosx_10_14_x86_64.whl", hash = "sha256:9ea2a3fed83065d77367775d689401a703d0f697420719ee10c0780bcab594d8", size = 37013193 }, - { url = "https://files.pythonhosted.org/packages/2a/41/ed80e67782d4bc5fc85a966bc356c601afddd175856ba7c7bb6d9490607e/scipy-1.16.2-cp314-cp314t-macosx_12_0_arm64.whl", hash = "sha256:7280d926f11ca945c3ef92ba960fa924e1465f8d07ce3a9923080363390624c4", size = 29390172 }, - { url = "https://files.pythonhosted.org/packages/c4/a3/2f673ace4090452696ccded5f5f8efffb353b8f3628f823a110e0170b605/scipy-1.16.2-cp314-cp314t-macosx_14_0_arm64.whl", hash = "sha256:8afae1756f6a1fe04636407ef7dbece33d826a5d462b74f3d0eb82deabefd831", size = 21381326 }, - { url = "https://files.pythonhosted.org/packages/42/bf/59df61c5d51395066c35836b78136accf506197617c8662e60ea209881e1/scipy-1.16.2-cp314-cp314t-macosx_14_0_x86_64.whl", hash = "sha256:5c66511f29aa8d233388e7416a3f20d5cae7a2744d5cee2ecd38c081f4e861b3", size = 23915036 }, - { url = "https://files.pythonhosted.org/packages/91/c3/edc7b300dc16847ad3672f1a6f3f7c5d13522b21b84b81c265f4f2760d4a/scipy-1.16.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:efe6305aeaa0e96b0ccca5ff647a43737d9a092064a3894e46c414db84bc54ac", size = 33484341 }, - { url = "https://files.pythonhosted.org/packages/26/c7/24d1524e72f06ff141e8d04b833c20db3021020563272ccb1b83860082a9/scipy-1.16.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7f3a337d9ae06a1e8d655ee9d8ecb835ea5ddcdcbd8d23012afa055ab014f374", size = 35790840 }, - { url = "https://files.pythonhosted.org/packages/aa/b7/5aaad984eeedd56858dc33d75efa59e8ce798d918e1033ef62d2708f2c3d/scipy-1.16.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:bab3605795d269067d8ce78a910220262711b753de8913d3deeaedb5dded3bb6", size = 36174716 }, - { url = "https://files.pythonhosted.org/packages/fd/c2/e276a237acb09824822b0ada11b028ed4067fdc367a946730979feacb870/scipy-1.16.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b0348d8ddb55be2a844c518cd8cc8deeeb8aeba707cf834db5758fc89b476a2c", size = 38790088 }, - { url = "https://files.pythonhosted.org/packages/c6/b4/5c18a766e8353015439f3780f5fc473f36f9762edc1a2e45da3ff5a31b21/scipy-1.16.2-cp314-cp314t-win_amd64.whl", hash = "sha256:26284797e38b8a75e14ea6631d29bda11e76ceaa6ddb6fdebbfe4c4d90faf2f9", size = 39457455 }, - { url = "https://files.pythonhosted.org/packages/97/30/2f9a5243008f76dfc5dee9a53dfb939d9b31e16ce4bd4f2e628bfc5d89d2/scipy-1.16.2-cp314-cp314t-win_arm64.whl", hash = "sha256:d2a4472c231328d4de38d5f1f68fdd6d28a615138f842580a8a321b5845cf779", size = 26448374 }, ] [[package]] @@ -974,7 +866,7 @@ wheels = [ [[package]] name = "streamlit" -version = "1.49.1" +version = "1.51.0" source = { registry = "https://pypi.org/simple" } dependencies = [ { name = "altair" }, @@ -996,9 +888,9 @@ dependencies = [ { name = "typing-extensions" }, { name = "watchdog", marker = "sys_platform != 'darwin'" }, ] -sdist = { url = "https://files.pythonhosted.org/packages/24/17/c8024e4ef311dc7833987c603a7d0ebe82f8aa352aaca53b27be3f6b7f01/streamlit-1.49.1.tar.gz", hash = "sha256:6f213f1e43f035143a56f58ad50068d8a09482f0a2dad1050d7e7e99a9689818", size = 9640116 } +sdist = { url = "https://files.pythonhosted.org/packages/59/6d/327ddd5fc35fcf2aeecb4040668337f5565a1c6c95b1e892b8bfd4bb9031/streamlit-1.51.0.tar.gz", hash = "sha256:1e742a9c0b698f466c6f5bf58d333beda5a1fbe8de660743976791b5c1446ef6", size = 9742904 } wheels = [ - { url = "https://files.pythonhosted.org/packages/85/9e/146cdef515ad07e56c3aa942d087562498592d441aa3bae845ef0cd8fca3/streamlit-1.49.1-py3-none-any.whl", hash = "sha256:ad7b6d0dc35db168587acf96f80378249467fc057ed739a41c511f6bf5aa173b", size = 10044388 }, + { url = "https://files.pythonhosted.org/packages/39/60/868371b6482ccd9ef423c6f62650066cf8271fdb2ee84f192695ad6b7a96/streamlit-1.51.0-py3-none-any.whl", hash = "sha256:4008b029f71401ce54946bb09a6a3e36f4f7652cbb48db701224557738cfda38", size = 10171702 }, ] [[package]] From 6de971762401d451572e458279e2d9f847d446f2 Mon Sep 17 00:00:00 2001 From: Egor Zherdev Date: Sun, 16 Nov 2025 13:46:14 +0300 Subject: [PATCH 4/6] fix(models): Fixed bugs found by the community --- src/models/pendulum/charts.py | 5 +- src/models/rolling_ball/__init__.py | 2 +- src/models/rolling_ball/charts.py | 6 +- src/models/rolling_ball/objects.py | 2 +- tests/m4/test_ball_physics.py | 258 ++++++++++++++++++++++++++++ 5 files changed, 265 insertions(+), 8 deletions(-) diff --git a/src/models/pendulum/charts.py b/src/models/pendulum/charts.py index 8024503..6125812 100644 --- a/src/models/pendulum/charts.py +++ b/src/models/pendulum/charts.py @@ -27,9 +27,8 @@ def create_phase_portrait(phi: np.ndarray, omega: np.ndarray) -> alt.Chart: return ( alt.Chart(df) .mark_line( - strokeWidth=2, - color="red", - point=alt.OverlayMarkDef(size=20, opacity=0.3), + strokeWidth=0, + point=alt.OverlayMarkDef(size=20), ) .add_params(alt.selection_interval(bind="scales")) .encode( diff --git a/src/models/rolling_ball/__init__.py b/src/models/rolling_ball/__init__.py index 2530b30..54d6e43 100644 --- a/src/models/rolling_ball/__init__.py +++ b/src/models/rolling_ball/__init__.py @@ -55,7 +55,7 @@ def display_basic_analysis(model, params): with col2: st.header("Скорости") - velocity_chart = create_velocity_chart(vx, vy, omega_z, t) + velocity_chart = create_velocity_chart(vx, vy, omega_z, t, params) st.altair_chart(velocity_chart, use_container_width=True) st.header("Анализ энергии") diff --git a/src/models/rolling_ball/charts.py b/src/models/rolling_ball/charts.py index b48c420..dfb0667 100644 --- a/src/models/rolling_ball/charts.py +++ b/src/models/rolling_ball/charts.py @@ -26,13 +26,13 @@ def create_position_chart(x: float, y: float, t: float) -> alt.Chart: def create_velocity_chart( - vx: float, vy: float, omega_z: float, t: float + vx: float, vy: float, omega_z: float, t: float, params ) -> alt.Chart: df = pd.DataFrame({ "t": t, "Скорость X": vx, "Скорость Y": vy, - "Угловая скорость": omega_z, + "Тангенциальная скорость": omega_z * params.radius, }) df_melted = df.melt("t", var_name="Тип скорости", value_name="Значение") @@ -43,7 +43,7 @@ def create_velocity_chart( .add_params(alt.selection_interval(bind="scales")) .encode( x=alt.X("t:Q", title="Время (с)"), - y=alt.Y("Значение:Q", title="Скорость"), + y=alt.Y("Значение:Q", title="Скорость (м/c)"), color=alt.Color("Тип скорости:N"), tooltip=["t:Q", "Тип скорости:N", "Значение:Q"], ) diff --git a/src/models/rolling_ball/objects.py b/src/models/rolling_ball/objects.py index a3071ae..f7a173a 100644 --- a/src/models/rolling_ball/objects.py +++ b/src/models/rolling_ball/objects.py @@ -67,7 +67,7 @@ def equations_of_motion(self, t, state, params): acceleration_y = gravity_y + friction_y / params.mass moment_of_inertia = (2.0 / 5.0) * params.mass * params.radius**2 - torque_z = friction_x * params.radius + torque_z = -friction_x * params.radius angular_acceleration = torque_z / moment_of_inertia return [vx, vy, acceleration_x, acceleration_y, angular_acceleration] diff --git a/tests/m4/test_ball_physics.py b/tests/m4/test_ball_physics.py index eebaa38..554842a 100644 --- a/tests/m4/test_ball_physics.py +++ b/tests/m4/test_ball_physics.py @@ -39,6 +39,64 @@ def inclined_params() -> BallParameters: ) +@pytest.fixture +def horizontal_params_case_a() -> BallParameters: + return BallParameters( + mass=0.5, + radius=0.1, + mu_friction=0.3, + theta_degrees=0.0, + x0=0.0, + y0=0.0, + vx0=5.0, + vy0=0.0, + omega_z0=30.0, + t_max=1.0, + dt=0.001, + epsilon=1e-4, + ) + + +@pytest.fixture +def horizontal_params_case_b() -> BallParameters: + return BallParameters( + mass=0.5, + radius=0.1, + mu_friction=0.3, + theta_degrees=0.0, + x0=0.0, + y0=0.0, + vx0=2.0, + vy0=0.0, + omega_z0=50.0, + t_max=1.0, + dt=0.001, + epsilon=1e-4, + ) + + +@pytest.fixture +def horizontal_params_pure_rolling() -> BallParameters: + v0 = 3.0 + r = 0.1 + omega0 = v0 / r + + return BallParameters( + mass=0.5, + radius=r, + mu_friction=0.3, + theta_degrees=0.0, + x0=0.0, + y0=0.0, + vx0=v0, + vy0=0.0, + omega_z0=omega0, + t_max=1.0, + dt=0.001, + epsilon=1e-4, + ) + + def test_ball_model_initialization(ball_model: BallModel) -> None: assert ball_model.g == 9.81 @@ -88,3 +146,203 @@ def test_momentum_conservation_properties( _, _, vx, _, _, _ = ball_model.simulate_motion(basic_ball_params) assert not np.allclose(vx, basic_ball_params.vx0) + + +def test_energy_conservation_case_a( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, vy, omega_z, _ = ball_model.simulate_motion(params) + + i = (2 / 5) * params.mass * params.radius**2 + energy_trans = 0.5 * params.mass * (vx**2 + vy**2) + energy_rot = 0.5 * i * omega_z**2 + energy_total = energy_trans + energy_rot + + e0 = energy_total[0] + ef = energy_total[-1] + + assert ef < e0 + + energy_diffs = np.diff(energy_total) + assert np.all(energy_diffs <= 1e-6) + + energy_loss = e0 - ef + assert 0 < energy_loss < e0 + + +def test_rolling_condition_convergence_case_a( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + v_rel = vx - omega_z * params.radius + + assert v_rel[0] > 0 + + assert v_rel[-1] < v_rel[0] + + assert abs(v_rel[-1]) < 0.01 + + +def test_velocity_evolution_case_a( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + assert vx[-1] < vx[0] + assert omega_z[-1] > omega_z[0] + + dt = params.dt + dvx_dt_initial = (vx[1] - vx[0]) / dt + domega_dt_initial = (omega_z[1] - omega_z[0]) / dt + + expected_dvx_dt = -params.mu_friction * ball_model.g + expected_domega_dt = ( + 5 * params.mu_friction * ball_model.g / (2 * params.radius) + ) + + assert abs(dvx_dt_initial - expected_dvx_dt) / abs(expected_dvx_dt) < 0.1 + assert ( + abs(domega_dt_initial - expected_domega_dt) / abs(expected_domega_dt) + < 0.1 + ) + + +def test_stable_velocity_formula_case_a( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + v_stable_theory = (5 * params.vx0 + 2 * params.omega_z0 * params.radius) / 7 + omega_stable_theory = v_stable_theory / params.radius + + v_stable_actual = vx[-1] + omega_stable_actual = omega_z[-1] + + assert abs(v_stable_actual - v_stable_theory) / v_stable_theory < 0.05 + assert ( + abs(omega_stable_actual - omega_stable_theory) / omega_stable_theory + < 0.05 + ) + + +def test_energy_redistribution_case_a( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + i = (2 / 5) * params.mass * params.radius**2 + + e_trans_0 = 0.5 * params.mass * params.vx0**2 + e_rot_0 = 0.5 * i * params.omega_z0**2 + + e_trans_f = 0.5 * params.mass * vx[-1] ** 2 + e_rot_f = 0.5 * i * omega_z[-1] ** 2 + + delta_e_trans = e_trans_f - e_trans_0 + delta_e_rot = e_rot_f - e_rot_0 + delta_e_total = delta_e_trans + delta_e_rot + + assert delta_e_trans < 0 + assert delta_e_rot > 0 + assert delta_e_total < 0 + assert abs(delta_e_trans) > abs(delta_e_rot) + + +def test_velocity_evolution_case_b( + ball_model: BallModel, horizontal_params_case_b: BallParameters +) -> None: + params = horizontal_params_case_b + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + assert vx[-1] > vx[0] + + assert omega_z[-1] < omega_z[0] + + v_rel_0 = vx[0] - omega_z[0] * params.radius + assert v_rel_0 < 0 + + +def test_pure_rolling_case_c( + ball_model: BallModel, horizontal_params_pure_rolling: BallParameters +) -> None: + params = horizontal_params_pure_rolling + _, _, vx, _, omega_z, _ = ball_model.simulate_motion(params) + + v_rel = vx - omega_z * params.radius + assert np.all(np.abs(v_rel) < 0.01) + + vx_std = np.std(vx) + omega_std = np.std(omega_z) + assert vx_std < 0.01 + assert omega_std < 0.1 + + i = (2 / 5) * params.mass * params.radius**2 + e_total = 0.5 * params.mass * vx**2 + 0.5 * i * omega_z**2 + energy_variation = (e_total[-1] - e_total[0]) / e_total[0] + assert abs(energy_variation) < 0.01 + + +def test_time_to_rolling( + ball_model: BallModel, horizontal_params_case_a: BallParameters +) -> None: + params = horizontal_params_case_a + _, _, vx, _, omega_z, t = ball_model.simulate_motion(params) + + v_rel_0 = params.vx0 - params.omega_z0 * params.radius + t_star_theory = 2 * v_rel_0 / (7 * params.mu_friction * ball_model.g) + + v_rel = np.abs(vx - omega_z * params.radius) + indices_rolling = np.where(v_rel < params.epsilon)[0] + + if len(indices_rolling) > 0: + t_star_actual = t[indices_rolling[0]] + + assert abs(t_star_actual - t_star_theory) / t_star_theory < 0.1 + + +def test_friction_sign_case_a( + ball_model: BallModel, horizontal_params_case_b: BallParameters +) -> None: + vx = 5.0 + vy = 0.0 + omega_z = 0.0 + + friction_x, friction_y, mode = ball_model.calculate_friction_force( + vx, vy, omega_z, horizontal_params_case_b + ) + + assert mode == "sliding" + assert friction_x < 0 + + expected_magnitude = ( + horizontal_params_case_b.mu_friction + * horizontal_params_case_b.mass + * ball_model.g + ) + actual_magnitude = np.sqrt(friction_x**2 + friction_y**2) + assert abs(actual_magnitude - expected_magnitude) < 0.01 + + +def test_friction_zero_for_rolling( + ball_model: BallModel, basic_ball_params: BallParameters +) -> None: + vx = 1.0 + omega_z = vx / basic_ball_params.radius + vy = 0.0 + + friction_x, friction_y, mode = ball_model.calculate_friction_force( + vx, + vy, + omega_z, + basic_ball_params, + ) + + assert mode == "rolling" + assert friction_x == 0.0 + assert friction_y == 0.0 From b29ab28087898ab80b2fbfcdbceee69876c74b03 Mon Sep 17 00:00:00 2001 From: deanon Date: Thu, 27 Nov 2025 19:50:47 +0300 Subject: [PATCH 5/6] add: report --- M7B_report/conclusion.tex | 48 +++++ M7B_report/intro.tex | 40 ++++ M7B_report/main.tex | 16 ++ M7B_report/models/barometric_formula.tex | 154 +++++++++++++++ M7B_report/models/boltzmann_distribution.tex | 93 +++++++++ M7B_report/models/ideal_gas_dynamics.tex | 89 +++++++++ M7B_report/models/maxwell_distribution.tex | 194 +++++++++++++++++++ M7B_report/models/models.tex | 10 + M7B_report/numerical_methods.tex | 139 +++++++++++++ M7B_report/preamble.tex | 128 ++++++++++++ M7B_report/report.pdf | Bin 0 -> 310170 bytes M7B_report/title.tex | 18 ++ 12 files changed, 929 insertions(+) create mode 100644 M7B_report/conclusion.tex create mode 100644 M7B_report/intro.tex create mode 100644 M7B_report/main.tex create mode 100644 M7B_report/models/barometric_formula.tex create mode 100644 M7B_report/models/boltzmann_distribution.tex create mode 100644 M7B_report/models/ideal_gas_dynamics.tex create mode 100644 M7B_report/models/maxwell_distribution.tex create mode 100644 M7B_report/models/models.tex create mode 100644 M7B_report/numerical_methods.tex create mode 100644 M7B_report/preamble.tex create mode 100644 M7B_report/report.pdf create mode 100644 M7B_report/title.tex diff --git a/M7B_report/conclusion.tex b/M7B_report/conclusion.tex new file mode 100644 index 0000000..f62532f --- /dev/null +++ b/M7B_report/conclusion.tex @@ -0,0 +1,48 @@ +\section{Заключение} + +В работе проведено комплексное исследование процесса установления термодинамического равновесия в системе идеального газа, находящегося в вертикальном сосуде в гравитационном поле. + +\textbf{Основные достижения:} + +\begin{enumerate} + \item \textbf{Численное моделирование динамики молекул} + \begin{itemize} + \item Реализована корректная обработка упругих столкновений молекул между собой и со стенками сосуда + \item Использована оптимизация методом ячеек для ускорения вычислений + \end{itemize} + + \item \textbf{Исследование процесса релаксации} + \begin{itemize} + \item Изучен переход системы из неравновесного начального состояния (все молекулы у дна с одинаковой энергией) к термодинамическому равновесию + \item Определено характерное время релаксации и его зависимость от параметров системы + \item Проверено сохранение полной энергии системы в изолированном режиме + \end{itemize} + + \item \textbf{Получение равновесных распределений} + \begin{itemize} + \item Построено распределение молекул по модулям скоростей и проведено сравнение с распределением Максвелла + \item Построено распределение молекул по высоте и проведено сравнение с барометрической формулой + \item Проверена факторизация распределений по различным компонентам скорости + \end{itemize} + + \item \textbf{Статистический анализ} + \begin{itemize} + \item Вычислены характерные скорости: наиболее вероятная, средняя и среднеквадратичная + \item Определена температура системы из распределения кинетических энергий + \item Проверено выполнение теоремы о равнораспределении энергии по степеням свободы + \end{itemize} + +\end{enumerate} + +\textbf{Выводы} + +\begin{itemize} + \item Численное моделирование методом молекулярной динамики подтверждает основные положения статистической механики + + \item Система молекул идеального газа самопроизвольно переходит из упорядоченного неравновесного состояния в равновесное состояние с максимальной энтропией + + \item В равновесии наблюдается полное согласие с распределением Максвелла-Больцмана, несмотря на детерминированный характер классической механики + + +\end{itemize} + diff --git a/M7B_report/intro.tex b/M7B_report/intro.tex new file mode 100644 index 0000000..8131cc0 --- /dev/null +++ b/M7B_report/intro.tex @@ -0,0 +1,40 @@ +\newpage + +\section{Введение} + +\Task Исследование процесса установления термодинамического равновесия в системе идеального газа, находящегося в вертикальном сосуде в поле тяжести. Рассмотрение неравновесного начального состояния, когда все молекулы сосредоточены вблизи дна сосуда и имеют одинаковую кинетическую энергию. + +\Goal +\begin{enumerate} + \item Провести численное моделирование движения молекул идеального газа в замкнутом вертикальном сосуде с учётом упругих столкновений со стенками и между собой + \item Получить распределения молекул по скоростям и по высоте в равновесном состоянии + \item Сравнить полученные распределения с теоретическими: распределением Максвелла по скоростям и барометрической формулой для распределения по высоте +\end{enumerate} + +\section{Физическая постановка задачи} +\vspace{-1em} + +Рассматривается система из $N$ одинаковых молекул идеального газа массой $m$ каждая, находящихся в вертикальном цилиндрическом сосуде высотой $H$ и площадью основания $S$ в гравитационном поле с ускорением $g$. + +\textbf{Модель идеального газа предполагает:} +\begin{enumerate} + \item Молекулы -- материальные точки (размеры много меньше расстояний между ними) + \item Столкновения молекул между собой и со стенками абсолютно упругие + \item Взаимодействие молекул происходит только при столкновениях (потенциальная энергия взаимодействия пренебрежимо мала) + \item Стенки сосуда непроницаемы и гладкие +\end{enumerate} + +\textbf{Начальные условия:} +\begin{itemize} + \item Все молекулы находятся в тонком слое вблизи дна: $0 < z < h_0 \ll H$ + \item Все молекулы имеют одинаковую по модулю скорость $v_0$, направленную случайным образом + \item Начальная кинетическая энергия каждой молекулы: $E_0 = \dfrac{mv_0^2}{2}$ +\end{itemize} + +\textbf{Рассматриваются два режима:} +\begin{enumerate} + \item \textbf{Изолированная система}: полная энергия $E = const$, стенки теплоизолированы + \item \textbf{Термостат}: температура стенок $T = const$, энергия системы флуктуирует +\end{enumerate} + +\newpage diff --git a/M7B_report/main.tex b/M7B_report/main.tex new file mode 100644 index 0000000..d71d0cf --- /dev/null +++ b/M7B_report/main.tex @@ -0,0 +1,16 @@ +\input{preamble} + +\begin{document} + +\input{title} +\pagestyle{main} +{ +\centering +\tableofcontents +} +\input{intro} +\input{models/models} +\input{numerical_methods} +\input{conclusion} + +\end{document} diff --git a/M7B_report/models/barometric_formula.tex b/M7B_report/models/barometric_formula.tex new file mode 100644 index 0000000..2ceb521 --- /dev/null +++ b/M7B_report/models/barometric_formula.tex @@ -0,0 +1,154 @@ +\subsection{Барометрическая формула} + +В состоянии термодинамического равновесия газ в гравитационном поле имеет неоднородное распределение плотности по высоте. + +\textbf{Вывод барометрической формулы} + +Рассмотрим элемент газа между высотами $z$ и $z + dz$. Условие механического равновесия: +\[ +p(z + dz) \cdot S = p(z) \cdot S + \rho(z) g S dz +\] + +где $p(z)$ -- давление на высоте $z$, $\rho(z)$ -- плотность массы. + +Дифференцируя: +\[ +\dfrac{dp}{dz} = -\rho(z) g +\] + +Используем уравнение состояния идеального газа: +\[ +p = \dfrac{\rho}{m} k_B T = n(z) k_B T +\] + +где $n(z) = \dfrac{\rho(z)}{m}$ -- концентрация молекул (число молекул на единицу объёма). + +Подставляем в условие равновесия: +\[ +\dfrac{d(n k_B T)}{dz} = -n(z) m g +\] + +Для изотермической атмосферы ($T = const$): +\[ +\dfrac{dn}{dz} = -\dfrac{mg}{k_B T} n(z) +\] + +\Solution Разделяем переменные и интегрируем: +\[ +\dfrac{dn}{n} = -\dfrac{mg}{k_B T} dz +\] +\[ +\ln n(z) - \ln n(0) = -\dfrac{mgz}{k_B T} +\] + +Получаем \textbf{барометрическую формулу}: +\[ +\boxed{n(z) = n(0) \exp\left(-\dfrac{mgz}{k_B T}\right)} +\] + +или в терминах давления: +\[ +p(z) = p(0) \exp\left(-\dfrac{mgz}{k_B T}\right) +\] + +\textbf{Характерная высота атмосферы} + +Введём масштаб высоты: +\[ +H_0 = \dfrac{k_B T}{mg} +\] + +Тогда барометрическая формула принимает вид: +\[ +n(z) = n(0) e^{-z/H_0} +\] + +\textbf{Распределение молекул по высоте} + +Вероятность найти молекулу на высоте между $z$ и $z + dz$ пропорциональна концентрации: +\[ +\boxed{f(z) = \dfrac{1}{H_0} \exp\left(-\dfrac{z}{H_0}\right)} +\] + +где нормировка: +\[ +\int_0^\infty f(z) dz = \int_0^\infty \dfrac{1}{H_0} e^{-z/H_0} dz = 1 +\] + +\Solution Проверим нормировку: +\[ +\int_0^\infty \dfrac{1}{H_0} e^{-z/H_0} dz = \dfrac{1}{H_0} \int_0^\infty e^{-z/H_0} dz +\] + +Замена переменной: $u = \dfrac{z}{H_0}$, $dz = H_0 du$: +\[ +\dfrac{1}{H_0} \int_0^\infty e^{-z/H_0} dz = \dfrac{1}{H_0} \cdot H_0 \int_0^\infty e^{-u} du = \left[-e^{-u}\right]_0^\infty = 0 - (-1) = 1 +\] + +\textbf{Средняя высота молекулы} + +\Solution Вычислим среднюю высоту: +\[ +\langle z \rangle = \int_0^\infty z f(z) dz = \int_0^\infty \dfrac{z}{H_0} e^{-z/H_0} dz +\] + +Замена переменной: $u = \dfrac{z}{H_0}$, $z = H_0 u$, $dz = H_0 du$: +\[ +\langle z \rangle = \int_0^\infty \dfrac{H_0 u}{H_0} e^{-u} H_0 du = H_0 \int_0^\infty u e^{-u} du +\] + +Интегрирование по частям или используя табличный интеграл: +\[ +\int_0^\infty u e^{-u} du = \Gamma(2) = 1! = 1 +\] + +Таким образом: +\[ +\langle z \rangle = H_0 \cdot 1 = H_0 = \dfrac{k_B T}{mg} +\] + +\textbf{Потенциальная энергия в среднем} + +\[ +\langle U \rangle = \langle mgz \rangle = mg \langle z \rangle = mg \cdot \dfrac{k_B T}{mg} = k_B T +\] + +Это согласуется с теоремой о равнораспределении: на каждую "квадратичную" координату приходится энергия $\dfrac{1}{2}k_B T$, но в гравитационном поле потенциальная энергия линейна по высоте, и среднее значение равно $k_B T$. + +\textbf{График барометрического распределения} + +\begin{figure}[h] +\centering +\begin{tikzpicture} +\begin{axis}[ + width=0.8\textwidth, + height=7cm, + xlabel={Высота $z/H_0$}, + ylabel={Относительная концентрация $n(z)/n(0)$}, + grid=major, + domain=0:5, + ymin=0, + ymax=1, + samples=200, +] +% Барометрическая формула: n(z)/n(0) = exp(-z/H_0) +\addplot[blue, thick] {exp(-x)}; +\addlegendentry{$n(z)/n(0) = e^{-z/H_0}$} + +% Отмечаем характерные высоты +\draw[dashed, gray] (axis cs:0,0.368) -- (axis cs:5,0.368); +\draw[dashed, gray] (axis cs:1,0) -- (axis cs:1,1); +\node[anchor=west, gray] at (axis cs:1.1,0.368) {$e^{-1} \approx 0.37$}; +\node[anchor=north, gray] at (axis cs:1,0.05) {$H_0$}; +\end{axis} +\end{tikzpicture} +\caption{Барометрическое распределение в безразмерных единицах. На высоте $z = H_0$ концентрация уменьшается в $e$ раз. Для воздуха при комнатной температуре $H_0 \approx 8.5$ км} +\end{figure} + +Физический смысл: +\begin{itemize} + \item Экспоненциальное убывание концентрации с высотой + \item Характерная высота атмосферы $H_0 = k_BT/(mg)$ зависит от температуры и массы молекул + \item Для воздуха при комнатной температуре $H_0 \approx 8.5$ км + \item Более лёгкие газы (водород, гелий) имеют большую высоту шкалы +\end{itemize} diff --git a/M7B_report/models/boltzmann_distribution.tex b/M7B_report/models/boltzmann_distribution.tex new file mode 100644 index 0000000..a4fd087 --- /dev/null +++ b/M7B_report/models/boltzmann_distribution.tex @@ -0,0 +1,93 @@ +\subsection{Распределение Максвелла-Больцмана} + +Полное распределение молекул в фазовом пространстве координат и импульсов описывается \textbf{распределением Максвелла-Больцмана}. + +\textbf{Каноническое распределение Гиббса} + +Вероятность найти систему в состоянии с энергией $E$ при температуре $T$: +\[ +P(E) \propto \exp\left(-\dfrac{E}{k_B T}\right) +\] + +Это называется \textbf{фактором Больцмана}. + +\textbf{Распределение одной молекулы} + +Для одной молекулы в гравитационном поле полная энергия: +\[ +E(\vec{r}, \vec{v}) = \dfrac{mv^2}{2} + mgz +\] + +Плотность вероятности в фазовом пространстве: +\[ +f(\vec{r}, \vec{v}) = C \exp\left(-\dfrac{E(\vec{r}, \vec{v})}{k_B T}\right) = C \exp\left(-\dfrac{mv^2/2 + mgz}{k_B T}\right) +\] + +где $C$ -- константа нормировки. + +\Solution Найдём константу нормировки $C$ из условия: +\[ +\int_{V} d^3r \int_{-\infty}^{\infty} d^3v \, f(\vec{r}, \vec{v}) = 1 +\] + +Разделяя экспоненты: +\[ +f(\vec{r}, \vec{v}) = C \exp\left(-\dfrac{mv^2}{2k_B T}\right) \exp\left(-\dfrac{mgz}{k_B T}\right) +\] + +Интегрируем по скоростям и координатам отдельно, получая: +\[ +C = \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \cdot \dfrac{mg}{Sk_B T} +\] + +где $S$ -- площадь основания сосуда. + +Это распределение факторизуется: +\[ +f(\vec{r}, \vec{v}) = f(\vec{v}) \cdot f(z) +\] + +где: +\begin{itemize} + \item $f(\vec{v})$ -- распределение Максвелла по скоростям + \item $f(z)$ -- барометрическое распределение по высоте +\end{itemize} + +\textbf{Распределение по энергии} + +Полная энергия молекулы $E = \dfrac{mv^2}{2} + mgz$ может принимать значения от 0 до $\infty$. + +Распределение по полной энергии в термодинамическом равновесии: +\[ +f(E) \propto \sqrt{E} \exp\left(-\dfrac{E}{k_B T}\right) +\] + +Множитель $\sqrt{E}$ появляется из-за статистического веса -- числа способов реализовать данную энергию. + +\textbf{Средняя энергия молекулы} + +В трёхмерном пространстве для молекулы в гравитационном поле: +\[ +\langle E \rangle = \left\langle \dfrac{mv^2}{2} \right\rangle + \langle mgz \rangle +\] + +Из распределения Максвелла: $\left\langle \dfrac{mv^2}{2} \right\rangle = \dfrac{3}{2}k_B T$ + +Из барометрической формулы: $\langle mgz \rangle = k_B T$ + +Итого: +\[ +\boxed{\langle E \rangle = \dfrac{3}{2}k_B T + k_B T = \dfrac{5}{2}k_B T} +\] + +\textbf{Связь с термодинамикой} + +Для системы из $N$ молекул идеального газа: +\begin{itemize} + \item Внутренняя энергия (без учёта гравитации): $U = N \cdot \dfrac{3}{2}k_B T = \dfrac{3}{2}NkT = \dfrac{3}{2}\nu RT$ + \item Теплоёмкость при постоянном объёме: $C_V = \dfrac{\partial U}{\partial T} = \dfrac{3}{2}\nu R$ + \item Теплоёмкость при постоянном давлении: $C_P = C_V + \nu R = \dfrac{5}{2}\nu R$ + \item Показатель адиабаты: $\gamma = \dfrac{C_P}{C_V} = \dfrac{5/2}{3/2} = \dfrac{5}{3} \approx 1.67$ +\end{itemize} + +где $\nu$ -- число молей, $R = N_A k_B$ -- универсальная газовая постоянная. diff --git a/M7B_report/models/ideal_gas_dynamics.tex b/M7B_report/models/ideal_gas_dynamics.tex new file mode 100644 index 0000000..90880d0 --- /dev/null +++ b/M7B_report/models/ideal_gas_dynamics.tex @@ -0,0 +1,89 @@ +\subsection{Динамика молекул идеального газа} + +\textbf{Уравнения движения} + +Каждая молекула движется под действием силы тяжести согласно \textbf{второму закону Ньютона}: +\[ +m\dfrac{d\vec{v}}{dt} = m\vec{g} +\] + +В декартовых координатах ($x$, $y$ -- горизонтальные, $z$ -- вертикальная ось): +\[ +\begin{cases} +\dfrac{dv_x}{dt} = 0 \\[0.5em] +\dfrac{dv_y}{dt} = 0 \\[0.5em] +\dfrac{dv_z}{dt} = -g +\end{cases} +\quad \text{и} \quad +\begin{cases} +\dfrac{dx}{dt} = v_x \\[0.5em] +\dfrac{dy}{dt} = v_y \\[0.5em] +\dfrac{dz}{dt} = v_z +\end{cases} +\] + +Горизонтальные компоненты скорости сохраняются между столкновениями, вертикальная изменяется под действием гравитации. + +\textbf{Граничные условия} + +Упругое отражение от стенок сосуда: +\begin{itemize} + \item \textbf{Дно} ($z = 0$): при $z \leq 0$ компонента $v_z \to -v_z$ + \item \textbf{Крышка} ($z = H$): при $z \geq H$ компонента $v_z \to -v_z$ + \item \textbf{Боковые стенки} (цилиндр радиуса $R$): при $\sqrt{x^2 + y^2} \geq R$ нормальная компонента скорости меняет знак +\end{itemize} + +Для моделирования термостата при столкновении со стенкой скорость молекулы пересчитывается по распределению Максвелла при заданной температуре стенки $T$. + +\textbf{Столкновения между молекулами} + +При столкновении двух молекул выполняются законы сохранения: +\begin{enumerate} + \item \textbf{Сохранение импульса:} + \[ + m\vec{v}_1 + m\vec{v}_2 = m\vec{v}_1' + m\vec{v}_2' + \] + + \item \textbf{Сохранение кинетической энергии:} + \[ + \dfrac{m v_1^2}{2} + \dfrac{m v_2^2}{2} = \dfrac{m v_1'^2}{2} + \dfrac{m v_2'^2}{2} + \] +\end{enumerate} + +где $\vec{v}_1, \vec{v}_2$ -- скорости до столкновения, $\vec{v}_1', \vec{v}_2'$ -- после столкновения. + +Столкновение происходит при сближении молекул на расстояние меньше эффективного диаметра $d$. + +\textbf{Алгоритм расчёта скоростей после столкновения:} + +Переход в систему центра масс: +\[ +\vec{V}_{cm} = \dfrac{\vec{v}_1 + \vec{v}_2}{2} +\] + +Относительная скорость: +\[ +\vec{v}_{rel} = \vec{v}_1 - \vec{v}_2 +\] + +Единичный вектор вдоль линии центров: +\[ +\vec{n} = \dfrac{\vec{r}_1 - \vec{r}_2}{|\vec{r}_1 - \vec{r}_2|} +\] + +Новые скорости после упругого столкновения: +\[ +\begin{cases} +\vec{v}_1' = \vec{V}_{cm} + \dfrac{1}{2}\left[\vec{v}_{rel} - 2(\vec{v}_{rel} \cdot \vec{n})\vec{n}\right] \\[1em] +\vec{v}_2' = \vec{V}_{cm} - \dfrac{1}{2}\left[\vec{v}_{rel} - 2(\vec{v}_{rel} \cdot \vec{n})\vec{n}\right] +\end{cases} +\] + +\textbf{Полная энергия системы} + +В изолированной системе полная энергия сохраняется: +\[ +E_{total} = \sum_{i=1}^{N} \left(\dfrac{mv_i^2}{2} + mgz_i\right) = const +\] + +где первое слагаемое -- кинетическая энергия, второе -- потенциальная энергия в поле тяжести. diff --git a/M7B_report/models/maxwell_distribution.tex b/M7B_report/models/maxwell_distribution.tex new file mode 100644 index 0000000..1696728 --- /dev/null +++ b/M7B_report/models/maxwell_distribution.tex @@ -0,0 +1,194 @@ +\subsection{Распределение Максвелла по скоростям} + +В состоянии термодинамического равновесия распределение молекул по скоростям описывается \textbf{распределением Максвелла}. + +\textbf{Распределение по вектору скорости} + +Плотность вероятности обнаружить молекулу со скоростью в интервале $(\vec{v}, \vec{v} + d\vec{v})$: +\[ +f(\vec{v}) = \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \exp\left(-\dfrac{m(\vec{v})^2}{2k_B T}\right) +\] + +где: +\begin{itemize} + \item $m$ -- масса молекулы + \item $k_B = 1.38 \times 10^{-23}$ Дж/К -- постоянная Больцмана + \item $T$ -- абсолютная температура +\end{itemize} + +Распределение факторизуется по компонентам: +\[ +f(\vec{v}) = f(v_x)f(v_y)f(v_z) +\] + +где каждая компонента имеет нормальное распределение: +\[ +f(v_i) = \sqrt{\dfrac{m}{2\pi k_B T}} \exp\left(-\dfrac{mv_i^2}{2k_B T}\right), \quad i = x, y, z +\] + +\textbf{Распределение по модулю скорости} + +Интегрируя по всем направлениям, получаем распределение по модулю скорости $v = |\vec{v}|$: +\[ +\boxed{f(v) = 4\pi v^2 \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \exp\left(-\dfrac{mv^2}{2k_B T}\right)} +\] + +Это распределение называется \textbf{распределением Максвелла}. + +\textbf{Характерные скорости} + +\begin{enumerate} + \item \textbf{Наиболее вероятная скорость} (максимум распределения): + + Найдём максимум $f(v)$, приравняв производную к нулю: + \[ + \dfrac{df}{dv} = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \dfrac{d}{dv}\left[v^2 e^{-mv^2/(2k_B T)}\right] = 0 + \] + + Применяя правило произведения: + \[ + 2v e^{-mv^2/(2k_B T)} + v^2 e^{-mv^2/(2k_B T)} \cdot \left(-\dfrac{mv}{k_B T}\right) = 0 + \] + + Вынося общий множитель $v e^{-mv^2/(2k_B T)}$: + \[ + v e^{-mv^2/(2k_B T)} \left(2 - \dfrac{mv^2}{k_B T}\right) = 0 + \] + + Нетривиальное решение ($v \neq 0$): + \[ + 2 - \dfrac{mv^2}{k_B T} = 0 \quad \Rightarrow \quad v_{prob} = \sqrt{\dfrac{2k_B T}{m}} + \] + + \item \textbf{Средняя скорость:} + \[ + \langle v \rangle = \int_0^\infty v f(v) dv = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \int_0^\infty v^3 e^{-mv^2/(2k_B T)} dv + \] + + Замена переменной: $u = \dfrac{mv^2}{2k_B T}$, откуда $v = \sqrt{\dfrac{2k_B T u}{m}}$, $dv = \sqrt{\dfrac{k_B T}{2mu}} du$ + \[ + \int_0^\infty v^3 e^{-mv^2/(2k_B T)} dv = \left(\dfrac{2k_B T}{m}\right)^2 \int_0^\infty u e^{-u} du = \left(\dfrac{2k_B T}{m}\right)^2 \cdot 1! = \left(\dfrac{2k_B T}{m}\right)^2 + \] + + Подставляя обратно: + \[ + \langle v \rangle = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \left(\dfrac{2k_B T}{m}\right)^2 = \sqrt{\dfrac{8k_B T}{\pi m}} + \] + + \item \textbf{Среднеквадратичная скорость:} + \[ + \langle v^2 \rangle = \int_0^\infty v^2 f(v) dv = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \int_0^\infty v^4 e^{-mv^2/(2k_B T)} dv + \] + + Аналогично, используя табличный интеграл: + \[ + \int_0^\infty v^4 e^{-mv^2/(2k_B T)} dv = \dfrac{3}{4}\sqrt{\pi} \left(\dfrac{2k_B T}{m}\right)^{5/2} + \] + + Откуда: + \[ + \langle v^2 \rangle = \dfrac{3k_B T}{m} \quad \Rightarrow \quad v_{rms} = \sqrt{\langle v^2 \rangle} = \sqrt{\dfrac{3k_B T}{m}} + \] +\end{enumerate}Соотношение между ними: +\[ +v_{prob} : \langle v \rangle : v_{rms} = \sqrt{2} : \sqrt{\dfrac{8}{\pi}} : \sqrt{3} \approx 1.41 : 1.60 : 1.73 +\] + +\textbf{График распределения Максвелла} + +\begin{figure}[h] +\centering +\begin{tikzpicture} +\begin{axis}[ + width=0.8\textwidth, + height=6cm, + xlabel={Скорость $v/v_{prob}$}, + ylabel={$f(v)$ (отн. ед.)}, + grid=major, + legend pos=north east, + domain=0:3, + samples=200, + ymin=0, +] +% Безразмерное распределение Максвелла: f(x) = 4/sqrt(pi) * x^2 * exp(-x^2) +% где x = v/v_prob, v_prob = sqrt(2kT/m) +\addplot[blue, thick] {4/sqrt(pi)*x^2*exp(-x^2)}; +\addlegendentry{Распределение Максвелла} + +% Отметим характерные скорости +\draw[dashed, gray] (axis cs:1,0) -- (axis cs:1,1.2); +\node[anchor=south, gray] at (axis cs:1,1.2) {$v_{prob}$}; + +\draw[dashed, red] (axis cs:1.128,0) -- (axis cs:1.128,0.8); +\node[anchor=south, red] at (axis cs:1.128,0.8) {$\langle v \rangle$}; + +\draw[dashed, green!60!black] (axis cs:1.225,0) -- (axis cs:1.225,0.6); +\node[anchor=south, green!60!black] at (axis cs:1.225,0.6) {$v_{rms}$}; +\end{axis} +\end{tikzpicture} +\caption{Распределение Максвелла в безразмерных единицах ($v/v_{prob}$). Показаны характерные скорости: наиболее вероятная $v_{prob}$, средняя $\langle v \rangle \approx 1.128 v_{prob}$ и среднеквадратичная $v_{rms} \approx 1.225 v_{prob}$} +\end{figure} + +Из графика видно: +\begin{itemize} + \item Максимум распределения при $v = v_{prob} = \sqrt{2k_BT/m}$ + \item Средняя скорость $\langle v \rangle$ и среднеквадратичная $v_{rms}$ больше наиболее вероятной + \item Распределение асимметрично -- имеет "хвост" в сторону больших скоростей +\end{itemize} + +\textbf{Средняя кинетическая энергия} + +\Solution Вычислим среднее значение кинетической энергии: +\[ +\left\langle \dfrac{mv^2}{2} \right\rangle = \dfrac{m}{2} \langle v^2 \rangle = \dfrac{m}{2} \cdot \dfrac{3k_B T}{m} = \dfrac{3}{2}k_B T +\] + +Альтернативный вывод через интегрирование по компонентам: +\[ +\left\langle \dfrac{mv^2}{2} \right\rangle = \left\langle \dfrac{m(v_x^2 + v_y^2 + v_z^2)}{2} \right\rangle = \dfrac{m}{2}(\langle v_x^2 \rangle + \langle v_y^2 \rangle + \langle v_z^2 \rangle) +\] + +Для каждой компоненты (например, $v_x$): +\[ +\langle v_x^2 \rangle = \int_{-\infty}^{\infty} v_x^2 \sqrt{\dfrac{m}{2\pi k_B T}} e^{-mv_x^2/(2k_B T)} dv_x = \dfrac{k_B T}{m} +\] + +Используем табличный интеграл $\int_{-\infty}^{\infty} x^2 e^{-ax^2} dx = \dfrac{1}{2}\sqrt{\dfrac{\pi}{a^3}}$. + +Таким образом: +\[ +\left\langle \dfrac{mv^2}{2} \right\rangle = \dfrac{m}{2} \cdot 3 \cdot \dfrac{k_B T}{m} = \dfrac{3}{2}k_B T +\] + +Это выражение связывает температуру со средней кинетической энергией поступательного движения молекул. + +По теореме о равнораспределении энергии по степеням свободы: +\[ +\left\langle \dfrac{mv_i^2}{2} \right\rangle = \dfrac{1}{2}k_B T, \quad i = x, y, z +\] + +На каждую поступательную степень свободы приходится энергия $\dfrac{1}{2}k_B T$. + +\textbf{Проверка нормировки} + +\Solution Проверим, что распределение нормировано: +\[ +\int_0^\infty f(v) dv = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \int_0^\infty v^2 e^{-mv^2/(2k_B T)} dv +\] + +Используем табличный интеграл (гауссов интеграл): +\[ +\int_0^\infty v^2 e^{-av^2} dv = \dfrac{1}{4}\sqrt{\dfrac{\pi}{a^3}} +\] + +Где $a = \dfrac{m}{2k_B T}$: +\[ +\int_0^\infty v^2 e^{-mv^2/(2k_B T)} dv = \dfrac{1}{4}\sqrt{\dfrac{\pi}{(m/(2k_B T))^3}} = \dfrac{1}{4}\sqrt{\pi} \left(\dfrac{2k_B T}{m}\right)^{3/2} +\] + +Подставляем: +\[ +\int_0^\infty f(v) dv = 4\pi \left(\dfrac{m}{2\pi k_B T}\right)^{3/2} \cdot \dfrac{1}{4}\sqrt{\pi} \left(\dfrac{2k_B T}{m}\right)^{3/2} = \sqrt{\pi} \cdot \dfrac{1}{\sqrt{\pi}} = 1 +\] + +Это означает, что вероятность найти молекулу с любой скоростью равна единице. diff --git a/M7B_report/models/models.tex b/M7B_report/models/models.tex new file mode 100644 index 0000000..62e60e7 --- /dev/null +++ b/M7B_report/models/models.tex @@ -0,0 +1,10 @@ +\section{Физические модели} + +\input{models/ideal_gas_dynamics} +\newpage +\input{models/maxwell_distribution} +\newpage +\input{models/barometric_formula} +\newpage +\input{models/boltzmann_distribution} +\newpage \ No newline at end of file diff --git a/M7B_report/numerical_methods.tex b/M7B_report/numerical_methods.tex new file mode 100644 index 0000000..d5a1b84 --- /dev/null +++ b/M7B_report/numerical_methods.tex @@ -0,0 +1,139 @@ +\section{Численные методы решения} + +Численное моделирование системы молекул идеального газа основано на методе \textbf{молекулярной динамики} -- пошаговом интегрировании уравнений движения всех частиц с учётом столкновений. + +\subsection{Алгоритм интегрирования} + +Для интегрирования уравнений движения используется \textbf{метод Верле} (Verlet algorithm), который хорошо сохраняет энергию системы при длительном моделировании. + +\textbf{Базовый алгоритм Верле:} + +Положение частицы на следующем шаге вычисляется по формуле: +\[ +\vec{r}(t + \Delta t) = 2\vec{r}(t) - \vec{r}(t - \Delta t) + \vec{a}(t) \Delta t^2 +\] + +где $\vec{a}(t) = \dfrac{\vec{F}(t)}{m}$ -- ускорение. + +\textbf{Скоростная форма Верле (Velocity Verlet):} + +Более удобная модификация, которая явно вычисляет скорости: +\[ +\begin{cases} +\vec{r}(t + \Delta t) = \vec{r}(t) + \vec{v}(t) \Delta t + \dfrac{1}{2}\vec{a}(t) \Delta t^2 \\[1em] +\vec{v}(t + \Delta t) = \vec{v}(t) + \dfrac{1}{2}[\vec{a}(t) + \vec{a}(t + \Delta t)] \Delta t +\end{cases} +\] + +Для нашей задачи $\vec{a} = \vec{g} = (0, 0, -g) = const$, поэтому: +\[ +\begin{cases} +\vec{r}(t + \Delta t) = \vec{r}(t) + \vec{v}(t) \Delta t + \dfrac{1}{2}\vec{g} \Delta t^2 \\[1em] +\vec{v}(t + \Delta t) = \vec{v}(t) + \vec{g} \Delta t +\end{cases} +\] + +\textbf{Порядок точности:} метод имеет второй порядок точности по времени, $O(\Delta t^2)$. + +\subsection{Обработка столкновений} + +\textbf{Столкновения со стенками} + +На каждом временном шаге проверяются граничные условия: +\begin{itemize} + \item \textbf{Дно и крышка:} если $z < 0$ или $z > H$, то: + \[ + v_z \to -v_z, \quad z \to \max(0, \min(z, H)) + \] + + \item \textbf{Боковая поверхность:} если $\sqrt{x^2 + y^2} > R$, то компонента скорости вдоль радиуса меняет знак: + \[ + \vec{v}_r \to -\vec{v}_r + \] +\end{itemize} + +Для режима термостата при столкновении со стенкой скорость пересчитывается по распределению Максвелла: +\[ +v_i \sim \mathcal{N}\left(0, \sqrt{\dfrac{k_B T}{m}}\right), \quad i = x, y, z +\] + +\textbf{Столкновения между молекулами} + +Используется \textbf{метод жёстких сфер} (hard sphere model): +\begin{enumerate} + \item На каждом шаге проверяются расстояния между всеми парами молекул + \item Если $|\vec{r}_i - \vec{r}_j| < d$ (эффективный диаметр), происходит столкновение + \item Скорости пересчитываются по формулам упругого столкновения (см. раздел 3.1) + \item Для избежания повторных столкновений частицы слегка разводятся: + \[ + \vec{r}_i \to \vec{r}_i + \epsilon \vec{n}, \quad \vec{r}_j \to \vec{r}_j - \epsilon \vec{n} + \] + где $\vec{n}$ -- единичный вектор вдоль линии центров, $\epsilon$ -- малая величина +\end{enumerate} + +\textbf{Оптимизация вычислений} + +Для ускорения проверки столкновений используется метод \textbf{ячеек} (cell lists): +\begin{itemize} + \item Пространство разбивается на кубические ячейки размером $\ge d$ + \item Каждая молекула приписывается к ячейке по своим координатам + \item Проверка столкновений производится только с молекулами из той же и соседних ячеек + \item Сложность алгоритма снижается с $O(N^2)$ до $O(N)$ +\end{itemize} + +\subsection{Сбор статистики} + +После достижения равновесия (время релаксации $t_{relax}$) начинается сбор статистических данных: + +\textbf{Распределение по скоростям} + +Строится гистограмма модулей скоростей $v = |\vec{v}|$: +\[ +n_v(v) = \text{число молекул со скоростями в интервале } [v, v + \Delta v] +\] + +Нормированная плотность вероятности: +\[ +f_{num}(v) = \dfrac{n_v(v)}{N \cdot \Delta v} +\] + +Сравнивается с теоретическим распределением Максвелла. + +\textbf{Распределение по высоте} + +Строится гистограмма положений по оси $z$: +\[ +n_z(z) = \text{число молекул на высотах в интервале } [z, z + \Delta z] +\] + +Нормированная плотность вероятности: +\[ +f_{num}(z) = \dfrac{n_z(z)}{N \cdot \Delta z} +\] + +Сравнивается с барометрической формулой. + +\textbf{Критерии равновесия} + +Система считается достигшей равновесия, когда: +\begin{enumerate} + \item Средняя кинетическая энергия флуктуирует около постоянного значения + \item Распределения по скоростям и высоте не изменяются со временем + \item Выполняется теорема вириала: $\langle E_k \rangle = \dfrac{3}{2}Nk_B T$ +\end{enumerate} + +\textbf{Определение температуры} + +Температура системы определяется из средней кинетической энергии: +\[ +T = \dfrac{2\langle E_k \rangle}{3Nk_B} = \dfrac{2}{3Nk_B} \sum_{i=1}^{N} \dfrac{mv_i^2}{2} +\] + +Для проверки можно также использовать распределение по компонентам скорости: +\[ +T_i = \dfrac{\langle mv_i^2 \rangle}{k_B}, \quad i = x, y, z +\] + +В равновесии $T_x = T_y = T_z = T$. + +\newpage diff --git a/M7B_report/preamble.tex b/M7B_report/preamble.tex new file mode 100644 index 0000000..a696b04 --- /dev/null +++ b/M7B_report/preamble.tex @@ -0,0 +1,128 @@ +\documentclass[a4paper,12pt]{article} + +\usepackage{geometry} +% задание полей текста +\geometry{left=10mm,right=10mm,top=20mm,bottom=20mm} +\usepackage{listings} +\usepackage{cmap} % поиск в PDF +\usepackage[T2A]{fontenc} % кодировка +\usepackage[utf8]{inputenc} +\usepackage[english, russian]{babel} % локализация и переносы +\usepackage{natbib} + +\usepackage{graphicx} +\graphicspath{{pix/}} +\usepackage{pgfplots} +\usetikzlibrary{arrows} +\pgfplotsset{width=10cm,compat=1.18} +\pgfkeys{/pgf/trig format=rad} + + +\usepackage{xcolor} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{bm} +\usepackage{enumerate} +\usepackage[normalem]{ulem} +\usepackage{titlesec} + +% Настройка форматирования section для центрирования без растягивания +\titleformat{\section} + {\normalfont\Large\bfseries\centering}{\thesection}{1em}{} +\titleformat{\subsection} + {\normalfont\large\bfseries\centering}{\thesubsection}{1em}{} +\titleformat{\subsubsection} + {\normalfont\normalsize\bfseries\centering}{\thesubsubsection}{1em}{} + +\usepackage{hyperref} +\hypersetup{ + colorlinks=true, + linkcolor=blue, + filecolor=blue, + urlcolor=blue, + citecolor=blue +} + + +\setlength\parindent{0pt} + + +\sloppy % строго соблюдать границы текста +\linespread{1.2} % коэффициент межстрочного интервала +\setlength{\parskip}{0.5em} % вертик. интервал между абзацами + +\setcounter{secnumdepth}{0} % отключение нумерации разделов +\binoppenalty=1000 % уменьшение переносов в формулах + +% объявление новых макрокоманд + +\newcommand{\Def}{\textbf{Def.} } +\newcommand{\Th}{\textbf{Теорема.} } +\newcommand{\Thbd}{\textbf{Теорема (б/д).} } +\newcommand{\Theor}[1]{\textbf{Теорема ({#1}).} } +\newcommand{\Theorbd}[1]{\textbf{Теорема ({#1}) (б/д).} } +\newcommand{\Consequence}{\textbf{Следствие.} } +\newcommand{\Remind}{\textbf{Remind.} } +\newcommand{\Note}{\textbf{Note.} } +\newcommand{\Statement}{\textbf{Утверждение.} } +\newcommand{\Prop}{\textbf{Свойство:} } +\newcommand{\Props}{\textbf{Свойства:} } +\newcommand{\Proof}{\textbf{Доказательство:} } +\newcommand{\Prooff}{\textbf{Доказать:} } +\newcommand{\Solution}{\textbf{Решение:} } +\newcommand{\Alg}{\textbf{Algorithm.} } +\newcommand{\Lemma}{\textbf{Лемма.} } +\newcommand{\Example}{\textbf{Пример:} } +\newcommand{\Task}{\textbf{Задача.} } +\newcommand{\Goal}{\textbf{Цель работы:} } +\newcommand{\Solve}{\textbf{Решение:} } +\newcommand{\Examples}{\textbf{Примеры.} } + +\allowdisplaybreaks[4] + +%\renewcommand\thesection{\arabic{section}} + +\newcommand{\Endproof}{$\blacksquare$ } + +\newcommand{\tr}{\text{tr}} +\newcommand{\Le}{\leqslant} % русский стиль нестрогих неравенств +\newcommand{\Ge}{\geqslant} +% облегчение математических обозначений +\newcommand{\A}{\mathcal{A}} +\newcommand{\M}{\mathcal{M}} +\newcommand{\F}{\mathcal{F}} +\newcommand{\Gs}{\mathcal{G}} +\newcommand{\R}{\mathbb{R}} +\newcommand{\N}{\mathbb{N}} +\newcommand{\Q}{\mathbb{Q}} +\newcommand{\Norm}{\mathcal{N}} +%\newcommand{\C}{\mathbb{C}} +\newcommand{\ind}{\perp \!\!\! \perp} +\newcommand{\Z}{\mathbb{Z}} +\newcommand{\E}{{\mathbb{E}}} +\newcommand{\D} { {\mathbb{D}}} +\newcommand{\x}{\overline{x}} +\newcommand{\y}{\overline{y}} +\newcommand{\soch}[2]{\text{$C_{#1}^{#2}$}} +\newcommand{\X}{\text{$\mathcal{X}$}} +\newcommand{\VC}[2]{\text{$VC\left(#1; #2\right)$}} +\renewcommand{\P}{\text{$\mathcal{P}$}} +\newcommand{\B}{\text{$\mathcal{B}$}} +\newcommand{\brackets}[1]{\left({#1}\right)} % автоматический размер скобочек +\newcommand{\abs}[1]{\left|{#1}\right|} % автоматический размер модуля +\newcommand{\norm}[1]{\left\|{#1}\right\|} % автоматический размер нормы +\newcommand{\set}[1]{\left\{{#1}\right\}} % автоматический размер множества +\newcommand{\condset}[2]{\set{#1 \ | \ #2}} % определение множества + +\newcommand{\distrfamily}{\condset{P_\theta}{\theta \in \Theta}} + +\DeclareMathOperator{\sign} +\DeclareMathOperator{\tg} + + +\newpagestyle{main}{ + \setheadrule{.4pt} + \sethead{}{\bullet \; \textit{Цифровизация физических процессов} \; \bullet}{} + \setfootrule{.4pt} + \setfoot{ВШПИ МФТИ}{М7Б. Статистика идеального газа}{Б13-402} +} diff --git a/M7B_report/report.pdf b/M7B_report/report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..3a3f3df61a8d4e04f56668800073c522432e12ec GIT binary patch literal 310170 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 z⋙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