bem_restart Module

出力ディレクトリに保存したチェックポイントの保存/復元を扱う補助モジュール。


Uses

  • module~~bem_restart~~UsesGraph module~bem_restart bem_restart module~bem_kinds bem_kinds module~bem_restart->module~bem_kinds module~bem_mpi bem_mpi module~bem_restart->module~bem_mpi module~bem_types bem_types module~bem_restart->module~bem_types iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_mpi->module~bem_kinds module~bem_types->module~bem_kinds

Used by

  • module~~bem_restart~~UsedByGraph module~bem_restart bem_restart program~main main program~main->module~bem_restart

Functions

public function restart_rng_state_path(out_dir, mpi_rank, mpi_size, mpi) result(path)

RNG状態ファイルのパスを返す。MPI複数rank時は rank 接尾辞付きパスへ切り替える。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: out_dir
integer(kind=i32), intent(in), optional :: mpi_rank
integer(kind=i32), intent(in), optional :: mpi_size
type(mpi_context), intent(in), optional :: mpi

Return Value character(len=1024)

public function restart_macro_residual_path(out_dir, mpi_rank, mpi_size, mpi) result(path)

マクロ残差ファイルのパスを返す。MPI複数rank時は rank 接尾辞付きパスへ切り替える。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: out_dir
integer(kind=i32), intent(in), optional :: mpi_rank
integer(kind=i32), intent(in), optional :: mpi_size
type(mpi_context), intent(in), optional :: mpi

Return Value character(len=1024)


Subroutines

public subroutine load_restart_checkpoint(out_dir, mesh, stats, has_restart, state, mpi_rank, mpi_size, mpi)

既存出力ディレクトリから統計・要素電荷・乱数状態を復元する。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: out_dir

チェックポイントを探索する出力ディレクトリ。

type(mesh_type), intent(inout) :: mesh

現在のメッシュ。q_elem を復元値で上書きする。

type(sim_stats), intent(out) :: stats

復元された統計値。

logical, intent(out) :: has_restart

復元可能なチェックポイントが存在したか。

type(injection_state), intent(inout), optional :: state

種別ごとのマクロ粒子残差(指定時のみ復元)。

integer(kind=i32), intent(in), optional :: mpi_rank
integer(kind=i32), intent(in), optional :: mpi_size
type(mpi_context), intent(in), optional :: mpi

public subroutine write_rng_state_file(out_dir, mpi_rank, mpi_size, mpi)

現在の Fortran 乱数状態をファイルへ保存する。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: out_dir

出力ディレクトリ。

integer(kind=i32), intent(in), optional :: mpi_rank
integer(kind=i32), intent(in), optional :: mpi_size
type(mpi_context), intent(in), optional :: mpi

public subroutine write_macro_residuals_file(out_dir, state, mpi_rank, mpi_size, mpi)

マクロ粒子残差を macro_residuals.csv として保存する。

Arguments

Type IntentOptional Attributes Name
character(len=*), intent(in) :: out_dir

出力ディレクトリ。

type(injection_state), intent(in) :: state

種別ごとのマクロ粒子残差を保持した注入状態。

integer(kind=i32), intent(in), optional :: mpi_rank
integer(kind=i32), intent(in), optional :: mpi_size
type(mpi_context), intent(in), optional :: mpi