Skip to content

Input parameters

Hiroshi Shinaoka edited this page Apr 30, 2018 · 20 revisions

Table of Contents

To show all available control parameters, just type "hybmat --help".

timelimit

The time (in units of seconds) which the program should run before exiting.

thermalization_time

Thermalization time (in units of second). The default value is 25 % of timelimit (a very conservative choice).

SEED

SEED is used as a seed for initializing a pseudorandom number generator on rank 0. With multi processes, SEED + k is used as a seed for initializing a pseudorandom number generator on rank k. You may want to run the CT-HYB solver multiple times with different values of SEED to estimate the error bars of some observable. In such cases, you should keep the above implementation detail to avoid using duplication of seeds. For instance, you may specify numbers which differ by large numbers than the number of processes to SEED.

algorithm

The algorithm used for evaluating the trace for the local Hilbert space. The default value is "complex-matrix", which is the complex-number version of the matrix algorithm. If all of the hopping matrix, the Coulomb tensor, the hybridization function are real, you can use "real-matrix", which is the real-number version of the matrix algorithm. In this implementation, we assume real numbers for internal floating-point operations, but the formats of input and output files are the same as those of the complex version.

[model]

n_tau_hyb

This specifies the number of segments on the interval [0,beta] and the number of Matsubara frequencies used for input and output data. Note that the number of imaginary-time points is N_TAU+1. For instance, the imaginary-time points will be \tau=0, beta/2, beta for N_TAU=2.

beta

Inverse temperature

sites

The number of sites or orbitals in the impurity.

spins

The number of spins per site or orbital. The total number of "flavors" is sites*spins.

delta_input_file

Text file containing \Delta_{ij}(\tau). The file must have N_TAU+1 lines. Each line has five columns. The index j runs first. The imaginary-time index runs last. The imaginary part of F(\tau) should be zero when using the real-number solver.

1st column: the index of imaginary-time points (from 0 to N_TAU in increasing order),
2nd column: the flavor index i,
3rd column: the flavor index j,
4th column: real part of F,
5th column: imaginary part of F.

hopping_matrix_input_file

Text file containing the hopping matrix (H_{ij}) within the impurity. The file must have FLAVORS*FLAVORS lines. Each line has four columns.

1st column: the flavor index i (from 0 to FLAVORS-1),
2nd column: the flavor index j (from 0 to FLAVORS-1),
3rd column: real part of hopping,
4th column: imaginary part of hopping.

The Hamiltonian reads H = \sum_{ij} H_{ij} c^\dagger_i c_j. The index j runs first.

coulomb_tensor_input_file

Text file containing the Coulomb tensor U_{ijkl} within the impurity. The Hamiltonian reads H = 0.5 \sum_{ijkl} U_{ijkl} c^\dagger_i c^\dagger_j c_k c_l. One does not have to symmetrize the tensor. The Hamiltonian matrix is constructed following the above definition "literally". The users must make sure that the Coulomb tensor is hermite.
The first line specifies the number of non-zero elements in the Coulomb tensor. From the second line, each line must contain seven columns.

1st column: the index of non-zero elements in the tensor (from 0 in increasing order),
2nd column: the flavor index i (from 0 to FLAVORS-1),
3rd column: the flavor index j (from 0 to FLAVORS-1),
4th column: the flavor index k (from 0 to FLAVORS-1),
5th column: the flavor index l (from 0 to FLAVORS-1),
6th column: real part of U_{ijkl},
7th column: imaginary part of U_{ijkl}

For instance, a single-orbital single-site impurity model with onsite U=4 may be defined as

1
0 0 1 1 0 8.0 0.0

An alternative definition will be the following.

2
0 0 1 1 0 4.0 0.0
1 1 0 0 1 4.0 0.0

basis_input_file

The name of a text file containing the transformation matrix for the single-particle basis. The default value is a unit matrix. Each line of the text file should be as follows.

i j Re Im

Re and Im are the real and imaginary parts of U_ij. The index j runs first. The total number of lines is N^2 where N is the number of flavors.

Caution: the results of the measurements are transformed back to the original basis except for the density-density correlation function. This quantity is always measured in the transformed basis.

outer_cutoff_energy

Cutoff energy of "outer cutoff" (see the paper for details). The cutoff energy is measured from the lowest eigenvalue.

inner_outer_cutoff_energy

Cutoff energy for "inner outer cutoff" (see the paper for details). The cutoff energy is measured from the lowest eigenvalue.

[update]

swap_vector

Definition of global updates in which the flavors of creation and annihilation operators are exchanged. The value is a string consisting of integers separated by spaces. The number of elements must be divisible by the number of flavors (FLAVORS). Each group consists of FLAVORS integers: the i-th element specifies to which flavor the flavor i is relabeled to.

Let us consider a three-orbital Hubbard-type impurity model.

Example 1: swap_vector="1 0 2 3 4 5"

This defines a spin-flip update for orbital 0.

Example 2: swap_vector="4 5 0 1 2 3"

This relabels orbital 0, 1, 2 by 2, 0, 1, respectively.

Example 3: swap_vector="1 0 2 3 4 5 4 5 0 1 2 3"

This defines the above two updates.

A global spin flip, which flips all the spins, is always defined irrespectively of the value of swap_vector. All reverse processes are automatically generated to keep the balance condition of the Monte Carlo dynamics. For Example 2, the code will perform three updates:

  • the global spin flip
  • orbital 0->2, orbital 1->0, orbital 2->1
  • orbital 0->1, orbital 1->2, orbital 2->0 (reverse process)

[measurement.G1]

n_legendre

The number of Legendre polynomials for measuring the single-particle Green's function. The default value is 100, which is a reasonable value for most of practical calculations. During a simulation, the coefficients of the Green's function are measured and accumulated. Once the simulation is done, G(\tau) and G(i \omega_n) are evaluated from the coefficients of the Legendre polynomials. If you take a too large value, G(\tau) may become too noisy.

n_tau

G(\tau) is computed on a uniform mesh of measurement.G1._tau + 1 points.

n_matsubara

G(i \omega_n) is computed on a uniform mesh of measurement.G1.n_matsubara frequencies.

We measure the two-particle Green's function in terms of the mixed representation of Legendre polynomials and bosonic Matsubara frequencies proposed by L. Boehnke et at. (2011). For the definition, please refer to Eqs.~(25) and (D.1) in our CPC paper.

[measurement.G2]

on

Set this to 1 to activate the measurement.

n_legendre

The number of Legendre polynomials.

n_bosonic_freq

The number of positive bosonic Matsubara frequencies.

max_matrix_size (default value=5)

In our implementation, we reduce the size of the inverse matrix before the measurement (Refer to Appendix D of our CPC paper). This parameter sets the maximum linear dimension of the matrix. You should not change this parameter unless you know what exactly this parameter means.

###[measurement.nn_corr]

n_tau

Specifies the number of imaginary-time points on the interval [0,beta/2] for measuring density-density correlation functions

<c^\dagger_i(tau) c_i(tau) c^\dagger_j(0)c_j(0)>.

For instance, the imaginary-time points will be 0, beta/4, beta/2 for nn_cor=3.

n_def

The number of correlation functions to be computed.

def

The name of a text file containing the definition of density-density correlation functions to be measured. The first line of the text file should be the number of correlation functions. From the second line, each line must contain three columns.

1st column: the index of correlation functions (from 0 in increasing order),
2nd column: the flavor index i,
3rd column: the flavor index j

###[measurement.equal_time_G1]

on

Set this to 1 to activate the measurement. All diagonal- and off-diagonal components will be measured by worm sampling.

<c^\dagger_i c_j>.