Уравнения гидродинамики в простейшей форме

Кратко о гидродинамике: уравнения движения

Написав предыдущий пост, исторический и отчасти рекламный (хотя потенциальные абитуриенты такое вряд ли читают), можно перейти и к разговору «по существу». К сожалению, высокой степени популярности описания добиться вряд ли получится, но всё же постараюсь не устраивать курс сухих лекций. Хотя, от сухости избавиться не удалось, да и пост писался в результате ровно месяц.

В нынешней публикации описаны основные уравнения движения идеальной и вязкой жидкости. По возможности кратко рассмотрен их вывод и физический смысл, а также описаны несколько простейших примеров их точных решений. Увы, этими несколькими примерами доступные аналитически решения уравнений Навье-Стокса в значительной мере исчерпываются. Напомню, что Институт Клэя отнёс доказательство существования и гладкости решений к проблемам тысячелетия. Гении уровня Перельмана и выше — задача вас ждёт.

Понятие сплошной среды

В, если можно так выразиться, «традиционной» гидродинамике, сложившейся исторически, фундаментом является модель сплошной среды. Она отвлекается от молекулярной структуры вещества, и описывает среду несколькими непрерывными полевыми величинами: плотностью, скоростью (определяемой через суммарный импульс молекул в заданном элементе объёма) и давлением. Модель сплошной среды предполагает, что в любом бесконечно малом объёме содержится ещё достаточно много частиц (как принято говорить, термодинамически много — числа, близкие по порядку величины к числу Авогадро — 10 23 шт.). Таким образом, модель ограничена снизу дискретностью молекулярной структуры жидкости, что в задачах типичных пространственных масштабов совершенно несущественно.

Однако, такой подход позволяет описать не только воду в пробирке или водоёме, и оказывается куда более универсальным. Поскольку наша Вселенная на больших масштабах практически однородна, то, как ни странно, она начиная с некоторого масштаба превосходно описывается как сплошная среда, с учётом, конечно же, самогравитации.

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

Параллельно с приближением сплошной среды, в последние годы набирает обороты кинетическая модель, основанная на дискретизации среды на небольшие частицы, взаимодействующие между собой (в простейшем случае — как твердые шарики, отталкивающиеся при столкновении). Такой подход возник в первую очередь благодаря развитию вычислительной техники, однако существенно новых результатов в чистую гидродинамику не превнёс, хотя оказался крайне полезен для задач физики плазмы, которая на микроуровне не является однородной, а содержит электроны и положительно заряженные ионы. Ну и опять же для моделирования Вселенной.

Уравнение неразрывности. Закон сохранения массы

Самый элементарный закон. Пусть у нас есть какой-то совершенно произвольный, но макроскопический объём жидкости V, ограниченный поверхностью F (см. рис.). Масса жидкости внутри него определяется интегралом:

И пусть с жидкостью внутри него не происходит ничего, кроме движения. То есть, там нет химических реакций и фазовых переходов, нет трубок с насосами или чёрных дыр. Ну и всё происходит с маленькими скоростями и для малых масс вещества, потому никакой теории относительности, искривления пространства, самогравитации жидкости (она становится существенна на звёздных масштабах). И пусть сам объём и границы еего неподвижны. Тогда единственное, что может изменить массу жидкости в нашем объёме — это её перетекание через границу объёма (для определённости — пусть масса в объёме убывает):

где вектор j — поток вещества через границу. Точкой, напомним, обозначается скалярное произведение. Поскольку границы объёма, как было сказано, неподвижны, то производную по времени можно внести под интеграл. А правую часть можно преобразовать к такому же, как слева, интегралу по объёму по теореме Гаусса-Остроградского.

В итоге, в обеих частях равенства получается интеграл по одному и тому же совершенно произвольному объёму, что позволяет приравнять подинтегральные выражения и перейти к дифференциальной форме уравнения:

Здесь (и далее) использован векторный оператор Гамильтона. Образно говоря, это условный вектор, компоненты которого — операторы дифференцирования по соответствующим координатам. С его помощью можно очень кратко обозначать разного рода операции над скалярами, векторами, тензорами высших рангов и прочей математической нечистью, основные среди которых — градиент, дивергенция и ротор. Не буду останавливаться на них детально, поскольку это отвлекает от основной темы.

