Моя диссертация посвящена разработке численных методов для моделирования снижения горения. Я использую свои методы исключительно в химической модели моделирования горения, и у меня есть много примеров для моделирования 0-D (без потока). Я хотел бы запустить симуляции, в которых есть потоки, предпочтительно 2-мерные или 3-мерные.
Эти моделирования должны быть параллельными из-за высоких вычислительных требований. Мне также нужно что-то, что может взаимодействовать с химическими решателями, такими как Chemkin или Cantera, для которых у меня есть исходный код. (Чемкин в Фортране 77, а Кантера в С ++.)
В идеальном случае я мог бы указать схему потока, используя базовые знания о механике жидкости, которые я получил из моей программы подготовки и некоторого пакета CFD, добавить химию и запустить ее. Если мне нужно, я могу установить уравнения, управляющие движением жидкости и химией, для простого тематического исследования, основанного на экспериментальной установке, используемой бывшим сотрудником, но я бы очень предпочел не свернуть свой собственный код CFD, если не было пакет или пакеты, которые сделали это чрезвычайно легко сделать это. Я был бы готов потратить 2-3 недели на это; Я не знаю, исключает ли это требование PETSc или Trilinos. Если мне придется потратить на это больше времени, я бы предпочел отложить это на потом, потому что у меня есть сотрудник, который также предоставляет код CFD для тематических исследований.
У кого-нибудь есть опыт использования пакета CFD или написания кода CFD, и если да, можете ли вы порекомендовать его? Я знаю, что хотел бы использовать Strang-расщепление, но я не эксперт по CFD или PDE; Я изучаю химию и численные методы для сокращения модели. Также, пожалуйста, прокомментируйте, сколько времени у вас ушло на то, чтобы освоить программное обеспечение, которое вы рекомендуете.
@FrenchKheldar отмечает, что я должен упомянуть характеристики проблем, которые я хотел бы решить:
- Идеальный (идеальный) газ, однофазный
- сжимающийся
- Ламинарный поток имеет важное значение; турбулентный поток это плюс. (Я немного знаю о турбулентности из предыдущей работы по численным методам в CFD, но я не работал над решателями CFD; я просто немного разбираюсь в физике.)
- С формулировкой нулевого числа Маха все в порядке (меня не волнуют удары или сверхзвуковой поток)
- Химия горения, игнорируя потоки Соре и Дюфура и рассматривая диффузию как Фикиана
- Геометрия может быть чем-то простым
Я могу написать интерфейсный код, хотя чем меньше мне придется писать, тем лучше; @FrenchKheldar также указывает, что Cantera имеет привязки Fortran и Python. Я использую привязки Cantera Python прямо сейчас для быстрого создания прототипов, так что я тоже доволен ими.
источник
Ответы:
Я большой пользователь OpenFOAM , поэтому, естественно, я бы порекомендовал его. Он имеет большое количество функций, включая модели сгорания (хотя не обязательно именно то, что вам нужно) и использовался вместе с Canterra другими людьми. Если вам нужен решатель для конкретного уравнения, которое еще не было реализовано, вы можете буквально написать свои уравнения . Я не знаю, что такое расщепление ударов (я сам не работаю над сжиганием), но другие люди использовали его в OpenFOAM .
Существует ограниченное количество учебников. Те, что описаны в руководстве пользователя, не включают химию. Есть несколько примеров вариантов решения проблем, которые вы можете посмотреть. Лучше всего зайти на сайт выпускного курса OS-CFD на Chalmers (ссылка на 2011 год, но содержит ссылку на страницы предыдущих лет). Там студенты часто документируют решателей, над которыми они работают, например, здесь .
Об усилиях по его изучению: если вы используете одну из заранее определенных моделей, ее довольно просто использовать, и вы сможете получить результаты в течение нескольких недель. Если вам придется опуститься ниже верхнего уровня (например, чтобы добавить новый решатель ODE), все может стать довольно сложным, и вы по достоинству оцените C ++.
источник
Вы можете использовать PyClaw , параллельное расширение Clawpack (примечание: я один из главных разработчиков PyClaw). Он включает 2D и 3D решатели для невязких уравнений Эйлера (сжимаемый поток) идеального газа. Он также имеет встроенное разбиение по Strang, но вам нужно добавить оценку вязких терминов и химии самостоятельно. Должен быть простой интерфейс с Chemkin и Cantera, так как PyClaw написан на Python и уже включает в себя оба кода: Fortran 77 и C.
PyClaw является относительно новым (хотя базовый код Clawpack довольно стар) и, следовательно, не так устоял, как OpenFOAM.
источник
NIST Fire Dynamics Simulator (FDS) звучит так, как вы хотите. FDS - это решатель потока с малым числом Маха. Плотность может меняться, но акустические эффекты и удары игнорируются.
FDS довольно хорошо документирован, хотя, я признаю, я не смотрел в подпрограммах решателя основного потока. Я также не знаю много о том, как FDS управляет химией горения.
Я предлагаю загрузить последнюю версию кода с сайта Google Code FDS .
источник
Там много всего!
OpenFOAM - лучший, IMHO, но другие по этой ссылке ,
источник
Вы можете использовать расширенную библиотеку расширенного моделирования с открытым исходным кодом с аппаратным ускорением (в случае, когда важны высокопроизводительные вычисления ). Он имеет как ламинарные и турбулентные потоки, так и химические реакции. Он также прост в использовании, см. Исходный код аэродинамики локомотива в тесте туннеля .
источник