Поток жидкости, теплообмен и Python - PullRequest
5 голосов
/ 22 января 2011

полное редактирование:

Я дам больше информации обо всей проблеме. Проект находится на ранней стадии, и мой вопрос на самом деле только о узкой части вещи.

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

сделано:
Не много, дело в ранней стадии. У меня есть 2d прямоугольный домен и круговое препятствие. Сетка становится более тонкой на границе между массой и препятствием, потому что именно там происходят интересные вещи. В настоящее время я рассматриваю только воздушный поток, отсутствие конвекции или теплообмена. Я использую коллекцию программного обеспечения FEniCS для решения уравнения Навье-Стокса. Fenics поставляется с примером для решателя N-S с использованием метода проекции Хорина, я адаптировал этот пример к моим настройкам. Я моделирую твердое тело как область с граничным условием скольжения (то есть я устанавливаю скорость воздушного потока равной нулю). Решатель все еще решает уравнение N-S в этой области, в частности, давление внутри препятствия изменяется со временем. Вероятно, лучше избегать этого и ограничивать решатель N-S в объеме. Но сейчас я не думаю, что это сильно влияет на скорость.

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

мой вопрос:
Это сводится к одному вопросу:

Что такое быстрый алгоритм или метод для решения уравнения Навье-Стокса в Python?

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

1 Ответ

6 голосов
/ 22 января 2011

Python на самом деле был бы хорошим выбором, если бы вы писали все это с нуля. Но вам понадобится много фона, чтобы сделать это с нуля.

Связанное решение - сложная проблема.

Мне было указано, что вы используете пакет - FEniCS (спасибо, Свен). Мой оригинальный ответ нуждается в некоторой поправке. Я начну с нескольких вопросов о физике, а затем перейду к пакету.

Несжимаемое Навье-Стокса применяется к газообразному воздуху, если число Маха для воздуха при этой температуре меньше 0,1. Так ли это для вашей проблемы? Вероятно, это правда, но я подумал, что спросить.

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

Это постоянный поток или переходный процесс? (устойчивее легче) Является ли поток ламинарным или турбулентным? (ламинар легче)

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

Мне кажется, что FEniCS использует конечные элементы, но я не вижу в документах ничего, что говорило бы мне о том, как вы должны соединить уравнения импульса и энергии.

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

...