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:

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

Used modules

  • ed_input_vars: Contains all global input variables which can be set by the user through the input file. A specific preocedure ed_read_input() should be called to read the input file using parse_input_variable() procedure from SciFortran. All variables are automatically set to a default, looked for and updated by reading into the file and, sequentially looked for and updated from command line (std.input) using the notation variable_name=variable_value(s) (case independent).

  • ed_vars_global: Contains all variables, arrays and derived types instances shared throughout the code. Specifically, it contains definitions of the effective_bath, the gfmatrix and the sector data structures.

  • ed_aux_funx: Hosts a number of auxiliary procedures required in different parts of the code. Specifically, it implements: creation/annihilation fermionic operators, binary decomposition of integer representation of Fock states and setup the local impurity Hamiltonian

  • ed_sector: Contains procedures to construct the symmetry sectors corresponding to a given set of quantum numbers \(\vec{Q}\), in particular it allocated and build the sector_map connecting the states of a given sector with the corresponding Fock ones.

  • sf_timer

  • sf_iotools

  • sf_misc

  • mpi

  • sf_mpi

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]

Return:

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]

Return:

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]

Return:

dim [integer]