lib_common_type Derived Type

type, public :: lib_common_type


Inherits

type~~lib_common_type~~InheritsGraph type~lib_common_type lib_common_type type~atom_data_type atom_data_type type~lib_common_type->type~atom_data_type atom_data type~band_plot_type band_plot_type type~lib_common_type->type~band_plot_type band_plot type~dis_control_type dis_control_type type~lib_common_type->type~dis_control_type dis_control type~dis_manifold_type dis_manifold_type type~lib_common_type->type~dis_manifold_type dis_manifold type~dis_spheres_type dis_spheres_type type~lib_common_type->type~dis_spheres_type dis_spheres type~fermi_surface_plot_type fermi_surface_plot_type type~lib_common_type->type~fermi_surface_plot_type fermi_surface_data type~ham_logical_type ham_logical_type type~lib_common_type->type~ham_logical_type ham_logical type~kmesh_info_type kmesh_info_type type~lib_common_type->type~kmesh_info_type kmesh_info type~kmesh_input_type kmesh_input_type type~lib_common_type->type~kmesh_input_type kmesh_input type~kpoint_path_type kpoint_path_type type~lib_common_type->type~kpoint_path_type kpoint_path type~output_file_type output_file_type type~lib_common_type->type~output_file_type output_file type~print_output_type print_output_type type~lib_common_type->type~print_output_type print_output type~proj_type proj_type type~lib_common_type->type~proj_type proj, proj_input type~real_space_ham_type real_space_ham_type type~lib_common_type->type~real_space_ham_type real_space_ham type~select_projection_type select_projection_type type~lib_common_type->type~select_projection_type select_proj type~settings_type settings_type type~lib_common_type->type~settings_type settings type~sitesym_type sitesym_type type~lib_common_type->type~sitesym_type sitesym type~timer_list_type timer_list_type type~lib_common_type->type~timer_list_type timer type~transport_type transport_type type~lib_common_type->type~transport_type tran type~w90_calculation_type w90_calculation_type type~lib_common_type->type~w90_calculation_type w90_calculation type~w90_comm_type w90_comm_type type~lib_common_type->type~w90_comm_type comm type~w90_physical_constants_type w90_physical_constants_type type~lib_common_type->type~w90_physical_constants_type physics type~w90_system_type w90_system_type type~lib_common_type->type~w90_system_type w90_system type~wann_control_type wann_control_type type~lib_common_type->type~wann_control_type wann_control type~wann_omega_type wann_omega_type type~lib_common_type->type~wann_omega_type omega, wann_omega type~wannier_data_type wannier_data_type type~lib_common_type->type~wannier_data_type wannier_data type~wannier_plot_type wannier_plot_type type~lib_common_type->type~wannier_plot_type wann_plot type~ws_region_type ws_region_type type~lib_common_type->type~ws_region_type ws_region type~wvfn_read_type wvfn_read_type type~lib_common_type->type~wvfn_read_type wvfn_read type~settings_data settings_data type~settings_type->type~settings_data entries type~timing_data_type timing_data_type type~timer_list_type->type~timing_data_type clocks type~guiding_centres_type guiding_centres_type type~wann_control_type->type~guiding_centres_type guiding_centres type~wann_slwf_type wann_slwf_type type~wann_control_type->type~wann_slwf_type constrain

Components

Type Visibility Attributes Name Initial
character(len=50), public :: seedname

base name for reading/writing of files

complex(kind=dp), public, allocatable :: ham_k(:,:,:)

KS Hamiltonian, takes size (number of WF, number of WF, number of k-points)

complex(kind=dp), public, allocatable :: ham_r(:,:,:)

RS Hamiltonian, takes size (number of WF, number of WF, number of RS-points)

complex(kind=dp), public, pointer :: a_matrix(:,:,:) => null()

pointer to matrix "a" (projections), dimensioned (number of bands, number WF, number of k-points)

complex(kind=dp), public, pointer :: m_matrix_local(:,:,:,:) => null()

pointer to rank local part of "m", dimensioned (number of bands, number of bands, FD neighbours, number of k-points on this rank)

complex(kind=dp), public, pointer :: u_matrix(:,:,:) => null()

pointer to matrix "u", dimensionsed (number of WF, number of WF, number of k-points)

