Observables

In the normal case, the following observables are calculated

Description

This module calculates a series of observables, and stores them in aptly named plain-text files. ed_mode = normal

Quick access

Variables:

dens, dens_up, dens_dw, docc, magz, n2, sz2, exct_s0, exct_tz, dens_ph, s2tot, prob_ph, pdf_ph, pdf_part

Routines:

observables_normal(), local_energy_normal(), write_observables(), write_energy(), write_pdf(), prob_distr_ph(), hermite()

Used modules

  • sf_constants

  • sf_iotools

  • sf_arrays

  • sf_linalg

  • 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_eigenspace: A class implementing a data structure to efficiently store the low part of the Fock space spectrum, automatically spreading and retrieving the eigenstates among/from MPI threads.

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

  • 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.

  • ed_bath: Contains routines for setting, accessing, manipulating and clearing the bath of the Impurity problem.

  • ed_hamiltonian_normal: Setup and build the sector Hamiltonian, returns the correct dimension of the vectors in the Arpack/Lanczos procedure in each thread and provides an interface to Tri-Diagonalize the Hamiltonian on a Krylov basis given a starting vector.

Variables

ed_observables_normal/dens

orbital-resolved charge density

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/dens_dw

orbital-resolved spin-\(\downarrow\) electron density

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/dens_ph

phonon density

Type:

real

Attributes:

private

ed_observables_normal/dens_up

orbital-resolved spin-\(\uparrow\) electron density

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/docc

orbital-resolved double occupation

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/exct_s0

excitonic order parameter \(\langle c^{\dagger}_{is}\sigma^{0}c_{js^{'}} \rangle\)

Type:

real(•, •)

Attributes:

private, allocatable

ed_observables_normal/exct_tz

excitonic order parameter \(\langle c^{\dagger}_{is}\sigma^{z}c_{js^{'}} \rangle\)

Type:

real(•, •)

Attributes:

private, allocatable

ed_observables_normal/magz

orbital-resolved magnetization ( z component )

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/n2

\(\langle n_{i} n_{j} \rangle\) for i,j orbitals

Type:

real(•, •)

Attributes:

private, allocatable

ed_observables_normal/pdf_part

Lattice probability distribution as obtained by prob_distr_ph()

Type:

real(•, •)

Attributes:

private, allocatable

ed_observables_normal/pdf_ph

Phonon probability distribution prob_distr_ph()

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/prob_ph

Phonon probability

Type:

real(•)

Attributes:

private, allocatable

ed_observables_normal/s2tot

\(\langle S_{z}^{2} \rangle\)

Type:

real

Attributes:

private

ed_observables_normal/sz2

\(\langle S^{z}_{i} S^{z}_{j} \rangle\) for i,j orbitals

Type:

real(•, •)

Attributes:

private, allocatable

Subroutines and functions

subroutine  ed_observables_normal/observables_normal()

Calculate the values of the local observables

subroutine  ed_observables_normal/local_energy_normal()

Calculate the value of the local energy components

subroutine  ed_observables_normal/write_observables()

Write a plain-text file called observables_info.ed detailing the names and contents of the observable output files. Write the observable output files. Filenames with suffix _all contain values for all DMFT interations, those with suffix _last only values for the last iteration

subroutine  ed_observables_normal/write_energy()

Write the latest iteration values of energy observables

subroutine  ed_observables_normal/write_pdf()

Write the lattice probability distribution function

subroutine  ed_observables_normal/prob_distr_ph(vec, val)

Compute the local lattice probability distribution function (PDF), i.e. the local probability of displacement as a function of the displacement itself

Parameters:
  • vec (•) [real]

  • val [integer]

subroutine  ed_observables_normal/hermite(x, psi)

Compute the Hermite functions (i.e. harmonic oscillator eigenfunctions) the output is a vector with the functions up to order Dimph-1 evaluated at position x

Parameters:
  • x [real, in]

  • psi (dimph) [real, out]