OpenFOAM

OpenFOAM (з англ. "Open source Field Operation And Manipulation") - це інструмент мовою C++ для розробки чисельних методів та розв'язування проблем механіки суцільного середовища, включаючи обчислювальну гідродинаміку. Код надається вільно і відкрито за умов дотримання GNU General Public License. Назву OpenFOAM було зареєстровано компанією OpenCFD Ltd[8] в 2007 року. Ліцензіата змінено на OpenFOAM Foundation Ltd у 2011 році.

OpenFOAM
OpenFOAM запускається в емуляторі термінала
Тип Обчислювальна гідродинаміка, Програмне забезпечення моделювання
Автор(и) Henry Weller
Розробники CFD Direct[1] / OpenCFD[2]
Перший випуск 10 грудня 2004 (2004-12-10)[3]
Стабільний випуск 5.0[4] і v1712 [5] (26 липня 2017[6] і 31 грудня 2017[7])
Операційна система Unix/Linux
Мова програмування C++
Ліцензія GPLv3
Вебсайт openfoam.org

 OpenFOAM у Вікісховищі

Історія

OpenFOAM (початкова назва — FOAM) було створено Генрі Веллером наприкінці 1980-х в Імперському коледжі Лондона, щоб розробити більш потужну та гнучку загальну імітаційну платформу, ніж Фортран. Це призвело до вибору C++ як мови програмування через її модульність та об'єктно-орієнтовані функції. Хруве Ясак працював у Імперському коледжі як доктор філософських наук з 1993 до 1996 року. У 2000 році Ясак об'єднав свої зусилля з Веллером у спробі комерціалізації FOAM[9] через компанію Nabla Ltd.[10] У 2004 році компанія Nabla Ltd припинила роботу, і Генрі Веллер, Кріс Грінсілдс та Маттійс Янссенс заснували OpenCFD Ltd для розробки та випуску OpenFOAM.[11] У той же час, Ясак заснував консалтингову компанію Wikki Ltd [12] і підтримував розгалуження openfoam-extend, пізніше  перейменовану на foam-extend.

8 серпня 2011 року OpenCFD було придбано Silicon Graphics International (SGI).[13] У той же час авторське право на OpenFOAM було передано OpenFOAM Foundation, новоствореній неприбутковій організації, яка керує OpenFOAM і розповсюджує її широкій публіці. 12 вересня 2012 року, ESI Group оголосила про придбання OpenCFD Ltd від SGI.[14] У 2014 Веллер і Гріншилдс покинули ESI Group і продовжують розробку та управління OpenFOAM, від імені OpenFOAM Foundation, на CFD Direct.[15] CFD Direct розробляє OpenFOAM версію з ідентифікатором програмного забезпечення (5.0), тоді як ESI group зараз самостійно розробляє версію з ідентифікатором програмного забезпечення (v1712).

Відмінні особливості

Синтаксис

Одним з відмінних рис OpenFOAM є його синтаксис для тензорних операцій та рівнянь в частинних похідних. Наприклад, рівняння[16]

представляється кодом

solve
(
     fvm::ddt(rho,U)
   + fvm::div(phi,U)
   - fvm::laplacian(mu,U)
 ==
   - fvc::grad(p)
);

Цей синтаксис, досягнутий завдяки використанню об'єктно-орієнтованого програмування та перевантаженню оператора, дозволяє користувачам створювати власні розв'язувачі з відносною легкістю. Тим не менш, налаштування коду стає більш складним із збільшенням глибини в бібліотеці OpenFOAM через відсутність документації та значне використання шаблонного метапрограмування.

Розширюваність

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

Структура OpenFOAM

OpenFOAM складається з великої базової бібліотеки, яка пропонує основні можливості коду:

  • Тензорні операції та операції із векторними полями
  • Дискретизація рівнянь в частинних похідних з використанням зручного для читання людиною синтаксису
  • Рішення лінійних систем[17]
  • Рішення звичайних диференціальних рівнянь[18]
  • Автоматичне розпаралелювання операцій високого рівня
  • Динамічна сітка[19]
  • Загальні фізичні моделі
    • Реологічні моделі[20]
    • Термодинамічні моделі[21]
    • Моделі турбулентності[22]
    • Хімічні реакції та моделі кінетики[23]
    • Лагранжеві методи відстеження частинок[24]
    • Моделі випромінювання-теплопередачі
    • Методології багато- та одноканальних фреймів

