Calculating correlation functions

Now that we have created a Sample, and defined the simulation configuration parameters, we are ready to perform an actual calculation by calling the fortran subroutines. The resulting correlation functions are automatically written to files in the sim_data folder. The correlation functions are also returned to Python:

# DOS correlation, fortran call
corr_DOS = tipsi.corr_DOS(sample, config)

# AC conductivity correlation, fortran call
corr_AC = tipsi.corr_AC(sample, config)

In the current version, the following physical quantities can be calculated:

  • DOS
  • LDOS
  • quasi-eigenstates
  • DC conductivity
  • AC conductivity
  • dynamical polarization
  • dielectric function

DOS

tipsi.correlation.corr_DOS(sample, config)

Get density of states correlation function

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

corr_DOS – DOS correlation function

Return type:

list of complex floats

Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.output['corr_DOS']

LDOS

tipsi.correlation.corr_LDOS(sample, config)

Get local density of states correlation function

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

corr_LDOS – LDOS correlation function

Return type:

list of complex floats

Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.LDOS['site_indices']
config.LDOS['wf_weights']
config.output['corr_LDOS']

AC conductivity

tipsi.correlation.corr_AC(sample, config)

Get AC conductivity

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

corr_AC – AC correlation function in 4 directions: xx, xy, yx, yy, respectively.

Return type:

(4, n) list of complex floats

Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['beta']
config.generic['mu']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.generic['nr_Fermi_fft_steps']
config.generic['Fermi_cheb_precision']
config.output['corr_AC']

DC conductivity

tipsi.correlation.corr_DC(sample, config)

Get DC conductivity correlation function

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

  • corr_DOS ((n_t_steps) list of complex floats) – DOS correlation function.
  • corr_DC ((2, n_energies, n_t_steps) list of complex floats) – DC conductivity correlation function.

Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['beta']
config.generic['mu']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.DC_conductivity['energy_limits']
config.output['corr_DOS']
config.output['corr_DC']

Dynamical polarization

tipsi.correlation.corr_dyn_pol(sample, config)

Get dynamical polarization correlation function

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

corr_dyn_pol – Dynamical polarization correlation function.

Return type:

(n_q_points, n_t_steps) list of complex floats

Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['beta']
config.generic['mu']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.generic['nr_Fermi_fft_steps']
config.generic['Fermi_cheb_precision']
config.dyn_pol['q_points']
config.output['corr_dyn_pol']

Quasi-eigenstates

tipsi.correlation.quasi_eigenstates(sample, config)

Get quasi-eigenstates

Parameters:
  • sample (Sample object) – sample information
  • config (Config object) – tbpm parameters
Returns:

states – Quasi-eigenstates of the sample; states[i,:] is a quasi-eigenstate at energy config.quasi_eigenstates[‘energies’][i].

Return type:

list of list of complex floats

This function does not write correlation functions to the sim_data folder, but only returns wave functions to python. Relevant config parameters:

config.generic['Bessel_precision']
config.generic['Bessel_max']
config.generic['seed']
config.generic['nr_time_steps']
config.generic['nr_random_samples']
config.quasi_eigenstates['energies']