Наконец, поток вещества равен массе, переносимой через единичную площадку за единицу времени:

Окончательно, закон сохранения массы (называемый также уравнением неразрывности) для сплошной среды таков:

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

которое с не менее хорошей точностью работает и для газов, пока скорость течения мала по сравнению со звуковой.

Уравнение Эйлера. Закон сохранения импульса

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

Рассуждения практически те же самые, только теперь нас интересует не масса, а полный импульс жидкости в том же самом объёме V. Он равен:

При тех же самых условиях, что и выше, импульс в объёме может меняться за счёт:

  • конвективного переноса — т.е. импульс «утекает» вместе со скоростью через границу
  • давления окружающих элементов жидкости
  • просто за счёт внешних сил, например — от силы тяжести.

Соответствующие интегралы (порядок отвечает списку) дают такое соотношение:

Начнём их преобразовывать. Правда, для этого нужно воспользоваться тензорным анализом и правилами работы с индексами. Конкретнее, к первому и второму интегралам применяется теорема Гаусса-Остроградского в обобщённой форме (она работает не только для векторных полей). И если перейти к дифференциальной форме уравнения, то получится следующее:

Крестик в кружочке обозначает тензорное произведение, в данном случае — векторов.

В принципе, это уже уравнение Эйлера, однако его можно чуток упростить — ведь закон сохранения массы никто не отменял. Раскрыв здесь скобки в дифференциальных операторах и приведя затем подобные слагаемые, мы увидим, что три слагаемых благополучно собираются в уравнение неразрывности, и потому дают в сумме ноль. Итоговое уравнение оказывается таким:

Если перейти в систему отсчёта, связанную с движущейся жидкостью (не будем заострять внимание на том, как это делается), мы увидим, что уравнение Эйлера выражает второй закон Ньютона для единицы объёма среды.

Учёт вязкости. Уравнение Навье-Стокса

Идеальная жидкость, это, конечно, хорошо (правда, всё равно точно не решается), но во многих случаях учёт вязкости необходим. Даже в той же конвекции, в течении жидкости по трубам. Без вязкости вода вытекала бы из наших кранов с космическими скоростями, а малейшая неоднородность температуры в воде приводила бы к её крайне быстрому и бурному перемешиванию. Потому давайте учтём сопротивление жидкости самой себе.

Дополнить уравнение Эйлера можно различными (но эквивалентными, конечно же) путями. Воспользуемся базовой техникой тензорного анализа — индексной формой записи уравнения. И пока также отбросим внешние силы, чтобы не путались под руками / под ногами / перед глазами (нужное подчеркнуть). При таком раскладе всё, кроме производной по времени, можно собрать в виде дивергенции одного такого тензора:

По смыслу, это плотность потока импульса в жидкости. К нему и нужно добавить вязкие силы в виде ещё одного тензорного слагаемого. Поскольку они явно приводят к потере энергии (и импульса), то они должны вычитаться:

Идя обратно в уравнение с таким тензором, мы получим обобщённое уравнение движения вязкой жидкости:

Оно допускает любой закон для вязкости.

Принято считать очевидным, что сопротивление зависит от скорости движения. Вязкость же, как перенос импульса между участками жидкости с различными скоростями, зависит от градиента скорости (но не от самой скорости — тому мешает принцип относительности). Если ограничиться разложением этой зависимости до линейных слагаемых, получится вот такой жутковатый объект:

в котором величина перед производной содержит 81 коэффициент. Однако, используя ряд совершенно разумных предположений об однородности и изотропности жидкости, от 81 коэффициента можно перейти всего к двум, и в общем случае для сжимаемой среды, тензор вязких напряжений равен:

где η (эта) — сдвиговая вязкость, а ζ (зета или дзета) — объёмная вязкость. Если же среда ещё и несжимаема, то достаточно одного коэффициента сдвиговой вязкости, т.к. второе слагаемое при этом уходит. Такой закон вязкости

носит название закона Навье, а полученное при его подстановке уравнение движения — это уравнение Навье-Стокса:

Точные решения

