Introduction to OpenFOAM Programming, A Walk Through reactingFOAM
Глава 1: Почему reactingFOAM ?
reactingFOAM это один из самых простых механических решателей OpenFOAM. Понимание того, как этот конкретный код работает построчно, даёт представление не только об этом конкретном решателе, но и об общих методах программирования, используемых в OpenFOAM. Кроме того, это также даёт представление, как о расчётах потока, так и о расчётах реакции в OpenFOAM.
Глава 2: Что делают начальные заголовочные файлы?
Начальная часть reactingFOAM, (конечно после комментариев к лицензии GNU) гласит:
#include "fvCFD.H" #include "hCombustionThermo.H" #include "compressible/turbulenceModel/turbulenceModel.H" #include "chemistryModel.H" #include "chemistrySolver.H" #include "multivariateScheme.H"
Теперь мы посмотрим, что делает каждый из заголовочных файлов поочереди.
Раздел 1:
"fvCFD.H"
Этот файл содержит самые фундаментальные инструменты для выполнения любого расчёта конечного объёма. Этот файл на самом деле просто включает в себя много других файлов, каждый из которых представляет собой строительный блок здания метода конечных объёмов. Этот файл читает:
#include "parRun.H"
#include "Time.H" #include "fvMesh.H" #include "fvc.H" #include "fvMatrices.H" #include "fvm.H" #include "linear.H" #include "uniformDimensionedFields.H" #include "calculatedFvPatchFields.H" #include "fixedValueFvPatchFields.H" #include "adjustPhi.H" #include "findRefCell.H" #include "constants.H"
#include "OSspecific.H" #include "argList.H" #include "timeSelector.H"
#ifndef namespaceFoam #define namespaceFoam using namespace Foam; #endif
Небольшой список каждого из вышеперечисленных заголовочных файлов выглядит следующим образом.
- parRun.H
- Предоставляет процедуры для инициализации параллельного запуска и его завершения. Его пример представлен в файле arglist.H Это управляет информацией о времени в ходе моделирования.
- Time.H
- Это управляет информацией о времени в ходе моделирования.
- fvMesh.H
- Содержит всю топологическую и геометрическую информацию, связанную с сеткой для дискретизации конечного объёма.
- fvc.H
- (Исчисление конечного объёма) Содержит другие включённые файлы, которые предоставляют следующие процедуры для выполнения таких операций, как интерполяция, интегрирование и поиск производных скалярных векторов и тензоров. С fvc все операции являются явными так же, как и с fvm, все операции являются неявными.
- fvMatrices.H
- fvm.H
- linear.H
- uniformDimensionedFields.H
- calculatedFvPatchFields.H
- Обеспечивает граничные условия типа Neumann.
- fixedValueFvPatchFields.H
- Обеспечивает граничное условие типа Dirichlet.
- adjustPhi.H
- findRefCell_H
- Устанавливает ячейку для опорного давления.
- constants.H
- Предоставляет математические константы, например $ \pi,\, e $
- OSspecific.H
- Предоставляет такие функци, как запись файлов, удаление и т.п.
- argList.H
- timeSelector.H
Ссылка на оригинал - http://openfoamwiki.net/index.php/OpenFOAM_guide/Introduction_to_OpenFOAM_Programming,_A_Walk_Through_reactingFOAM