app_config Derived Type

type, public :: app_config

実行条件・メッシュ入力・粒子注入・出力設定を一元管理する。


Inherits

type~~app_config~~InheritsGraph type~app_config app_config type~external_boundary_contract_type external_boundary_contract_type type~app_config->type~external_boundary_contract_type boundary_contract type~field_physics_config field_physics_config type~app_config->type~field_physics_config field type~panel_kernel_config panel_kernel_config type~app_config->type~panel_kernel_config panel type~particle_species_spec particle_species_spec type~app_config->type~particle_species_spec particle_species type~periodic2_physics_config periodic2_physics_config type~app_config->type~periodic2_physics_config periodic2 type~sim_config sim_config type~app_config->type~sim_config sim type~surface_current_model_config surface_current_model_config type~app_config->type~surface_current_model_config surface_current type~template_spec template_spec type~app_config->type~template_spec mesh_parts type~photo_raycast_config photo_raycast_config type~sim_config->type~photo_raycast_config type~particle_domain_config particle_domain_config type~photo_raycast_config->type~particle_domain_config

Components

Type Visibility Attributes Name Initial
integer(kind=i32), public :: n_mesh_parts = 0_i32
type(template_spec), public, allocatable :: mesh_parts(:)
integer(kind=i32), public :: n_particle_species = 0_i32
type(particle_species_spec), public, allocatable :: particle_species(:)
integer(kind=i32), public :: secondary_emission_max_generations = 3_i32
integer(kind=i32), public :: particle_boundary_low(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
integer(kind=i32), public :: particle_boundary_high(3) = [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
logical, public :: write_output = .true.
logical, public :: write_mesh_potential = .false.
logical, public :: write_potential_history = .false.
character(len=256), public :: output_dir = 'outputs/latest'
character(len=256), public :: output_restart_from = ''
integer(kind=i32), public :: history_stride = 1
integer(kind=i32), public :: checkpoint_stride = 0
logical, public :: resume_output = .false.
type(sim_config), public :: sim
type(external_boundary_contract_type), public :: boundary_contract

preflight で解決する基底契約。種別 kinetic barrier の面別 override は run 側で重ねる。

type(field_physics_config), public :: field
type(periodic2_physics_config), public :: periodic2
type(panel_kernel_config), public :: panel
type(surface_current_model_config), public :: surface_current

Source Code

  type :: app_config
    integer(i32) :: n_mesh_parts = 0_i32
    type(template_spec), allocatable :: mesh_parts(:)

    integer(i32) :: n_particle_species = 0_i32
    type(particle_species_spec), allocatable :: particle_species(:)
    integer(i32) :: secondary_emission_max_generations = 3_i32
    integer(i32) :: particle_boundary_low(3) = &
                    [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]
    integer(i32) :: particle_boundary_high(3) = &
                    [particle_bc_inherit, particle_bc_inherit, particle_bc_inherit]

    logical :: write_output = .true.
    logical :: write_mesh_potential = .false.
    logical :: write_potential_history = .false.
    character(len=256) :: output_dir = 'outputs/latest'
    character(len=256) :: output_restart_from = ''
    integer(i32) :: history_stride = 1
    integer(i32) :: checkpoint_stride = 0
    logical :: resume_output = .false.

    type(sim_config) :: sim
    !> preflight で解決する基底契約。種別 kinetic barrier の面別 override は run 側で重ねる。
    type(external_boundary_contract_type) :: boundary_contract
    type(field_physics_config) :: field
    type(periodic2_physics_config) :: periodic2
    type(panel_kernel_config) :: panel
    type(surface_current_model_config) :: surface_current
  end type app_config