Главной проблемой гидродинамики является отсутствие точных решений её уравнений. Как бы с этим ни боролись, но получить действительно всеобщих результатов не удаётся до сих пор, и, напомню, вопрос существования и гладкости решений уравнений Навье-Стокса входит в список Проблем тысячелетия института Клэя.

Однако, несмотря на столь грустные факты, некоторые результаты есть. Здесь будут представлены далеко не все, а лишь самые простые случаи.

Потенциальные течения

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

Более того, при отсутствии вязкости из уравнения Эйлера можно однозначно выразить и давление, что вовсе замечательно и приводит нас к полному решению задачи. Ах, если бы так было всегда… то гидродинамики, наверное, уже бы и не было как современной и актуальной отрасли.

Дополнительно можно упростить задачу предположением, что течение жидкости двумерно — скажем, всё движется в плоскости (x,y), и ни одна частица не перемещается вдоль оси z. Можно показать, что в таком случае скорость может быть также заменена скалярной функцией (на этот раз — функцией тока):

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

Простые течения вязкой жидкости

Решения для вязкой жидкости чаще всего удаётся получить, когда из уравнения Навье-Стокса благодаря свойствам симметрии задачи выпадает нелинейное слагаемое.

Сдвиговое течение Куэтта

Самая элементарная задачка. Канал с неподвижной нижней и подвижной верхней стенкой, которая движется равномерно с некоторой скоростью. На границах жидкость прилипает к ним, так что скорость жидкости равна скорости границы. Этот результат является экспериментальным фактом, и как-то даже авторы первых экспериментов не упоминаются, просто — по совокупности экспериментов.

В такой ситуации от уравнения Навье-Стокса останется уравнение вида v» = 0, и потому профиль скорости в канале окажется линейным:

Данная задача является практически базовой для теории смазки, т.к. позволяет непосредственно определить силу, которую требуется приложить к верхней стенке для её движения с конкретной скоростью.

Течение Пуазейля

Вторая по элементарности — ламинарное течение в канале. Или в трубе. Результат оказывается один — профиль скорости является параболическим:

На основе решения Пуазейля можно определить расход жидкости через сечение канала, но, правда, только при ламинарном течении и гладких стенках. С другой стороны, для турбулентного потока и шероховатых стенок точных решений нет, а есть лишь приближённые эмпирические закономерности.

Стекание слоя жидкости по наклонной плоскости

Тут — почти как в задаче Пуазейля, только верхняя граница жидкости будет свободной. Если предположить, что по ней не бегут никакие волны, и вообще сверху нет трения, то профиль скорости будет практически нижней половинкой предыдущего рисунка. Правда, если из полученной зависимости вычислить скорость течения для средней равнинной речки, она составит около 10 км/с, и вода должна самопроизвольно отправляться в космос. Наблюдаемые в природе низкие скорости течения связаны с развитой завихренностью и турбулентностью потока, которые эффективно увеличивают вязкость воды примерно в 1 млн. раз.

В следующем посте планируется рассказать о законе сохранения энергии и соответствующих ему уравнениях переноса тепла при течении жидкости.

Уравнения гидродинамики

Вы будете перенаправлены на Автор24

Гидродинамика – обширный и важный раздел гидравлики, исследующий основные законы движения идеальной жидкости и ее взаимосвязь с подвижными и неподвижными поверхностями.

Рисунок 1. Уравнение Бернулли. Автор24 — интернет-биржа студенческих работ

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

С точки зрения математической формулировки движения текучих и постоянных сред, нет разницы между газом и жидкостью. Иногда жидкостью называют несжимаемое пространство, а газом называют среду, у которой начальная плотность существенно меняется со временем.

Жидкость – такое состояние физического пространства, при котором она быстро и легко деформируется под влиянием внутренних и внешних сил.

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

Жидкость в основном характеризуется несколькими основными параметрами:

  • плотность $ρ$;
  • динамическая вязкость $μ$;
  • теплоемкость $c$;
  • теплопроводность $\lambda$.

Готовые работы на аналогичную тему

В гидродинамике исследуются математические модели течений газа и жидкости в разных условиях. Эти модели в первую очередь представляют собой концепции дифференциальных уравнений при частных и производных обстоятельствах.

Основные уравнения гидродинамики

