Чи є там хороший, простий у використанні високоякісний вирішувач CFD з відкритим кодом?


17

Моя дипломна робота полягає у розробці чисельних методів зменшення моделі згоряння. Я керую своїми методами виключно на хімічній частині моделювання горіння, і у мене є безліч прикладів для 0-D моделювання (без потоку). Мені хотілося б запустити симуляції, які мають в них потік, бажано 2-D або 3-D моделювання.

Ці симуляції повинні бути паралельними через високі вимоги до обчислень. Мені також знадобиться щось, що може взаємодіяти з такими вирішувачами хімії, як Chemkin або Cantera, для чого я маю вихідний код. (Чемкін знаходиться у Фортран-77, а Кантера в С ++.)

В ідеальному випадку я міг би вказати схему потоку, використовуючи основні знання механіки рідини, які я маю з моєї програми градусів та деякого пакету CFD, додати хімію та запустити її. Якщо мені доведеться, я можу створити рівняння, що керують рухом рідини та хімією, для простого дослідження випадку, заснованого на експериментальній установці, що використовується колишнім співробітником, але я дуже вважаю за краще не прокручувати власний код CFD, якщо не було пакет або пакети, які зробили це надзвичайно просто. Я хотів би витратити на це 2-3 тижні; Я не знаю, чи виключає ця вимога PETSc або Trilinos. Якщо мені доведеться більше витрачати на це, я краще відкладу його до пізніше, тому що у мене є співпрацівник, який надає код CFD і для тематичних досліджень.

Хтось має досвід використання пакету CFD або написання коду CFD, і якщо так, чи можете ви порекомендувати його? Я знаю, що я хотів би використати це розщеплення струнів, але я не експерт з CFD або PDE; Я вивчаю хімію та чисельні методи скорочення моделі. Крім того, прокоментуйте, як довго вам потрібно було швидко налагодити використання рекомендованого програмного забезпечення.

@FrenchKheldar підкреслює, що я повинен зазначити характеристики проблем, які я хотів би вирішити:

  • Ідеальний (ідеальний) газ, однофазний
  • Стисливий
  • Ламінарний потік є важливим; турбулентний потік - плюс. (Я трохи знаю про турбулентність з попередньої роботи з чисельних методів у CFD, але я не працював над вирішенням CFD; я просто трохи знаю про фізику.)
  • Формулювання чисел із нульовим числом добре (я не переймаюся шоками чи надзвуковим потоком)
  • Хімія спалювання, ігнорування флюсів Сорета і Дюфура та трактування дифузії як Фіккіана
  • Геометрія може бути чимось простим

Я можу написати інтерфейсний код, хоча чим менше мені потрібно писати, тим краще; @FrenchKheldar також вказує, що Cantera має прив'язки Fortran і Python. Зараз я використовую прив'язки Cantera Python для швидкого складання прототипів, тому мені це також зручно.


У Cantera є обгортки для python та Fortran, щоб трохи розширити пошук.
Французький Хелдар

Ви хочете моделювати ламінарні потоки або турбулентні потоки? Стислий чи нестислимий? Ідеальний газ? Однофазний? Чим більше деталей ви можете нам дати, тим точніше відповідь.
Французькийгельдар

@FrenchKheldar: Дякую, що вказав на це. Я додав деякі особливості.
Джефф Оксберрі

2
Ще один коментар: якщо ви не дбаєте про акустику чи хвилі, чи не маєте ви можливості використовувати нестислимий вирішувач? Це розширить ваші можливості ...
FrenchKheldar

Дозвольте перефразувати: мене не хвилюють потрясіння. Оскільки фаза є ідеальним газом, а ідеальні гази змінюються в щільності при зміні тиску, потік повинен бути стисливим.
Джефф Оксберрі

Відповіді:


11