Потужності, надані бібліотекою, потім використовуються для розробки додатків. Програми розробляються за допомогою синтаксису високого рівня, представленого OpenFOAM, метою якого є відтворення умовних математичних позначень. Є дві категорії додатків:

  • Розв'язувачі: вони виконують фактичний розрахунок для вирішення конкретної проблеми механіки континууму.
  • Утиліти: вони використовуються для підготовки сітки, встановлення симуляційного випадку, обробки результатів та виконання операцій, крім вирішення розглянутої проблеми.

Кожна програма надає певні можливості: наприклад, програма blockMesh використовується для створення сітки з вхідного файлу, наданого користувачем, тоді як інша програма, що називається icoFoam, розв'язує рівняння Нев'є-Стокса для нестисливого ламінарного потоку.

Нарешті, набір сторонніх пакетів використовується для забезпечення паралельної функціональності (OpenMPI) та графічної після обробки (ParaView).

Можливості

Моделювання спалення Метану. Графічний інтерфейс користувача - ParaView.

OpenFOAM розв'язувачі включають[25]:

  • Базові CFD розв'язувачі
  • Нестримний потік з RANS та LES можливостями[26]
  • Потік стисливої рідини з RANS- та LES-можливостями[27]
  • Розв'язувачі плавучих потоків[28]
  • DNS та LES
  • Розв'язувачі багатофазових потоків[29]
  • Розв'язувачі відстеження частинок
  • Розв'язувачі проблем згоряння[30]
  • Розв'язувачі для кон'югатної теплопередачі[28]
  • Розв'язувачі молекулярної динаміки[31]
  • Розв'язувачі симулятора Монте Карло[32]
  • Розв'язувачі електромагнетизму[33]
  • Розв'язувачі твердої динаміки[34]

Крім стандартних розв'язувачів, синтаксис OpenFOAM дозволяє легко створювати власні розв'язувачі.

OpenFOAM-утиліти поділяються на:

  • Утиліти сіток
    • Генерація сітки: вони генерують обчислювальні сітки, починаючи з вхідного файлу (blockMesh) або з загальної геометрії, яка вказується як  STL-файл, який автоматично зчеплений шістнадцятковою сіткою (snappyHexMesh)
    • Перетворення сітки: вони перетворюють сітки, створені за допомогою інших інструментів, у формат OpenFOAM
    • Маніпуляція сіткою: вони виконують певні операції на сітці, такі як локалізований пошук, визначення регіонів та інші
  • Утиліти паралельної обробки: вони надають інструменти для розкладання, реконстукції та перерозподілу обчислювального корпусу для виконання паралельних обчислень
  • Передпроектні утиліти: інструменти для підготовки випадків моделювання
  • Утиліти пост-обробки: інструменти для обробки результатів випадків моделювання, включаючи плагін для інтерфейсу OpenFOAM та ParaView
  • Поверхневі утиліти
  • Термофізичні утиліти

Ліцензія

OpenFOAM вільне та відкрите програмне забезпечення, випущене за умови дотримання GNU General Public License версії 3.[35]

Переваги та недоліки

Переваги

  • Привітний синтаксис для рівнянь з частковими похідними
  • Повністю документований вихідний код[36]
  • Неструктуровані багатогранні сітки
  • Автоматичне розпаралелювання додатків, написаних за допомогою високого рівня синтаксису OpenFOAM
  • Широкий вибір додатків та моделей, готових до використання
  • Комерційна підтримка та навчання, надані розробниками
  • Без витрат на ліцензію

Недоліки

  • Розвиток громади страждає від фрагментації, що призвело до створення численних проектів.
  • Відсутність інтегрованого графічного інтерфейсу користувача
  • Посібник для програміста не надає достатньої інформації

GUI і програмні інструменти з інтегрованим OpenFOAM розв'язувачем

Дивись також

Стаття створена за ініціативи  факультету прикладної математики та інформатики Львівського Національного Університету імені Івана Франка