Главными гидродинамическими уравнениями являются уравнение неразрывности или сплочённости сред, а также уравнение Бернулли.

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

$dQ_1 + dQ_2 = dQ = const$, где:

$Q_1, Q_2, Q$ – скорости начального движения частиц жидкости в различных живых сечениях струйки.

Для потока уравнение сплоченности сред будет выглядеть так:

Уравнение Бернулли считается фундаментальным законом гидродинамики. Оно устанавливает взаимосвязь между скоростью, давлением, и положение исследуемого элемента в пространстве. Посредством этого уравнения решается огромный круг сложных инженерных задач.

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

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

  • $Z$ – геометрический стабильный напор, или потенциальная удельная энергия начального положения;
  • $\frac

    $ — изометрический напор, или удельная сила давления;

  • $\frac<2>^<2><2g>$ — cкоростной напор, или кинетическая энергия.

Это уравнение также считается формулой закона сохранения и удержания энергии для движущейся жидкости. В этом заключается ее основной физический смысл.

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

Уравнения Навье-Стокса для несжимаемой жидкости

Рисунок 2. Уравнение Навье-Стокса. Автор24 — интернет-биржа студенческих работ

Плотность несжимаемой жидкости в любых ситуациях постоянна, в математической модели она выступает как изначальный заданный параметр. Уравнение неразрывности при этом имеет такой вид

Система уравнений всегда замкнута, так как содержит 4 формулы для трёх компонент скорости и давления.

В развернутой форме для компонент скоростного вектора $v = G$ в декартовой системе координат $ x, y, z$ уравнения Навье-Стокса для несжимаемой жидкости с постоянной вязкостью записывается так:

Взгляд на температуру как основную меру внутренней энергии, непосредственно связанную со скоростью движения атомов и молекул, используется в физике, а в гидродинамике был принят феноменологический метод, при котором исследуют макроскопические характеристики переноса тепла. В частности, вводится определение теплового потока между нагретыми частями сплошного пространства.

Тепловой поток $Q$ – это точное количество тепла, которое трансформируется в единицу времени $Q = \frac<Дж><сВт>$.

Плотность теплового постоянного потока $q = \frac$ – это протекающий через единицу площади поток.

Тепло в гидродинамике переносится разными механизмами:

  1. Молекулярная термодиффузия или теплопроводность. В горячей части определенной среды молекулы более подвижны, они возбуждают своим действием соседние, в результате чего повышается температура.
  2. Конвекция. Данный процесс вызван движением жидкости. Поток жидкости непосредственно переносит начальную температуру из одной части пространства в другую. Если среда нагрета равномерно, конвективного теплового поток не будет даже при наличии движения.
  3. Излучение. Это передача внутреннего тепла в виде электромагнитных волн. Например, тепло от раскаленной печки или солнечная энергия.

Закон Паскаля

В случае, когда все массовые силы отсутствуют, т.е. $g = 0$, из этих формул получается, что $p = 0$. откуда следует, что $p = const$. Это решение носит в науке название закона Паскаля, который предполагает, что в покоящейся жидкости (газе) при отсутствии массовых и постоянных сил давление постоянно.

Уравнение состояния идеального газа $p = ρRT$ , отсюда можно найти плотность газа в зависимости от начальной температуры

Это обыкновенное дифференциальное уравнение первого порядка для внутреннего давления $p = z $. Оно решается согласно принципу разделения переменных:

Закон Паскаля в гидродинамике даёт формулу изменения давления с высотой, если известно точное распределение температуры по заданной величине. В частном случае, это действует в случае, если считать атмосферу изотермической, когда $Т = const$.

Эта формула доказывает, что давление в изотермической атмосфере постепенно убывает с высотой по экспоненциальному закону.

Гидродинамика Шрёдингера на пальцах

В этой статье в качестве эксперимента я постараюсь максимально доступно рассказать, как работает новый метод расчёта гидродинамики, основанный на решении уравнения Шрёдингера.