Я важкий користувач OpenFOAM , тому я, природно, рекомендував би його. Він має велику кількість функцій, включаючи моделі згоряння (хоча це не обов'язково саме те, що вам потрібно) і використовувався разом з ними Canterra іншими людьми. Якщо вам потрібен розв'язувач для певного рівняння, яке ще не було реалізовано, ви можете майже буквально написати свої рівняння . Я не знаю, що таке розщеплення струмів (я не працюю над горінням), але інші люди використовували це у OpenFOAM .

Існує обмежена кількість навчальних посібників. Ті, які задокументовані в посібнику користувача, не включають хімію. Ви можете ознайомитись з деякими зразками випадків розв'язувачів реакцій. Ваша найкраща ставка - перевірити OS-CFD веб-сайтом з курсу курсу «Курси» (Chalmers) (посилання на 2011 рік, але воно містить посилання на сторінки попередніх років). Студенти там часто документують вирішувачі, над якими вони працюють, наприклад, тут .

Про зусилля, щоб навчитися цьому: Якщо ви користуєтеся однією із заздалегідь визначених моделей, її використовувати досить просто, і ви повинні мати можливість отримувати результати протягом тижнів. Якщо вам доведеться опуститися нижче верхнього рівня (наприклад, додати новий вирішувач ODE), все може ускладнитися досить швидко, і ви оціните C ++.


Дякую за рекомендацію! Я чув хороші речі про OpenFOAM, і хотів би використати це в майбутньому. З вашого досвіду, чи легко було вивчити API? Чи є хороші підручники чи приклади, які використовують OpenFOAM, бажано з хімією?
Джефф Оксберрі

Я оновив свою відповідь
неділю

1
Почніть вивчати C ++ незабаром. :) Швидкість
tmaric

2

Ви можете використовувати PyClaw , паралельне розширення Clawpack (зверніть увагу: я один з основних розробників PyClaw). Він включає 2D та 3D розв'язувачі для невидимих ​​рівнянь Ейлера (стисливий потік) ідеального газу. У нього також вбудовано Стронг розщеплення, але вам потрібно додати оцінку в'язких термінів та хімії самостійно. Потрібно легко взаємодіяти з Чемкіним і Кантера, оскільки PyClaw написаний на Python і вже включає код Fortran 77 і C.

PyClaw є відносно новим (хоча базовий код Clawpack досить старий) і, таким чином, не так встановлений, як щось на зразок OpenFOAM.


Спасибі! Мені доведеться перевірити це, хоча це може зайняти деякий час, щоб дійти до нього. Коли я обійдуся його використанням, я дам вам знати, як це відбувається.
Джефф Оксберрі

2

Симулятор динаміки вогню NIST (FDS) звучить як ви хочете. FDS - це вирішувач з низьким числом потоків Mach. Густина може змінюватися, але акустичними ефектами та ударами нехтувати.

FDS досить добре задокументований, однак, зізнаюся, я не шукав підпрограм основної програми вирішення. Я також мало знаю про те, як FDS обробляє хімію згоряння.

Я пропоную завантажити останній код із сайту Google Code FDS .


0

Там багато!

OpenFOAM - найкращий, IMHO, але інші за цим посиланням ,


Будь ласка, не дайте відповідей "лише для посилань", оскільки посилання можуть розірватися.
січня

Я не хотів представляти всі варіанти, згадані там, як "мої". Технічно я міг би скопіювати і вставити весь вміст, але я не така людина. Отже, я перекладаю посилання прямо, щоб дати кредити оригіналу (
ите

1
Добре. Але, наприклад, можна сказати, що кафедра з обчислювальної динаміки рідин та механіки турбулентності в Манчестерському університеті склала список програмного забезпечення з відкритим кодом для інженерів. Якщо ви це зробите, колеги відвідувачів все ще можуть шукати в Інтернеті, якщо посилання порушено.
січня

0

Ви можете використовувати Бібліотеку розширеного моделювання з відкритим кодом, яка прискорюється апаратним забезпеченням (у випадку, якщо важливі високі показники продуктивності ). Він має як ламінарні, так і турбулентні потоки та хімічні реакції. Це також просто у використанні, дивіться вихідний код аеродинаміки паровоза в орієнтирі тунелю .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.