dis_manifold_type Derived Type

type, public :: dis_manifold_type

================================================== Contains information about the manifold of states from which the MLWFs are to be disentangled. ==================================================


Inherited by

type~~dis_manifold_type~~InheritedByGraph type~dis_manifold_type dis_manifold_type type~lib_common_type lib_common_type type~lib_common_type->type~dis_manifold_type dis_manifold

Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: win_min = -huge(0.0_dp)

lower bound of the disentanglement outer window

real(kind=dp), public :: win_max = huge(0.0_dp)

upper bound of the disentanglement outer window

real(kind=dp), public :: froz_min = -huge(0.0_dp)

lower bound of the disentanglement inner (frozen) window

real(kind=dp), public :: froz_max = huge(0.0_dp)

upper bound of the disentanglement inner (frozen) window

logical, public :: frozen_states = .false.

whether to use energy frozen window, i.e., froz_min/froz_max

real(kind=dp), public :: proj_min = -1.0_dp

lower threshold of the projectability disentanglement, below are discarded (negative = unset: set explicitly or determined automatically via proj_auto)

real(kind=dp), public :: proj_max = -1.0_dp

upper threshold of the projectability disentanglement, equal and above are frozen (negative = unset: set explicitly or determined automatically via proj_auto)

logical, public :: frozen_proj

whether to use projectability frozen window, i.e., proj_min/proj_max

logical, public :: proj_auto = .true.

whether to determine proj_min/proj_max automatically via multi-Otsu thresholding (ignored when proj_min/proj_max are set explicitly)

integer, public :: proj_auto_num_classes = 5

number of classes for the automatic multi-Otsu projectability thresholds

integer, public, allocatable :: ndimwin(:)

number of bands in outer window at each k

integer, public, allocatable :: nfirstwin(:)

index of first band in outer window at each k

logical, public, allocatable :: lwindow(:,:)

Source Code

  type dis_manifold_type
    !!==================================================
    !! Contains information about the manifold of states from which the MLWFs are to be disentangled.
    !!==================================================
    real(kind=dp) :: win_min = -huge(0.0_dp)
    !! lower bound of the disentanglement outer window
    real(kind=dp) :: win_max = huge(0.0_dp)
    !! upper bound of the disentanglement outer window
    real(kind=dp) :: froz_min = -huge(0.0_dp)
    !! lower bound of the disentanglement inner (frozen) window
    real(kind=dp) :: froz_max = huge(0.0_dp)
    !! upper bound of the disentanglement inner (frozen) window
    logical :: frozen_states = .false.
    !! whether to use energy frozen window, i.e., froz_min/froz_max
    real(kind=dp) :: proj_min = -1.0_dp
    !! lower threshold of the projectability disentanglement, below are discarded
    !! (negative = unset: set explicitly or determined automatically via proj_auto)
    real(kind=dp) :: proj_max = -1.0_dp
    !! upper threshold of the projectability disentanglement, equal and above are frozen
    !! (negative = unset: set explicitly or determined automatically via proj_auto)
    logical :: frozen_proj
    !! whether to use projectability frozen window, i.e., proj_min/proj_max
    logical :: proj_auto = .true.
    !! whether to determine proj_min/proj_max automatically via multi-Otsu thresholding
    !! (ignored when proj_min/proj_max are set explicitly)
    integer :: proj_auto_num_classes = 5
    !! number of classes for the automatic multi-Otsu projectability thresholds
    ! disentangle parameters
    ! Used by plot, hamiltonian, wannierise, postw90_common, get_oper - not read
    integer, allocatable :: ndimwin(:)
    !! number of bands in outer window at each k
    integer, allocatable :: nfirstwin(:)
    !! index of first band in outer window at each k
    logical, allocatable :: lwindow(:, :)
  end type dis_manifold_type