Setup

Description

Contains procedures to set up the Exact Diagonalization calculation, executing all internal consistency checks and allocation of the global memory.

Quick access

Routines:

delete_ed_structure(), get_nonsu2_sector_dimension(), get_normal_sector_dimension(), get_superc_sector_dimension(), init_ed_structure(), setup_global()

Used modules

  • ed_input_vars: User-accessible input variables

  • ed_vars_global: Global variable accessible throughout the code

  • ed_aux_funx: Assortment of auxiliary procedures required throughout the code

  • ed_parse_umatrix: Routines to parse files containing two-body operators

  • ed_sector: Routines for Fock space sectors creation and manipulation

External modules

Subroutines and functions

subroutine  ed_setup/init_ed_structure()

Initialize the pool of variables and data structures of the ED calculation. Performs all the checks calling ed_checks_global(), set up the dimensions in ed_setup_dimensions() given the variables ns, norb, nspin, nbath, bath_type. Allocate all the dynamic memory which will be stored in the memory till the calculation will be finalized.

subroutine  ed_setup/delete_ed_structure()

Delete the entire memory pool upon finalization of the ED calculation.

subroutine  ed_setup/setup_global()

Setup the all the dimensions and the local maps according to a given symmetry of the Hamiltonian problem calling the correct procedure for a given ed_mode.

Setup the local Fock space maps used in the ED calculation for the normal operative mode. All sectors dimensions, quantum numbers \(\{\vec{N_\uparrow},\vec{N_\downarrow}\}\), \(S_z\), \(N_{tot}\), twin sectors and list of requested eigensolutions for each sectors are defined here. Identify Bath positions stride for a given value of bath_type. Determines the sector indices for \(\pm\) 1-particle with either spin orientations.

function  ed_setup/get_normal_sector_dimension(n, m)

Returns the dimension of the symmetry sector per orbital and spin with quantum numbers \(\vec{Q}=[\vec{N}_\uparrow,\vec{N}_\downarrow]\).

dim = \(\binom{n}{m}\)

Parameters:
  • n [integer, in]

  • m [integer, in]

Result:

dim [integer]

function  ed_setup/get_superc_sector_dimension(mz)

Returns the dimension of the symmetry sector with quantum numbers \(\vec{Q}=S_z=N_\uparrow-N_\downarrow\)

dim = \(\sum_i 2^{N-mz-2i}\binom{N}{N-mz-2i}\binom{mz+2i}{i}\)

Parameters:

mz [integer]

Result:

dim [integer]

function  ed_setup/get_nonsu2_sector_dimension(n)

Returns the dimension of the symmetry sector with quantum numbers \(\vec{Q}=N_{tot}=N_\uparrow+N_\downarrow\)

dim = \(\binom{2N}{n}\)

Parameters:

n [integer]

Result:

dim [integer]