Будет ли когда-нибудь вычислительная гидродинамика (CFD) правильной на 100%?

Результаты CFD никогда не совпадают с реальными цифрами, особенно в турбулентных трехмерных сложных потоках...

Что мешает CFD быть идеальным, и будет ли он когда-либо на 100% правильным? Если проблема тысячелетия Навье-Стокса будет решена, станет ли CFD идеальным, или турбулентный поток просто настолько сложен, что никакая математика не может его правильно описать?

Re «никогда не совпадать с реальными числами» : каково отклонение (в%)? Какое отклонение можно допустить?
Может ли реальность быть на 100% правильной? Вселенная тоже имеет гранулярность.
@PcMan Таким образом, экспоненциальная проблема на самом деле решается за линейное время, потому что мощность компьютера также растет экспоненциально. 200 лет, плюс-минус несколько. По-видимому, мы должны сначала сосредоточиться на решении проблемы старения. Как поживает Курцвейл, кстати? Все еще пьете по 100 таблеток в день ?
Пока не существует полной модели физики, поэтому ни одна модель чего-либо не может быть на 100% правильной, аналитической или численной.
@Peter - Восстановите Монику: Но есть фундаментальные ограничения для роста вычислительной мощности. Например, трудно сделать дорожки схемы шириной менее одного атома или повысить частоту процессора до терагерцового диапазона...
С точки зрения вычислимости: есть проблемы ньютоновской физики, которые неразрешимы из-за проблем с остановкой. Я не знаю, существует ли такая кодировка для CFD. (По существу: есть системы, которые расходятся до бесконечности за конечное время. Закодируйте машину Тьюринга в механику одной такой системы, и вы можете получить проблему, когда для вычисления того, что происходит за конечное время, требуется знать, остановится ли эта машина Тьюринга... ) (Я хотел бы дать полный ответ, но не могу из-за отсутствия репутации на этом дочернем сайте. Этот сайт действительно не заботится о междисциплинарном сотрудничестве...)
@PcMan: На самом деле скорость обработки одного ядра / потока практически не изменилась: preshing.com/20120208/… Повышение производительности вы видите за счет размещения нескольких ядер в ЦП и параллелизма на уровне инструкций в ядре. Но несколько ядер помогают только в том случае, если вы можете распараллелить задачу, а существует очень много проблем, которые по своей сути являются последовательными. И вы также попадаете в точку, где узким местом являются не флопы, а связь между ядрами. (См., например, программирование графического процессора.)
@jamesqf Знаете что? ты победил. Я отказываюсь вступать в спор о фактах с кем-то, кто отрицает факты. прочитайте о законе Мура, посмотрите, сможете ли вы найти отрывок, в котором говорится об «одноядерной обработке». Я думаю, вы читаете другой закон Мура, чем я.
@jamesqf Эта статья древняя. IPC продолжает значительно улучшаться . Производительность однопоточного процессора 5800X вдвое выше, чем у i7 970 десятилетней давности.
@PcMan: фактический аргумент? Ваш «факт» больше похож на принятие желаемого за действительное, ожидание того, что, поскольку определенная технология показала повышение производительности в прошлом, она будет продолжать делать это бесконечно — что-то, что не подтверждается ни опытом, ни физикой.

Ответы (8)

Это широкий вопрос, следовательно, широкий ответ 😃

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

CFD будет становиться все более и более точным, но 100% точность никогда не будет достигнута, по крайней мере, если мы предположим, что это будет означать 100% точное предсказание траектории на молекулярном/атомном уровне.

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

«Нельзя войти в одну и ту же реку дважды»

Так что, если бросить тот же камень в стакан с спокойной водой с той же высоты, движение воды на микроскопическом уровне никогда не будет прежним?
Точно. Если бы и только если бы вы могли сделать все переменные одинаковыми, динамика жидкости события могла бы быть такой же. Но даже если вы сделаете все так же, Вселенной не будет. В самом маленьком масштабе у вас будут виртуальные частицы, которые случайным образом мешают эксперименту, незначительно изменяя результаты.
@JurgenM Каким бы спокойным это ни выглядело, любые два водоема с жидкой водой никогда не бывают одинаковыми. Каждая из его молекул находится в разном энергетическом состоянии, движется и подпрыгивает под разным углом и скоростью. Броуновское движение порождает бесконечное количество непредсказуемых конвективных потоков, и это даже в том случае, если оба этих тела имеют одинаковую общую температуру. Затем, когда вы учитываете все взаимодействия пограничного слоя, все становится еще более безумным...
@Jurgen M: Если предположить, что стакан воды содержит одну чашку США, в этом стакане (согласно Google) 8,3569904e + 24 молекулы. Даже если бы вы могли каким-то образом заставить каждую из этих молекул двигаться в ТОЧНО с одним и тем же случайным направлением и скоростью в обоих стаканах (чего вы не можете: см. принцип неопределенности Гейзенберга), в каждой молекуле есть 3 атома, вибрирующих и вращающихся в разных направлениях. режимы, некоторые из которых только приблизительно реальны (из-за квантовости :-)), и наш друг Хаос (также известный как чувствительная зависимость от начальных условий) будут усиливать даже малейшую разницу.
что касается точности - были бы некоторые варианты использования. Кое-что, что я мог бы придумать прямо сейчас - отрыв пограничного слоя и отрывные потоки над аэродинамическими профилями (ведущие к срыву), особенно для определения срыва и запаса в осевых компрессорах. Насколько мне известно, текущий CFD на самом деле не подходит для этой задачи.
Я почти уверен, что сваливание аэродинамических профилей можно надежно смоделировать с помощью CFD. Действия потока после отрыва можно смоделировать на удовлетворительном уровне.