complex(kind=dp), public, pointer :: u_matrix_opt(:,:,:) => null()

pointer to matrix "u_matrix_opt", dimensioned (number of bands, number of WF, number of k-points)

real(kind=dp), public, pointer :: eigval(:,:) => null()

pointer to eigenvalue array dimensioned (number of bands, number of k-points)

integer, public, allocatable :: dist_kpoints(:)

distribution of k-points; dist_kpoints(i) = rank operating on k-point i

integer, public, allocatable :: exclude_bands(:)

index of bands to exclude from the calculation: passed to DFT code to define space for overlaps, projections, etc

integer, public, allocatable :: irvec(:,:)
integer, public, allocatable :: ndegen(:)
integer, public, allocatable :: shift_vec(:,:)
integer, public :: mp_grid(3)

Dimensions of the Monkhorst-Pack grid

integer, public :: nrpts

Dimensions of the RS grid

integer, public :: num_bands

Number of bands (greater or equal to number of WFs)

integer, public :: num_kpts

Total number of k-points

integer, public :: num_proj = 0

Number of projectors defined

integer, public :: num_wann

Number of WFs

integer, public :: optimisation = 3

Algorithm control (affects memory use/speed)

integer, public :: rpt_origin
logical, public :: calc_only_A = .false.
logical, public :: gamma_only = .false.

Select gamma_only branch of some algorithms

logical, public :: have_disentangled = .false.

Flag that disentanglment has been performed

logical, public :: lhasproj = .false.

Flag that projectors are defined

logical, public :: lsitesymmetry = .false.

Flag that symmetry-adapted WFs are to be calculated

logical, public :: use_bloch_phases = .false.

Flag to bypass disentanglement

logical, public :: setup_complete = .false.

Internal flag to indicate completion of setup

real(kind=dp), public, allocatable :: fermi_energy_list(:)

Array of energies around the Fermi energy

real(kind=dp), public, allocatable :: kpt_latt(:,:)

Tabulation of k-points in crystal coordinates

real(kind=dp), public, allocatable :: wannier_centres_translated(:,:)
real(kind=dp), public :: real_lattice(3,3)
type(atom_data_type), public :: atom_data
type(band_plot_type), public :: band_plot
type(dis_control_type), public :: dis_control
type(dis_manifold_type), public :: dis_manifold
type(dis_spheres_type), public :: dis_spheres
type(fermi_surface_plot_type), public :: fermi_surface_data
type(ham_logical_type), public :: ham_logical
type(kmesh_info_type), public :: kmesh_info
type(kmesh_input_type), public :: kmesh_input
type(kpoint_path_type), public :: kpoint_path
type(output_file_type), public :: output_file
type(print_output_type), public :: print_output
type(proj_type), public, allocatable :: proj(:)
type(proj_type), public, allocatable :: proj_input(:)
type(real_space_ham_type), public :: real_space_ham
type(select_projection_type), public :: select_proj
type(settings_type), public :: settings

container for input file (.win) data and options set via library interface

type(sitesym_type), public :: sitesym
type(timer_list_type), public :: timer
type(transport_type), public :: tran
type(w90_calculation_type), public :: w90_calculation
type(w90_comm_type), public :: comm
type(w90_physical_constants_type), public :: physics
type(w90_system_type), public :: w90_system
type(wann_control_type), public :: wann_control
type(wannier_data_type), public :: wannier_data
type(wannier_plot_type), public :: wann_plot
type(wann_omega_type), public :: omega
type(wann_omega_type), public :: wann_omega
type(ws_region_type), public :: ws_region
type(wvfn_read_type), public :: wvfn_read

