-
Notifications
You must be signed in to change notification settings - Fork 14
Input parameters
- Basic parameters
- Model definition
- Control parameters for Monte Carlo
- Measurement of single-particle Green's function
- Measurement of two-particle Green's function
- Measurement of density-density correlation
- Measurement of equal-time Green's function
To show all available control parameters, just type "hybmat --help".
The time (in units of seconds) which the program should run before exiting.
Thermalization time (in units of second). The default value is 25 % of timelimit (a very conservative choice).
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.
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.
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.
Inverse temperature
The number of sites or orbitals in the impurity.
The number of spins per site or orbital. The total number of "flavors" is sites*spins.
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.
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.
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
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.
Cutoff energy of "outer cutoff" (see the paper for details). The cutoff energy is measured from the lowest eigenvalue.
Cutoff energy for "inner outer cutoff" (see the paper for details). The cutoff energy is measured from the lowest eigenvalue.
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)
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.
G(\tau) is computed on a uniform mesh of measurement.G1._tau + 1 points.
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.
Set this to 1 to activate the measurement.
The number of Legendre polynomials.
The number of positive bosonic Matsubara frequencies.
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]
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.
The number of correlation functions to be computed.
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]
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>.