Physics.Math.Code
143K subscribers
5.2K photos
2.05K videos
5.81K files
4.45K links
VK: vk.com/physics_math
Чат инженеров: @math_code
Учебные фильмы: @maths_lib
Репетитор IT mentor: @mentor_it
YouTube: youtube.com/c/PhysicsMathCode

№ 6045941532

Обратная связь: @physicist_i
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
💦 Моделирование жидкости (англ. fluid simulation) — область компьютерной графики, использующая средства вычислительной гидродинамики для реалистичного моделирования, анимации и визуализации жидкостей, газов, взрывов и других связанных с этим явлений. Имея на входе некую жидкость и геометрию сцены, симулятор жидкости моделирует её поведение и движение во времени, принимая в расчёт множество физических сил, объектов и взаимодействий. Моделирование жидкости широко используется в компьютерной графике и ранжируется по вычислительной сложности от высокоточных вычислений для кинофильмов и спецэффектов до простых аппроксимаций, работающих в режиме реального времени и использующихся преимущественно в компьютерных играх.

Существует несколько конкурирующих методов моделирования жидкости, каждый из которых имеет свои преимущества и недостатки. Наиболее распространёнными являются сеточные методы Эйлера, гидродинамика сглаженных частиц (англ. smoothed particle hydrodynamics — SPH), методы, основанные на завихрениях, и метод решёточных уравнений Больцмана. Эти методы возникли в среде вычислительной гидродинамики и были позаимствованы для практических задач в индустрии компьютерной графики и спецэффектов. Основное требование к данным методам со стороны компьютерной графики — визуальная правдоподобность. Иными словами, если наблюдатель при просмотре не может заметить неестественность анимации, то моделирование считается удовлетворительным. В физике, технике и математике, с другой стороны, основные требования предъявляются к физической корректности и точности моделирования, а не к её визуальному результату.

В компьютерной графике самые ранние попытки решить уравнения Навье — Стокса в трёхмерном пространстве были предприняты в 1996 году Ником Фостером (англ. Nick Foster) и Димитрисом Метаксасом (англ. Dimitris Metaxas). Их работа в качестве основы использовала более раннюю работу по вычислительной гидродинамике, которая была опубликована в 1965 году Харлоу (англ. Harlow) и Уэлшем (англ. Welch). До работы Фостера и Метаксаса многие методы моделирования жидкости были построены на основе специальных систем частиц, методах снижения размерности (типа двухмерные модели мелких водяных объёмов типа луж) и полу-случайных шумовых турбулентных полях. В 1999 году на SIGGRAPH Джос Стэм (англ. Jos Stam) опубликовал метод так называемых «стабильных жидкостей» (англ. Stable Fluids), который использовал полу-лагранжевый метод адвекции и неявные интеграции вязкости для обеспечения безусловно устойчивого поведения жидкости. Это позволило моделировать жидкости со значительно большим временным шагом и в общем привело к более быстрым программам. Позже, в 2001—2002 годах, этот метод был расширен Роном Федкивым вместе со своими сотрудниками, благодаря чему стало возможным обрабатывать сложную модель воды в трёхмерной сцене с использованием метода установленного уровня (англ. Level set method). #математика #физика #наука #gif #образование #разработка_игр #gamedev #math #physics

💡 Physics.Math.Code // @physics_lib
👍98🔥216❤‍🔥6🤯43🙈1🫡1
This media is not supported in your browser
VIEW IN TELEGRAM
⚡️ С чего начать моделирование электрических полей?

Задумывались ли вы, как «увидеть» невидимое? Электрическое поле окружает нас повсюду, от розетки до экрана смартфона. Давайте разберемся, как смоделировать его для точечных зарядов и сложных поверхностей и получить эти завораживающие картинки силовых линий и эквипотенциалей.