Source Code

  type lib_common_type
    character(len=50) :: seedname ! size=50 is a convention here
    !! base name for reading/writing of files

    ! matrices
    complex(kind=dp), allocatable :: ham_k(:, :, :)
    !! KS Hamiltonian, takes size (number of WF, number of WF, number of k-points)
    complex(kind=dp), allocatable :: ham_r(:, :, :)
    !! RS Hamiltonian, takes size (number of WF, number of WF, number of RS-points)
    complex(kind=dp), pointer :: a_matrix(:, :, :) => null()
    !! pointer to matrix "a" (projections), dimensioned (number of bands, number WF, number of k-points)
    complex(kind=dp), pointer :: m_matrix_local(:, :, :, :) => null()
    !! pointer to rank local part of "m", dimensioned (number of bands, number of bands, FD neighbours, number of k-points on this rank)
    complex(kind=dp), pointer :: u_matrix(:, :, :) => null()
    !! pointer to matrix "u", dimensionsed (number of WF, number of WF, number of k-points)
    complex(kind=dp), pointer :: u_matrix_opt(:, :, :) => null()
    !! pointer to matrix "u_matrix_opt", dimensioned (number of bands, number of WF, number of k-points)
    real(kind=dp), pointer :: eigval(:, :) => null()
    !! pointer to eigenvalue array dimensioned (number of bands, number of k-points)

    integer, allocatable :: dist_kpoints(:)
    !! distribution of k-points; dist_kpoints(i) = rank operating on k-point i
    integer, allocatable :: exclude_bands(:)
    !! index of bands to exclude from the calculation: passed to DFT code to define space for overlaps, projections, etc
    integer, allocatable :: irvec(:, :)
    integer, allocatable :: ndegen(:)
    integer, allocatable :: shift_vec(:, :)

    integer :: mp_grid(3)
    !! Dimensions of the Monkhorst-Pack grid
    integer :: nrpts
    !! Dimensions of the RS grid
    integer :: num_bands
    !! Number of bands (greater or equal to number of WFs)
    integer :: num_kpts
    !! Total number of k-points
    integer :: num_proj = 0
    !! Number of projectors defined
    integer :: num_wann
    !! Number of WFs
    integer :: optimisation = 3
    !! Algorithm control (affects memory use/speed)
    integer :: rpt_origin

    logical :: calc_only_A = .false.
    logical :: gamma_only = .false.
    !! Select gamma_only branch of some algorithms
    logical :: have_disentangled = .false.
    !! Flag that disentanglment has been performed
    logical :: lhasproj = .false.
    !! Flag that projectors are defined
    logical :: lsitesymmetry = .false.
    !! Flag that symmetry-adapted WFs are to be calculated
    logical :: use_bloch_phases = .false.
    !! Flag to bypass disentanglement
    logical :: setup_complete = .false.
    !! Internal flag to indicate completion of setup

    real(kind=dp), allocatable :: fermi_energy_list(:)
    !! Array of energies around the Fermi energy
    real(kind=dp), allocatable :: kpt_latt(:, :)
    !! Tabulation of k-points in crystal coordinates
    real(kind=dp), allocatable :: wannier_centres_translated(:, :)
    real(kind=dp) :: real_lattice(3, 3)

    ! See types.F90 and wannier90_types.F90 for the use and composition of the different types
    type(atom_data_type) :: atom_data
    type(band_plot_type) :: band_plot
    type(dis_control_type) :: dis_control
    type(dis_manifold_type) :: dis_manifold
    type(dis_spheres_type) :: dis_spheres
    type(fermi_surface_plot_type) :: fermi_surface_data
    type(ham_logical_type) :: ham_logical
    type(kmesh_info_type) :: kmesh_info
    type(kmesh_input_type) :: kmesh_input
    type(kpoint_path_type) :: kpoint_path
    type(output_file_type) :: output_file
    type(print_output_type) :: print_output
    type(proj_type), allocatable :: proj(:), proj_input(:)
    type(real_space_ham_type) :: real_space_ham
    type(select_projection_type) :: select_proj
    type(settings_type) :: settings
    !! container for input file (.win) data and options set via library interface
    type(sitesym_type) :: sitesym
    type(timer_list_type) :: timer
    type(transport_type) :: tran
    type(w90_calculation_type) :: w90_calculation
    type(w90_comm_type) :: comm
    type(w90_physical_constants_type) :: physics
    type(w90_system_type) :: w90_system
    type(wann_control_type) :: wann_control
    type(wannier_data_type) :: wannier_data
    type(wannier_plot_type) :: wann_plot
    type(wann_omega_type) :: omega
    type(wann_omega_type) :: wann_omega
    type(ws_region_type) :: ws_region
    type(wvfn_read_type) :: wvfn_read
  end type lib_common_type