Всем привет. В этой статье я хотел бы рассказать о новом методе расчёта гидродинамики, основанном на решении уравнения Шрёдингера вместо уравнений, типично используемых для гидродинамики вроде Навье-Стокса. Сам метод очень подробно и полно раскрыт в диссертации Albert Chern’а, названной «Fluid Dynamics with Incompressible Schrödinger Flow». Однако, статья Chern’а кому-то может показаться написанной на не самом доступном языке, поэтому своей статьёй я бы хотел в первую очередь если не объяснить в деталях, как работает этот метод, то хотя бы объяснить, какими интересными свойствами он обладает, и что же именно скрывается за его математикой. Попутно я кратко расскажу о том, как устроены классические методы расчёта гидродинаимики и как новый подход от них отличается. В качестве эксперимента я бы хотел попробовать написать статью так, чтобы каждый, кто отдалённо интересуется программированием физики, нашёл в ней что-то интересное, понятное, и новое для себя — от начинающего программиста до бывалых расчётчиков.

Вступление

Почему это важно? В первую очередь потому, что это обозначает глубинное родство квантовомеханических и гидродинамических систем. В диссертации того паренька больше сотни страниц уделено тому, как это вообще так получилось. С участием явления сверхтекучести, которая является загадочным связующим звеном, так как проявляет очевидные свойства идеальной жидкости, являющиеся исключительно следствием квантовой механики. Я же в этой статье далее я рассмотрю только некоторые из параллелей, которые из этого, простите, вытекают.

Следующее очень важное следствие эквивалентности уравнения Шрёдингера и Навье-Стокса — это что решение одного из них эквивалентно решению другого. Так вот уравнение Навье-Стокса — нелиненое, его очень неудобно и неэффективно в общем случае решать, в то время как уравнение Шрёдингера — линеное и его решать гораздо проще. Чтобы составить представление, насколько же неудобным по сей день считается уравнение Навье-Стокса, могу сообщить, что существует целый международный фонд грантов для исследователей, которым хоть какую-то базу под них подстроит, так как(цитата):

Even basic properties of the solutions to Navier–Stokes have never been proven.

Уравнение Шрёдингера же, хоть и описывает мутную квантовую физику, поддаётся решению гораздо легче и эффективнее. Короче, я могу очень долго гудеть про то, как это невероятно и офигенно, но давайте уже перейдём к чему-то более конкретному.

Решение классической гидродинамики на пальцах

Что вообще такое — уравнение гидродинамики? Что такое уравнение Навье-Стокса и как его понять? С ответом на этот вопрос гораздо лучше меня справились миллионы авторов статей по этому делу, например, классическая статья от нвидии, по которой многие начинали: https://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch38.html Однако, я попробую написать очень сжато и на пальцах, что это всё значит и что с этим обычно делают.
Уравнение Навье-Стокса описывает закон, которому обязана подчиняться скорость каждой точки пространства, заполненного равномерной несжимаемой жидкостью. Представьте себе, например, бассейн с водой, в котором выделили некоторый куб, достаточно далеко от стенок, поверхности и дна, в котором нет ничего кроме воды. Вода в нём может как угодно течь, но не может ни образовывать пузырей, ни с чем-то сталкиваться (мы для простоты опустим эти эффекты). Тогда само уравнение Навье-Стокса описывает закон, которому будет подчиняться скорость каждой точки воды в этом кубе:

\(\frac<\partial \vec u><\partial t>=-(\vec u \cdot \vec \nabla)\vec u-\frac<1><\rho>\vec \nabla p + \nu <\vec \nabla>^2 \vec u + \vec F\)
\(\vec \nabla \vec u = 0\)

прежде чем вообще смотреть на это уравнение, предлагаю сразу из него выбросить ненужное — то, что нам всё равно не пригодится для понимания и только место занимает. Это член, отвечающий за диффузию \(\nu <\vec \nabla>^2 \vec u\) (у идеальной жидкости один фиг диффузии нет), и за внешнюю силу \(\vec F\) (так как мы обойдёмся без неё). Остаётся система:
\(\frac<\partial \vec u><\partial t>=-(\vec u \cdot \vec \nabla)\vec u-\frac<1><\rho>\vec \nabla p\)
\(\vec \nabla \vec u = 0\)
Здесь перевёрнутый треугольник называется оператором Набла, который обозначает дифференцирование. Причём смысл этого оператора меняется в зависимости от того, где именно он стоит (например, перед вектором или скаляром). Я постараюсь объяснить смысл каждого его вхождения по порядку. На пальцах смысл всей формулы в следующем. \(\vec u(\vec x)\) — это значение скорости жидкости, которое определяется в каждой точке пространства \(\vec x\) . Уравнение описывает закономерности, которым обязана подчиняться эта величина, если она описывает поведение несжимаемой жидкости. Работает хоть для двумерного, хоть для трёхмерного случая. В левой части первого уравнения стоит \(\frac<\partial \vec u(\vec x)><\partial t>\) — это величина называется производной по времени и показывает, как быстро и куда(это вектор) изменится скорость в точке \(\vec x\) в момент времени \(t\) .