Посилання

  1. CFD Direct - The Architects of OpenFOAM. CFD Direct. Архів оригіналу за 27 березня 2015.
  2. The open source CFD toolbox. OpenFOAM.
  3. OpenFOAM Version 1.0. Архів оригіналу за 7 June 2017.
  4. OpenFOAM Version 5.0. Архів оригіналу за 6 October 2017.
  5. OpenCFD Release OpenFOAM® v1712.
  6. Release History - OpenFOAM. Архів оригіналу за 29 липня 2017.
  7. OpenFOAM® History.
  8. OpenCFD. OpenFOAM® - Official home of The Open Source Computational Fluid Dynamics (CFD) Toolbox. www.openfoam.com. Архів оригіналу за 22 вересня 2016.
  9. Jasak, Hrvoje (1996). Error Analysis and Estimation for the Finite Volume Method with Applications to Fluid Flows. Архів оригіналу за 25 липня 2014. Процитовано 12 червня 2018.
  10. Chen, Goong; Xiong, Qingang; Morris, Philip J.; Paterson, Eric G.; Sergeev, Alexey Sergeev,; Wang, Yi-Ching. (April 2014). OpenFOAM for Computational Fluid Dynamics. Notices of the American Mathematical Society (English) (American Mathematical Society) 61 (4): 354–363. ISSN 0002-9920. doi:10.1090/noti1095. Процитовано 1 травня 2018.
  11. Greenshields, Chris (3 квітня 2016). Release History. openfoam.org. Архів оригіналу за 29 липня 2017.
  12. Wikki Ltd - About Us.
  13. Press Releases: SGI Acquires OpenCFD Ltd., the Leader In Open Source Computational Fluid Dynamics (CFD) Software. SGI. Архів оригіналу за 6 грудня 2012. Процитовано 18 грудня 2012.
  14. Acquisition of OpenCFD Ltd., The leader in Open Source software in Computational Fluid Dynamics. ESI Group. 11 вересня 2012. Архів оригіналу за 6 December 2012. Процитовано 18 грудня 2012.
  15. OpenFOAM. CFD Direct. 25 березня 2015. Архів оригіналу за 29 березня 2015.
  16. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  17. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  18. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  19. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 27 березня 2015.
  20. OpenFOAM v5 User Guide: 7.3 Transport/rheology models. cfd.direct. 2 березня 2017. Архів оригіналу за 19 березня 2016.
  21. OpenFOAM v5 User Guide: 7.1 Thermophysical models. cfd.direct. 2 березня 2017. Архів оригіналу за 19 березня 2016.
  22. Turbulence Modelling - OpenFOAM - CFD Direct. cfd.direct. Архів оригіналу за 9 August 2016.
  23. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  24. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  25. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 21 березня 2015.
  26. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  27. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  28. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  29. Multiphase Flows - OpenFOAM - CFD Direct. cfd.direct. Архів оригіналу за 9 August 2016.
  30. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  31. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  32. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  33. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  34. OpenFOAM Features - CFD Direct. openfoam.org. Архів оригіналу за 2 April 2015.
  35. Greenshields, Chris (28 квітня 2016). Free Software Licence. openfoam.org. Архів оригіналу за 9 June 2012.
  36. OpenFOAM: Free, Open Source Software from the OpenFOAM Foundation. cpp.openfoam.org.
  37. FEATool 1.8 with OpenFOAM MATLAB CFD GUI Integration. featool.com. Процитовано 18 травня 2018.
  38. HELYX-OS GUI for OpenFOAM | ENGYS. engys.com. Процитовано 15 січня 2018.
  39. Administrator. Setup: iconCFD Process. iconcfd.com (en-gb). Архів оригіналу за 1 грудня 2017. Процитовано 15 січня 2018.
  40. simFlow CFD Software - OpenFOAM® GUI. simFlow CFD (амер.). Процитовано 15 січня 2018.
  41. Open Source Solvers Integrated with SimScale. SimScale (амер.). Процитовано 15 січня 2018.
  42. Contrib/SwiftBlock - OpenFOAMWiki. openfoamwiki.net (англ.). Процитовано 15 січня 2018.
  43. Contrib/SwiftSnap - OpenFOAMWiki. openfoamwiki.net (англ.). Процитовано 15 січня 2018.
  44. Visual-CFD for OpenFOAM®. openfoam.com (англ.). Процитовано 5 травня 2018.
  45. Open Source Engineering Software - silentdynamics. silentdynamics (амер.). Процитовано 7 червня 2018.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.