Procedures

ProcedureLocationProcedure TypeDescription
accumulate_charge_ledger bem_charge_ledger Subroutine

連続する batch ledger を、初期 stock と最終 stock を保って累積する。

acquire_file_lock bem_filesystem Subroutine
active_tree_child_count bem_coulomb_fmm_tree_utils Function

有効な木の指定ノードにある子ノード数を返す。

active_tree_child_idx bem_coulomb_fmm_tree_utils Function

有効な木の子ノード番号を返す。

active_tree_child_octant bem_coulomb_fmm_tree_utils Function

有効な木の子ノードが属する八分木番号を返す。

active_tree_level_bounds bem_coulomb_fmm_tree_utils Subroutine

指定深さのレベル範囲を返す。

active_tree_level_node bem_coulomb_fmm_tree_utils Function

レベル配列からノード番号を返す。

active_tree_max_depth bem_coulomb_fmm_tree_utils Function

有効な木の最大深さを返す。

active_tree_nnode bem_coulomb_fmm_tree_utils Function

現在有効な木のノード数を返す。

active_tree_node_center bem_coulomb_fmm_tree_utils Function

有効な木のノード中心座標を返す。

active_tree_node_half_size bem_coulomb_fmm_tree_utils Function

有効な木のノード半サイズを返す。

active_tree_node_radius bem_coulomb_fmm_tree_utils Function

有効な木のノード外接半径を返す。

add_periodic2_exact_ewald_correction_single_source bem_coulomb_fmm_periodic_ewald Subroutine

1 粒子分の periodic2 Ewald 補正を加算する。

add_periodic2_exact_ewald_field_potential_single_source bem_coulomb_fmm_periodic_ewald Subroutine

1 粒子分の periodic2 Ewald 補正の電場と電位を、超越関数を共有して 1 回で加算する。 個別の電場・電位ルーチンを続けて呼ぶのと同じ値を返す(operator 作成の teacher 用)。

add_periodic2_exact_ewald_kneq0_correction_single_source bem_coulomb_fmm_periodic_ewald Subroutine
add_periodic2_exact_ewald_potential_correction_single_source bem_coulomb_fmm_periodic_ewald Subroutine

1 粒子分の periodic2 Ewald の電位補正を加算する。

add_periodic2_kneq0_potential_correction_single_source bem_coulomb_fmm_periodic_ewald Subroutine
add_point_charge_images_field bem_coulomb_fmm_periodic Subroutine

画像電荷を足し合わせて点電荷の電場を加算する。

advance_particle_step bem_particle_stepper Subroutine

一つの粒子stepについてmesh/boxの最早eventを順序付ける。

advance_particle_step_upper_panel_fourier bem_particle_stepper Subroutine

上部真空域のfactorized P0-panel Fourier場だけで、失敗した1 stepを最初から再試行する。

allocate_particles bem_particles Subroutine

粒子数に一致するSoA領域を確保する。位置・速度・電荷・質量は呼出し元で埋める。 SoA の配列長は容量で、有効な粒子は常に先頭 pcls%n 個(extend_particles 後は配列長の方が長くなり得る)。 重みは1、粒子種IDは0、放出元は-1、aliveはtrueで初期化する。

append_i32_buffer bem_coulomb_fmm_tree_utils Subroutine

整数バッファへ値を追加し、必要なら容量を拡張する。

append_mesh_ids bem_app_config_mesh_runtime Subroutine

既存の要素メッシュID配列へ追加分を連結する。

append_particles bem_particles Subroutine

既存 SoA の末尾へ粒子群を追加し、既存の alive 状態を保持する。 容量が足りなければ extend_particles が 1.5 倍以上に広げるので、配列長は pcls%n より長くなり得る。

append_real_values bem_app_config_mesh_runtime Subroutine

既存の実数要素配列へ追加分を連結する。

append_triangles bem_app_config_mesh_runtime Subroutine

既存三角形配列へ追加分を連結し、再確保後の配列へ差し替える。

apply_domain_toml_table bem_app_config_parser Interface
apply_escape_reflect_periodic_event bem_boundary Subroutine

最初のbox eventへescape/reflect/redistributed-reflect/periodicを軸順序に依存せず適用する。 face_bc を渡すと、box 設定の代わりにその face 別境界条件を event と照合する(外部障壁で一面を反射に 置き換える場合など)。省略時は cfg の bc_low/bc_high。

apply_field_boundary_toml_table bem_app_config_parser Interface
apply_fixed_surface_current_closure bem_simulator Interface
apply_kinetic_map_arguments bem_app_config_particle_runtime Subroutine

外部 closure の kinetic 写像(有効フラグ・貯留部/access 電位・面・貯留部密度)を検査して plan へ写す。

apply_mesh_group_toml_table bem_app_config_parser Interface
apply_mesh_toml_table bem_app_config_parser Interface
apply_number_flux_override_arguments bem_app_config_particle_runtime Subroutine

外部 closure の number-flux override の有効フラグを検査して plan へ写す(flux 値は種の解決時に使う)。

apply_obj_transform bem_app_config_mesh_runtime Subroutine

OBJ メッシュの全頂点にスケール→回転→平行移動を適用し再初期化する。 変換順序: v_new = R(rotation) * (v_old * scale) + offset 回転は度単位で x→y→z の順に外因性 (extrinsic) 回転を適用する。

apply_output_toml_table bem_app_config_parser Interface
apply_panel_surface_config bem_app_config_mesh_runtime Subroutine
apply_particle_boundary_toml_table bem_app_config_parser Interface
apply_particles_species_toml_table bem_app_config_parser Interface
apply_particles_toml_table bem_app_config_parser Interface
apply_periodic2_minimum_image bem_coulomb_fmm_periodic Subroutine

periodic2 の minimum image を差分ベクトルへ適用する。

apply_periodic2_toml_table bem_app_config_parser Interface
apply_physics_authoring bem_app_config_parser Interface
apply_ray_box_boundary bem_boundary Subroutine

photo raycast の ray が box 面を越えた点に反射・周期境界を適用する。粒子の境界処理は event API (find_first_boundary_event / apply_escape_reflect_periodic_event)が担い、これは ray 専用。 ray は面内再配置の乱数を持たないので、流出面と再配置反射の面では ray を止める(alive=.false.)。 box が無効なら何もせず、幅 0 の軸があれば ray を止める。

apply_reservoir_toml_table bem_app_config_parser Interface
apply_sim_toml_table bem_app_config_parser Interface
apply_species_boundary_inflow_toml_table bem_app_config_parser Interface
apply_species_boundary_toml_table bem_app_config_parser Interface
apply_surface_current_model_toml_table bem_app_config_parser Interface
apply_template_toml_table bem_app_config_parser Interface
apply_toml_document bem_app_config_parser Subroutine

toml-f のルートテーブルから既知セクションを読み込む。

atomic_rename bem_filesystem Subroutine
bbox_inside_box bem_collision Function
beach_kernel_build bem_field_kernel_c Function
beach_kernel_create bem_field_kernel_c Function
beach_kernel_destroy bem_field_kernel_c Function
beach_kernel_eval_e bem_field_kernel_c Function
beach_kernel_eval_e_direct bem_field_kernel_c Function
beach_kernel_eval_phi bem_field_kernel_c Function
beach_kernel_eval_phi_direct bem_field_kernel_c Function
beach_kernel_force_on_charges bem_field_kernel_c Function
beach_kernel_get_abi_version bem_field_kernel_c Function
beach_kernel_get_build_info bem_field_kernel_c Function
beach_kernel_get_periodic_cache_info bem_field_kernel_c Function
beach_kernel_set_periodic_cache bem_field_kernel_c Function
beach_kernel_update_charges bem_field_kernel_c Function
beach_zero_mode_build bem_periodic_zero_mode_c Function
beach_zero_mode_create bem_periodic_zero_mode_c Function
beach_zero_mode_destroy bem_periodic_zero_mode_c Function
beach_zero_mode_eval bem_periodic_zero_mode_c Function
beach_zero_mode_update bem_periodic_zero_mode_c Function
begin_checkpoint_publish bem_checkpoint_contract Subroutine

checkpoint transactionのcompletion evidenceをrestart-bearing fileの置換前に無効化する。

boris_push bem_pusher Subroutine

Boris速度更新を使い、1タイムステップ後の位置・速度を計算する。

boris_update_velocity bem_pusher Subroutine

電場半ステップ加速と磁場回転を組み合わせ、1タイムステップ後の速度を計算する。

boundary_face_name bem_config_helpers Subroutine

face bit 順(1..6 = x_low, x_high, y_low, y_high, z_low, z_high)の面名を返す。

boundary_inflow_face_enabled bem_config_helpers Function

face bit 順の面に reservoir 流入が有効かを返す。

build_axis_powers bem_coulomb_fmm_basis Subroutine

3 軸の冪を order まで順に計算する。

build_batch_injection_layout bem_app_config_particle_runtime Interface
build_collision_grid bem_mesh Subroutine

三角形AABBを一様グリッドへ登録し、衝突判定の候補探索を高速化する。 要素数が少ない場合は線形探索にフォールバックする。

build_mesh_from_config bem_app_config_mesh_runtime Subroutine

有効な OBJ と template をリスト順に連結する。

build_mesh_from_indexed bem_importers Subroutine

頂点配列と三角形インデックス配列から面頂点配列(v0,v1,v2)を展開して初期化する。

build_one_template bem_app_config_mesh_runtime Subroutine

テンプレート種別に応じて形状生成ルーチンへディスパッチする。

build_panel_duffy_quadrature bem_triangle_quadrature Subroutine
build_panel_plan bem_coulomb_fmm_core Interface
build_panel_quadrature bem_triangle_quadrature Subroutine
build_particle_source_plan bem_app_config_particle_runtime Subroutine

設定とMPI配置だけに依存する粒子 source の導出値を構築する。 乱数、残差、mesh/snapshot依存の障壁は扱わず、run中に不変な値だけを保持する。

build_particle_step_candidate bem_particle_stepper Subroutine

予測中点の電場と一様磁場を使い、次時刻の位置・速度候補を返す。

build_parts_mesh bem_app_config_mesh_runtime Subroutine

有効な OBJ と template を連結し、1つのメッシュへまとめる。

build_periodic_shell_mean_plan bem_periodic_shell_mean Subroutine

線源ごとの s を高さの格子に表として持つ。

build_periodic_shift_values bem_coulomb_fmm_periodic Subroutine

periodic2 の画像シフト値を作成する。

build_periodic_zero_mode_height_plan bem_periodic_zero_mode_plan Subroutine
build_periodic_zero_mode_plan bem_periodic_zero_mode_plan Subroutine
build_plan bem_coulomb_fmm_core Interface
build_tangent_basis bem_photoelectron_injection Subroutine

面法線ベクトルから接線2軸を構築する。

canonicalize_periodic_emission_position bem_photoelectron_injection Subroutine

法線offset後の周期軸をprimary cellのstrict interiorへ戻す。

cast_photo_ray bem_photoelectron_injection Subroutine

面上の点 ray_start から launch_dir へ光線を飛ばし、box 境界の反射を経て最初に当たる panel を返す。

cell_id bem_mesh Function

3次元セル添字 (ix,iy,iz) をCSR一次元インデックスへ変換する。

cell_id bem_collision Function

3次元セル添字 (ix,iy,iz) をCSR一次元インデックスへ変換する。

checked_accumulate_charge bem_charge_ledger Subroutine

有限なcharge incrementをoverflowさせずscalar accumulatorへ加える。

checkpoint_schema_is_loadable bem_checkpoint_contract Function

現行実装が再開候補として扱えるcheckpoint schemaかを返す。 schema keyを持たないlegacy summaryは0として表す。schema v1は正式な fingerprint contractより前の中間形式であり、現行loaderは対応しない。

close_run_outputs bem_run_outputs Subroutine

開いている history writer を閉じる。

complete_plan bem_coulomb_fmm_core Interface
compute_face_area_from_bounds bem_injection_geometry Function

注入面上の矩形開口から有効面積[m^2]を返す。

compute_face_average_potential bem_app_config_potential_runtime Subroutine

境界 reservoir 流入面の平均電位を N x N 格子平均で評価する。

compute_inflow_flux_from_drifting_maxwellian bem_injection_flux Function

