Решил визуализировать несколько основных сейсмических волн. Все волны ниже — решения одного уравнения эластики (уравнение движения упругой среды): ρ ∂²u/∂t² = (λ + 2μ) ∇(∇·u) − μ ∇×∇×u. где ρ — плотность, λ и μ — параметры Ламе, ν — коэффициент Пуассона. Подстановка u = ∇φ + ∇×ψ (разложение Гельмгольца) разделяет его на два волновых уравнения: ∂²φ/∂t² = α² ∇²φ (P-волна), ∂²ψ/∂t² = β² ∇²ψ (S-волна). Солвер решает плоскую деформацию (компоненты ux, uz, поляризация P–SV), поэтому всё ниже, кроме волны Лява (но ее я визуализирую в 3D, где есть SH), в нём считается...
Numerical Simulations
Акустика 2D. Вторая часть
Идея в двух словах. Классический FD строит производные на регулярной сетке соседних узлов. RBF-FD делает то же самое, но узлы могут быть разбросаны: вокруг каждой точки берётся локальное облако соседей, и по ним строится локальный разностный шаблон. Итоговая матрица лапласиана всё равно разреженная, как у FD, только шаблон «плавает» с каждым узлом. Странно воспринимать RBF-FD как самостоятельный метод. Я скорее думаю о нем как нетривиальная реализация FD где регулярная сетка неудобна или численно неэффективна...
3D Elastic GPU - Overthrust
Посчитал Overthrust в 3D на GPU - я молодец. Источник - Рикер 10 HZ. Видеокарта Nvidia H100 80GB. Вот собственно модель Overthrust: Выглядит безобидно, но размер исходных данный такой: N=187×801×801=119979387 узлов. Я использую float32 что разумно для сейсмики, но даже с ним решение для одного момента времени для эластики занимает примерно 1...
Акустика 2D
Ради развлечения - реализуем несколько численных методов на одной и той же тестовой задаче. Посмотрим скорость сходимости и до селе не виданную величину - скорость вычисления одной и той же задачи разными методами. Уравнение акустики в двумерной области описывает распространение малых возмущений давления (или потенциала скорости) в среде. В наиболее распространённой форме оно записывается как неоднородное волновое уравнение второго порядка: здесь все понятно и без подписей. Уравнение относится к гиперболическому типу: конечная скорость распространения возмущений, наличие характеристик...
Как смоделировать трещину, которую не видно
В геофизике есть задача, которая звучит как оксюморон: нужно смоделировать сейсмический отклик от трещины, ширина которой составляет микроны, а длина волны — дециметры. Если подходить в лоб — моделировать трещину как отдельный слой с низким импедансом, — то сетка должна разрешать эту микроскопическую толщину. Шаг по времени падает вместе с шагом сетки, и расчет становится невозможным даже на современных GPU. Выход — не моделировать трещину как объем, а заменить ее граничным условием. Линейная модель скольжения (Linear Slip Model, LSM) делает именно это...
