実行サマリ・最終CSV・履歴CSVの出力を担当するモジュール。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | potential_history_opened | |||
| integer, | intent(out) | :: | potential_history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | out_dir |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | out_dir | |||
| integer(kind=i32), | intent(in) | :: | last_batch |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit_id | |||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| real(kind=dp), | intent(in) | :: | simulated_time_s | |||
| real(kind=dp), | intent(in) | :: | z_high_m | |||
| integer(kind=i32), | intent(in) | :: | sample_n | |||
| real(kind=dp), | intent(in) | :: | potential_mean_v | |||
| real(kind=dp), | intent(in) | :: | potential_std_v | |||
| real(kind=dp), | intent(in) | :: | potential_min_v | |||
| real(kind=dp), | intent(in) | :: | potential_max_v | |||
| real(kind=dp), | intent(in), | optional | :: | switch_phi_rms | ||
| real(kind=dp), | intent(in), | optional | :: | switch_ez_rms |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit_id | |||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| real(kind=dp), | intent(in) | :: | simulated_time_s | |||
| type(sim_stats), | intent(in) | :: | stats |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit_id | |||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| real(kind=dp), | intent(in) | :: | simulated_time_s | |||
| type(sim_stats), | intent(in) | :: | stats |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit_id | |||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| type(app_config), | intent(in) | :: | app | |||
| integer(kind=i64), | intent(in) | :: | counts(:,:) | |||
| real(kind=dp), | intent(in) | :: | values(:,:) |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(app_config), | intent(in) | :: | app | |||
| logical, | intent(in) | :: | resumed | |||
| logical, | intent(out) | :: | history_opened | |||
| integer, | intent(out) | :: | history_unit |
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer, | intent(in) | :: | unit_id | |||
| integer(kind=i32), | intent(in) | :: | batch_idx | |||
| real(kind=dp), | intent(in) | :: | simulated_time_s | |||
| integer(kind=i32), | intent(in) | :: | window_batches | |||
| logical, | intent(in) | :: | channel_active(:,:) |
(channel, species)。channel は 1=吸収、2=放出、3=脱出。 |
||
| real(kind=dp), | intent(in) | :: | tracked_charge_c(:,:) | |||
| real(kind=dp), | intent(in) | :: | target_charge_c(:,:) | |||
| real(kind=dp), | intent(in) | :: | surface_charge_c(2) |
全 species の表面正味電荷の窓合計。1=raw、2=closure 後。 |
summary.txt に書く run 内不変量: mesh の幾何・材質の識別子と、設定から解いた初期 surface-current model。
どちらも電荷・統計・動的 closure に依存しないので、run の開始時に一度作り、checkpoint と最終出力で使い回す。
mesh の幾何・材質か設定を変えたら作り直す。ready でなければ writer がその場で計算する。
model を allocatable にして、この型を含む構造体を構成子で既定値のまま作れるようにする。
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| logical, | public | :: | ready | = | .false. | ||
| character(len=16), | public | :: | mesh_fingerprint | = | '' | ||
| type(surface_current_model_result_type), | public, | allocatable | :: | initial_model |
解析結果を summary.txt / charges.csv / mesh_triangles.csv などとして保存する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | out_dir |
出力先ディレクトリ。 |
||
| type(mesh_type), | intent(in) | :: | mesh |
書き出し対象のメッシュ。 |
||
| type(sim_stats), | intent(in) | :: | stats |
書き出し対象の統計値。 |
||
| type(app_config), | intent(in) | :: | cfg |
出力設定を含むアプリ設定。 |
||
| integer(kind=i32), | intent(in), | optional | :: | mpi_world_size | ||
| real(kind=dp), | intent(in), | optional | :: | mesh_potential_v(:) | ||
| type(charge_ledger_type), | intent(in), | optional | :: | charge_ledger | ||
| type(electrostatic_diagnostics_type), | intent(in), | optional | :: | electrostatic_diagnostics | ||
| type(summary_identity_type), | intent(in), | optional | :: | identity |
再開に必要な root-rank 共通状態だけをチェックポイントへ保存する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | out_dir | |||
| type(mesh_type), | intent(in) | :: | mesh | |||
| type(sim_stats), | intent(in) | :: | stats | |||
| type(app_config), | intent(in) | :: | cfg | |||
| integer(kind=i32), | intent(in), | optional | :: | mpi_world_size | ||
| type(charge_ledger_type), | intent(in), | optional | :: | charge_ledger | ||
| type(summary_identity_type), | intent(in), | optional | :: | identity |
出力ディレクトリを作成する。
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| character(len=*), | intent(in) | :: | out_dir |
作成対象ディレクトリのパス。 |