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 preocedureed_read_input()
should be called to read the input file usingparse_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 theeffective_bath
, thegfmatrix
and thesector
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 Hamiltonianed_sector
: Contains procedures to construct the symmetry sectors corresponding to a given set of quantum numbers \(\vec{Q}\), in particular it allocated and build thesector_map
connecting the states of a given sector with the corresponding Fock ones.-
-
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 ined_setup_dimensions()
given the variablesns
,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]