Нулевой вектор производной по времени обозначает, что скорость в этой точке сейчас не меняется, а, например, вектор (10, 0)[м/c 2 ] обозначает, что за следующую секунду скорость вырастет на 10[м/с] по оси x(если сама производная не поменяется).

Слагаемое вида \(-(\vec v \cdot \vec \nabla)\vec u\) называется адвекцией и говорит, что поле скоростей \(\vec u\) в этой точке утекает в направлении \(\vec v\) . В нашем же случае \(\vec u = \vec v\) , то есть поле скоростей сносит само себя. Это, кстати, и называется нелинейностью и из-за этого возникает миллион проблем при решении этого уравнения.

В принципе, смысл этого члена достаточно интуитивно можно представить именно как утекание каждой точки воды по вектору её скорости. Однако, в общем случае производная векторного поля \(\vec u\) по направлению \(\vec v\) обозначается как \((\vec v \cdot \vec \nabla)\vec u\) и обозначает, как меняется функция \(\vec u\) в направлении \(\vec v\) для этой точки.

Слагаемое же \(-\frac<1><\rho>\vec \nabla p\) является ускорением, которое получает жидкость в точке из-за градиента давления.

Оператор \(\vec \nabla\) , действующий на скалярное поле(например, давление), называется градиентом. Если слева от некоторой точки давление больше, чем справа, то градиент в ней будет направлен вправо и будет увлекать за собой жидкость в этом направлении. Например, ветер всегда дует в направлении, обратном градиенту давления воздуха (отсюда и минус). Электрический ток течёт в направлении градиента электрического потенциала:
\(E=\vec \nabla \phi\)

Второе уравнение \(\vec \nabla \vec u = 0\) называется уравнение непрерывности, а оператор \(\vec \nabla\) здесь действует на вектор и называется дивергенцией.

Оператор дифференцирования, действующий на вектор, называется дивергенцией. Дивергенция, равная нулю, говорит, что для каждого маленького кубика сколько в него жидкости втекает, столько и вытекает. А так как любой объём можно разбить на маленькие кубики, то свойство будет справедливо и для объёма любой формы. Это свойство называют также условием несжимаемости, так как если бы в какой-то объём втекало больше жидкости, чем вытекало, это бы означало, что жидкость в объёме накапливается, сжимаясь. Другой случай применения дивергенции, который может помочь её представить — это теорема Гаусса:
\(\vec \nabla E=\rho\)
Эта теорема говорит, что напряжённость электрического поля, которая «вытекает» из некоторого объёма, всегда вызвана электрическим зарядом плотности \(\rho\) внутри этого объёма. Если в объёме заряда нет, то и дивергенция нулевая.

То есть, одним предложением уравнение Навье-Стокса можно описать так: темп изменения скорости определяется течением и градиентом давления, но жидкость при этом не может сжиматься.

Классическое решения уравнения Навье-Стокса

Посмотрим теперь, как это уравнение можно программно решить. Для этого можно использовать подход, который называется расщеплением — разбить сложный физический процесс, состоящий из нескольких элементарных, на отдельные чередующиеся стадии и считать, что на каждой стадии работает только один элементарный процесс, а остальные выключены. Как ни странно, можно доказать (см. статью выше), что это — на самом деле математически обоснованная стратегия. Поэтому будем считать, что состояние скоростей для каждой точки в текущий момент времени \(\vec u(\vec x, t)\) нам известно. А для расчёта состояния в следующий момент времени \(t+dt\) , разобьём сложный процесс гидродинамической эволюции на простые стадии:
1) снесём поле скоростей по течению. это может немного «сжать» жидкость.
2) найдём такое давление, чтобы жидкость «расжалась».
Первый шаг называется адвекцией, второй — проекцией.

