Author: Schepetilnikov E.Yu., e-mail: rainyday@mail.ru Copyright (c) 2022, 2023, 2024, 2025.
This file is part of h2o97 library.
h2o97 library is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
h2o97 library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License along with h2o97 library. If not, see https://www.gnu.org/licenses/.
Steam-Water Properties based on: http://www.iapws.org/relguide/IF97-Rev.pdf/ “Revised Release on the IAPWS Industrial Formulation 1997 for the Thermodynamic Properties of Water and Steam (The revision only relates to the extension of region 5 to 50 MPa)”
h2o97 - пакет подпрограмм на fortran (2008) для расчёта кластера термодинамических свойств воды и водяного пара на основе формуляций IAPWS-97. Пакет является Библиотекой №1 - основой для генерации таблиц ТДС лёгкой воды с целью дальнейшего использования подпрограммами Библиотеки №2 (swtop): обратной и прямой интерполяции узловых значений сеточных функций с давлением и температурой в качестве базовых аргументов (подробнее см. Методика разработки компьютерных таблиц свойств воды и водяного пара).
Кластер ТДС (tdpcluster.f08) состоит из 15 величин, все расчитываются (выводятся как “значение” функции) “одновременно”:
| Обозначение | Cвойство | Единица измерения |
|---|---|---|
| p | давление | Па |
| T | абсолютная температура | K |
| Ts | абсолютная температура насыщения при давлении p | K |
| qual | относительная массовая энтальпия | - |
| v | удельный объём | м3/кг |
| u | удельная внутренная энергия | Дж/кг |
| h | удельная энтальпия | Дж/кг |
| s | удельная энтропия | Дж/кг |
| a | скорость звука | м/c |
| cp | удельная изобарная теплоёмкость | Дж/(кг*К) |
| cv | удельная изохорная теплоёмкость | Дж/(кг*К) |
| β | коэффициент изобарного теплового расширения | 1/К |
| κ | коэффициент изотермической сжимаемости | 1/Па |
| μ | динамическая вязкость | Па*с |
| λ | теплопроводность | Вт/(м*К) |
Программа h2o97check (h2o97check.f08) проверяет корректность реализации функций IAPWS-97 сравнением с контрольными точками разных областей фазового состояния воды и пара.
Программа h2o97ia (h2o97ia.f08) расчитывает и выводит значения кластера ТДС для заданных аргументов:
- в интерактивном режиме;
- в режиме счёта для одиночного набора данных, введённого в командной строке;
- в “пакетном” (для нескольких наборов данных из текстового файла) режиме.
Для всех режимов пока реализован расчёт ТДС только в зависимости от пар аргументов:
- (p,T (,x));
- (ps,x);
- (Ts,x).
Подпрограммы-“драйверы”:
- props_ofps() (props_ofxy.f08) - рассчитывает значения кластера ТДС для состояния насыщения при введённом давлении;
- props_ofpT() (props_ofxy.f08) - рассчитывает значения кластера ТДС для однофазной среды при введённых давлении и температуре (и начальном приближении значения массового паросодержания/относительной энтальпии).
Ограничение точности: вблизи критической точки для теплопроводности и вязкости требуется реализация поправочных коэффициентов (пока приняты за единицу).
Возможное TODO (для интерактивного режима расчёта/h2o97ia):
- расширение списка входных аргументов (в порядке/при необходимости).
- “повышение удобства” (интерфейса) использования программы.
- расширение диапазона аргументов (p,T) на область (50-100 МПа, 1073-2000 К).
Предусмотрено добавление к пакету проекта процедур (bash) автоматической генерации элементарного отчёта (latex/pdf) по результатам расчёта таблиц ТДС, включая графики (gnuplot).
Директории проекта:
- source - файлы с исходными текстами подпрограмм (директория сборки проекта, место нахождения объектных файлов и библиотеки после сборки)
- run - расположение программ после сборки проекта
- report - небольшой отчёт с графиками ТДС, расчитанных с помощью подпрограмм библиотеки h2o97
Для сборки/очистки проекта в командной строке (терминале) выполнить:
- make - сборка библиотеки h2o97lib.a, программы проверки h2o97check, программы расчёта ТДС h2o97ia
- make install - установка программ h2o97check, h2o97ia в директории выполнения (run)
- make clean - удаление объектных файлов, файлов модулей, библиотеки и программ
Текст программы генерации таблиц ТДС для заданных узлов (p,T) сеточных функций входит в состав библиотеки swtop (Библиотека №2).
TODO:
DONE:
- добавлен расчёт ЧП (δ/δ T|p=const, δ/δ p|T=const) основных ТДС (v,u,h,s) для всех регионов согласно
IAPWS AN3-07(2018); - добавлена функция вычисления производной dps/dT согласно уравнению Клапейрона-Клаузиуса (для региона 4);
- совместный расчёт функций Гиббса-Гельмгольца и всего кластера ТДС в одной “процедуре” (props_ofpT(…,GH=.true.)) для регионов 1 и 2 уменьшил время вычислений примерно в 2 раза, для региона 3 - в 1,1 раза, для региона 5 - в 1,5 раза;
- в базовый тип Region (ooregion.f08) введена обобщенная функция расчёта ЧП основных ТДС;
- добавлен расчёт ЧП численно для всех регионов/фазовых состояний;
- добавлена программa сравнения расчёта ЧП аналитически и численно.