-
Notifications
You must be signed in to change notification settings - Fork 0
[programming] Thermophysical Models
В качестве основного термодинамического уравнения в решателях OpenFOAM может быть использовано не только уравнение удеального газа, но и другие. Задание термодинамических параметров среды и параметров теплообмена осуществляется в файле thermoPhysicalProperties🔻, который располагается в системной папке constant/ кейса.
В OpenFOAM cуществует несколько типов термофизических моделей📖:
- fluidThermo – наиболее часто встречающаяся термодинамическая модель (для которой и можно указать тип в словаре thermoPhysicalProperties🔻)
- psiThermo – модель основанная на сжимаемости (как постоянной)
- rhoThermo – модель основанная на плотности
- psiReactionThermo – модель для реагирующих смесей основанная на сжимаемости
- psiuReactionThermo – модель для реагирующих смесей основанная на сжимаемости несгоревшего газа
- rhoReactionThermo – модель для реагирующих смесей основанная на плотности
Тип термодинамической модели задаётся в createFields.H:
#include "fluidThermo.H" // такие header'ы пишут в ядре (.C-файле):
autoPtr<fluidThermo> pThermo
(
fluidThermo::New(mesh)
);
fluidThermo& thermo = pThermo();
thermo.validate(args.executable(), "h", "e");
Для fluidThermo независимыми параметрами является давление и плотность {?}, поэтому зависимые параметры должны обязательно быть объявлены ссылкой (вида <типПоля> <поле>& = thermo.<поле>();
). Пример объявления поля внутренней энергии/энтальпии [J/kg]
(определяется из полей температуры и давления):
volScalarField& e = thermo.he();
&
необходим так как это ссылка на переменную, а не полноценное её объявление – без него поле энегии не будет обновляться во времени
Потому что плотность является независимым {?} параметром, потому она и задаётся конструктором, типа:
volScalarField rho
(
IOobject
(
"rho",
runTime.timeName(),
mesh,
IOobject::READ_IF_PRESENT,
IOobject::AUTO_WRITE
),
thermo.rho()
);
Также термодинамические модули автоматически читают поле температур {?} из папки 0/ начальных условий. Для пересчёта зависимых параметров от независимых по выбранному уравнению состояния используется:
thermo.correct();
- 7.1 Thermophysical models📖
- Словарь thermoPhysicalProperties🔻
- fluidThermo🔗, Fundamental fluid thermodynamic properties
- psiThermo🔗, Basic thermodynamic properties based on compressibility
- rhoThermo🔗, Basic thermodynamic properties based on density
- heThermo🔗, Enthalpy/Internal energy for a mixture
- basicThermo🔗, Abstract base-class for fluid and solid thermodynamic properties
- 🔗 ссылка на внешний источник
- 📖 документация OpenFOAM
- 🔻 обучающий кейс OpenFOAM (в tutorials/)
- 📝 статья на OpenFOAMWiki
- 📄 статья на Википедии
- 💩 обсуждение на CFD Online
СОДЕРЖАНИЕ
Содержание только по статьям внутри Wiki (внешних ссылок в нём нет).