Адвекция

Адвекция, или течение, можно приближённо посчитать достаточно легко — если известно, что в точке \(\vec x\) , в момент времени \(t\) скорость равна \(\vec u(\vec x, t)\) , то в момент времени \(t+dt\) скорость в неё притечёт жидкость из точки \(\vec x — \vec u(x, t)\cdot dt\) .
\(\vec u^*(\vec x, t+dt)=\vec u(\vec x — \vec u(\vec x, t), t)\)
То есть мы получили промежуточное значение скорости, котороже уже утекло по течению, но теперь в нём нарушено условие непрерывности.

Это особенно удобно программируется на GPU, так как это можно посчитать, если хранить скорость в текстуре и её обновлять, просто читая тексели со смещением \(- \vec u(x, t)\cdot dt\) и используя стандартную аппаратную линейную интерполяцию.

Проекция

Проекция берёт скорость, для которой нарушено условие непрерывности \(\vec u^*\) и ищет такое давление, которое её «выправит» до нормальной скорости \(\vec u\) . Умные мужики доказали, что такое поле можно найти единственным образом и оно всегда будет градиентом некоторого скалярного поля (давления, в нашем случае):
\(\vec u(\vec x, t+dt)=\vec u^*(\vec x, t+dt) + \vec \nabla p\)
Помножим обе стороны этого равенства на оператор дифференцирования:
\(\vec \nabla \vec u(\vec x, t+dt)=\vec \nabla \vec u^*(\vec x, t+dt) + \vec \nabla^2 p\)
«ПОГОДИ-КА СУСЕЛ, ЭТО ЕЩЁ ЧТО» — можете меня спросить вы. Всё по порядку, но на самом деле отсюда для общего понимания достаточно знать, что если \(\vec u^*(\vec x)\) известно(а оно известно), то отсюда можно найти давление \(p(\vec x)\) . Если вспомнить, что в нашем случае дивергенция скорости равна нулю, то остаётся вот такое выражение.
\(\vec \nabla^2 p=-\vec \nabla u^*\)

В правой части этого равенства стоит дивергенция скорости, которую можно легко приблизительно посчитать, если известна скорость \(\vec u^*\) (а она известна). В левой части стоит штука, которая называется лапласианом давления.

Лапласиан — это оператор дифференцирования (ещё называется оператор набла) в квадрате, то есть применённый дважды к скалярному полю. Первый раз применяем оператор дифференцирования — получаем градиент. Второй раз — получаем дивергенцию. Таким образом оператор лапласа — это дивергенция градиента скалярного поля. Его можно представить как изменение потока скорости через маленький кубик, которое будет вызвано давлением в точке. Ещё одна аналогия — как поменяется дивергенция электрического поля в объёмчике, если в него положить заряд плотностью \(\rho\) (опять же, теорема Гаусса):
\(\vec nabla \vec E = \rho\) , \(\vec nabla \phi=\vec E\) => \(\vec nabla^2 \vec phi = \rho\)

Уравнение вида «лапласиан чего-то неизвестного равен чему-то известному» называется уравнением Пуассона. Что бы это ни значило, существует стандартный итеративный алгоритм, который позволяет его решить, то есть найти такое давление, чтобы его лапласиан был равен чему угодно. «Что угодно» мы знаем — это дивергенция промежуточной скорости, поэтому считаем по ней давление. Далее для давления считаем градиент и вычитаем результат из промежуточной скорости, чтобы получить окончательную скорость для следующего шага по времени:
\(\vec u=\vec u^* + \vec \nabla p\)

Шаги адвекции и проекции повторяем до посинения, рассчитывая всё дальше и дальше эволюцию поля течений по времени. Для визуализации можно, например, напускать частиц, которые могу сноситься этим полем скоростей. Результат выглядит так:

Важно понять, что в этом видосе, равно как и во всех остальных гифках этой статьи, жидкость на самом деле находится в большом кубе (границы которого не показаны), а не только там, где видны частицы. Частицы только уносятся полем скоростей, как, например, частицы дыма уносятся полем скоростей воздухе. Сами частицы никакой роли в физике процесса не играют и только позволяют относительно наглядно его продемонстрировать. Частицы обычно добавляются заранее туда, где ожидаются какие-то интересные турбулентности.

