Reactor_クラス ドキュメント(自動生成につき要編集)
概要
Reactor_
クラスは化学反応器をシミュレーションするためのデータ構造を提供します。このクラスは複数の化学物質と複数の反応を管理し、反応速度論に基づいたシミュレーションを実行することができます。
依存モジュール
-
MathClass
: 数学的操作のためのユーティリティ
定数
定数 |
型 |
値 |
説明 |
PF_MAX_REACTION_NUM |
integer(int32) |
20 |
サポートされる最大反応数 |
PF_MAX_INPUT_NUM |
integer(int32) |
5 |
一つの反応あたりの最大入力物質数 |
PF_MAX_OUTPUT_NUM |
integer(int32) |
5 |
一つの反応あたりの最大出力物質数 |
プロパティ
物質関連
プロパティ |
型 |
デフォルト値 |
説明 |
substances |
type(Real64Ptr_), allocatable(:) |
- |
物質の濃度や量を保持するポインタ配列 |
substance_names |
type(String_), allocatable(:) |
- |
物質の名前を保持する配列 |
n_substances |
integer |
0 |
システム内の物質数 |
反応関連
プロパティ |
型 |
デフォルト値 |
説明 |
n_reaction |
integer |
0 |
定義された反応の数 |
input_list |
integer(int32)(PF_MAX_REACTION_NUM, PF_MAX_INPUT_NUM) |
0 |
各反応の入力物質のID |
output_list |
integer(int32)(PF_MAX_REACTION_NUM, PF_MAX_OUTPUT_NUM) |
0 |
各反応の出力物質のID |
reaction_order |
real(real64)(PF_MAX_REACTION_NUM, PF_MAX_INPUT_NUM + PF_MAX_OUTPUT_NUM) |
0 |
各反応における物質の反応次数 |
mol_rate |
real(real64)(PF_MAX_REACTION_NUM, PF_MAX_INPUT_NUM + PF_MAX_OUTPUT_NUM) |
0 |
各反応における物質のモル比率 |
constants |
real(real64)(PF_MAX_REACTION_NUM) |
0 |
各反応の速度定数 |
メソッド
Init
説明
反応器オブジェクトを初期化します。
パラメータ
パラメータ |
型 |
必須/オプション |
説明 |
obj |
class(Reactor_) |
必須 |
初期化する反応器オブジェクト |
put
subroutine put(obj, substance_name, value_ptr)
説明
反応器に新しい物質を追加し、その濃度または量へのポインタを設定します。
パラメータ
パラメータ |
型 |
必須/オプション |
説明 |
obj |
class(Reactor_) |
必須 |
反応器オブジェクト |
substance_name |
不明(おそらく文字列) |
必須 |
追加する物質の名前 |
value_ptr |
不明(おそらくreal(real64) へのポインタ) |
必須 |
物質の濃度または量へのポインタ |
define
subroutine define(obj, inputs, outputs, reaction_orders, mol_rates, constant)
説明
反応器内の化学反応を定義します。反応物、生成物、反応次数、モル比、および速度定数を指定します。
パラメータ
パラメータ |
型 |
必須/オプション |
説明 |
obj |
class(Reactor_) |
必須 |
反応器オブジェクト |
inputs |
不明(おそらく物質名や物質IDの配列) |
必須 |
反応物のリスト |
outputs |
不明(おそらく物質名や物質IDの配列) |
必須 |
生成物のリスト |
reaction_orders |
不明(おそらくreal(real64) の配列) |
必須 |
各物質の反応次数 |
mol_rates |
不明(おそらくreal(real64) の配列) |
必須 |
各物質のモル比率 |
constant |
不明(おそらくreal(real64) ) |
必須 |
反応速度定数 |
SearchSubstanceID
function SearchSubstanceID(obj, substance_name) result(id)
説明
指定された名前の物質のIDを検索します。
パラメータ
パラメータ |
型 |
必須/オプション |
説明 |
obj |
class(Reactor_) |
必須 |
反応器オブジェクト |
substance_name |
不明(おそらく文字列) |
必須 |
検索する物質の名前 |
戻り値
名前 |
型 |
説明 |
id |
integer |
物質のID、見つからない場合は0または負の値 |
run
説明
指定された時間ステップで反応器のシミュレーションを実行します。
パラメータ
パラメータ |
型 |
必須/オプション |
説明 |
obj |
class(Reactor_) |
必須 |
反応器オブジェクト |
dt |
不明(おそらくreal(real64) ) |
必須 |
シミュレーションの時間ステップ |
使用例
program reactor_simulation
use ReactorClass
implicit none
type(Reactor_) :: reactor
real(real64) :: A_conc = 1.0d0, B_conc = 0.0d0
real(real64) :: dt = 0.01d0
integer :: i
call reactor%Init()
call reactor%put("A", A_conc)
call reactor%put("B", B_conc)
do i = 1, 100
call reactor%run(dt)
print *, "Time:", i*dt, "A:", A_conc, "B:", B_conc
end do
end program reactor_simulation
備考
- この反応器クラスは化学反応シミュレーションのための基本的なフレームワークを提供します。
- 最大で20の異なる反応と、各反応につき最大5つの入力物質と5つの出力物質をサポートします。
- 反応速度論は反応次数と速度定数に基づいて計算されます。
- 物質の濃度や量へのポインタを使用することで、外部システムと連携した動的なシミュレーションが可能です。
Discussion