| Module | Source File | Description |
|---|---|---|
| bem_app_config | bem_app_config.f90 | 設定型・TOMLパーサ・実行時変換ロジックを束ねる後方互換ファサード。 |
| bem_app_config_authoring | bem_app_config_authoring.f90 | Authoring overlay の公開入口。配列管理と領域別変換の入口を持つ。 |
| bem_app_config_authoring_domain | bem_app_config_authoring_domain.f90 | 計算領域、境界、reservoir 設定の正規化と box の幾何条件。 |
| bem_app_config_authoring_geometry | bem_app_config_authoring_geometry.f90 | Mesh template の group、anchor、相対サイズを実座標・実寸へ変換する。 |
| bem_app_config_authoring_sources | bem_app_config_authoring_sources.f90 | 粒子源の face_fraction 入力を注入面上の実座標へ変換する。 |
| bem_app_config_authoring_types | bem_app_config_authoring_types.f90 | TOML authoring overlay の型と default。実行時設定への変換処理は持たない。 |
| bem_app_config_mesh_runtime | bem_app_config_mesh_runtime.f90 | app_config から三角形メッシュを構築する実行時変換。 |
| bem_app_config_parser | bem_app_config_parser.f90 | TOML設定ファイルを |
| bem_app_config_parser_finalize | bem_app_config_parser_finalize.f90 | 設定の正規化と領域別 preflight の実行順を管理する。 |
| bem_app_config_parser_preflight_particles | bem_app_config_parser_preflight_particles.f90 | lint 済みの粒子種識別子と有効な粒子源の派生量を確定する。 |
| bem_app_config_parser_preflight_sim | bem_app_config_parser_preflight_sim.f90 | lint 済み設定の基本的な計算条件を確認し、時間と外部場を確定する。 |
| bem_app_config_parser_preflight_surface | bem_app_config_parser_preflight_surface.f90 | lint 済みの表面電流設定について、種の参照と物理モデルの成立条件を検査する。 |
| bem_app_config_parser_read_mesh | bem_app_config_parser_read_mesh.f90 | mesh.parts と template 用 group の TOML 読み取り。 |
| bem_app_config_parser_read_particles | bem_app_config_parser_read_particles.f90 | 領域別の TOML 読み取り。意味検証と派生値の確定は preflight が担当する。 |
| bem_app_config_parser_read_sim | bem_app_config_parser_read_sim.f90 | 領域別の TOML 読み取り。意味検証と派生値の確定は preflight が担当する。 |
| bem_app_config_parser_read_surface | bem_app_config_parser_read_surface.f90 | 領域別の TOML 読み取り。意味検証と派生値の確定は preflight が担当する。 |
| bem_app_config_parser_validate | bem_app_config_parser_validate.f90 | lint 済みの設定から電場・流束・粒子重みを導出し、計算結果を検査する。 |
| bem_app_config_particle_runtime | bem_app_config_particle_runtime.f90 | app_config から粒子源計画と粒子バッチを構築する実行時変換。 |
| bem_app_config_particle_runtime_batch | bem_app_config_particle_runtime_batch.f90 | バッチ注入 layout の global slot を rank に連続区間で割り振り、この rank の粒子を生成する。 各 slot は (batch, species, kind, face, index) の counter-based 乱数で生成されるので、 rank 数によらずバッチ全体の粒子集合は同じになる。 |
| bem_app_config_particle_runtime_sampling | bem_app_config_particle_runtime_sampling.f90 | 電位障壁に応じた reservoir 注入速度の補正。 |
| bem_app_config_particle_runtime_slots | bem_app_config_particle_runtime_slots.f90 | バッチ注入 layout の構築と、layout 上の slot 1 つを counter-based 乱数で生成する処理。
layout は rank に依らない global 粒子数と面ごとの速度補正を持ち、 |
| bem_app_config_potential_runtime | bem_app_config_potential_runtime.f90 | 粒子注入面とbox基準面の電位統計を評価する実行時変換。 |
| bem_app_config_runtime | bem_app_config_runtime.f90 | app_config のメッシュ・粒子・電位評価を束ねる後方互換ファサード。 |
| bem_app_config_types | bem_app_config_types.f90 | アプリ設定の型定義と、設定由来の粒子数計算をまとめるモジュール。 |
| bem_boundary | bem_boundary.f90 | シミュレーションボックス境界(流出/反射/面内再配置反射/周期)を適用するモジュール。 |
| bem_charge_ledger | bem_charge_ledger.f90 | batch 間の signed charge stock と移送 flux から電荷収支を集計する。 |
| bem_checkpoint_contract | bem_checkpoint_contract.f90 | BEACH checkpoint metadata and transactional publication shared by output and restart code. |
| bem_collision | bem_collision.f90 | 粒子軌道セグメントと三角形要素の交差判定を提供する衝突検出モジュール。 |
| bem_config_helpers | bem_config_helpers.f90 | 設定型のヘルパー関数。パーサに依存せず下位層から利用可能。 |
| bem_config_layout | bem_config_layout.f90 | 7グループの入力を既存の内部TOMLへ変換する。物理検証と既定値は既存readerが所有する。 公開入力は7グループ形式のみ。変換先のキーは内部readerの実装である。 |
| bem_config_layout_paths | bem_config_layout_paths.f90 | |
| bem_config_toml | bem_config_toml.f90 | TOML の基本型・固定長文字列・配列を検査して読み込む共通入口。 |
| bem_constants | bem_constants.f90 | シミュレーションで使用する物理定数を定義する。 |
| bem_coulomb_fmm_basis | bem_coulomb_fmm_basis.f90 | Coulomb FMM の multi-index と微分テーブル計算。 |
| bem_coulomb_fmm_core | bem_coulomb_fmm_core.f90 |
|
| bem_coulomb_fmm_core_eval | bem_coulomb_fmm_core_eval.f90 |
|
| bem_coulomb_fmm_core_state | bem_coulomb_fmm_core_state.f90 |
|
| bem_coulomb_fmm_core_build | bem_coulomb_fmm_core_build.f90 |
|
| bem_coulomb_fmm_eval_ops | bem_coulomb_fmm_eval_ops.f90 | Coulomb FMM 電場評価。 |
| bem_coulomb_fmm_periodic | bem_coulomb_fmm_periodic.f90 | Coulomb FMM の periodic2 境界処理。 |
| bem_coulomb_fmm_periodic_cache | bem_coulomb_fmm_periodic_cache.f90 | Versioned stream codec for cached periodic root operators. |
| bem_coulomb_fmm_periodic_cell_cache | bem_coulomb_fmm_periodic_cell_cache.f90 | periodic2 root operator のセル単位 cache の読み書きと排他。前計算の数値部分(bem_coulomb_fmm_periodic_root_ops) からファイル I/O とロックを分けたもの。呼ぶのは MPI root だけで、collective は使わない。 |
| bem_coulomb_fmm_periodic_ewald | bem_coulomb_fmm_periodic_ewald.f90 | periodic2 cached operator生成用のEwald teacher。 |
| bem_coulomb_fmm_periodic_nonzero_reference | bem_coulomb_fmm_periodic_nonzero_reference.f90 | |
| bem_coulomb_fmm_periodic_nonzero_upper_vacuum | bem_coulomb_fmm_periodic_nonzero_upper_vacuum.f90 | 上部真空領域で周期 k/=0 panel Fourier 和をsource/target因子へ分離する。 |
| bem_coulomb_fmm_periodic_root_ops | bem_coulomb_fmm_periodic_root_ops.f90 | periodic2 root operator の前計算。 |
| bem_coulomb_fmm_plan_ops | bem_coulomb_fmm_plan_ops.f90 | Coulomb FMM plan 構築と tree トポロジ前計算。 |
| bem_coulomb_fmm_state_ops | bem_coulomb_fmm_state_ops.f90 | Coulomb FMM state 更新と upward/downward pass。 |
| bem_coulomb_fmm_tree_utils | bem_coulomb_fmm_tree_utils.f90 | Coulomb FMM tree 構造の共通ユーティリティ。 |
| bem_coulomb_fmm_types | bem_coulomb_fmm_types.f90 | Coulomb FMM コアで共有する型定義。 |
| bem_counter_rng | bem_counter_rng.f90 | PCG64 による counter-based 乱数。実行順序・rank・thread に依存せず、(seed, counter, draw) だけで値が決まる。 |
| bem_electrostatic_snapshot | bem_electrostatic_snapshot.f90 | 1バッチ内で固定する静電場 snapshot。 |
| bem_electrostatic_snapshot_eval | bem_electrostatic_snapshot_eval.f90 |
|
| bem_electrostatic_snapshot_upper_fourier | bem_electrostatic_snapshot_upper_fourier.f90 | Deterministic geometry-only switch selection and real-charge monitoring. |
| bem_external_boundary_contract | bem_external_boundary_contract.f90 | 局所 reservoir 流入と種別 kinetic 障壁を実行時契約へ正規化する。 |
| bem_field_kernel_c | bem_field_kernel_c.f90 | C ABI wrapper for the simulator-independent Coulomb FMM field kernel. |
| bem_field_solver | bem_field_solver.f90 | 粒子位置での電場評価を direct / treecode / fmm で切り替える場ソルバ。 |
| bem_field_solver_config | bem_field_solver_config.f90 |
|
| bem_field_solver_eval | bem_field_solver_eval.f90 |
|
| bem_field_solver_fmm | bem_field_solver_fmm.f90 |
|
| bem_field_solver_tree | bem_field_solver_tree.f90 |
|
| bem_filesystem | bem_filesystem.f90 | Minimal POSIX filesystem operations: directories, atomic rename, advisory locks and the cache location. They hold no runtime state, so config, runtime and the periodic operator cache use them from core. |
| bem_importers | bem_importers.f90 | OBJメッシュを走査・解析し、内部 |
| bem_injection | bem_injection.f90 | 粒子注入APIを責務別internal moduleから再公開する互換facade。 |
| bem_injection_flux | bem_injection_flux.f90 | Maxwell reservoirの流束、macro粒子数、面速度sampling。 |
| bem_injection_geometry | bem_injection_geometry.f90 | box面注入で共有する面軸と開口geometryの解決。 |
| bem_injection_random | bem_injection_random.f90 | 粒子注入で共有する乱数初期化と基本分布sampling。 |
| bem_irradiation_cell_contract | bem_irradiation_cell_contract.f90 | 照射実験の壁・周期軸・下端モデル。汎用 kernel はこの型へ依存しない。 |
| bem_kinds | bem_kinds.f90 | 倍精度実数と32bit整数のkind定義を集約する基盤モジュール。 |
| bem_matching_plane_summary | bem_matching_plane_summary.f90 | summary.txt の外部シース(matching-plane)receipt のキー表。 summary の writer と checkpoint の loader が同じ表からキー名・順序・必須条件を取る。 |
| bem_mesh | bem_mesh.f90 | 三角形メッシュ幾何量(重心・法線・AABB・代表長)を前計算して保持するモジュール。 |
| bem_mesh_identity | bem_mesh_identity.f90 | Ordered mesh identity for mapping saved element charges. |
| bem_mpi | bem_mpi.F90 | MPIの初期化・集約を抽象化し、非MPIビルドでは単一ランク動作へフォールバックする。 |
| bem_outflow_spectrum | bem_outflow_spectrum.f90 | z-high を外向きに通過した電子の法線運動エネルギー [eV] を数える固定 bin。 sheath-model の既定の対数格子([0, 1 meV) と 1 meV から 1 keV までの 24 bin/decade、計 145 bin)をそのまま使い、 外部シースへ渡す bin 放出源と、checkpoint に保存する外部源の両方がこの bin を使う。1 keV 以上は最後の bin に数える。 |
| bem_output_writer | bem_output_writer.f90 | 実行サマリ・最終CSV・履歴CSVの出力を担当するモジュール。 |
| bem_output_writer_files | bem_output_writer_files.f90 | メッシュ・電荷・電位・台帳のCSV出力。 |
| bem_output_writer_history | bem_output_writer_history.f90 | 履歴ファイルの生成・再開とスナップショットの出力。 |
| bem_output_writer_summary | bem_output_writer_summary.f90 | 実行サマリと再構築用メタデータの出力。 |
| bem_panel_geometry | bem_panel_geometry.f90 | Ordered triangle geometry and exact Cartesian surface moments. |
| bem_panel_kernel | bem_panel_kernel.f90 | Analytic free-space P0 triangle potential, field, principal value, and jump. |
| bem_panel_quadrature | bem_panel_quadrature.f90 | Independent Coulomb potential/field correctness oracles for triangle panels. |
| bem_panel_self_terms | bem_panel_self_terms.f90 | On-surface P0 triangle potential and principal-value field integrals. |
| bem_panel_surface_sides | bem_panel_surface_sides.f90 | Resolve physical vacuum sides without changing ordered triangle winding. |
| bem_particle_stepper | bem_particle_stepper.f90 | 同一時刻の粒子状態から、空間電場を中点評価した1ステップ候補を構築する。 |
| bem_particles | bem_particles.f90 | 粒子SoAデータ構造の初期化を提供するモジュール。 |
| bem_performance_profile | bem_performance_profile.f90 | 実行フェーズごとの壁時計計測と MPI 集約出力を担う軽量プロファイラ。 |
| bem_periodic2_axes | bem_periodic2_axes.f90 | periodic2 の 2 軸周期設定(周期軸と周期長)を検証付きで解決する。 mesh の collision 準備と field solver の初期化が同じ規則を使う。 |
| bem_periodic_checkpoint | bem_periodic_checkpoint.f90 | accepted batch 境界で二重化した定期チェックポイントを保存・解決する。 |
| bem_periodic_shell_mean | bem_periodic_shell_mean.f90 | periodic2 の有限画像殻の面平均を、無限面電荷の平均場から差し引いた滑らかな残り。 |
| bem_periodic_zero_mode_c | bem_periodic_zero_mode_c.f90 | C ABI wrapper for the physical periodic zero mode. |
| bem_periodic_zero_mode_eval | bem_periodic_zero_mode_eval.f90 | |
| bem_periodic_zero_mode_plan | bem_periodic_zero_mode_plan.f90 | |
| bem_photoelectron_injection | bem_photoelectron_injection.f90 | 光線追跡による光電子放出位置と速度のsampling。 |
| bem_physics_config_types | bem_physics_config_types.f90 | 場・periodic2・panel の型付き設定と旧 |
| bem_pusher | bem_pusher.f90 | 荷電粒子の時間発展にBoris法を適用する運動方程式ソルバ。 |
| bem_random_stream | bem_random_stream.f90 | 逐次に引く PCG64 の乱数列(Fortran 組み込み |
| bem_regularized_qr | bem_regularized_qr.f90 | Reusable column-scaled QR factorization for ridge-regularized least squares. |
| bem_restart | bem_restart.f90 | チェックポイントファイルの保存/復元を扱う補助モジュール。 |
| bem_restart_contract | bem_restart_contract.f90 | 再開時のスキーマ・メッシュ整合性の検証。 |
| bem_restart_injection | bem_restart_injection.f90 | 再開に必要なマクロ粒子端数の保存と復元(乱数は counter-based なので状態を持たない)。 |
| bem_restart_records | bem_restart_records.f90 | チェックポイントの統計・電荷・台帳の読み込みと形式検証。 |
| bem_run_outputs | bem_run_outputs.f90 | 主ループへ渡す出力先(history の unit と間隔、終了時のメッシュ電位)を 1 つの型にまとめる。 unit が -1 の history は書かない。CLI は root rank で writer を開いてこの型へ詰め、終了時に閉じる。 |
| bem_runtime_modes | bem_runtime_modes.f90 | 設定の文字列モードを実行時に一度だけ解決した整数 enum。 設定キー・summary・エラーメッセージの文字列はそのままにし、粒子・評価ループは解決済みの値だけを比べる。 文字列は parser/preflight が小文字化・検証済みなので、ここでは大文字小文字を区別しない比較で写すだけにする。 |
| bem_secondary_emission | bem_secondary_emission.f90 | 吸収に伴う SEE の収率・丸めと、OpenMP thread ごとの生成粒子 buffer。 |
| bem_simulator | bem_simulator.f90 | 吸着(insulator)モデルのメインループを実行し、電荷堆積と統計更新を行う。 |
| bem_simulator_charge | bem_simulator_charge.f90 | 電荷差分の確定反映、表面電流補正、バッチ電荷台帳を実装する。 |
| bem_simulator_io | bem_simulator_io.f90 |
|
| bem_simulator_loop | bem_simulator_loop.f90 |
|
| bem_simulator_particles | bem_simulator_particles.f90 | バッチ粒子の生成と追跡を実装する。連成反復と受理判定は主ループが管理する。 |
| bem_simulator_stats | bem_simulator_stats.f90 |
|
| bem_simulator_workspace | bem_simulator_workspace.f90 | シミュレーション実行中に再利用するバッチ作業配列を管理する。 |
| bem_sorting | bem_sorting.f90 | In-place O(n log n) heapsorts shared by plan builders. |
| bem_status_codes | bem_status_codes.f90 | 粒子追跡の失敗 status code と、その名前。 collision query(0–4)と粒子 step(1001–)は result の status と失敗 receipt に出る同じ名前空間で、 box 境界 event(0–1)は stepper の内部で particle_step_invalid_boundary へ写される。値はログと出力に出るので変えない。 |
| bem_string_utils | bem_string_utils.f90 | ASCII 文字列操作ユーティリティ。 |
| bem_surface_closure_contract | bem_surface_closure_contract.f90 | シミュレータが外部の表面電流モデルから受け取るモデル非依存の境界契約。 |
| bem_surface_current_model | bem_surface_current_model.f90 | 外部モデルから species 別の固定表面電流を解決する。 |
| bem_surface_models | bem_surface_models.f90 | 表面モデルごとの電荷更新後処理を扱うモジュール。 |
| bem_surface_models_conductor | bem_surface_models_conductor.f90 |
|
| bem_templates | bem_templates.f90 | 平面/穴あき平面/円板/リング/箱/円柱/球(UV・icosphere)テンプレートから三角形メッシュを生成するユーティリティ。 |
| bem_triangle_quadrature | bem_triangle_quadrature.f90 | Triangle cubature rules and Gauss-Duffy quadrature plans. |
| bem_types | bem_types.f90 | シミュレーション設定・統計・メッシュ・粒子・衝突情報の主要データ型を定義する。 |
| bem_version | bem_version.F90 | BEACH build metadata stamped by build.sh. |
| bem_zhao_outflow_refresh | bem_zhao_outflow_refresh.f90 | zhao_stationary の外部シース源を、matching plane で観測した PE 流出から定期的に解き直す弱連成。 |