-
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 density-density correlation
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).
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
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]
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.
###[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.
Specify which elements of density-density correlation functions are measured. The first line is 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