matching_plane_coupling_type Derived Type

type, public :: matching_plane_coupling_type


Inherits

type~~matching_plane_coupling_type~~InheritsGraph type~matching_plane_coupling_type matching_plane_coupling_type type~matching_plane_response_provider_type matching_plane_response_provider_type type~matching_plane_coupling_type->type~matching_plane_response_provider_type provider type~matching_plane_zhao_root_seed_type matching_plane_zhao_root_seed_type type~matching_plane_coupling_type->type~matching_plane_zhao_root_seed_type root_committed, root_trial, root_candidate type~matching_plane_response_table_type matching_plane_response_table_type type~matching_plane_response_provider_type->type~matching_plane_response_table_type table type~matching_plane_zhao_model_type matching_plane_zhao_model_type type~matching_plane_response_provider_type->type~matching_plane_zhao_model_type zhao

Type-Bound Procedures

procedure, public :: initialize

procedure, public :: is_active

  • private function is_active(self) result(active)

    Arguments

    Type IntentOptional Attributes Name
    class(matching_plane_coupling_type), intent(in) :: self

    Return Value logical

procedure, public :: restore_gauge

procedure, public :: begin_trial

procedure, public :: prepare_iteration

procedure, public :: finish_iteration

  • private function finish_iteration(self, app, mpi_ctx, moments_thread, trial_batch_duration, batch_idx) result(done)

    Arguments

    Type IntentOptional Attributes Name
    class(matching_plane_coupling_type), intent(inout) :: self
    type(app_config), intent(in) :: app
    type(mpi_context), intent(in) :: mpi_ctx
    real(kind=dp), intent(in) :: moments_thread(:,:,:)
    real(kind=dp), intent(in) :: trial_batch_duration
    integer(kind=i32), intent(in) :: batch_idx

    Return Value logical

procedure, public :: stage_stats

  • private subroutine stage_stats(self, stats_candidate)

    Arguments

    Type IntentOptional Attributes Name
    class(matching_plane_coupling_type), intent(in) :: self
    type(sim_stats), intent(inout) :: stats_candidate

procedure, public :: commit

  • private subroutine commit(self, mesh, stats_candidate)

    Arguments

    Type IntentOptional Attributes Name
    class(matching_plane_coupling_type), intent(inout) :: self
    type(mesh_type), intent(in) :: mesh
    type(sim_stats), intent(inout) :: stats_candidate

Source Code

  type, public :: matching_plane_coupling_type
    private
    logical :: active = .false.
    logical :: implicit_zero_mode = .false.
    logical :: continuation_active = .false.
    logical :: photoelectron_active = .false.
    logical :: displacement_bounded = .false.
    integer(i32) :: electron_idx = 0_i32
    integer(i32) :: ion_idx = 0_i32
    integer(i32) :: photoelectron_idx = 0_i32
    integer(i32) :: search_direction = 0_i32
    integer(i32) :: iteration = 0_i32
    real(dp) :: plane_z
    real(dp) :: area
    real(dp) :: photoelectron_charge
    real(dp) :: photoelectron_emission_current_density
    real(dp) :: displacement_min
    real(dp) :: displacement_max
    real(dp) :: displacement_scale
    real(dp) :: feedback_reference(4)
    real(dp) :: displacement
    real(dp) :: displacement_before
    real(dp) :: guess(4)
    real(dp) :: observed(4)
    real(dp) :: response(6)
    real(dp) :: residual
    real(dp) :: return_flux
    real(dp) :: escape_flux
    type(matching_plane_response_provider_type) :: provider
    type(matching_plane_zhao_root_seed_type) :: root_committed
    type(matching_plane_zhao_root_seed_type) :: root_trial
    type(matching_plane_zhao_root_seed_type) :: root_candidate
    real(dp), allocatable :: moments(:, :)
    real(dp), allocatable :: reduce(:)
  contains
    procedure :: initialize
    procedure :: is_active
    procedure :: restore_gauge
    procedure :: begin_trial
    procedure :: prepare_iteration
    procedure :: finish_iteration
    procedure :: stage_stats
    procedure :: commit
  end type matching_plane_coupling_type