L
> Со скрипом, но вполне понял первую часть про решение Навье-Стокса и думаю закодить на днях его решение для апгрейда сознания )
если ты при желании разобрался, то это успех
> Во второй части всё для меня сложнее. Если я какой-то шаг не понял, то дальше дело не пойдёт у меня. Там ты пишешь:
вторую часть я писал с расчётом скорее дать обзор, что оно есть, идея вот в этом, результаты вот такие. у меня не получится объяснить с нуля лучше, чем в оригинале.
L
> Я писал/использовал fft и в общем понимаю его суть и применение. Но, видимо,
> плохо понимаю. Мне на данном этапе вообще не ясно как ты "решаешь через fft". В
> чём суть "решения через fft"? Я конечно плохо сформулировал вопрос, но пока не
> знаю как лучше )
идея в том, что сначала искомая функция представляется как сумма гармоник, где каждая гармоника — это синус (на самом деле — комплексная экспонента, но суть та же). далее так как уравнение шрёдингера линейное, то решение для суммы равно сумме решений для каждой гармоники. а так как одна гармоника — это просто синус, то для него уравнение шрёдингера можно решить точно, так как синус можно дифференцировать аналитически.. поэтому искомая функция через fft переводится в сумму синусов, далее уравнение решается для каждого синуса отдельно и далее все решения обратно складываются, чтобы получить результат.
Suslik
> то это успех
Слабоват успех ) Решается первая часть более-менее тривиально и было бы стрёмно не понять, как её решать.
Suslik
> у меня не получится объяснить с нуля лучше, чем в оригинале
Всё хорошо получается. Единственное что я про решение через fft протупил. Спасибо за объяснение.
Отпишусь, чтобы сказать: интересная статья. Я думаю, я её понял (правда, я и не рандомный дата саентист "стакай слои пока не заработает").
Конечно, описывать математические принципы кодом на дельфях - это такой же бред, как dead code elimination на Коболе. Математическая запись - это не более, чём очередной язык программирования; а если программист не способен изучить более одного языка - это очень грустный программист.
slepov бяка, фу таким быть.
Delfigamer
> бяка, фу таким быть.
>
что бе? )) прости что я не разделяю с тобой экстаза от описания лапласиана в этой горе статейке.
slepov
А статья и не про лапласиан.
In mathematics, the Laplace operator or Laplacian is a differential operator given by the divergence of the gradient of a function on Euclidean space. It is usually denoted by the symbols ∇·∇, ∇² (where ∇ is the nabla operator) or Δ.
Delfigamer
> А статья и не про лапласиан.
еще один.. приятного чтива
Если что, здесь можно найти исходники от оригинального тезиса http://page.math.tu-berlin.de/~chern/projects/SchrodingersSmoke/
Исходно Суслик в этой работе решал вовсе не уравнение Навье-Стокса, а его частный случай - уравнение Эйлера. Это сильно упрощает проблему.
Но само по себе гидродинамика описанная уравнением Шредингера - тема конечно интересная и казалось бы фантастическая, однако на самом деле уравнение Шредингера, его мнимая компонента, может на самом деле описывать уравнение сплошности гидродинамики. А если решено уравнение сплошности (то есть, найдено поле скоростей), то получить из него поле давление можно простым интегрированием, в данном случае уравнения Пуассона.
По поводу последнего уравнения Пуассона.
Суслик в статье для краткости упомянул о неком солвере, народ стал тут сразу домогаться, что это за солвер. Думаю, что Суслик предполагал использование для решения уравнения Пуассона преобразование Фурье, что позволяет построить с помощью fft эффективный код. Таким образом, в обоих случаях, как для решения уравнение сплошности, так и для поиска поля давления Суслик мог использовать fft.
О. Федор
копия из сообщения в личку
по поводу соотношения уравнения эйлера и навье-стокса — да, но в геймдеве принято уравнение навье-стокса называть уравнением эйлера, потому что вязкость, которая есть в навье-стоксе, обычно сама вылазит при попытках решения уравнения эйлера из-за паразитной диссипативности разностных схем. но вообще, конечно, да, вязкость в статье никак не рассматривается.
по поводу уравнения непрерывности в уравнении шрёдингера — да, уже обсуждали, что это в каком-то виде соответствует уравнению непрерывности потока плотности вероятности для одной частицы или что-то такое (я не понимаю, откуда именно оно вылазит, но так говорят умные люди).
fft для решения пуассона здорово работает только на тривиальных границах — либо для бокса, либо для периодических.
солвер, который я упомянул для навье-стокса — самый простой в мире конечно-разностный, канонический даже без fft. по которому нвидия ещё давным-давно статью писала: https://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch38.html . я его приводил для сравнения, потому что предполагалось, что его каждый читающий уже реализовывал и с ним будет сравниваться. я не думал, что он столько вопросов породит.
>>fft для решения пуассона здорово работает только на тривиальных границах — либо для бокса, либо для периодических.
Я раньше тоже так думал, оказалось что это не совсем так. на самом деле краевые условия можно определять непосредственно внутри бокса, как условия на некоторых узлах (скажем так, на самом деле я это делаю несколько сложнее). Здесь просто можно использовать свойства линейных дифференциальных уравнений, в том числе и в частных производных.
А кроме того, у тебя в решении, из тех по крайней мере, которые я видел, не использовались краевые условия, поэтому упомянутые ограничения не существенны. Впрочем, тебе виднее.
Тема в архиве.