1. Фундамент: Главные Уравнения
▪️ Закон Кулона для точечного заряда: F = k * (q₁ * q₂) / r² . Но для поля удобнее работать с напряженностью E = F / q.
▪️ Принцип суперпозиции: Поле системы зарядов — это просто векторная сумма полей от каждого заряда в отдельности. Это наше главное оружие в моделировании.

2. Силовые Линии и Эквипотенциали
Поле можно описывать по-разному, и это ключ к красивой визуализации.
▪️Силовые линии (Графическое отображение напряженности E):
— Воображаемые линии, касательные к которым в каждой точке совпадают с вектором E.
— Свойства: Начинаются на «+» зарядах, заканчиваются на «-» или уходят в бесконечность. Никогда не пересекаются!
— Густота линий пропорциональна величине напряженности.
▪️Эквипотенциальные поверхности (Графическое отображение потенциала φ):
— Что это? Поверхности, где потенциал постоянен (φ = const).
— Свойства: Всегда перпендикулярны силовым линиям. Работа по перемещению заряда вдоль такой поверхности равна нулю.

3. Как Строить Уравнения?
Для точечного заряда q в точке (x₀, y₀):
— Потенциал: φ(x, y) = k * q / sqrt( (x - x₀)² + (y - y₀)² )
— Вектор напряженности E: Eₓ = -∂φ/∂x, Eᵧ = -∂φ/∂y (это просто частные производные, градиент со знаком минус).
А как получить уравнение силовой линии? Это уже сложнее. Силовая линия — это кривая, которая в каждой точке направлена вдоль E. Математически это решается через дифференциальное уравнение: dx / Eₓ(x, y) = dy / Eᵧ(x, y). Решая его (часто численно!), мы получаем траектории для наших визуализаций.

4. Инструменты для Моделирования и Визуализации
▪️Python — король научной визуализации: Библиотеки: matplotlib, numpy, scipy.
▪️Как: Задаете сетку точек (x, y), для каждой считаете Eₓ и Eᵧ (суммируя вклады от всех зарядов). Затем:
— Для силовых линий: используйте matplotlib.streamplot
— Для эквипотенциалей: matplotlib.contour или contourf для потенциала φ.

🖥 Простой пример кода для двух зарядов:
import numpy as np
import matplotlib.pyplot as plt

# Создаем сетку
x = np.linspace(-2, 2, 100)
y = np.linspace(-2, 2, 100)
X, Y = np.meshgrid(x, y)

# Задаем заряды (q, x, y)
charges = [(1, -0.5, 0), (-1, 0.5, 0)]

# Вычисляем полные Eₓ и Eᵧ на сетке
Ex = np.zeros(X.shape)
Ey = np.zeros(Y.shape)
k = 9e9
for q, xq, yq in charges:
R = np.sqrt((X - xq)**2 + (Y - yq)**2)
Ex += k * q * (X - xq) / R**3
Ey += k * q * (Y - yq) / R**3

# Рисуем силовые линии
plt.streamplot(X, Y, Ex, Ey, color='blue', linewidth=1, density=2)
plt.show()

Готовые симуляторы:
— PhET Interactive Simulations (отлично для начального понимания).
— Falstad's E&M Simulator (очень наглядно).
— Comsol Multiphysics, Ansys — для серьезного моделирования сложных поверхностей.

🔴 А что с Крупными Заряженными Поверхностями? Здесь принцип суперпозиции остается, но суммирование становится интегрированием. Каждую поверхность разбиваете на маленькие точечные заряды dq и интегрируете их вклад в поле. На практике для сложных форм это почти всегда делается численными методами (например, методом конечных элементов), которые и используют пакеты вроде Comsol. Начните с Python и пары точечных зарядов. Поймите связь между φ и E, научитесь строить streamplot и contour. #электричество #физика #моделирование #визуализация #python #наука #образование #электрическоеполе #программирование

💡 Physics.Math.Code // @physics_lib
Please open Telegram to view this post
VIEW IN TELEGRAM
578👍46🔥19🤔42🤩2🗿1