Моделирование столкновения шарика и стенки

Материал из Department of Theoretical and Applied Mechanics
Версия от 16:43, 5 марта 2022; 5.18.84.7 (обсуждение) (все)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Курсовой проект по Механике дискретных сред

Исполнитель: Ананьев Леонид

Группа: 5030103/80101

Семестр: осень 2021

Постановка задачи[править]

Требуется смоделировать удар воздушного шарика о твердую стенку в двумерной постановке. Воздушный шарик представляет из себя оболочку, состоящую из материальных точек, каждая из которых соединена пружиной. Отскакивание воздушного шара от стенки моделируется при помощи потенциала Ленарда-Джонса.

Математическая модель[править]

Уравнение движения для каждой из материальных точек записывается следующим образом:

[math] m\underline{\ddot{x}}_i(t)=\underline{F}_{R_1}+\underline{F}_{R_2}+\underline{P}+\underline{F}_{Wall}\\ \underline{x}_i(0)=\underline{x}_i^0,~\underline{v}_i(0)=v_i^0~~~i=1,\ldots,n [/math]


где [math] \underline{F}_{R_1}, \underline{F}_{R_2}\\ [/math] - силы упругости действующие на [math]i[/math]-ую частицу со стороны [math]i-1[/math] и [math]i+1[/math] соответственно;

[math] \underline{P} [/math] - давление создаваемое газом;

[math] \underline{F}_{Wall}\\ [/math] - сила взаимодействия между воздушным шаром и стеной;

Давление рассчитывается следующим образом:

[math] \underline{P}=k\left(\frac{V}{V_{0}} - 1\right) \underline{n} [/math], где [math] V [/math] - актуальный объем шара, [math] V_{0} [/math] - начальный объем шара, [math] k [/math] - коэффициент давления, [math] \underline{n}[/math] - нормаль к пружине, направленная наружу.

Взаимодействие шара со стеной:

[math] \underline{F}_{Wall}=-\nabla \Pi(r) [/math], где [math]\Pi(r)=4\varepsilon\left[\left(\frac{a}{r}\right)^{12}-\left(\frac{a}{r}\right)^6\right][/math]

Интегрирование уравнений движения осуществляется при помощи метода Верле.

Результаты моделирования[править]

Результаты моделирования и исходный код можно посмотреть на GitHub: https://github.com/krento/ballPressure