drifting Maxwellian の片側流入束 [#/m^2/s] を返す。

compute_laplace_derivatives bem_coulomb_fmm_basis Subroutine

ラプラス核の多重微分係数を計算する。 1/sqrt(|r|^2 + s^2) の全次数の偏微分 ∂^α f を漸化式で求める。 f = a^{-1/2}(a = |r|^2 + s^2)は a ∂_i f = -x_i f を満たし、Leibniz 則で ∂^β を当てると D(β+e_i) = -[ x_i D(β) + β_i D(β-e_i) + 2Σ_j β_j x_j D(β+e_i-e_j) + Σ_j β_j(β_j-1) D(β+e_i-2e_j) ] / a となる。multi-index は次数昇順に並んでいるので、1 回の走査で全次数が決まる。 旧来の多項式乗算版 compute_laplace_derivatives_reference と同じ値を返す(契約テストで検査)。

compute_laplace_derivatives_reference bem_coulomb_fmm_basis Subroutine

旧実装: (1+q)^{-1/2} の多項式展開を反復乗算で組み立てる。契約テストの参照用に残す。

compute_macro_particles_for_batch bem_injection_flux Subroutine

物理流量・重み・残差から今バッチのマクロ粒子数を決める。

compute_macro_particles_for_species bem_app_config_particle_runtime Subroutine

境界流入用に、物理流量と残差から今バッチのマクロ粒子数を決める。

compute_macro_particles_from_flux bem_injection_flux Subroutine

指定済み粒子 flux・重み・残差から今バッチのマクロ粒子数を決める。

compute_wall_box_potential_statistics bem_app_config_potential_runtime Subroutine

box の壁全断面における電位統計をセル中心 N x N 格子で評価する。

Read more…
config_uses_surface_model bem_app_config_parser Function

現在のメッシュ入力設定が指定された表面モデルを使うかを返す。

coord_to_cell bem_mesh Function

座標をグリッドセル添字へ変換し、範囲外は端セルへ丸める。

coord_to_cell bem_collision Function

座標をグリッドセル添字へ変換し、範囲外は端セルへ丸める。

core_build_panel_plan_impl bem_coulomb_fmm_plan_ops Subroutine
core_build_plan_impl bem_coulomb_fmm_plan_ops Subroutine

FMM 計画と木構造、転送演算子を構築する。

core_complete_plan_impl bem_coulomb_fmm_plan_ops Subroutine

Build the tree, interaction lists and operators of a plan whose sources are prepared.

core_destroy_plan_impl bem_coulomb_fmm_plan_ops Subroutine

FMM 計画に確保した資源を解放する。

core_destroy_state_impl bem_coulomb_fmm_state_ops Subroutine

FMM state に確保した資源を解放する。

core_eval_direct_points_impl bem_coulomb_fmm_eval_ops Subroutine

非周期計画の全ソース直接和で複数点の電場を計算する。ソース幾何と電荷 src_q だけを使う。

core_eval_direct_potential_points_impl bem_coulomb_fmm_eval_ops Subroutine

非周期計画の全ソース直接和で複数点の電位を計算する。ソース幾何と電荷 src_q だけを使う。

core_eval_point_impl bem_coulomb_fmm_eval_ops Subroutine

1 点で電場を計算する。

core_eval_points_impl bem_coulomb_fmm_eval_ops Subroutine

複数の評価点で電場を計算する。

core_eval_potential_point_impl bem_coulomb_fmm_eval_ops Subroutine

1 点で電位を計算する。

core_eval_potential_points_impl bem_coulomb_fmm_eval_ops Subroutine

複数の評価点で電位を計算する。

core_prepare_panel_sources_impl bem_coulomb_fmm_plan_ops Subroutine

Panel sources only: options, centroids and panel geometry, as the first part of a plan build. The plan then supports exact-direct evaluation; core_complete_plan_impl adds the FMM part.

core_update_state_impl bem_coulomb_fmm_state_ops Subroutine

ソース電荷から FMM state を更新する。

corner_between bem_templates Subroutine

反時計回りに隣接する辺ペアに対し、対応する長方形コーナー座標を返す。

count_face_tokens bem_importers Function

面行に含まれる頂点トークン数を数え、扇形分割時の三角形数算出に使う。

counter_child_id bem_counter_rng Function

親の乱数 id と子の番号から、衝突しにくい 63 bit の子 id を作る(二次電子などの派生粒子用)。

counter_key bem_counter_rng Subroutine

seed と counter から PCG64 の (初期状態 seed, stream) を作る。

counter_uniform bem_counter_rng Function

(seed, counter, draw) で決まる (0, 1) の一様乱数。

counter_uniforms bem_counter_rng Subroutine

(seed, counter) の draw first_draw .. first_draw + size(uniforms) - 1 をまとめて返す。 値は同じ draw の counter_uniform と一致する。

create_directories bem_filesystem Subroutine

Recursively create a directory path without invoking a shell.

cross bem_pusher Function

3次元ベクトルの外積を返す基本演算。

cross bem_mesh Function

3次元ベクトルの外積を返す基本演算。

cross bem_collision Function
default_app_config bem_app_config_types Subroutine

app_config を既定値で初期化し、TOML 上書き前の状態を作る。

default_periodic_cache_directory bem_filesystem Function

User cache shared across working directories; an explicit configuration path takes precedence.

derive_field_panel_config bem_physics_config_types Subroutine

[sim] だけから field/panel の派生契約を構築する。

destroy_plan bem_coulomb_fmm_core Interface
destroy_state bem_coulomb_fmm_core Interface
distance_to_source_bbox bem_coulomb_fmm_periodic Function

点と source BBox の距離を返す。

distance_to_source_bbox_periodic bem_coulomb_fmm_periodic Function

periodic2 の minimum image を考慮した source BBox 距離を返す。

edge_next_ccw bem_templates Function

境界辺の次(反時計回り)を返す。

edge_order_index bem_templates Function

境界辺の反時計回り順序インデックスを返す。

ensure_authoring_group_capacity bem_app_config_authoring Subroutine

mesh group authoring 配列容量を確保する。

ensure_authoring_particle_capacity bem_app_config_authoring Subroutine

species authoring 配列容量を確保する。

ensure_authoring_template_capacity bem_app_config_authoring Subroutine

template authoring 配列容量を確保する。

ensure_output_dir bem_output_writer Subroutine

出力ディレクトリを作成する。

ensure_particle_species_capacity bem_app_config_parser Interface
ensure_template_capacity bem_app_config_parser Interface
eval_direct_points bem_coulomb_fmm_core Interface
eval_direct_potential_points bem_coulomb_fmm_core Interface
eval_periodic_nonzero_panel_reference bem_coulomb_fmm_periodic_nonzero_reference Subroutine
eval_periodic_shell_mean bem_periodic_shell_mean Subroutine

3 次 Hermite 補間した S(z) と、同じ多項式の微分 dS/dz。電場は電位の勾配と一致する。

eval_periodic_zero_mode bem_periodic_zero_mode_eval Subroutine
eval_point bem_coulomb_fmm_core Interface
eval_points bem_coulomb_fmm_core Interface
eval_potential_point bem_coulomb_fmm_core Interface
eval_potential_points bem_coulomb_fmm_core Interface
evaluate_surface_closure bem_surface_current_model Subroutine

モデル固有の診断値をシミュレータへ漏らさず、境界契約だけを返す。

evaluate_surface_current_model bem_surface_current_model Subroutine

設定されたmodelをdispatchし、固定電流closure用のtarget配列を返す。 zhao_stationary で outer を渡すと、後の更新に使う外部解を返す。

extend_particles bem_particles Subroutine

末尾に added 個の枠を足して pcls%n を進める。新しい枠は重み 1、粒子種 0、放出元 -1、alive で、 位置・速度・電荷・質量は呼出し元が埋める。容量が足りなければ必要数と現容量の 1.5 倍の大きい方へ広げ、 二次電子の世代ごとの追加で毎回全粒子を写し直さない。

external_kinetic_face_velocity_correction bem_app_config_particle_runtime Interface
factor_tall_matrix_qr bem_regularized_qr Subroutine

Re-orthogonalised (two-pass modified Gram-Schmidt) QR of a tall matrix. A column whose residual norm falls below qr_tolerance times its norm (at least 1) gets that floor as its pivot and a zero q column.

field_solver_mode_id bem_runtime_modes Function

'direct' / 'treecode' / 'fmm' を enum へ写す。それ以外は direct(場ソルバの既定と同じ)。

fill_panel_quadrature bem_triangle_quadrature Subroutine

Fill an existing seven-point cubature buffer without allocating a plan.

find_first_boundary_event bem_boundary Subroutine

閉じたbox内の始点から候補終点へ向かう線分について、最初のbox面交差を返す。

find_first_hit bem_collision Subroutine

線分 [p0,p1] に対して最初に衝突する三角形要素を探索し、命中情報を返す。

find_first_hit_base bem_collision Subroutine

通常メッシュに対する最初の命中要素探索を行う。

find_first_hit_base_grid bem_collision Subroutine

一様グリッド + 3D-DDA で候補セルのみ探索し、最初の命中要素を返す。

find_first_hit_base_linear bem_collision Subroutine

旧実装と同じ線形探索で最初の命中要素を探索する。

find_first_hit_periodic2 bem_collision Subroutine

periodic2 用に image shift を列挙し、base collision の結果を統合する。

finite_charge_sum bem_charge_ledger Function

scale後のNeumaier和により、中間overflowを避けてsigned charge総和を返す。

flush_run_outputs bem_run_outputs Subroutine

開いている history の行を書き出す。checkpoint の完了 manifest を公開する前に呼び、 再開できる batch 以下の history 行がすべて改行まで書かれていることを保証する。

gauss_legendre_unit bem_triangle_quadrature Subroutine
generate_batch_slot bem_app_config_particle_runtime Interface
get_toml_boundary_inflow_mode bem_config_toml Subroutine
get_toml_int bem_config_toml Subroutine
get_toml_logical bem_config_toml Subroutine
get_toml_particle_boundary_mode bem_config_toml Subroutine
get_toml_real bem_config_toml Subroutine
get_toml_real_array bem_config_toml Subroutine
get_toml_real_scalar_or_array3 bem_config_toml Subroutine
get_toml_string bem_config_toml Subroutine
grouped_layout_table bem_config_layout_paths Function

Recognize structural tables, rejecting unknown empty groups.

handle_early_cli main Subroutine

MPI 初期化や計算状態の構築前に完結する CLI option を処理する。

has_boundary_inflow bem_app_config_particle_runtime Function

speciesに外部 reservoir 流入を指定したbox面があるかを返す。

has_suffix bem_app_config_parser Function

文字列が指定した接尾辞で終わるかを判定する。

has_valid_target_box bem_coulomb_fmm_periodic Function

periodic2 の target box が有効かを判定する。

init_app_config_authoring bem_app_config_authoring Subroutine

authoring overlay の配列を初期化する。

init_mesh bem_mesh Subroutine

三角形頂点配列から mesh_type を初期化し、幾何キャッシュと要素電荷配列を準備する。

init_panel_geometry bem_panel_geometry Subroutine
init_particle_batch_from_config bem_app_config_particle_runtime Interface
init_particles bem_particles Subroutine

位置・速度・電荷・質量(と任意重み)配列から particles_soa を検証付きで構築する。

initialize_basis_tables bem_coulomb_fmm_basis Subroutine

FMM の多重指数テーブルと評価用補助テーブルを初期化する。

initialize_fmm_state bem_coulomb_fmm_types Subroutine

FMM state のポインタ成分を未関連状態へ初期化する。

initialize_hit bem_collision Subroutine

hit 構造体を未命中状態へ初期化する。

initialize_injection_state main Subroutine

種数に合わせて注入状態をゼロ初期化する。

inspect_checkpoint_directory bem_checkpoint_contract Subroutine

Inspect one directory without mutating it and require every file declared by its checkpoint generation.

integrate_local_polynomial bem_periodic_zero_mode_plan Function

局所座標の多項式を原点から t=0..t_upper まで積分する。

invalidate_checkpoint_directory bem_checkpoint_contract Subroutine

Take a directory out of the resume candidates without touching files a later run rewrites. summary.txt goes first: every schema generation, including legacy ones without a manifest, needs it to be complete, so a crash between the two removals already leaves the directory non-resumable.

invalidate_output_checkpoints bem_periodic_checkpoint Subroutine

fresh run が出力先を再利用する前に、前の run の最終出力と両 slot を再開候補から外し、index を消す。 各 directory は個別に原子的に無効化される。途中で止まっても残るのは前の run の完全な checkpoint だけで、 この時点では新しい run はまだ何も書いていないので、新旧の混ざった再開状態はできない。

is_decimal_integer_token bem_string_utils Function

符号付き十進整数tokenだけを許可する。

is_decimal_real_token bem_string_utils Function

List-directed control syntaxを除外した十進実数tokenだけを許可する。

is_face_line bem_importers Function

与えられた行がOBJ面行(f)かを判定する。

is_logical_token bem_string_utils Function

Checkpoint writerが生成するlogical tokenと標準的な長形式だけを許可する。

is_vertex_line bem_importers Function

与えられた行がOBJ頂点行(v)かを判定する。

load_app_config bem_app_config_parser Subroutine

.toml 拡張子の設定ファイルを読み込み、既存値へ上書き適用する。

load_obj_mesh bem_importers Subroutine

OBJファイルを2パス(件数取得→実データ読込)で読み込み、メッシュを構築する。

load_or_init_run_state main Subroutine

設定読込・メッシュ構築・再開判定・乱数初期化をまとめて行う。

load_restart_checkpoint bem_restart Subroutine

既存チェックポイントディレクトリから統計・要素電荷・乱数状態を復元する。

load_toml_config bem_app_config_parser Subroutine

TOML 文書を toml-f で解釈して設定へ反映する。 現在は sim / mesh / output / [[mesh.parts]] / [[particles.species]] を扱う。

locate_batch_slot bem_app_config_particle_runtime Subroutine

global slot から (segment, segment 内 index) を求める。O(nsegments) で、slot ごとの表を持たない。

locate_zero_mode_interval bem_periodic_zero_mode_plan Subroutine

A target on a breakpoint (same coincidence rule as the plan's breakpoint merge) takes the requested sheet trace; any other target lies strictly inside one interval.

lookup_cell_cache bem_coulomb_fmm_periodic_cell_cache Subroutine

required のセルを cache から読む。足りなければ cache ディレクトリを作ってロックを取り、待つ間に他の job が 足したセルを読み直す。それでも足りなければロックを保持したまま返し、呼び出し側が作ったセルを publish_cell_cache_and_unlock で書く。have は cache から得たセル。

lower_ascii bem_string_utils Function

ASCII 英字を小文字化した文字列を返す。

lower_boundary_authoring bem_app_config_authoring Interface
lower_boundary_model_id bem_runtime_modes Function

'e_bottom_zero' / 'symmetric_vacuum' / 'e_top_from_sheath' を enum へ写す。未知の値は unknown。

make_annulus bem_templates Subroutine

XY平面上の同心リングを極座標分割し、三角形メッシュを生成する。 (省略時 .false.: 全リング n_theta 点で、要素面積が半径に比例する極座標格子)。

make_boundary_inflow_spec bem_app_config_particle_runtime Subroutine

box 全面の境界流入をサンプリングする面座標を構築する。

make_box bem_templates Subroutine

直方体6面を分割数に応じて三角形化し、外向き法線向きでメッシュを生成する。

make_cylinder bem_templates Subroutine

円柱側面を分割生成し、必要に応じて上下面キャップを追加したメッシュを生成する。 (省略時 .false.: 中心から外周への n_theta 枚の扇)。

make_disk bem_templates Subroutine

XY平面上の円板を極座標分割し、外周へ向かって三角形化したメッシュを生成する。

make_icosphere bem_templates Subroutine

正二十面体の各面を再帰的に 4 分割し、辺中点を球面へ射影した球面三角形メッシュを生成する。 UV 球と異なり極の特異点がなく、要素面積の最大/最小比は分割数によらず 1.3 程度に収まる。 隣接面の共有辺の中点は同じ和 a+b から作るため、頂点はビット一致し隙間を生じない。

make_plane bem_templates Subroutine

XY平面を nx*ny 分割し、各セルを2三角形へ分割したメッシュを生成する。

make_plate_hole bem_templates Subroutine

XY平面の長方形プレートから円形穴を除いたメッシュを生成する。 穴境界は n_theta 分割の多角形近似で表し、外周は長方形境界に一致させる。

make_sphere bem_templates Subroutine

経度・緯度分割に基づき球面三角形メッシュを生成する。

maybe_write_periodic_checkpoint bem_periodic_checkpoint Subroutine

設定した stride の accepted batch で、非active slotへ完全な再開状態を書いてからindexを切り替える。

mesh_fingerprint bem_mesh_identity Function
mesh_part_config_path bem_app_config_types Function

診断に使う公開 mesh 配列の添字付きパスを返す。

mpi_allgatherv_inplace_i32 bem_mpi Subroutine

mpi_allgatherv_inplace_real_dp の 32 bit 整数版。

mpi_allgatherv_inplace_real_dp bem_mpi Subroutine

各rankが values の自分の区間 (displacements(rank+1)+1 から counts(rank+1) 要素) を持ち寄り、 全rankで values の全区間を揃える。非MPIまたは単一rankでは何もしない。

mpi_allreduce_max_i32_scalar bem_mpi Subroutine

32bit整数スカラの最大値Allreduceをin-placeで実行する。

mpi_allreduce_max_real_dp_array bem_mpi Subroutine

倍精度配列の最大値Allreduceをin-placeで実行する。

mpi_allreduce_min_i32_scalar bem_mpi Subroutine

32bit整数スカラの最小値Allreduceをin-placeで実行する。

mpi_allreduce_min_real_dp_array bem_mpi Subroutine

倍精度配列の最小値Allreduceをin-placeで実行する。

mpi_allreduce_sum_i32_array bem_mpi Subroutine

32bit整数配列の総和Allreduceをin-placeで実行する。

mpi_allreduce_sum_i32_scalar bem_mpi Subroutine

32bit整数スカラの総和Allreduceをin-placeで実行する。

mpi_allreduce_sum_i64_array bem_mpi Subroutine

64bit整数配列の総和Allreduceをin-placeで実行する。

mpi_allreduce_sum_real_dp_array bem_mpi Subroutine

倍精度配列の総和Allreduceをin-placeで実行する。

mpi_allreduce_sum_real_dp_scalar bem_mpi Subroutine

倍精度スカラの総和Allreduceをin-placeで実行する。

mpi_bcast_i32_array bem_mpi Subroutine

root rankの32bit整数配列を全rankへbroadcastする。

mpi_bcast_real_dp_array bem_mpi Subroutine

root rankの倍精度配列を全rankへbroadcastする。

mpi_gatherv_real_dp_array bem_mpi Subroutine

各rankの可変長倍精度配列をrootへrank順に連結する。

Read more…
mpi_get_rank_size bem_mpi Subroutine

mpi_context から rank/size を取得する。未指定時は単一rank(0/1)。

mpi_initialize bem_mpi Subroutine

MPIを初期化して rank / size を取得する。非MPIビルドでは単一ランクを返す。

mpi_is_root bem_mpi Function

root rank (rank=0) かどうかを返す。

mpi_select_lowest_rank_i32_values bem_mpi Subroutine

Select values supplied by the lowest MPI rank whose local flag is true.

mpi_shutdown bem_mpi Subroutine

mpi_initialize が実際に初期化した場合のみ MPI_Finalize を呼ぶ。

mpi_split_count bem_mpi Function

総数 total_count をrankへ均等分割したときの局所個数を返す。

mpi_world_barrier bem_mpi Subroutine

全rankの同期ポイント。

mpi_world_size bem_mpi Function

MPI world size を返す(size<=0 は 1 へ補正)。

next_face_token bem_importers Subroutine

面行の pos 以降にある次の空白区切りトークンの範囲を返す。 計数パスと解析パスが同じ規則でトークンを数えるための共通 tokenizer。

nodes_well_separated bem_coulomb_fmm_tree_utils Function

target/source ノードが十分離れているかを判定する。

normalize_config_layout bem_config_layout Subroutine

7グループの公開入力を内部reader用のdocumentへ正規化する。

normalize_high_level_config bem_app_config_authoring Subroutine

authoring overlay の高水準キーを cfg の実行時キーへ反映する。

normalize_legacy_physics_config bem_physics_config_types Subroutine

現行 sim_config を型付き場設定へ写像する。

octant_index bem_coulomb_fmm_tree_utils Function

座標が親ノード中心のどの八分木に属するかを返す。

open_fixed_current_history_writer bem_output_writer Interface
open_history_writer bem_output_writer Interface
open_matching_plane_history_writer bem_output_writer Interface
open_matching_plane_spectrum_history_writer bem_output_writer Interface
open_potential_history_writer bem_output_writer Interface
open_run_outputs bem_run_outputs Subroutine

root rank で出力先をこの run のものにしてから、設定どおりに history writer を開く。root 以外は全て無効(unit=-1)。

open_secondary_emission_history_writer bem_output_writer Interface
open_top_reference_history_writer bem_output_writer Interface
open_uniform_from_double53 bem_counter_rng Function

53 bit 格子値 raw = k/2^53(k = 0..2^53-1)を (0, 1) へ写す。 raw に 2^-54 を足し、binary64 の最近接丸めで 1.0 になる最上端 k = 2^53-1 だけを 1 の直前値 1-2^-53 に留める。 それ以外の k では raw + 2^-54 と同じ binary64 値を返す。

order_by_i32_key bem_sorting Subroutine

Indices that list keys in ascending order (heapsort; equal keys may appear in any order).

outflow_spectrum_bin bem_outflow_spectrum Function

法線運動エネルギーが属する bin。範囲外と NaN は端の bin に数える。

outflow_spectrum_edges_ev bem_outflow_spectrum Function

bin 境界 [eV]。要素数は bin 数 + 1。

panel_field_sum_translated bem_panel_kernel Subroutine

Principal-value field at target of count translated panels given as component arrays (translated vertex x/y/z per vertex, normal, edge lengths, outward edge normals, area), accumulated into ex, ey, ez divided by k_coulomb as the FMM near field stores it. Entry k carries charge(index(k)); geometry(index(k)) is only read for the on-plane fallback. The SIMD loop performs the operations of panel_potential_field_translated in the same order and the contributions are added in list order, so the sum matches a loop over that routine bit for bit; zero charges are skipped as that loop skips them.

panel_field_sum_translated_sp bem_panel_kernel Subroutine

Single-precision counterpart of panel_field_sum_translated. The component tables hold the panels translated by their image shift and relative to the leaf center; target_local is the target in the same frame (double, rounded here) and target the absolute target for the on-plane fallback, which still runs the double-precision kernel on geometry(index(k)) translated by shift1(k), shift2(k) along axes. Eight panels per AVX2 vector; the field error is around 1e-6 relative.

panel_on_surface_integrals bem_panel_self_terms Subroutine
panel_oracle_potential_field bem_panel_quadrature Subroutine
panel_potential_field bem_panel_kernel Subroutine
panel_potential_field_translated bem_panel_kernel Subroutine

Principal-value potential and field of geometry translated by shift, without copying it. The arithmetic is the same as panel_potential_field applied to a geometry whose vertices were translated, evaluated once per vertex distance instead of once per edge end, so the result is bitwise identical. A target on the panel plane falls back to that routine.

panel_potential_sum_translated bem_panel_kernel Subroutine

Principal-value potential counterpart of panel_field_sum_translated, accumulated into phi divided by k_coulomb.

panel_potential_sum_translated_sp bem_panel_kernel Subroutine

Single-precision counterpart of panel_potential_sum_translated; see panel_field_sum_translated_sp.

panel_singular_potential_oracle bem_panel_quadrature Subroutine
parse_face_line bem_importers Subroutine

f 行の頂点参照を抽出し、v/vt/vn 形式から頂点インデックスのみを取り出す。

parse_obj bem_importers Subroutine

OBJの頂点/面行を解析し、負インデックス対応で配列へ格納する。

parse_vertex_line bem_importers Subroutine

v x y z 形式の頂点行を3次元座標へ変換する。

particle_boundary_action_for_face bem_config_helpers Function

6面名に対応する有効粒子境界作用を返す。

particle_capacity bem_particles Function

確保済みの粒子枠数。未確保なら 0。

particle_source_plan_matches_mpi bem_app_config_particle_runtime Function

source plan がこの rank/size と mpi 引数の有無で構築されたかを返す。 rank、size、mpi 引数の有無はそれぞれ独立に一致する必要がある。

particle_status_name bem_status_codes Function

collision query または粒子 step の失敗 status の名前。未知の値は 'unknown'。

particle_substep_needs_halving bem_particle_stepper Function

step 候補の中点電場 e_mid が参照電場 e_ref から change_max の割合より大きく変わり、 その差が変位 x1-x0 にわたる仕事に換算して床値を超えるとき真。

particles_per_batch_from_config bem_app_config_types Function

有効な粒子種の npcls_per_step を合計し、1バッチあたりの粒子数を返す。 1つ以上の粒子種が有効で、かつ合計が正でない場合は停止する。

pcg64_open_uniform bem_counter_rng Function

PCG64(state_seed, stream) を draw 回進めた次の値を (0, 1) で返す(変換は open_uniform_from_double53)。

perf_add_elapsed bem_performance_profile Subroutine

経過時間と呼び出し回数を累積する。

perf_configure bem_performance_profile Subroutine

明示フラグで計測状態を設定する。

perf_configure_from_env bem_performance_profile Subroutine

環境変数 BEACH_PROFILE から計測状態を初期化する。

perf_is_enabled bem_performance_profile Function

粗粒度プロファイルが有効かを返す。

perf_region_begin bem_performance_profile Subroutine

フェーズ開始時刻を取得する。

perf_region_end bem_performance_profile Subroutine

フェーズ終了時刻との差分を累積する。

perf_reset bem_performance_profile Subroutine

プロファイラ状態を既定値へ戻す。

perf_set_output_context bem_performance_profile Subroutine

出力先ディレクトリとファイル書き出し可否を登録する。

perf_wall_time_seconds bem_performance_profile Function

OpenMP有効時は omp_get_wtime、それ以外は system_clock を使う壁時計。

perf_write_outputs bem_performance_profile Subroutine

集計済みプロファイルを標準出力および CSV へ書き出す。

periodic2_ewald_exp_erfc bem_coulomb_fmm_periodic_ewald Function

periodic2 Ewald の k≠0 項 exp(kz)erfc(karg0 + adz) を overflow させずに返す。 kz = ±|k|dz と adz = ±alphadz は同じ符号で、karg0 = |k|/(2 alpha) なので kz - (karg0 + adz)^2 = -(karg0^2 + adz^2) が成り立つ。 exp(kz) が binary64 で有限な kz では元の積をそのまま返す(従来の式とビット一致)。 exp(kz) が overflow する kz では y = karg0 + adz >= sqrt(2 kz) > 37 なので erfc は 0 に underflow し、 元の積は inf0 = NaN になる。この範囲だけ exp(-(karg0^2 + adz^2))erfc_scaled(y) で評価する。 真値はこのとき exp(-kz) 以下で、binary64 では 0 か非正規数になる。

periodic_cache_fingerprint bem_coulomb_fmm_periodic_cache Function
periodic_checkpoint_due bem_periodic_checkpoint Function

accepted batch batches の commit 後に定期チェックポイントを書くかを返す。

periodic_operator_checksum bem_coulomb_fmm_periodic_cache Function
periodic_shell_mean_excess bem_periodic_shell_mean Subroutine

単位電荷 1 個の s(h) と ds/dh。

periodic_shell_mean_point_excess bem_periodic_shell_mean Subroutine

点線源 1 個の s と ds/dh。平均をとるセルと画像の層数は plan の値を使う。

periodic_source_proxy_half_size bem_coulomb_fmm_types Function

Expand all box faces by the same padding, with proxy corner radius = scale * cell half diagonal.

photo_ray_macro_weight bem_photoelectron_injection Function

1 本の光線で放出されるマクロ粒子の重み(全 rank 合計 total_rays 本で放出電流を分担する)。

point_inside_box bem_collision Function
point_inside_box_periodic2 bem_collision Function
point_triangle_distance bem_panel_geometry Function
precompute_periodic2_ewald_data bem_coulomb_fmm_periodic_ewald Subroutine

periodic2 Ewald の事前計算データを作成する。

precompute_periodic_root_operator bem_coulomb_fmm_periodic_root_ops Subroutine

periodic2 の root operator を前計算する。

prefer_periodic_candidate bem_collision Function

候補 hit が現在の best より優先されるかを deterministic に判定する。

prepare_built_periodic2_collision_mesh bem_mesh Subroutine

prepare_periodic2_collision_mesh for a mesh whose geometry caches already match its vertices (built by init_mesh and not edited since). The caches and collision grid are rebuilt only when some panel is moved into the canonical cell.

prepare_panel_sources bem_coulomb_fmm_core Interface
prepare_periodic2_collision_mesh bem_mesh Subroutine

periodic2 用に primitive cell メッシュを canonical unwrapped 形へ平行移動し、 幾何キャッシュと collision grid を再構築する。

prepare_periodic_cache_and_stop main Subroutine

periodic2 の遠方補正 operator を作成(または cache から読込)して publish し、終了する。 本番 run より多い MPI rank で cold build だけを済ませる用途。target anchor が rank に分配されるので rank 数に応じて短くなる。結果ファイルや checkpoint は書かない。

prepare_regularized_qr bem_regularized_qr Subroutine
print_run_summary bem_output_writer Subroutine

実行結果の主要統計を標準出力へ表示する。

publish_cell_cache_and_unlock bem_coulomb_fmm_periodic_cell_cache Subroutine

cache にあったセルと新しく作ったセルを合わせて書き、ロックを外す。

publish_checkpoint_manifest bem_checkpoint_contract Subroutine

A complete manifest is atomically published only after every restart-bearing file is closed.

push_tri bem_templates Subroutine

三角形頂点 a,b,c を出力配列の次インデックスへ書き込む。

random_uniform bem_random_stream Interface
ray_to_rectangle bem_templates Subroutine

XY平面上で、中心からのレイと長方形境界の最短交点を返す。

read_matching_plane_summary_key bem_matching_plane_summary Subroutine

receipt のキーだけ value を読み戻す。found は表と同じ添字で、重複の検出に使う。

read_matching_summary_real bem_matching_plane_summary Subroutine
read_mesh_groups_table bem_app_config_parser Interface
read_obj_line bem_importers Subroutine

OBJの1行を長さ制限なしで読み、行末の CR を除く。 固定長バッファで読むと長い面行が短い有効な面へ切り詰められるため、 非前進読込で行末まで連結する。

read_particle_species_array bem_app_config_parser Interface
read_periodic_operator_cache bem_coulomb_fmm_periodic_cache Subroutine
read_template_array bem_app_config_parser Interface
reader_layout_path bem_config_layout_paths Function

Return the existing reader path for one grouped setting.

refresh_periodic_shell_mean_state bem_periodic_shell_mean Subroutine

線源電荷から S と dS/dz の格子値を作る。

refresh_periodic_zero_mode_state bem_periodic_zero_mode_plan Subroutine
refresh_zhao_outflow_closure bem_surface_current_model Subroutine

外部解を観測したH外向き流出で更新する。前回の根を初期値にし、同じbranchを先に試す。 根が解けないか、解けた根の closure を棄却したときは outer を前回のまま残し、success=.false. を返す。 呼出し側はこのとき前回の closure を使い続けるので、外部根もそれと揃えておく。

release_file_lock bem_filesystem Subroutine
remove_file_if_exists bem_filesystem Subroutine

Remove one named file; a missing file counts as success. unlink never removes a directory.

remove_previous_run_outputs bem_output_writer Interface
require_matching_plane_summary_keys bem_matching_plane_summary Subroutine

schema 9 以降の checkpoint では required のキーが全て揃っていなければ再開しない。

require_toml_success bem_config_toml Subroutine
reserve_particles bem_particles Subroutine

容量を capacity 以上にする。先頭 pcls%n 個だけを写し、それより後ろの値は未定義のまま残す。

reservoir_face_velocity_correction bem_app_config_particle_runtime Interface
reset_fmm_plan bem_coulomb_fmm_types Subroutine

FMM plan を初期状態へ戻す。 The plan owns only allocatable storage (no pointers), so intent(out) deallocates every component and applies the type's default values; there is no second list of fields to keep in sync.

reset_fmm_state bem_coulomb_fmm_types Subroutine

FMM state を初期状態へ戻す。

reset_periodic2_ewald_data bem_coulomb_fmm_types Subroutine

periodic2 Ewald 用の補助データを初期状態へ戻す。 intent(out) deallocates every allocatable component and applies the type's default values.

reset_periodic_shell_mean_plan bem_periodic_shell_mean Subroutine
reset_periodic_shell_mean_state bem_periodic_shell_mean Subroutine
resolve_batch_duration bem_app_config_parser Interface
resolve_box_filter_args bem_collision Subroutine

box filter 関連の optional 引数を検証付きで展開する。

resolve_config_path main Subroutine

実行時設定ファイルの読み込みパスを決定する。

resolve_external_boundary_contract bem_external_boundary_contract Subroutine

局所流入補正を解決し、種別 kinetic 障壁を初期化する。

resolve_external_e_field bem_app_config_parser Interface
resolve_face_axes bem_injection_geometry Subroutine

注入面名から接線2軸を返す。

resolve_face_geometry bem_injection_geometry Subroutine

注入面名から法線方向の幾何情報を返す。

resolve_face_sampling_geometry bem_app_config_potential_runtime Subroutine

注入面名から法線軸・接線軸・境界値・内向き法線を返す。

resolve_field_solver_mode bem_field_solver Interface
resolve_field_solver_tree_params bem_field_solver Interface
resolve_inject_face bem_config_helpers Subroutine

注入面識別子から法線軸と対応境界座標を返す。

resolve_inward_normal bem_config_helpers Subroutine

注入面識別子から内向き法線ベクトルを返す。

resolve_irradiation_cell_contract bem_irradiation_cell_contract Subroutine

preflight 済み設定から run に不変な前提を一度解決する。free-space 参照構成も保持する。

resolve_latest_checkpoint_dir bem_periodic_checkpoint Subroutine

base directory直下の最終出力と両定期slotを比較し、batch数が新しい完全checkpointを返す。 indexは同batchのslotを選ぶtie-breakにだけ使う。欠落、破損、古いindexは complete manifestを持つload可能なslotの回収を妨げない。

resolve_panel_surface_sides bem_panel_surface_sides Subroutine

Apply one policy to every element, or to the elements of one mesh_id.

resolve_panel_surface_sides_by_mesh_id bem_panel_surface_sides Subroutine

Apply policies(k) to the elements whose mesh_id is k, for k = 1..size(policies), in order. Elements are grouped by mesh_id once, so each part costs only its own size. On failure the parts before failed_mesh_id stay resolved and the failing part is left unchanged.

resolve_parallel_rank_size bem_app_config_particle_runtime Subroutine

併存対応のため mpi_context と rank/size の両方を受け、最終的なrank/sizeを解決する。

resolve_particle_boundaries bem_config_helpers Subroutine

domain topology、global既定、粒子種overrideから有効な粒子境界を解決する。

resolve_particle_boundary_candidate bem_particle_stepper Subroutine

構築済みcandidateとその場評価値からbox eventを解決する。

resolve_periodic2_axes bem_periodic2_axes Subroutine

fields.boundary="periodic2" なら周期軸 2 本と周期長を返す。それ以外は use_periodic2=.false.。

resolve_periodic2_ewald_alpha bem_coulomb_fmm_periodic_ewald Function

periodic2 Ewald の減衰係数 alpha を決定する。

restart_macro_residual_path bem_restart Interface
restart_rng_state_path bem_restart Interface
run_absorption_insulator bem_simulator Interface
sample_flux_weighted_normal_component bem_injection_flux Subroutine

flux-weighted half-range 正規分布から法線速度をサンプルする。

sample_photo_emission_velocity bem_photoelectron_injection Subroutine

光電子放出速度を局所法線座標でサンプルする。

sample_photo_ray_slot bem_photoelectron_injection Subroutine

1 本の光線を counter-based 乱数で発射し、当たれば光電子を 1 つ返す。 面内の発射位置は ray_counter の draw 1, 2、放出速度は velocity_counter で決まるので、どの rank・thread が 同じ slot を生成しても同じ粒子になる。

sample_reservoir_face_particle_counter bem_injection_flux Subroutine

上流リザーバ境界から流入する粒子を 1 つ、counter-based 乱数で面注入としてサンプルする。 同じ (seed, counter) は常に同じ粒子を返すので、どの rank・thread が生成しても結果は同じ。 速度の法線成分は flux-weighted に draw 1、面内位置は draw 2, 3、熱速度は draw 100 以降を使う。

sample_shifted_maxwell_velocities bem_injection_random Subroutine

ドリフト速度付きMaxwell分布(温度または熱速度指定)から粒子速度を生成する。

sample_standard_normal bem_injection_random Subroutine

Box–Muller法で標準正規乱数を生成し、任意形状配列へ詰める。

sample_uniform_positions bem_injection_random Subroutine

直方体領域 [low, high] 内で一様分布の初期位置をサンプリングする。

scan_obj bem_importers Subroutine

OBJを行走査して頂点数と三角形分割後の面数を事前計数する。

secondary_emission_count bem_secondary_emission Function
secondary_emission_yield bem_secondary_emission Function
seed_particles_from_config bem_app_config_particle_runtime Subroutine

バッチ生成前に乱数シードだけを初期化する。

seed_random_stream bem_random_stream Subroutine

乱数列の seed を設定する。複数の値は順に混ぜて 1 つの seed にする。

seed_rng bem_injection_random Subroutine

与えたシード列またはシステム時刻から逐次 PCG64 乱数列を初期化する。

segment_aabb_intersection_t bem_collision Subroutine

線分 p(t)=p0+t*d (0<=t<=1) とAABBの交差区間 [t_entry,t_exit] を返す。

segment_bbox_overlap bem_collision Function

線分のAABBと要素AABBの重なりを先に判定し、詳細交差計算を枝刈りする。

segment_bbox_overlap_precomputed bem_collision Function

事前計算済みの線分AABBと要素AABBの重なりを判定する。

segment_triangle_intersect bem_collision Subroutine

Möller–Trumbore法で線分と三角形の交差有無・線分パラメータ t・交点座標を計算する。

solve_regularized_qr bem_regularized_qr Subroutine
solve_zhao_outflow_closure bem_surface_current_model Subroutine

表面放出はそのままに、matching planeで観測したPE流出を外部Zhaoシースの放出源として零電流根を解き直す。

Read more…
sort_real_ascending bem_sorting Subroutine

Sort finite real values ascending in place (heapsort; equal values may change order).

species_closure_mode bem_surface_closure_contract Function

種 species_idx の固定電流 closure 方式(bem_runtime_modes の closure_mode_*)。 設定が fixed_current でも外部根の目標もなければ none。方式は contract のフラグから導くので、 方式とフラグが食い違うことはない。

species_config_path bem_app_config_types Function

診断に使う公開 species 配列の添字付きパスを返す。

species_from_defaults bem_app_config_types Function

[[particles.species]] の既定値を返す。 現行仕様では、列挙された粒子種は既定で有効とみなす。

species_number_density_m3 bem_config_helpers Function

粒子種設定から有効粒子数密度 [1/m^3] を計算する。

species_temperature_k bem_config_helpers Function

粒子種設定から有効温度 [K] を計算する。

sph bem_templates Subroutine

球座標 (theta, phi) を中心 c・半径 r の直交座標へ変換する。

stop_config_error bem_config_toml Subroutine

診断を明示出力し、Intel の動的 ERROR STOP 文字列の問題を避ける。

strip_cr bem_importers Subroutine

行末の CR 文字 (char 13) をスペースに置換し、CRLF 改行の OBJ に対応する。

surface_charge_closure_id bem_runtime_modes Function

'explicit' / 'fixed_current' / 'neutral_return' を enum へ写す。未知の値は unknown。

surface_model_id_from_name bem_app_config_mesh_runtime Function

表面モデル名をメッシュ要素用の整数IDへ変換する。

symmetric_vacuum_bottom_field bem_periodic_zero_mode_plan Function
transition_corner_count bem_templates Function

長方形外周を反時計回りに見たとき、辺遷移で通過するコーナー数を返す。

transition_corners bem_templates Subroutine

辺遷移時に通過するコーナー列(最大3点)を返す。

trim_history_files bem_output_writer Interface
trim_particles bem_particles Subroutine

先頭 n 個だけを残して配列を詰め直す。容量を先に確保して埋めた SoA を実数に合わせるときに使う。

update_mesh_geometry bem_mesh Subroutine

頂点配列から重心・法線・AABB・代表長・collision grid を再構築する。

update_state bem_coulomb_fmm_core Interface
upper_fourier_auto_height_range bem_physics_config_types Subroutine

Candidate interval [lower, upper] of the automatic upper Fourier switch height. Shared by the preflight and the snapshot's candidate planes. lower keeps the 0.25 min(Lx,Ly) clearance above the mesh top; upper sits 1e-9 of the box height below H, and at least one float below H when that margin is under H's ULP, so the interval depends on the box geometry and not on the sign or magnitude of the absolute z coordinate.

use_periodic2_cached_kneq0 bem_coulomb_fmm_periodic Function
use_periodic2_root_operator bem_coulomb_fmm_periodic Function

periodic2 の root operator を使うか判定する。

validate_active_physics_config bem_physics_config_types Subroutine

有限画像、panel reference、cached k!=0 の periodic2 構成を検証する。

validate_phase1_panel_config bem_physics_config_types Subroutine

triangle P0 direct/treecode/FMM kernel の solver/boundary 契約を検証する。

validate_restart_contract bem_restart Interface
validate_upper_fourier_height bem_physics_config_types Subroutine

Geometry preflight after mesh construction; called before the cached operator is built.

warn_face_average_potential_variation bem_app_config_potential_runtime Subroutine

注入面の局所電位差が面平均 reservoir 近似の特徴エネルギーに対して大きい場合に警告する。

wrap_periodic2_point bem_coulomb_fmm_periodic Subroutine

periodic2 領域内へ点座標を折り返す。評価点はここで一度だけ正準化し、以降の leaf 探索と展開は同じ座標を使う。

wrap_periodic2_point bem_collision Subroutine

point を primary cell へ折り返す。

wrap_src_pos_to_primary_cell bem_coulomb_fmm_periodic Subroutine

plan 内の全ソース位置を primary cell [target_box_min, target_box_min+L) へ折り返す。

write_checkpoint_state_files bem_output_writer Subroutine

再開に必要な root-rank 共通状態だけをチェックポイントへ保存する。

write_fixed_current_history_rows bem_output_writer Interface
write_macro_residuals_file bem_restart Interface
write_matching_plane_history_snapshot bem_output_writer Interface
write_matching_plane_spectrum_history_rows bem_output_writer Interface
write_matching_plane_summary bem_matching_plane_summary Subroutine

receipt を表の順に summary.txt へ書く。

write_periodic_operator_cache bem_coulomb_fmm_periodic_cache Subroutine
write_result_files bem_output_writer Subroutine

解析結果を summary.txt / charges.csv / mesh_triangles.csv などとして保存する。

write_secondary_emission_history_rows bem_output_writer Interface
write_top_reference_history_snapshot bem_output_writer Interface
zero_mode_charge_primitive bem_periodic_zero_mode_plan Function
zero_mode_heights_coincide bem_periodic_zero_mode_plan Function

Two heights are one breakpoint when they differ by at most the plan's geometric tolerance or by the few ULPs that binary64 cannot resolve at their magnitude. Only the second term sees the absolute coordinate, so a representable tilt (tens of ULPs) far from the origin stays inclined.

zero_mode_interval_origin bem_periodic_zero_mode_plan Function

区間 interval の累積電荷多項式の原点。区間 1 は最下 break、それ以外は区間の左端 break。

call~~graph~~CallGraph interface~apply_domain_toml_table apply_domain_toml_table interface~apply_field_boundary_toml_table apply_field_boundary_toml_table interface~apply_fixed_surface_current_closure apply_fixed_surface_current_closure interface~apply_mesh_group_toml_table apply_mesh_group_toml_table interface~apply_mesh_toml_table apply_mesh_toml_table interface~apply_output_toml_table apply_output_toml_table interface~apply_particle_boundary_toml_table apply_particle_boundary_toml_table interface~apply_particles_species_toml_table apply_particles_species_toml_table interface~apply_particles_toml_table apply_particles_toml_table interface~apply_periodic2_toml_table apply_periodic2_toml_table interface~apply_physics_authoring apply_physics_authoring interface~apply_reservoir_toml_table apply_reservoir_toml_table interface~apply_sim_toml_table apply_sim_toml_table interface~apply_species_boundary_inflow_toml_table apply_species_boundary_inflow_toml_table interface~apply_species_boundary_toml_table apply_species_boundary_toml_table interface~apply_surface_current_model_toml_table apply_surface_current_model_toml_table interface~apply_template_toml_table apply_template_toml_table interface~build_batch_injection_layout build_batch_injection_layout interface~build_panel_plan build_panel_plan interface~build_plan build_plan interface~complete_plan complete_plan interface~destroy_plan destroy_plan interface~destroy_state destroy_state interface~ensure_particle_species_capacity ensure_particle_species_capacity interface~ensure_template_capacity ensure_template_capacity interface~eval_direct_points eval_direct_points interface~eval_direct_potential_points eval_direct_potential_points interface~eval_point eval_point interface~eval_points eval_points interface~eval_potential_point eval_potential_point interface~eval_potential_points eval_potential_points interface~external_kinetic_face_velocity_correction external_kinetic_face_velocity_correction interface~generate_batch_slot generate_batch_slot interface~init_particle_batch_from_config init_particle_batch_from_config interface~lower_boundary_authoring lower_boundary_authoring interface~open_fixed_current_history_writer open_fixed_current_history_writer interface~open_history_writer open_history_writer interface~open_matching_plane_history_writer open_matching_plane_history_writer interface~open_matching_plane_spectrum_history_writer open_matching_plane_spectrum_history_writer interface~open_potential_history_writer open_potential_history_writer interface~open_secondary_emission_history_writer open_secondary_emission_history_writer interface~open_top_reference_history_writer open_top_reference_history_writer interface~prepare_panel_sources prepare_panel_sources interface~random_uniform random_uniform interface~read_mesh_groups_table read_mesh_groups_table interface~read_particle_species_array read_particle_species_array interface~read_template_array read_template_array interface~remove_previous_run_outputs remove_previous_run_outputs interface~reservoir_face_velocity_correction reservoir_face_velocity_correction interface~resolve_batch_duration resolve_batch_duration interface~resolve_external_e_field resolve_external_e_field interface~resolve_field_solver_mode resolve_field_solver_mode interface~resolve_field_solver_tree_params resolve_field_solver_tree_params interface~restart_macro_residual_path restart_macro_residual_path interface~restart_rng_state_path restart_rng_state_path interface~run_absorption_insulator run_absorption_insulator interface~trim_history_files trim_history_files interface~update_state update_state interface~validate_restart_contract validate_restart_contract interface~write_fixed_current_history_rows write_fixed_current_history_rows interface~write_macro_residuals_file write_macro_residuals_file interface~write_matching_plane_history_snapshot write_matching_plane_history_snapshot interface~write_matching_plane_spectrum_history_rows write_matching_plane_spectrum_history_rows interface~write_secondary_emission_history_rows write_secondary_emission_history_rows interface~write_top_reference_history_snapshot write_top_reference_history_snapshot proc~accumulate_charge_ledger accumulate_charge_ledger proc~checked_accumulate_charge checked_accumulate_charge proc~accumulate_charge_ledger->proc~checked_accumulate_charge none~init charge_ledger_type%init proc~accumulate_charge_ledger->none~init proc~acquire_file_lock acquire_file_lock proc~active_tree_child_count active_tree_child_count proc~active_tree_child_idx active_tree_child_idx proc~active_tree_child_octant active_tree_child_octant proc~active_tree_level_bounds active_tree_level_bounds proc~active_tree_level_node active_tree_level_node proc~active_tree_max_depth active_tree_max_depth proc~active_tree_nnode active_tree_nnode proc~active_tree_node_center active_tree_node_center proc~active_tree_node_half_size active_tree_node_half_size proc~active_tree_node_radius active_tree_node_radius proc~add_periodic2_exact_ewald_correction_single_source add_periodic2_exact_ewald_correction_single_source proc~periodic2_ewald_exp_erfc periodic2_ewald_exp_erfc proc~add_periodic2_exact_ewald_correction_single_source->proc~periodic2_ewald_exp_erfc proc~add_periodic2_exact_ewald_field_potential_single_source add_periodic2_exact_ewald_field_potential_single_source proc~add_periodic2_exact_ewald_field_potential_single_source->proc~periodic2_ewald_exp_erfc proc~add_periodic2_exact_ewald_kneq0_correction_single_source add_periodic2_exact_ewald_kneq0_correction_single_source proc~add_periodic2_exact_ewald_kneq0_correction_single_source->proc~periodic2_ewald_exp_erfc proc~add_periodic2_exact_ewald_potential_correction_single_source add_periodic2_exact_ewald_potential_correction_single_source proc~add_periodic2_exact_ewald_potential_correction_single_source->proc~periodic2_ewald_exp_erfc proc~add_periodic2_kneq0_potential_correction_single_source add_periodic2_kneq0_potential_correction_single_source proc~add_periodic2_kneq0_potential_correction_single_source->proc~periodic2_ewald_exp_erfc proc~add_point_charge_images_field add_point_charge_images_field proc~advance_particle_step advance_particle_step proc~apply_escape_reflect_periodic_event apply_escape_reflect_periodic_event proc~advance_particle_step->proc~apply_escape_reflect_periodic_event proc~build_particle_step_candidate build_particle_step_candidate proc~advance_particle_step->proc~build_particle_step_candidate proc~counter_uniforms counter_uniforms proc~advance_particle_step->proc~counter_uniforms proc~find_first_boundary_event find_first_boundary_event proc~advance_particle_step->proc~find_first_boundary_event proc~find_first_hit find_first_hit proc~advance_particle_step->proc~find_first_hit none~crosses_wall_outward irradiation_cell_contract_type%crosses_wall_outward proc~advance_particle_step->none~crosses_wall_outward none~eval_local_phi electrostatic_snapshot_type%eval_local_phi proc~advance_particle_step->none~eval_local_phi none~eval_upper_panel_fourier_phi electrostatic_snapshot_type%eval_upper_panel_fourier_phi proc~advance_particle_step->none~eval_upper_panel_fourier_phi none~outward_normal_velocity irradiation_cell_contract_type%outward_normal_velocity proc~advance_particle_step->none~outward_normal_velocity proc~advance_particle_step_upper_panel_fourier advance_particle_step_upper_panel_fourier proc~advance_particle_step_upper_panel_fourier->proc~apply_escape_reflect_periodic_event proc~advance_particle_step_upper_panel_fourier->proc~build_particle_step_candidate proc~advance_particle_step_upper_panel_fourier->proc~counter_uniforms proc~advance_particle_step_upper_panel_fourier->proc~find_first_boundary_event proc~advance_particle_step_upper_panel_fourier->proc~find_first_hit proc~advance_particle_step_upper_panel_fourier->none~crosses_wall_outward proc~advance_particle_step_upper_panel_fourier->none~eval_local_phi proc~advance_particle_step_upper_panel_fourier->none~eval_upper_panel_fourier_phi proc~advance_particle_step_upper_panel_fourier->none~outward_normal_velocity proc~allocate_particles allocate_particles proc~append_i32_buffer append_i32_buffer proc~append_mesh_ids append_mesh_ids proc~append_particles append_particles proc~extend_particles extend_particles proc~append_particles->proc~extend_particles proc~append_real_values append_real_values proc~append_triangles append_triangles proc~apply_kinetic_map_arguments apply_kinetic_map_arguments proc~apply_number_flux_override_arguments apply_number_flux_override_arguments proc~apply_obj_transform apply_obj_transform proc~init_mesh init_mesh proc~apply_obj_transform->proc~init_mesh proc~apply_panel_surface_config apply_panel_surface_config proc~mesh_part_config_path mesh_part_config_path proc~apply_panel_surface_config->proc~mesh_part_config_path proc~resolve_panel_surface_sides_by_mesh_id resolve_panel_surface_sides_by_mesh_id proc~apply_panel_surface_config->proc~resolve_panel_surface_sides_by_mesh_id proc~apply_periodic2_minimum_image apply_periodic2_minimum_image proc~apply_ray_box_boundary apply_ray_box_boundary proc~apply_toml_document apply_toml_document proc~apply_toml_document->interface~apply_domain_toml_table proc~apply_toml_document->interface~apply_field_boundary_toml_table proc~apply_toml_document->interface~apply_mesh_toml_table proc~apply_toml_document->interface~apply_output_toml_table proc~apply_toml_document->interface~apply_particle_boundary_toml_table proc~apply_toml_document->interface~apply_particles_toml_table proc~apply_toml_document->interface~apply_periodic2_toml_table proc~apply_toml_document->interface~apply_reservoir_toml_table proc~apply_toml_document->interface~apply_sim_toml_table proc~apply_toml_document->interface~apply_surface_current_model_toml_table proc~lower_ascii lower_ascii proc~apply_toml_document->proc~lower_ascii proc~require_toml_success require_toml_success proc~apply_toml_document->proc~require_toml_success get_keys get_keys proc~apply_toml_document->get_keys get_value get_value proc~apply_toml_document->get_value proc~atomic_rename atomic_rename proc~bbox_inside_box bbox_inside_box proc~beach_kernel_build beach_kernel_build proc~beach_kernel_build->interface~build_panel_plan proc~beach_kernel_build->interface~destroy_plan proc~beach_kernel_build->interface~destroy_state proc~beach_kernel_build->interface~prepare_panel_sources proc~init_panel_geometry init_panel_geometry proc~beach_kernel_build->proc~init_panel_geometry proc~beach_kernel_create beach_kernel_create proc~beach_kernel_destroy beach_kernel_destroy proc~beach_kernel_destroy->interface~destroy_plan proc~beach_kernel_destroy->interface~destroy_state proc~beach_kernel_eval_e beach_kernel_eval_e proc~beach_kernel_eval_e->interface~complete_plan proc~beach_kernel_eval_e->interface~eval_points proc~beach_kernel_eval_e->interface~update_state proc~beach_kernel_eval_e_direct beach_kernel_eval_e_direct proc~beach_kernel_eval_e_direct->interface~eval_direct_points proc~beach_kernel_eval_phi beach_kernel_eval_phi proc~beach_kernel_eval_phi->interface~complete_plan proc~beach_kernel_eval_phi->interface~eval_potential_points proc~beach_kernel_eval_phi->interface~update_state proc~beach_kernel_eval_phi_direct beach_kernel_eval_phi_direct proc~beach_kernel_eval_phi_direct->interface~eval_direct_potential_points proc~beach_kernel_force_on_charges beach_kernel_force_on_charges proc~beach_kernel_force_on_charges->interface~complete_plan proc~beach_kernel_force_on_charges->interface~eval_points proc~beach_kernel_force_on_charges->interface~update_state proc~beach_kernel_get_abi_version beach_kernel_get_abi_version proc~beach_kernel_get_build_info beach_kernel_get_build_info proc~beach_kernel_get_periodic_cache_info beach_kernel_get_periodic_cache_info proc~beach_kernel_set_periodic_cache beach_kernel_set_periodic_cache proc~beach_kernel_update_charges beach_kernel_update_charges proc~beach_zero_mode_build beach_zero_mode_build proc~build_periodic_zero_mode_height_plan build_periodic_zero_mode_height_plan proc~beach_zero_mode_build->proc~build_periodic_zero_mode_height_plan proc~beach_zero_mode_create beach_zero_mode_create proc~beach_zero_mode_destroy beach_zero_mode_destroy proc~beach_zero_mode_eval beach_zero_mode_eval proc~eval_periodic_zero_mode eval_periodic_zero_mode proc~beach_zero_mode_eval->proc~eval_periodic_zero_mode proc~beach_zero_mode_update beach_zero_mode_update proc~refresh_periodic_zero_mode_state refresh_periodic_zero_mode_state proc~beach_zero_mode_update->proc~refresh_periodic_zero_mode_state proc~begin_checkpoint_publish begin_checkpoint_publish proc~begin_checkpoint_publish->proc~atomic_rename proc~boris_push boris_push proc~boris_update_velocity boris_update_velocity proc~boris_push->proc~boris_update_velocity proc~cross cross proc~boris_update_velocity->proc~cross proc~boundary_face_name boundary_face_name proc~boundary_inflow_face_enabled boundary_inflow_face_enabled proc~build_axis_powers build_axis_powers proc~build_collision_grid build_collision_grid proc~cell_id cell_id proc~build_collision_grid->proc~cell_id proc~coord_to_cell coord_to_cell proc~build_collision_grid->proc~coord_to_cell proc~build_mesh_from_config build_mesh_from_config proc~build_mesh_from_config->proc~apply_panel_surface_config proc~build_parts_mesh build_parts_mesh proc~build_mesh_from_config->proc~build_parts_mesh proc~build_mesh_from_indexed build_mesh_from_indexed proc~build_mesh_from_indexed->proc~init_mesh proc~build_one_template build_one_template proc~build_one_template->proc~lower_ascii proc~make_annulus make_annulus proc~build_one_template->proc~make_annulus proc~make_box make_box proc~build_one_template->proc~make_box proc~make_cylinder make_cylinder proc~build_one_template->proc~make_cylinder proc~make_disk make_disk proc~build_one_template->proc~make_disk proc~make_icosphere make_icosphere proc~build_one_template->proc~make_icosphere proc~make_plane make_plane proc~build_one_template->proc~make_plane proc~make_plate_hole make_plate_hole proc~build_one_template->proc~make_plate_hole proc~make_sphere make_sphere proc~build_one_template->proc~make_sphere proc~build_panel_duffy_quadrature build_panel_duffy_quadrature proc~gauss_legendre_unit gauss_legendre_unit proc~build_panel_duffy_quadrature->proc~gauss_legendre_unit proc~build_panel_quadrature build_panel_quadrature proc~fill_panel_quadrature fill_panel_quadrature proc~build_panel_quadrature->proc~fill_panel_quadrature proc~build_particle_source_plan build_particle_source_plan proc~build_particle_source_plan->proc~apply_kinetic_map_arguments proc~build_particle_source_plan->proc~apply_number_flux_override_arguments proc~has_boundary_inflow has_boundary_inflow proc~build_particle_source_plan->proc~has_boundary_inflow proc~build_particle_source_plan->proc~lower_ascii proc~resolve_parallel_rank_size resolve_parallel_rank_size proc~build_particle_source_plan->proc~resolve_parallel_rank_size proc~species_config_path species_config_path proc~build_particle_source_plan->proc~species_config_path proc~species_number_density_m3 species_number_density_m3 proc~build_particle_source_plan->proc~species_number_density_m3 proc~species_temperature_k species_temperature_k proc~build_particle_source_plan->proc~species_temperature_k proc~build_particle_step_candidate->proc~boris_push none~eval_local_e electrostatic_snapshot_type%eval_local_e proc~build_particle_step_candidate->none~eval_local_e none~eval_upper_panel_fourier_e electrostatic_snapshot_type%eval_upper_panel_fourier_e proc~build_particle_step_candidate->none~eval_upper_panel_fourier_e proc~build_parts_mesh->proc~apply_obj_transform proc~build_parts_mesh->proc~build_one_template proc~build_parts_mesh->proc~init_mesh proc~load_obj_mesh load_obj_mesh proc~build_parts_mesh->proc~load_obj_mesh proc~surface_model_id_from_name surface_model_id_from_name proc~build_parts_mesh->proc~surface_model_id_from_name proc~build_periodic_shell_mean_plan build_periodic_shell_mean_plan proc~periodic_shell_mean_point_excess periodic_shell_mean_point_excess proc~build_periodic_shell_mean_plan->proc~periodic_shell_mean_point_excess proc~reset_periodic_shell_mean_plan reset_periodic_shell_mean_plan proc~build_periodic_shell_mean_plan->proc~reset_periodic_shell_mean_plan proc~build_periodic_shift_values build_periodic_shift_values proc~sort_real_ascending sort_real_ascending proc~build_periodic_zero_mode_height_plan->proc~sort_real_ascending proc~zero_mode_heights_coincide zero_mode_heights_coincide proc~build_periodic_zero_mode_height_plan->proc~zero_mode_heights_coincide proc~build_periodic_zero_mode_plan build_periodic_zero_mode_plan proc~build_periodic_zero_mode_plan->proc~build_periodic_zero_mode_height_plan proc~build_tangent_basis build_tangent_basis proc~canonicalize_periodic_emission_position canonicalize_periodic_emission_position proc~cast_photo_ray cast_photo_ray proc~cast_photo_ray->proc~apply_ray_box_boundary proc~cast_photo_ray->proc~canonicalize_periodic_emission_position proc~cast_photo_ray->proc~find_first_hit proc~cell_id~2 cell_id proc~checkpoint_schema_is_loadable checkpoint_schema_is_loadable proc~close_run_outputs close_run_outputs proc~compute_face_area_from_bounds compute_face_area_from_bounds proc~resolve_face_axes resolve_face_axes proc~compute_face_area_from_bounds->proc~resolve_face_axes proc~compute_face_average_potential compute_face_average_potential proc~resolve_face_sampling_geometry resolve_face_sampling_geometry proc~compute_face_average_potential->proc~resolve_face_sampling_geometry proc~compute_face_average_potential->none~eval_local_phi proc~compute_inflow_flux_from_drifting_maxwellian compute_inflow_flux_from_drifting_maxwellian proc~compute_laplace_derivatives compute_laplace_derivatives proc~compute_laplace_derivatives_reference compute_laplace_derivatives_reference proc~compute_macro_particles_for_batch compute_macro_particles_for_batch proc~compute_macro_particles_for_batch->proc~compute_face_area_from_bounds proc~compute_macro_particles_for_batch->proc~compute_inflow_flux_from_drifting_maxwellian proc~resolve_face_geometry resolve_face_geometry proc~compute_macro_particles_for_batch->proc~resolve_face_geometry proc~compute_macro_particles_for_species compute_macro_particles_for_species proc~compute_macro_particles_for_species->proc~compute_macro_particles_for_batch proc~compute_macro_particles_from_flux compute_macro_particles_from_flux proc~compute_macro_particles_for_species->proc~compute_macro_particles_from_flux proc~compute_macro_particles_for_species->proc~species_number_density_m3 proc~compute_macro_particles_for_species->proc~species_temperature_k proc~compute_macro_particles_from_flux->proc~compute_face_area_from_bounds proc~compute_wall_box_potential_statistics compute_wall_box_potential_statistics proc~compute_wall_box_potential_statistics->proc~resolve_face_sampling_geometry proc~compute_wall_box_potential_statistics->none~eval_local_phi none~wall_face_name irradiation_cell_contract_type%wall_face_name proc~compute_wall_box_potential_statistics->none~wall_face_name proc~config_uses_surface_model config_uses_surface_model proc~coord_to_cell~2 coord_to_cell proc~core_build_panel_plan_impl core_build_panel_plan_impl proc~core_complete_plan_impl core_complete_plan_impl proc~core_build_panel_plan_impl->proc~core_complete_plan_impl proc~core_prepare_panel_sources_impl core_prepare_panel_sources_impl proc~core_build_panel_plan_impl->proc~core_prepare_panel_sources_impl proc~core_build_plan_impl core_build_plan_impl proc~core_build_plan_impl->proc~core_complete_plan_impl proc~core_destroy_plan_impl core_destroy_plan_impl proc~core_build_plan_impl->proc~core_destroy_plan_impl proc~default_periodic_cache_directory default_periodic_cache_directory proc~core_build_plan_impl->proc~default_periodic_cache_directory proc~has_valid_target_box has_valid_target_box proc~core_build_plan_impl->proc~has_valid_target_box proc~core_build_plan_impl->proc~init_panel_geometry proc~core_build_plan_impl->proc~sort_real_ascending proc~use_periodic2_cached_kneq0 use_periodic2_cached_kneq0 proc~core_build_plan_impl->proc~use_periodic2_cached_kneq0 proc~wrap_src_pos_to_primary_cell wrap_src_pos_to_primary_cell proc~core_build_plan_impl->proc~wrap_src_pos_to_primary_cell proc~core_complete_plan_impl->proc~active_tree_child_count proc~core_complete_plan_impl->proc~active_tree_child_idx proc~core_complete_plan_impl->proc~active_tree_nnode proc~core_complete_plan_impl->proc~active_tree_node_center proc~core_complete_plan_impl->proc~active_tree_node_radius proc~core_complete_plan_impl->proc~append_i32_buffer proc~core_complete_plan_impl->proc~build_axis_powers proc~core_complete_plan_impl->proc~build_periodic_shell_mean_plan proc~core_complete_plan_impl->proc~build_periodic_shift_values proc~core_complete_plan_impl->proc~build_periodic_zero_mode_height_plan proc~core_complete_plan_impl->proc~compute_laplace_derivatives proc~distance_to_source_bbox distance_to_source_bbox proc~core_complete_plan_impl->proc~distance_to_source_bbox proc~distance_to_source_bbox_periodic distance_to_source_bbox_periodic proc~core_complete_plan_impl->proc~distance_to_source_bbox_periodic proc~core_complete_plan_impl->proc~has_valid_target_box proc~initialize_basis_tables initialize_basis_tables proc~core_complete_plan_impl->proc~initialize_basis_tables proc~nodes_well_separated nodes_well_separated proc~core_complete_plan_impl->proc~nodes_well_separated proc~octant_index octant_index proc~core_complete_plan_impl->proc~octant_index proc~periodic_source_proxy_half_size periodic_source_proxy_half_size proc~core_complete_plan_impl->proc~periodic_source_proxy_half_size proc~precompute_periodic2_ewald_data precompute_periodic2_ewald_data proc~core_complete_plan_impl->proc~precompute_periodic2_ewald_data proc~precompute_periodic_root_operator precompute_periodic_root_operator proc~core_complete_plan_impl->proc~precompute_periodic_root_operator proc~core_complete_plan_impl->proc~use_periodic2_cached_kneq0 proc~reset_fmm_plan reset_fmm_plan proc~core_destroy_plan_impl->proc~reset_fmm_plan proc~core_destroy_state_impl core_destroy_state_impl proc~reset_fmm_state reset_fmm_state proc~core_destroy_state_impl->proc~reset_fmm_state proc~core_eval_direct_points_impl core_eval_direct_points_impl proc~panel_potential_field_translated panel_potential_field_translated proc~core_eval_direct_points_impl->proc~panel_potential_field_translated proc~core_eval_direct_potential_points_impl core_eval_direct_potential_points_impl proc~core_eval_direct_potential_points_impl->proc~panel_potential_field_translated proc~core_eval_point_impl core_eval_point_impl proc~core_eval_point_impl->proc~active_tree_child_count proc~core_eval_point_impl->proc~active_tree_child_idx proc~core_eval_point_impl->proc~active_tree_child_octant proc~core_eval_point_impl->proc~active_tree_nnode proc~core_eval_point_impl->proc~active_tree_node_center proc~core_eval_point_impl->proc~active_tree_node_half_size proc~core_eval_point_impl->proc~build_axis_powers proc~eval_periodic_shell_mean eval_periodic_shell_mean proc~core_eval_point_impl->proc~eval_periodic_shell_mean proc~core_eval_point_impl->proc~eval_periodic_zero_mode proc~core_eval_point_impl->proc~octant_index proc~panel_field_sum_translated panel_field_sum_translated proc~core_eval_point_impl->proc~panel_field_sum_translated proc~panel_field_sum_translated_sp panel_field_sum_translated_sp proc~core_eval_point_impl->proc~panel_field_sum_translated_sp proc~core_eval_point_impl->proc~panel_potential_field_translated proc~core_eval_point_impl->proc~use_periodic2_cached_kneq0 proc~wrap_periodic2_point wrap_periodic2_point proc~core_eval_point_impl->proc~wrap_periodic2_point proc~core_eval_points_impl core_eval_points_impl proc~core_eval_points_impl->proc~active_tree_child_count proc~core_eval_points_impl->proc~active_tree_child_idx proc~core_eval_points_impl->proc~active_tree_child_octant proc~core_eval_points_impl->proc~active_tree_nnode proc~core_eval_points_impl->proc~active_tree_node_center proc~core_eval_points_impl->proc~active_tree_node_half_size proc~core_eval_points_impl->proc~build_axis_powers proc~core_eval_points_impl->proc~eval_periodic_shell_mean proc~core_eval_points_impl->proc~eval_periodic_zero_mode proc~core_eval_points_impl->proc~octant_index proc~core_eval_points_impl->proc~panel_field_sum_translated proc~core_eval_points_impl->proc~panel_field_sum_translated_sp proc~core_eval_points_impl->proc~panel_potential_field_translated proc~core_eval_points_impl->proc~use_periodic2_cached_kneq0 proc~core_eval_points_impl->proc~wrap_periodic2_point proc~core_eval_potential_point_impl core_eval_potential_point_impl proc~core_eval_potential_point_impl->proc~active_tree_child_count proc~core_eval_potential_point_impl->proc~active_tree_child_idx proc~core_eval_potential_point_impl->proc~active_tree_child_octant proc~core_eval_potential_point_impl->proc~active_tree_nnode proc~core_eval_potential_point_impl->proc~active_tree_node_center proc~core_eval_potential_point_impl->proc~active_tree_node_half_size proc~core_eval_potential_point_impl->proc~build_axis_powers proc~core_eval_potential_point_impl->proc~eval_periodic_shell_mean proc~core_eval_potential_point_impl->proc~eval_periodic_zero_mode proc~core_eval_potential_point_impl->proc~octant_index proc~core_eval_potential_point_impl->proc~panel_potential_field_translated proc~panel_potential_sum_translated panel_potential_sum_translated proc~core_eval_potential_point_impl->proc~panel_potential_sum_translated proc~panel_potential_sum_translated_sp panel_potential_sum_translated_sp proc~core_eval_potential_point_impl->proc~panel_potential_sum_translated_sp proc~core_eval_potential_point_impl->proc~use_periodic2_cached_kneq0 proc~core_eval_potential_point_impl->proc~wrap_periodic2_point proc~core_eval_potential_points_impl core_eval_potential_points_impl proc~core_eval_potential_points_impl->proc~active_tree_child_count proc~core_eval_potential_points_impl->proc~active_tree_child_idx proc~core_eval_potential_points_impl->proc~active_tree_child_octant proc~core_eval_potential_points_impl->proc~active_tree_nnode proc~core_eval_potential_points_impl->proc~active_tree_node_center proc~core_eval_potential_points_impl->proc~active_tree_node_half_size proc~core_eval_potential_points_impl->proc~build_axis_powers proc~core_eval_potential_points_impl->proc~eval_periodic_shell_mean proc~core_eval_potential_points_impl->proc~eval_periodic_zero_mode proc~core_eval_potential_points_impl->proc~octant_index proc~core_eval_potential_points_impl->proc~panel_potential_field_translated proc~core_eval_potential_points_impl->proc~panel_potential_sum_translated proc~core_eval_potential_points_impl->proc~panel_potential_sum_translated_sp proc~core_eval_potential_points_impl->proc~use_periodic2_cached_kneq0 proc~core_eval_potential_points_impl->proc~wrap_periodic2_point proc~core_prepare_panel_sources_impl->proc~core_destroy_plan_impl proc~core_prepare_panel_sources_impl->proc~default_periodic_cache_directory proc~core_prepare_panel_sources_impl->proc~has_valid_target_box proc~core_prepare_panel_sources_impl->proc~init_panel_geometry proc~core_prepare_panel_sources_impl->proc~sort_real_ascending proc~core_prepare_panel_sources_impl->proc~use_periodic2_cached_kneq0 proc~core_prepare_panel_sources_impl->proc~wrap_src_pos_to_primary_cell proc~core_update_state_impl core_update_state_impl proc~core_update_state_impl->proc~active_tree_level_bounds proc~core_update_state_impl->proc~active_tree_level_node proc~core_update_state_impl->proc~active_tree_max_depth proc~initialize_fmm_state initialize_fmm_state proc~core_update_state_impl->proc~initialize_fmm_state proc~mpi_allgatherv_inplace_i32 mpi_allgatherv_inplace_i32 proc~core_update_state_impl->proc~mpi_allgatherv_inplace_i32 proc~mpi_allgatherv_inplace_real_dp mpi_allgatherv_inplace_real_dp proc~core_update_state_impl->proc~mpi_allgatherv_inplace_real_dp proc~mpi_get_rank_size mpi_get_rank_size proc~core_update_state_impl->proc~mpi_get_rank_size proc~refresh_periodic_shell_mean_state refresh_periodic_shell_mean_state proc~core_update_state_impl->proc~refresh_periodic_shell_mean_state proc~core_update_state_impl->proc~refresh_periodic_zero_mode_state proc~corner_between corner_between proc~count_face_tokens count_face_tokens proc~next_face_token next_face_token proc~count_face_tokens->proc~next_face_token proc~counter_child_id counter_child_id proc~counter_key counter_key proc~counter_uniform counter_uniform proc~counter_uniform->proc~counter_key proc~pcg64_open_uniform pcg64_open_uniform proc~counter_uniform->proc~pcg64_open_uniform none~next_uniform counter_stream_type%next_uniform proc~counter_uniforms->none~next_uniform proc~create_directories create_directories proc~cross~2 cross proc~cross~3 cross proc~default_app_config default_app_config proc~default_app_config->proc~default_periodic_cache_directory proc~normalize_legacy_physics_config normalize_legacy_physics_config proc~default_app_config->proc~normalize_legacy_physics_config proc~derive_field_panel_config derive_field_panel_config proc~derive_field_panel_config->proc~lower_ascii proc~distance_to_source_bbox_periodic->proc~apply_periodic2_minimum_image proc~edge_next_ccw edge_next_ccw proc~edge_order_index edge_order_index proc~ensure_authoring_group_capacity ensure_authoring_group_capacity proc~ensure_authoring_particle_capacity ensure_authoring_particle_capacity proc~ensure_authoring_template_capacity ensure_authoring_template_capacity proc~ensure_output_dir ensure_output_dir proc~ensure_output_dir->proc~create_directories proc~eval_periodic_nonzero_panel_reference eval_periodic_nonzero_panel_reference proc~eval_periodic_nonzero_panel_reference->proc~build_panel_duffy_quadrature proc~eval_periodic_nonzero_panel_reference->proc~init_panel_geometry proc~locate_zero_mode_interval locate_zero_mode_interval proc~eval_periodic_zero_mode->proc~locate_zero_mode_interval proc~zero_mode_charge_primitive zero_mode_charge_primitive proc~eval_periodic_zero_mode->proc~zero_mode_charge_primitive proc~zero_mode_interval_origin zero_mode_interval_origin proc~eval_periodic_zero_mode->proc~zero_mode_interval_origin proc~evaluate_surface_closure evaluate_surface_closure proc~evaluate_surface_current_model evaluate_surface_current_model proc~evaluate_surface_closure->proc~evaluate_surface_current_model proc~evaluate_surface_current_model->proc~lower_ascii proc~resolve_irradiation_cell_contract resolve_irradiation_cell_contract proc~evaluate_surface_current_model->proc~resolve_irradiation_cell_contract proc~evaluate_surface_current_model->proc~species_number_density_m3 proc~evaluate_surface_current_model->proc~species_temperature_k conditions conditions proc~evaluate_surface_current_model->conditions emitted_fluxes emitted_fluxes proc~evaluate_surface_current_model->emitted_fluxes initialize initialize proc~evaluate_surface_current_model->initialize maxwellian_emission maxwellian_emission proc~evaluate_surface_current_model->maxwellian_emission proc~evaluate_surface_current_model->none~outward_normal_velocity none~wall_area irradiation_cell_contract_type%wall_area proc~evaluate_surface_current_model->none~wall_area none~wall_tangents_periodic irradiation_cell_contract_type%wall_tangents_periodic proc~evaluate_surface_current_model->none~wall_tangents_periodic proc~particle_capacity particle_capacity proc~extend_particles->proc~particle_capacity proc~reserve_particles reserve_particles proc~extend_particles->proc~reserve_particles proc~factor_tall_matrix_qr factor_tall_matrix_qr proc~field_solver_mode_id field_solver_mode_id proc~field_solver_mode_id->proc~lower_ascii proc~find_first_hit_base find_first_hit_base proc~find_first_hit->proc~find_first_hit_base proc~find_first_hit_periodic2 find_first_hit_periodic2 proc~find_first_hit->proc~find_first_hit_periodic2 proc~initialize_hit initialize_hit proc~find_first_hit->proc~initialize_hit proc~find_first_hit_base_grid find_first_hit_base_grid proc~find_first_hit_base->proc~find_first_hit_base_grid proc~find_first_hit_base_linear find_first_hit_base_linear proc~find_first_hit_base->proc~find_first_hit_base_linear proc~find_first_hit_base->proc~initialize_hit proc~resolve_box_filter_args resolve_box_filter_args proc~find_first_hit_base->proc~resolve_box_filter_args proc~find_first_hit_base_grid->proc~bbox_inside_box proc~find_first_hit_base_grid->proc~cell_id~2 proc~find_first_hit_base_grid->proc~coord_to_cell~2 proc~find_first_hit_base_grid->proc~lower_ascii proc~point_inside_box point_inside_box proc~find_first_hit_base_grid->proc~point_inside_box proc~segment_aabb_intersection_t segment_aabb_intersection_t proc~find_first_hit_base_grid->proc~segment_aabb_intersection_t proc~segment_bbox_overlap_precomputed segment_bbox_overlap_precomputed proc~find_first_hit_base_grid->proc~segment_bbox_overlap_precomputed proc~segment_triangle_intersect segment_triangle_intersect proc~find_first_hit_base_grid->proc~segment_triangle_intersect proc~find_first_hit_base_linear->proc~bbox_inside_box proc~find_first_hit_base_linear->proc~point_inside_box proc~find_first_hit_base_linear->proc~segment_bbox_overlap_precomputed proc~find_first_hit_base_linear->proc~segment_triangle_intersect proc~find_first_hit_periodic2->proc~find_first_hit_base proc~find_first_hit_periodic2->proc~initialize_hit proc~point_inside_box_periodic2 point_inside_box_periodic2 proc~find_first_hit_periodic2->proc~point_inside_box_periodic2 proc~prefer_periodic_candidate prefer_periodic_candidate proc~find_first_hit_periodic2->proc~prefer_periodic_candidate proc~find_first_hit_periodic2->proc~resolve_box_filter_args proc~wrap_periodic2_point~2 wrap_periodic2_point proc~find_first_hit_periodic2->proc~wrap_periodic2_point~2 proc~finite_charge_sum finite_charge_sum proc~flush_run_outputs flush_run_outputs proc~get_toml_boundary_inflow_mode get_toml_boundary_inflow_mode proc~get_toml_string get_toml_string proc~get_toml_boundary_inflow_mode->proc~get_toml_string proc~get_toml_boundary_inflow_mode->proc~lower_ascii proc~stop_config_error stop_config_error proc~get_toml_boundary_inflow_mode->proc~stop_config_error proc~get_toml_int get_toml_int proc~get_toml_int->proc~require_toml_success proc~get_toml_int->proc~stop_config_error proc~get_toml_int->get_value proc~get_toml_logical get_toml_logical proc~get_toml_logical->proc~require_toml_success proc~get_toml_logical->get_value proc~get_toml_particle_boundary_mode get_toml_particle_boundary_mode proc~get_toml_particle_boundary_mode->proc~get_toml_string proc~get_toml_particle_boundary_mode->proc~lower_ascii proc~get_toml_particle_boundary_mode->proc~stop_config_error proc~get_toml_real get_toml_real proc~get_toml_real->proc~require_toml_success proc~get_toml_real->proc~stop_config_error proc~get_toml_real->get_value proc~get_toml_real_array get_toml_real_array proc~get_toml_real_array->proc~require_toml_success proc~get_toml_real_array->proc~stop_config_error proc~get_toml_real_array->get_value toml_len toml_len proc~get_toml_real_array->toml_len proc~get_toml_real_scalar_or_array3 get_toml_real_scalar_or_array3 proc~get_toml_real_scalar_or_array3->proc~require_toml_success proc~get_toml_real_scalar_or_array3->proc~stop_config_error proc~get_toml_real_scalar_or_array3->get_value proc~get_toml_real_scalar_or_array3->toml_len proc~get_toml_string->proc~require_toml_success proc~get_toml_string->proc~stop_config_error proc~get_toml_string->get_value proc~grouped_layout_table grouped_layout_table proc~handle_early_cli handle_early_cli proc~handle_early_cli->proc~default_app_config proc~load_app_config load_app_config proc~handle_early_cli->proc~load_app_config proc~has_suffix has_suffix proc~init_app_config_authoring init_app_config_authoring proc~update_mesh_geometry update_mesh_geometry proc~init_mesh->proc~update_mesh_geometry proc~init_particles init_particles proc~init_particles->proc~allocate_particles proc~reset_periodic_shell_mean_state reset_periodic_shell_mean_state proc~initialize_fmm_state->proc~reset_periodic_shell_mean_state proc~initialize_injection_state initialize_injection_state proc~inspect_checkpoint_directory inspect_checkpoint_directory proc~inspect_checkpoint_directory->proc~checkpoint_schema_is_loadable proc~integrate_local_polynomial integrate_local_polynomial proc~invalidate_checkpoint_directory invalidate_checkpoint_directory proc~remove_file_if_exists remove_file_if_exists proc~invalidate_checkpoint_directory->proc~remove_file_if_exists proc~invalidate_output_checkpoints invalidate_output_checkpoints proc~invalidate_output_checkpoints->proc~invalidate_checkpoint_directory proc~invalidate_output_checkpoints->proc~remove_file_if_exists proc~is_decimal_integer_token is_decimal_integer_token proc~is_decimal_real_token is_decimal_real_token proc~is_face_line is_face_line proc~is_logical_token is_logical_token proc~is_logical_token->proc~lower_ascii proc~is_vertex_line is_vertex_line proc~load_app_config->proc~has_suffix proc~load_toml_config load_toml_config proc~load_app_config->proc~load_toml_config proc~load_app_config->proc~lower_ascii proc~load_obj_mesh->proc~build_mesh_from_indexed proc~parse_obj parse_obj proc~load_obj_mesh->proc~parse_obj proc~scan_obj scan_obj proc~load_obj_mesh->proc~scan_obj proc~load_or_init_run_state load_or_init_run_state proc~load_or_init_run_state->proc~build_mesh_from_config proc~load_or_init_run_state->proc~default_app_config proc~load_or_init_run_state->proc~initialize_injection_state proc~load_or_init_run_state->proc~load_app_config proc~load_restart_checkpoint load_restart_checkpoint proc~load_or_init_run_state->proc~load_restart_checkpoint proc~mpi_is_root mpi_is_root proc~load_or_init_run_state->proc~mpi_is_root proc~prepare_built_periodic2_collision_mesh prepare_built_periodic2_collision_mesh proc~load_or_init_run_state->proc~prepare_built_periodic2_collision_mesh proc~resolve_config_path resolve_config_path proc~load_or_init_run_state->proc~resolve_config_path proc~resolve_latest_checkpoint_dir resolve_latest_checkpoint_dir proc~load_or_init_run_state->proc~resolve_latest_checkpoint_dir proc~seed_particles_from_config seed_particles_from_config proc~load_or_init_run_state->proc~seed_particles_from_config proc~load_restart_checkpoint->interface~restart_macro_residual_path proc~load_restart_checkpoint->interface~restart_rng_state_path proc~load_restart_checkpoint->interface~validate_restart_contract proc~load_restart_checkpoint->proc~checkpoint_schema_is_loadable proc~load_restart_checkpoint->proc~inspect_checkpoint_directory proc~mpi_bcast_real_dp_array mpi_bcast_real_dp_array proc~load_restart_checkpoint->proc~mpi_bcast_real_dp_array proc~load_restart_checkpoint->none~init proc~load_toml_config->proc~apply_toml_document proc~load_toml_config->proc~init_app_config_authoring proc~normalize_config_layout normalize_config_layout proc~load_toml_config->proc~normalize_config_layout destroy destroy proc~load_toml_config->destroy toml_parse toml_parse proc~load_toml_config->toml_parse proc~locate_batch_slot batch_injection_layout_type%locate_batch_slot proc~locate_zero_mode_interval->proc~zero_mode_heights_coincide proc~lookup_cell_cache lookup_cell_cache proc~lookup_cell_cache->proc~acquire_file_lock proc~lookup_cell_cache->proc~create_directories proc~read_periodic_operator_cache read_periodic_operator_cache proc~lookup_cell_cache->proc~read_periodic_operator_cache proc~release_file_lock release_file_lock proc~lookup_cell_cache->proc~release_file_lock proc~lower_boundary_model_id lower_boundary_model_id proc~lower_boundary_model_id->proc~lower_ascii proc~make_annulus->proc~init_mesh proc~push_tri push_tri proc~make_annulus->proc~push_tri proc~make_boundary_inflow_spec make_boundary_inflow_spec proc~make_boundary_inflow_spec->proc~boundary_face_name proc~make_box->proc~init_mesh proc~make_box->proc~push_tri proc~make_cylinder->proc~init_mesh proc~make_cylinder->proc~push_tri proc~make_disk->proc~make_annulus proc~make_icosphere->proc~init_mesh proc~make_plane->proc~init_mesh proc~make_plate_hole->proc~init_mesh proc~make_plate_hole->proc~push_tri proc~ray_to_rectangle ray_to_rectangle proc~make_plate_hole->proc~ray_to_rectangle proc~transition_corner_count transition_corner_count proc~make_plate_hole->proc~transition_corner_count proc~transition_corners transition_corners proc~make_plate_hole->proc~transition_corners proc~make_sphere->proc~init_mesh proc~make_sphere->proc~push_tri proc~maybe_write_periodic_checkpoint maybe_write_periodic_checkpoint proc~maybe_write_periodic_checkpoint->interface~write_macro_residuals_file proc~maybe_write_periodic_checkpoint->proc~atomic_rename proc~maybe_write_periodic_checkpoint->proc~ensure_output_dir proc~maybe_write_periodic_checkpoint->proc~inspect_checkpoint_directory proc~mpi_bcast_i32_array mpi_bcast_i32_array proc~maybe_write_periodic_checkpoint->proc~mpi_bcast_i32_array proc~maybe_write_periodic_checkpoint->proc~mpi_is_root proc~mpi_world_barrier mpi_world_barrier proc~maybe_write_periodic_checkpoint->proc~mpi_world_barrier proc~mpi_world_size mpi_world_size proc~maybe_write_periodic_checkpoint->proc~mpi_world_size proc~periodic_checkpoint_due periodic_checkpoint_due proc~maybe_write_periodic_checkpoint->proc~periodic_checkpoint_due proc~publish_checkpoint_manifest publish_checkpoint_manifest proc~maybe_write_periodic_checkpoint->proc~publish_checkpoint_manifest proc~write_checkpoint_state_files write_checkpoint_state_files proc~maybe_write_periodic_checkpoint->proc~write_checkpoint_state_files proc~mesh_fingerprint mesh_fingerprint proc~mpi_allreduce_max_i32_scalar mpi_allreduce_max_i32_scalar proc~mpi_allreduce_max_real_dp_array mpi_allreduce_max_real_dp_array proc~mpi_allreduce_min_i32_scalar mpi_allreduce_min_i32_scalar proc~mpi_allreduce_min_real_dp_array mpi_allreduce_min_real_dp_array proc~mpi_allreduce_sum_i32_array mpi_allreduce_sum_i32_array proc~mpi_allreduce_sum_i32_scalar mpi_allreduce_sum_i32_scalar proc~mpi_allreduce_sum_i64_array mpi_allreduce_sum_i64_array proc~mpi_allreduce_sum_real_dp_array mpi_allreduce_sum_real_dp_array proc~mpi_allreduce_sum_real_dp_scalar mpi_allreduce_sum_real_dp_scalar proc~mpi_gatherv_real_dp_array mpi_gatherv_real_dp_array proc~mpi_initialize mpi_initialize proc~mpi_select_lowest_rank_i32_values mpi_select_lowest_rank_i32_values proc~mpi_select_lowest_rank_i32_values->proc~mpi_allreduce_sum_i32_array proc~mpi_select_lowest_rank_i32_values->proc~mpi_get_rank_size proc~mpi_shutdown mpi_shutdown proc~mpi_split_count mpi_split_count proc~nodes_well_separated->proc~active_tree_node_center proc~nodes_well_separated->proc~active_tree_node_radius proc~nodes_well_separated->proc~apply_periodic2_minimum_image proc~normalize_config_layout->proc~get_toml_int proc~normalize_config_layout->proc~grouped_layout_table proc~normalize_config_layout->proc~lower_ascii proc~reader_layout_path reader_layout_path proc~normalize_config_layout->proc~reader_layout_path proc~normalize_config_layout->proc~require_toml_success proc~normalize_config_layout->proc~stop_config_error add_table add_table proc~normalize_config_layout->add_table proc~normalize_config_layout->destroy get get proc~normalize_config_layout->get proc~normalize_config_layout->get_keys proc~normalize_config_layout->get_value new_array new_array proc~normalize_config_layout->new_array new_table new_table proc~normalize_config_layout->new_table push_back push_back proc~normalize_config_layout->push_back set_value set_value proc~normalize_config_layout->set_value proc~normalize_config_layout->toml_len proc~normalize_high_level_config normalize_high_level_config proc~normalize_legacy_physics_config->proc~derive_field_panel_config proc~normalize_legacy_physics_config->proc~lower_ascii proc~open_run_outputs open_run_outputs proc~open_run_outputs->interface~open_fixed_current_history_writer proc~open_run_outputs->interface~open_history_writer proc~open_run_outputs->interface~open_matching_plane_history_writer proc~open_run_outputs->interface~open_matching_plane_spectrum_history_writer proc~open_run_outputs->interface~open_potential_history_writer proc~open_run_outputs->interface~open_secondary_emission_history_writer proc~open_run_outputs->interface~open_top_reference_history_writer proc~open_run_outputs->interface~remove_previous_run_outputs proc~open_run_outputs->interface~trim_history_files proc~open_run_outputs->proc~invalidate_output_checkpoints proc~open_uniform_from_double53 open_uniform_from_double53 proc~order_by_i32_key order_by_i32_key proc~outflow_spectrum_bin outflow_spectrum_bin log_energy_bin log_energy_bin proc~outflow_spectrum_bin->log_energy_bin proc~outflow_spectrum_edges_ev outflow_spectrum_edges_ev log_energy_edges log_energy_edges proc~outflow_spectrum_edges_ev->log_energy_edges proc~panel_potential_field panel_potential_field proc~panel_field_sum_translated->proc~panel_potential_field proc~panel_field_sum_translated_sp->proc~panel_potential_field_translated proc~panel_on_surface_integrals panel_on_surface_integrals proc~panel_oracle_potential_field panel_oracle_potential_field proc~panel_oracle_potential_field->proc~gauss_legendre_unit proc~panel_potential_field->proc~panel_on_surface_integrals proc~panel_potential_field_translated->proc~panel_potential_field proc~panel_potential_sum_translated->proc~panel_potential_field proc~panel_potential_sum_translated_sp->proc~panel_potential_field_translated proc~panel_singular_potential_oracle panel_singular_potential_oracle proc~panel_singular_potential_oracle->proc~gauss_legendre_unit proc~parse_face_line parse_face_line proc~parse_face_line->proc~count_face_tokens proc~parse_face_line->proc~next_face_token proc~parse_obj->proc~is_face_line proc~parse_obj->proc~is_vertex_line proc~parse_obj->proc~parse_face_line proc~parse_vertex_line parse_vertex_line proc~parse_obj->proc~parse_vertex_line proc~read_obj_line read_obj_line proc~parse_obj->proc~read_obj_line proc~particle_boundary_action_for_face particle_boundary_action_for_face proc~particle_boundary_action_for_face->proc~lower_ascii proc~particle_source_plan_matches_mpi particle_source_plan_matches_mpi proc~particle_status_name particle_status_name proc~particle_substep_needs_halving particle_substep_needs_halving proc~particles_per_batch_from_config particles_per_batch_from_config proc~particles_per_batch_from_config->proc~species_config_path proc~pcg64_open_uniform->proc~open_uniform_from_double53 pcg64_advance pcg64_advance proc~pcg64_open_uniform->pcg64_advance pcg64_create pcg64_create proc~pcg64_open_uniform->pcg64_create pcg64_destroy pcg64_destroy proc~pcg64_open_uniform->pcg64_destroy pcg64_random_double53 pcg64_random_double53 proc~pcg64_open_uniform->pcg64_random_double53 proc~perf_add_elapsed perf_add_elapsed proc~perf_configure perf_configure proc~perf_reset perf_reset proc~perf_configure->proc~perf_reset proc~perf_configure_from_env perf_configure_from_env proc~perf_configure_from_env->proc~lower_ascii proc~perf_configure_from_env->proc~perf_configure proc~perf_is_enabled perf_is_enabled proc~perf_region_begin perf_region_begin proc~perf_wall_time_seconds perf_wall_time_seconds proc~perf_region_begin->proc~perf_wall_time_seconds proc~perf_region_end perf_region_end proc~perf_region_end->proc~perf_add_elapsed proc~perf_region_end->proc~perf_wall_time_seconds proc~perf_set_output_context perf_set_output_context proc~perf_write_outputs perf_write_outputs proc~perf_write_outputs->proc~mpi_allreduce_max_real_dp_array proc~perf_write_outputs->proc~mpi_allreduce_min_real_dp_array proc~perf_write_outputs->proc~mpi_allreduce_sum_i32_array proc~perf_write_outputs->proc~mpi_allreduce_sum_real_dp_array proc~perf_write_outputs->proc~mpi_get_rank_size proc~perf_write_outputs->proc~mpi_is_root proc~periodic_cache_fingerprint periodic_cache_fingerprint proc~periodic_operator_checksum periodic_operator_checksum proc~periodic_shell_mean_excess periodic_shell_mean_excess proc~periodic_shell_mean_point_excess->proc~periodic_shell_mean_excess proc~photo_ray_macro_weight photo_ray_macro_weight proc~photo_ray_macro_weight->proc~compute_face_area_from_bounds proc~photo_ray_macro_weight->proc~resolve_face_axes proc~point_triangle_distance point_triangle_distance proc~reset_periodic2_ewald_data reset_periodic2_ewald_data proc~precompute_periodic2_ewald_data->proc~reset_periodic2_ewald_data proc~resolve_periodic2_ewald_alpha resolve_periodic2_ewald_alpha proc~precompute_periodic2_ewald_data->proc~resolve_periodic2_ewald_alpha proc~use_periodic2_root_operator use_periodic2_root_operator proc~precompute_periodic2_ewald_data->proc~use_periodic2_root_operator proc~precompute_periodic_root_operator->proc~add_periodic2_exact_ewald_field_potential_single_source proc~precompute_periodic_root_operator->proc~build_axis_powers proc~precompute_periodic_root_operator->proc~factor_tall_matrix_qr proc~precompute_periodic_root_operator->proc~initialize_basis_tables proc~precompute_periodic_root_operator->proc~lookup_cell_cache proc~precompute_periodic_root_operator->proc~mpi_allreduce_sum_real_dp_array proc~precompute_periodic_root_operator->proc~mpi_bcast_i32_array proc~precompute_periodic_root_operator->proc~mpi_bcast_real_dp_array proc~precompute_periodic_root_operator->proc~mpi_get_rank_size proc~precompute_periodic_root_operator->proc~mpi_is_root proc~precompute_periodic_root_operator->proc~periodic_cache_fingerprint proc~precompute_periodic_root_operator->proc~periodic_shell_mean_point_excess proc~precompute_periodic_root_operator->proc~periodic_source_proxy_half_size proc~prepare_regularized_qr prepare_regularized_qr proc~precompute_periodic_root_operator->proc~prepare_regularized_qr proc~publish_cell_cache_and_unlock publish_cell_cache_and_unlock proc~precompute_periodic_root_operator->proc~publish_cell_cache_and_unlock proc~solve_regularized_qr solve_regularized_qr proc~precompute_periodic_root_operator->proc~solve_regularized_qr proc~precompute_periodic_root_operator->proc~use_periodic2_cached_kneq0 proc~resolve_periodic2_axes resolve_periodic2_axes proc~prepare_built_periodic2_collision_mesh->proc~resolve_periodic2_axes proc~prepare_built_periodic2_collision_mesh->proc~update_mesh_geometry proc~prepare_periodic2_collision_mesh prepare_periodic2_collision_mesh proc~prepare_periodic2_collision_mesh->proc~resolve_periodic2_axes proc~prepare_periodic2_collision_mesh->proc~update_mesh_geometry proc~prepare_periodic_cache_and_stop prepare_periodic_cache_and_stop proc~prepare_periodic_cache_and_stop->proc~derive_field_panel_config proc~prepare_periodic_cache_and_stop->proc~mpi_is_root proc~prepare_periodic_cache_and_stop->proc~mpi_shutdown proc~prepare_periodic_cache_and_stop->proc~mpi_world_barrier proc~prepare_periodic_cache_and_stop->proc~mpi_world_size none~get_diagnostics electrostatic_snapshot_type%get_diagnostics proc~prepare_periodic_cache_and_stop->none~get_diagnostics none~init~6 electrostatic_snapshot_type%init proc~prepare_periodic_cache_and_stop->none~init~6 proc~prepare_regularized_qr->proc~factor_tall_matrix_qr proc~print_run_summary print_run_summary proc~publish_cell_cache_and_unlock->proc~release_file_lock proc~write_periodic_operator_cache write_periodic_operator_cache proc~publish_cell_cache_and_unlock->proc~write_periodic_operator_cache proc~publish_checkpoint_manifest->proc~atomic_rename proc~read_matching_plane_summary_key read_matching_plane_summary_key proc~read_matching_plane_summary_key->proc~is_decimal_integer_token proc~read_matching_plane_summary_key->proc~is_logical_token proc~read_matching_summary_real read_matching_summary_real proc~read_matching_plane_summary_key->proc~read_matching_summary_real proc~read_matching_summary_real->proc~is_decimal_real_token proc~strip_cr strip_cr proc~read_obj_line->proc~strip_cr proc~read_periodic_operator_cache->proc~periodic_operator_checksum proc~refresh_periodic_zero_mode_state->proc~integrate_local_polynomial proc~refresh_periodic_zero_mode_state->proc~locate_zero_mode_interval proc~refresh_periodic_zero_mode_state->proc~zero_mode_charge_primitive proc~refresh_periodic_zero_mode_state->proc~zero_mode_interval_origin proc~refresh_zhao_outflow_closure refresh_zhao_outflow_closure proc~refresh_zhao_outflow_closure->proc~outflow_spectrum_edges_ev proc~refresh_zhao_outflow_closure->proc~species_temperature_k proc~refresh_zhao_outflow_closure->conditions proc~refresh_zhao_outflow_closure->emitted_fluxes proc~refresh_zhao_outflow_closure->maxwellian_emission proc~refresh_zhao_outflow_closure->none~wall_area proc~refresh_zhao_outflow_closure->none~wall_tangents_periodic observed_outflow_source observed_outflow_source proc~refresh_zhao_outflow_closure->observed_outflow_source update update proc~refresh_zhao_outflow_closure->update with_outward_flux with_outward_flux proc~refresh_zhao_outflow_closure->with_outward_flux proc~require_matching_plane_summary_keys require_matching_plane_summary_keys proc~require_toml_success->proc~stop_config_error proc~reserve_particles->proc~particle_capacity proc~reset_fmm_state->proc~initialize_fmm_state proc~resolve_external_boundary_contract resolve_external_boundary_contract proc~resolve_external_boundary_contract->proc~lower_ascii proc~resolve_face_sampling_geometry->proc~lower_ascii proc~resolve_inject_face resolve_inject_face proc~resolve_inject_face->proc~lower_ascii proc~resolve_inward_normal resolve_inward_normal proc~resolve_inward_normal->proc~lower_ascii proc~resolve_irradiation_cell_contract->proc~lower_ascii proc~resolve_latest_checkpoint_dir->proc~inspect_checkpoint_directory proc~resolve_panel_surface_sides resolve_panel_surface_sides proc~resolve_panel_surface_sides->proc~lower_ascii proc~resolve_panel_surface_sides_by_mesh_id->proc~lower_ascii proc~resolve_parallel_rank_size->proc~mpi_get_rank_size proc~resolve_particle_boundaries resolve_particle_boundaries proc~resolve_particle_boundary_candidate resolve_particle_boundary_candidate proc~resolve_particle_boundary_candidate->proc~apply_escape_reflect_periodic_event proc~resolve_particle_boundary_candidate->proc~build_particle_step_candidate proc~resolve_particle_boundary_candidate->proc~counter_uniforms proc~resolve_particle_boundary_candidate->proc~find_first_boundary_event proc~resolve_particle_boundary_candidate->proc~find_first_hit proc~resolve_particle_boundary_candidate->none~crosses_wall_outward proc~resolve_particle_boundary_candidate->none~eval_local_e proc~resolve_particle_boundary_candidate->none~eval_local_phi proc~resolve_particle_boundary_candidate->none~eval_upper_panel_fourier_phi proc~resolve_particle_boundary_candidate->none~outward_normal_velocity proc~resolve_periodic2_axes->proc~lower_ascii proc~sample_flux_weighted_normal_component sample_flux_weighted_normal_component proc~sample_photo_emission_velocity sample_photo_emission_velocity proc~sample_photo_emission_velocity->proc~counter_uniform proc~sample_photo_emission_velocity->proc~sample_flux_weighted_normal_component proc~sample_standard_normal sample_standard_normal proc~sample_photo_emission_velocity->proc~sample_standard_normal proc~sample_photo_ray_slot sample_photo_ray_slot proc~sample_photo_ray_slot->proc~build_tangent_basis proc~sample_photo_ray_slot->proc~cast_photo_ray proc~sample_photo_ray_slot->proc~counter_uniforms proc~sample_photo_ray_slot->proc~lower_ascii proc~sample_photo_ray_slot->proc~resolve_face_axes proc~sample_photo_ray_slot->proc~resolve_face_geometry proc~sample_photo_ray_slot->proc~sample_photo_emission_velocity proc~sample_reservoir_face_particle_counter sample_reservoir_face_particle_counter proc~sample_reservoir_face_particle_counter->proc~counter_uniforms proc~sample_reservoir_face_particle_counter->proc~resolve_face_axes proc~sample_reservoir_face_particle_counter->proc~resolve_face_geometry proc~sample_reservoir_face_particle_counter->proc~sample_flux_weighted_normal_component proc~sample_reservoir_face_particle_counter->proc~sample_standard_normal proc~sample_shifted_maxwell_velocities sample_shifted_maxwell_velocities proc~sample_shifted_maxwell_velocities->proc~sample_standard_normal proc~sample_standard_normal->interface~random_uniform proc~sample_standard_normal->none~next_uniform proc~sample_uniform_positions sample_uniform_positions proc~sample_uniform_positions->interface~random_uniform proc~scan_obj->proc~count_face_tokens proc~scan_obj->proc~is_face_line proc~scan_obj->proc~is_vertex_line proc~scan_obj->proc~read_obj_line proc~secondary_emission_count secondary_emission_count proc~secondary_emission_count->proc~counter_uniform proc~secondary_emission_yield secondary_emission_yield proc~seed_particles_from_config->proc~resolve_parallel_rank_size proc~seed_rng seed_rng proc~seed_particles_from_config->proc~seed_rng proc~seed_random_stream seed_random_stream proc~seed_random_stream->proc~counter_key proc~seed_rng->proc~seed_random_stream proc~segment_bbox_overlap segment_bbox_overlap proc~segment_bbox_overlap->proc~segment_bbox_overlap_precomputed proc~segment_triangle_intersect->proc~cross~3 proc~solve_zhao_outflow_closure solve_zhao_outflow_closure proc~solve_zhao_outflow_closure->proc~lower_ascii proc~solve_zhao_outflow_closure->proc~outflow_spectrum_edges_ev proc~solve_zhao_outflow_closure->proc~resolve_irradiation_cell_contract proc~solve_zhao_outflow_closure->proc~species_number_density_m3 proc~solve_zhao_outflow_closure->proc~species_temperature_k proc~solve_zhao_outflow_closure->conditions proc~solve_zhao_outflow_closure->emitted_fluxes proc~solve_zhao_outflow_closure->initialize proc~solve_zhao_outflow_closure->maxwellian_emission proc~solve_zhao_outflow_closure->none~outward_normal_velocity proc~solve_zhao_outflow_closure->none~wall_area proc~solve_zhao_outflow_closure->none~wall_tangents_periodic proc~solve_zhao_outflow_closure->observed_outflow_source proc~solve_zhao_outflow_closure->with_outward_flux proc~species_closure_mode species_closure_mode proc~species_from_defaults species_from_defaults proc~sph sph proc~surface_charge_closure_id surface_charge_closure_id proc~surface_charge_closure_id->proc~lower_ascii proc~surface_model_id_from_name->proc~lower_ascii proc~symmetric_vacuum_bottom_field symmetric_vacuum_bottom_field proc~transition_corner_count->proc~edge_order_index proc~transition_corners->proc~corner_between proc~transition_corners->proc~edge_next_ccw proc~transition_corners->proc~transition_corner_count proc~trim_particles trim_particles proc~update_mesh_geometry->proc~build_collision_grid proc~update_mesh_geometry->proc~cross~2 proc~update_mesh_geometry->proc~fill_panel_quadrature proc~update_mesh_geometry->proc~init_panel_geometry proc~upper_fourier_auto_height_range upper_fourier_auto_height_range proc~use_periodic2_root_operator->proc~use_periodic2_cached_kneq0 proc~validate_active_physics_config validate_active_physics_config proc~validate_active_physics_config->proc~lower_ascii proc~validate_phase1_panel_config validate_phase1_panel_config proc~validate_active_physics_config->proc~validate_phase1_panel_config proc~validate_phase1_panel_config->proc~lower_ascii proc~validate_upper_fourier_height validate_upper_fourier_height proc~validate_upper_fourier_height->proc~upper_fourier_auto_height_range proc~warn_face_average_potential_variation warn_face_average_potential_variation proc~warn_face_average_potential_variation->proc~resolve_inward_normal proc~warn_face_average_potential_variation->proc~species_temperature_k proc~write_checkpoint_state_files->proc~begin_checkpoint_publish proc~write_checkpoint_state_files->proc~ensure_output_dir proc~write_matching_plane_summary write_matching_plane_summary proc~write_periodic_operator_cache->proc~atomic_rename proc~write_periodic_operator_cache->proc~periodic_operator_checksum proc~write_result_files write_result_files proc~write_result_files->proc~begin_checkpoint_publish proc~write_result_files->proc~ensure_output_dir proc~zero_mode_charge_primitive->proc~integrate_local_polynomial proc~zero_mode_charge_primitive->proc~zero_mode_interval_origin program~main main program~main->interface~run_absorption_insulator program~main->interface~write_macro_residuals_file program~main->proc~close_run_outputs program~main->proc~ensure_output_dir program~main->proc~handle_early_cli program~main->proc~load_or_init_run_state program~main->proc~mpi_initialize program~main->proc~mpi_is_root program~main->proc~mpi_shutdown program~main->proc~mpi_world_barrier program~main->proc~mpi_world_size program~main->proc~open_run_outputs program~main->proc~perf_configure_from_env program~main->proc~perf_region_begin program~main->proc~perf_region_end program~main->proc~perf_set_output_context program~main->proc~perf_write_outputs program~main->proc~prepare_periodic_cache_and_stop program~main->proc~print_run_summary program~main->proc~publish_checkpoint_manifest program~main->proc~write_result_files
Help