Важные особенности классического подхода

«Всё здорово, сусел, но в названии статьи ты написал что-то там про Шрёдингера! Он вообще где? Зачем нам это всё?» — спросите вы. Вопрос резонный. Но всю крутость подхода со Шрёдингером можно осознать, только если иметь представление о слабых сторонах классического солвера, который мы рассмотрели в предыдущей главе. В чём же они заключаются? Давайте об этом поговорим.

Основа любого расчётного метода — это то, как в нём представлены моделируемые данные. В рассмотренном нами подходе мы храним значение скорости для каждой точки. Например, в текселях двумерной или трёхмерной текстуры. Этот способ здорово работает, если требуется описать ровное поле течений, в котором нет особенностей (так называются завихрения и разные другие неоднородности). Неоднородностей обычно нет в вязких жидкостях вроде мёда или майонеза, поэтому метод очень здорово подходит, чтобы моделировать майонез. Но более текучие среды (например, вода, воздух и дым) отличаются тем, что в них существенную роль играют злополучные турбулентные течения — мелкие завихрения, имеющие очень сложную и нерегулярную структуру, даже образующие фракталы, которые очень неудобно описывать просто их значениями в каждой точке текстуры/массива. Если попытаться их моделировать, то все мелкие особенности быстро смазываются и расплываются, что соответствует поведению вязкой жидкости. Такое поведение называется численной вязкостью — это вязкость жидкости, которая появляется не потому что она является частью уравнения, которое мы решаем, а это паразитная вязкость, всплывающая как паразитное следствие нашего метода решения. Более того, напомню, что первое, что мы сделали, не успев взглянуть на уравнение Навье-Стокса — выкинули из него вязкость, так в ней недостатка точно не будет.

А вот избавиться от вязкости гораздо труднее, чем случайно её посчитать. Один из способов — это измельчать расчётную сетку. Чтобы таким методом получить что-то хоть как-то похожее на дым, понадобится сетка минимум 1024x1024x1024, то есть как минимум гигабайт памяти, если хранить по 1 байту на узел. А хранить захочется как минимум трёхкомпонентную скорость, то есть, скорее всего, 32 гигабайта в сумме. Это не только не разумно с точки зрения затрат памяти, это ещё и очень медленно. Другой способ — это представлять скорость не её направлением в каждой точке, а как сумму маленьких элементарных вихрей. Этот метод называется также методом дискретных вихрей. В нём вообще всё не так просто с процессами порождения новых вихрей и удаления старых, с поддержанием нужной плотности (так как вихри друг друга уносят, как частицы) и ещё миллион проблем, можете сами почитать, если интересно. Другой подход основан на том, что в реальных течениях вихри имеют свойство образовывать вращающиеся нити. Представьте медленно движущийся жгут, вокруг которого быстро вращается жидкость. Если такой жгут замыкается в кольцо, получается тороидальный вихрь, образующий знакомое кольцо дыма:

Существуют подходы, которые вместо хранения величины скорости в точках, хранят именно параметры таких жгутов. Но такие методы полагаются на топологию, поэтому в них необходимо считать, как жгуты взаимодействуют, сливаются, распадаются и вообще происходящее быстро теряет простоту и наглядность.

Однако, у классического метода есть одно очень важное положительное свойство — в нём вообще нет параметров. Обратите внимание, что для расчёта используется только скорость и больше вообще ничего — ни вязкости, ни даже плотности. В уравнении Навье-Стокса без вязкости есть плотность, но её можно «спрятать» в нормировку давления, поэтому можно сказать, что в исходном уравнении параметров также нет. Забегая вперёд, замему, что в солвере на уравнении Шрёдинге будет параметр. Загадочный.

На следующей странице мы рассмотрим, как же применить уравнения Шрёдингера, чтобы смоделировать тот же самый процесс, и какой в этом профит. Будет много картинок.


источники:

http://spravochnick.ru/fizika/mehanika_sploshnyh_sred/uravneniya_gidrodinamiki/

http://gamedev.ru/code/articles/shrodinger_hydrodynamics