bem_surface_current_model Module

外部モデルから species 別の固定表面電流を解決する。


Uses

  • module~~bem_surface_current_model~~UsesGraph module~bem_surface_current_model bem_surface_current_model ieee_arithmetic ieee_arithmetic module~bem_surface_current_model->ieee_arithmetic module~bem_app_config_types bem_app_config_types module~bem_surface_current_model->module~bem_app_config_types module~bem_config_helpers bem_config_helpers module~bem_surface_current_model->module~bem_config_helpers module~bem_constants bem_constants module~bem_surface_current_model->module~bem_constants module~bem_kinds bem_kinds module~bem_surface_current_model->module~bem_kinds module~bem_sheath_model_core bem_sheath_model_core module~bem_surface_current_model->module~bem_sheath_model_core module~bem_string_utils bem_string_utils module~bem_surface_current_model->module~bem_string_utils module~bem_surface_closure_contract bem_surface_closure_contract module~bem_surface_current_model->module~bem_surface_closure_contract module~bem_app_config_types->module~bem_kinds module~bem_physics_config_types bem_physics_config_types module~bem_app_config_types->module~bem_physics_config_types module~bem_types bem_types module~bem_app_config_types->module~bem_types module~bem_config_helpers->module~bem_app_config_types module~bem_config_helpers->module~bem_kinds module~bem_config_helpers->module~bem_string_utils module~bem_config_helpers->module~bem_types module~bem_constants->module~bem_kinds iso_fortran_env iso_fortran_env module~bem_kinds->iso_fortran_env module~bem_sheath_model_core->ieee_arithmetic module~bem_sheath_model_core->module~bem_constants module~bem_sheath_model_core->module~bem_kinds module~bem_surface_closure_contract->module~bem_kinds module~bem_physics_config_types->ieee_arithmetic module~bem_physics_config_types->module~bem_kinds module~bem_physics_config_types->module~bem_string_utils module~bem_physics_config_types->module~bem_types module~bem_types->module~bem_kinds

Used by

  • module~~bem_surface_current_model~~UsedByGraph module~bem_surface_current_model bem_surface_current_model module~bem_output_writer_summary bem_output_writer_summary module~bem_output_writer_summary->module~bem_surface_current_model module~bem_simulator bem_simulator module~bem_simulator->module~bem_surface_current_model module~bem_simulator_charge bem_simulator_charge module~bem_simulator_charge->module~bem_simulator module~bem_simulator_io bem_simulator_io module~bem_simulator_io->module~bem_simulator module~bem_simulator_loop bem_simulator_loop module~bem_simulator_loop->module~bem_simulator module~bem_simulator_particles bem_simulator_particles module~bem_simulator_particles->module~bem_simulator module~bem_simulator_stats bem_simulator_stats module~bem_simulator_stats->module~bem_simulator program~main main program~main->module~bem_simulator

Derived Types

Components

Type Visibility Attributes Name Initial
logical, public :: active = .false.
logical, public, allocatable :: has_absorbed_target(:)
logical, public, allocatable :: has_emission_target(:)
logical, public, allocatable :: has_escape_target(:)
logical, public, allocatable :: has_inflow_kinetic_map(:)
logical, public, allocatable :: has_outflow_kinetic_barrier(:)
logical, public, allocatable :: has_inflow_number_flux(:)
real(kind=dp), public, allocatable :: absorbed_current_a(:)
real(kind=dp), public, allocatable :: emission_current_a(:)
real(kind=dp), public, allocatable :: escaped_particle_current_a(:)
real(kind=dp), public, allocatable :: inflow_reservoir_potential_v(:)
real(kind=dp), public, allocatable :: inflow_access_potential_v(:)
integer(kind=i32), public, allocatable :: inflow_kinetic_face(:)
real(kind=dp), public, allocatable :: outflow_barrier_potential_v(:)
integer(kind=i32), public, allocatable :: outflow_barrier_face(:)
real(kind=dp), public, allocatable :: inflow_number_flux_m2_s(:)
character(len=32), public :: model = 'none'
character(len=1), public :: zhao_branch = ' '
integer(kind=i32), public :: electron_species_idx = 0_i32
integer(kind=i32), public :: ion_species_idx = 0_i32
integer(kind=i32), public :: photoelectron_species_idx = 0_i32
logical, public :: photoelectron_active = .false.
real(kind=dp), public :: reference_area_m2 = 0.0_dp
real(kind=dp), public :: phi0_v = 0.0_dp
real(kind=dp), public :: phi_m_v = 0.0_dp
real(kind=dp), public :: ambient_electron_density_m3 = 0.0_dp
real(kind=dp), public :: electron_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: ion_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: photoelectron_emission_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: photoelectron_escape_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: photoelectron_return_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: net_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: photoelectron_budget_residual_current_density_a_m2 = 0.0_dp
real(kind=dp), public :: surface_budget_residual_current_density_a_m2 = 0.0_dp
character(len=32), public :: kinetic_contract = 'none'

Subroutines

public subroutine evaluate_surface_closure(app, contract)

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

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: app
type(surface_closure_contract_type), intent(out) :: contract

public subroutine evaluate_surface_current_model(app, result)

設定されたmodelをdispatchし、固定電流closure用のtarget配列を返す。

Arguments

Type IntentOptional Attributes Name
type(app_config), intent(in) :: app
type(surface_current_model_result_type), intent(out) :: result