multibox Module


Uses


Variables

Type Visibility Attributes Name Initial
complex, private, dimension(:), allocatable :: g_buffer0
complex, private, dimension(:), allocatable :: g_buffer1
complex, public, dimension(:), allocatable :: phi_buffer0
complex, public, dimension(:), allocatable :: phi_buffer1
complex, private, dimension(:), allocatable :: fsa_x
real, private, dimension(:), allocatable :: copy_mask_left
real, private, dimension(:), allocatable :: copy_mask_right
real, private, dimension(:), allocatable :: krook_mask_left
real, private, dimension(:), allocatable :: krook_mask_right
real, private, dimension(:), allocatable :: krook_fac
real, private, dimension(:), allocatable :: b_mat
real, private, dimension(:), allocatable :: x_mb
real, private, dimension(:), allocatable :: rho_mb
real, private, dimension(:), allocatable :: rho_mb_clamped
real, public, dimension(2, 2) :: time_multibox = 0.
real, private :: dx_mb
complex, private, dimension(:, :), allocatable :: fft_kxky
complex, private, dimension(:, :), allocatable :: fft_xky
real, private, dimension(:, :), allocatable :: fft_xy
type(fft_type), private :: yf_fft
type(fft_type), private :: yb_fft
type(fft_type), private :: xf_fft
type(fft_type), private :: xb_fft
complex, private, dimension(:), allocatable :: fft_x_k
complex, private, dimension(:), allocatable :: fft_x_x
complex, private, dimension(:), allocatable :: fft_y_k
real, private, dimension(:), allocatable :: fft_y_y
logical, private :: mb_transforms_initialized = .false.
logical, private :: get_phi_initialized = .false.
logical, private :: use_multibox
integer, private :: temp_ind = 0
integer, public :: bs_fullgrid
integer, private :: mb_debug_step
integer, private :: x_fft_size
integer, private :: phi_bound
integer, private :: phi_pow
integer, private :: ikymin
real, public :: xL = 0.
real, public :: xR = 0.
real, public :: rhoL = 0.
real, public :: rhoR = 0.
real, public :: kx0_L
real, public :: kx0_R
real, private :: nu_krook_mb
real, private :: krook_exponent
real, private :: krook_efold
logical, private :: smooth_ZFs
logical, public :: use_dirichlet_BC
logical, public :: RK_step
logical, public :: include_multibox_krook
logical, public :: comm_at_init
integer, private :: krook_option_switch
integer, private, parameter :: krook_option_default = 2
integer, private, parameter :: krook_option_flat = 0
integer, private, parameter :: krook_option_linear = 1
integer, private, parameter :: krook_option_exp = 2
integer, private, parameter :: krook_option_exp_rev = 3
integer, private :: mb_zf_option_switch
integer, private, parameter :: mb_zf_option_default = 0
integer, private, parameter :: mb_zf_option_skip_ky0 = 1
integer, private, parameter :: mb_zf_option_zero_ky0 = 2
integer, private, parameter :: mb_zf_option_zero_fsa = 3
integer, private :: LR_debug_switch
integer, private, parameter :: LR_debug_option_default = 0
integer, private, parameter :: LR_debug_option_L = 1
integer, private, parameter :: LR_debug_option_R = 2

Subroutines

public subroutine read_multibox_parameters()

Arguments

None

public subroutine init_multibox()

Arguments

None

public subroutine communicate_multibox_parameters()

Arguments

None

public subroutine finish_multibox()

Arguments

None

public subroutine multibox_communicate(gin)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: gin

public subroutine apply_radial_boundary_conditions(gin)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: gin

public subroutine add_multibox_krook(g, rhs)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: g
complex, intent(inout), dimension(:, :, -nzgrid:, :, vmu_lo%llim_proc:) :: rhs

public subroutine init_mb_get_phi(has_elec, adiabatic_elec, efac, efacp)

Arguments

Type IntentOptional Attributes Name
logical, intent(in) :: has_elec
logical, intent(in) :: adiabatic_elec
real, intent(in) :: efac
real, intent(in) :: efacp

public subroutine mb_get_phi(phi, has_elec, adiabatic_elec)

Arguments

Type IntentOptional Attributes Name
complex, intent(inout), dimension(:, :, -nzgrid:, :) :: phi
logical, intent(in) :: has_elec
logical, intent(in) :: adiabatic_elec

private subroutine init_mb_transforms()

Arguments

None

private subroutine init_x_fft()

Arguments

None

private subroutine init_y_fft()

Arguments

None

private subroutine transform_kx2x(gkx, gx)

transform routines start here

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :) :: gkx
complex, intent(out), dimension(:, :) :: gx

private subroutine transform_x2kx(gx, gkx)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :) :: gx
complex, intent(out), dimension(:, :) :: gkx

private subroutine transform_ky2y(gky, gy)

Arguments

Type IntentOptional Attributes Name
complex, intent(in), dimension(:, :) :: gky
real, intent(out), dimension(:, :) :: gy

private subroutine finish_mb_transforms()

Arguments

None