100% верно, нет. Это потому, что CFD (и многие другие компьютерные приложения) работают с числовыми приближениями. Точное решение* либо неизвестно, либо точное решение не вычислимо. Таким образом, приложение использует числовые приближения, как правило, на сетке или сетке. Чтобы получить лучшее приближение, вы либо уменьшаете сетку, либо используете меньший временной шаг (оба из этих способов увеличивают необходимое время вычислений). Но вы не получите 100% точности, если не используете бесконечно малый интервал сетки и временной шаг**, что нецелесообразно.

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

Кроме того, когда вы попадаете в турбулентные режимы течения, вы сталкиваетесь с проблемой чувствительной зависимости от начальных условий, также известной как «хаос» или «эффект бабочки». быть совершенно другим: https://en.wikipedia.org/wiki/Chaos_theory

*Например, траектории космических кораблей. Не существует общего решения проблемы трех тел — как 3 или более объектов движутся под действием гравитации. Но численных приближений достаточно, чтобы посадить космический корабль в заданном месте на Марсе или сыграть в гравитационный бассейн между лунами Юпитера и Сатурна.

**Или длина и время Планка, если вы принимаете теорию о том, что пространство-время квантуется: https://en.wikipedia.org/wiki/Planck_units . При нынешнем состоянии компьютерных технологий большой практической разницы нет :-)

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

* Но кто знает? Возможно, конструктивное доказательство действительно поможет в решении уравнений.

Во-вторых, при допущении уникальности и существования было показано, что прямое численное моделирование (DNS) NS очень хорошо соответствует экспериментам, где сохраняется континуум. DNS может даже заменить эксперименты во многих случаях, если вы действительно сможете получить решение в разумные сроки и с имеющимися вычислительными возможностями. Проблема заключается в полном разрешении масштаба длины турбулентности, что потребовало бы размера сетки, который масштабируется с числом Рейнольдса, чтобы р е 3 ; размер шага по времени также уменьшается как степень числа Рейнольдса. Для любой разумной инженерной задачи память/процессор/время, необходимые для решения, непомерно высоки для практических целей.

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

Если для вас это звучит как вопрос о курице и яйце, вы правы! Именно поэтому CFD (с моделированием турбулентности) до сих пор требует экспериментальной проверки и никогда не будет верным на 100%, как вы выразились.

По причинам, упомянутым выше, ответ определенно «Нет», но здесь следует помнить один момент: высококлассный CFD не обязательно должен быть идеальным, чтобы быть чрезвычайно полезным. Представьте, что кто-то хочет получить 7-значную точность прогноза температуры в CFD. Это было бы дурацкой затеей, потому что в инженерной практике вы не можете измерить температуру набегающего потока с такой точностью. (Говорят, что трехзначной точности было достаточно для разработки SR-71.)

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

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

Даже если вы точно решаете решения Навье-Стокса (как вы можете сделать в некоторых ламинарных потоках), вы решаете только уравнения модели. Реальные жидкости состоят из молекул, а не сплошной среды. Вы можете выполнить решение молекулярной динамики (см. https://mattermodeling.stackexchange.com/questions/tagged/молекулярно-динамика ), но вы снова будете решать некоторые модельные уравнения - с некоторыми потенциалами между молекулами и атомами. Настоящие молекулы состоят из ядер и электронов. Электроны взаимодействуют сложным образом, и появятся квантовые эффекты. Им свойственна случайность. Опять же, существуют модели для многих квантовых систем частиц — такие как DFT или HT, но есть приближения, присущие их формулировкам.

Что менее важно, ядра, очевидно, также являются соединениями нуклонов, которые взаимодействуют какими-то сложными потенциалами через пионы, а точнее, снова состоят из кварков).

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

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

Существуют различные методы CFD, каждый из которых требует компромисса между вычислительной сложностью и точностью. Очевидно, что прямое численное моделирование , наиболее интенсивное в вычислительном отношении, является единственным методом, который можно рассмотреть для вашего вопроса, и даже в DNS мелкомасштабная турбулентность обычно параметризуется. DNS уже почти недоступна, но выход за пределы 95% потребует экспоненциально еще больше ресурсов для каждого процента. На самом деле, я бы интуитивно сказал, что вам понадобится компьютер с вычислительной мощностью, соответствующей количеству молекул, которые по определению — даже если они вообще могут существовать — должны быть как минимум в несколько раз больше, чем моделируемая среда. Затем, конечно, есть Премия Тысячелетия — если такого решения нет, никакая вычислительная мощность не поможет вам в этом.

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

В DNS мелкомасштабная турбулентность не может быть параметризована, это и есть само определение DNS. Используемые предположения представляют собой уравнения Навье-Стокса и, следовательно, континуум, и обычно предполагается ньютоновская жидкость. Нет смысла говорить о количестве молекул в DNS. Если вам нужны молекулы, говорите о молекулярной динамике, а не о DNS.

Никакое моделирование в любой области не может быть на 100% правильным. Просто потому, что компьютер дискретный. А небольшие ошибки экспоненциально расходятся со временем (поиск показателя Ляпунова).

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