地熱流体物性計算ライブラリ geofluidprop

地熱流体物性計算ライブラリ

View the Project on GitHub

地熱流体物性計算ライブラリ geofluidprop

CMake DOI

概要

geofluidpropは,主に地熱系を対象にした各種解析において必要になる流体の相状態や物性値を計算するためのC言語ライブラリです。現時点での本ライブラリの特徴は以下の通りです。

なお,本ライブラリの開発は,研究活動の一貫として実施しており,今後も品質改良,機能拡張を行う予定です。バグの発見や機能追加の要望等がありましたら,GitHubのIssuesに投稿して頂けますと幸いです。

コンパイル方法

本ライブラリのコンパイル済みバイナリファイルをリリースページにて提供予定ですが,環境によっては動作しない,または利用可能な機能が限定される等の問題が生じる場合があります。そのため,必要に応じて,各利用者の環境で本ライブラリをソースコードからコンパイルしてください。

本ライブラリをコンパイルするためには最低限,以下のツールが必要になりますので,事前インストールをお願いします。

本ライブラリのソースコードをgit cloneまたはリリースページからダウンロードした後,以下のコマンドを実行することにより,ライブラリをコンパイルできます。

Linux環境:

cd [source-directory]
mkdir build
cd build
cmake ..
make

Windows環境(Visual Studio 2022を想定):

cd [source-directory]
mkdir build
cd build
cmake .. -G "Visual Studio 17 2022"
cmake --build . --config Release

コンパイルが正常に終了すると,ライブラリのバイナリファイルは build/libbuild/src/Release等に生成されます。 本ライブラリを使用してプログラム開発等を行う場合,前述のバイナリファイルに加え,src/interfaceディレクトリに存在する以下のヘッダファイルを作業ディレクトリにコピーしてください。なお,使用する関数によってはその他のヘッダファイルもコピーする必要があります。

共有インターフェイスの使用例

#include <stdio.h>
#include "eos.h"

void main()
{
    EOS* eos = eos_create(EOS_TYPE_WATER_IAPWS95);

    EOS_ARGS args;
    args.p = 1e6; // [Pa]
    args.T = 273.15 + 10; // [K]
    double rho = eos_rho_pT(eos, &args); // [kg/m^3]

    printf("Water density at %g Pa and %g K is %g kg/m^3\n", args.p, args.T, rho);

    eos_free(eos);
}

共有インターフェイスに対応している流体モデルの一覧,及び実装している関数の詳細については, src/interface/eos_type.hsrc/interface/eos.h をご確認ください。

また,下記のように,src/modelディレクトリ下にある低レベル関数を直接呼び出すことも可能です。

double T = 300; // [K]
double p = 0.05e6; // [Pa]
double rho = iapws95_rho_pT(p, T);

SBTL機能の使用について

本ライブラリでは,一部の状態方程式について,SBTL法を用いた高速近似計算モデルを使用することが可能です。現在,IAPWS-95のみに対応しています。 当該近似計算モデルを使用するためには,リリースページにある*-sbtl.zipをダウンロードする必要があります。IAPWS-95のSBTL版を使用する場合,圧縮ファイルを任意の場所に展開した後,iapws95_sbtl_ph_table_list.txtが含まれるディレクトリを環境変数SBTL_IAPWS95_DIRに設定してください。

R,Pythonインターフェイスについて

SWIGを用いて,本ライブラリをRやPython言語から呼び出すことが可能です。詳細については,wrapper/R/README.md,またはwrapper/Python/README.md をご確認ください。

簡易版ではありますが,R用パッケージはgeofluidprop-Rリポジトリからもインストール可能です。

サードパーティライブラリの使用について

本ライブラリは以下のOSSプロジェクトの成果を使用しています。

謝辞

本ライブラリが提供する機能の一部は,国立研究開発法人新エネルギー・産業技術総合開発機構(NEDO)の委託業務により開発されたものです。

ライセンス

Copyright (C) 2022-2023, National Institute of Advanced Industrial Science and Technology (AIST), All rights reserved.

本ライブラリは,国立研究開発法人産業技術総合研究所(以下,産総研)が著作権を有しており,LGPL v3,GPL v2,または個別契約のトリプルライセンスの下で提供します。 ライセンスの詳細については,LICENSE.mdをご確認ください。

免責事項

産総研は,利用者が本ライブラリ及びその派生物を使用して行う一切の行為について何ら責任を負いません。 また,本ライブラリは,予告なく,その開発,提供を中止することがあります。

本ライブラリを使用した成果公表について

本ライブラリを使用して得られた研究成果等を報告書,学会プロシーディング,論文等において公表される場合は,本ライブラリを使用したことについて謝辞に記載して頂けますと幸いです。

連絡先

本ライブラリについてご質問等がある場合は,GitHubのIssuesに投稿するか,または以下の宛先にご連絡ください。
norihiro dot watanabe at aist.go.jp