The file Akom.tar contains the wrapper to compute real frequency single particle Green functions. It is based on the identity:
$$ g(\tau) = \int_{\omega_{start}}^{\omega_{end}} d {\omega} K(\tau,\omega) A(\omega) $$ with $$ K(\tau,\omega) = \frac{e^{-\tau \omega} } { 1 + e^{-\beta\omega} } $$.
Here \(g(\tau)\), is the imaginary time Green function and \(A(\omega)\) a spectral function. For the test cases the sum rule reads: $$ \int { d \omega A(\omega) = 2} $$. Note, that the moment is required for the program to run.
Files (Input)
The imaginary time Green function is read from the file g_dat which contains, which reads data in the following way:
read n
do i=1,n
read tau(i), g(i), e(i)
enddo
do i=1,n
do j=1,n
read c(i,j)
enddo
enddo
Here we consider a regular imaginary time mesh tau(i). The first point is zero, that is tau(i) = 0. The inverse temperature beta = n*tau(1), such that the last data point is tau(n) = beta – tau(1). Note that it is important not to include the tau=beta and tau = 0 points, since due to the sum rule g(0) + g(beta) = 1 the data points are not independent. This would lead to a zero eigenvalue of the covariance matrix, c(i,j), and hence would crash the code.
The file paramSAC contains the parameters for the MaxEnt run. They are the following. Again to understand the details I strongly recommend you to read Kevin’s article: arXiv:cond-mat/0403055.
Here is a minimal description.
Ngamma:
The spectral function is represented as a set of Dirac-delta functions: $$ A(\omega) = \sum_{i=1}^{N_\gamma} \alpha_{i} \delta( \omega – \omega_i) $$.
OM_st and OM_en define the frequency range.
NDis. The average spectral function will be stored as a box distribution. The width of the each box is given by (OM_en – OM_st)/Ndis = \( \Delta \omega \)
The stochastic MaxEnt is essentially a parallel tempering Monte Carlo simulation. The Hamiltonian is
$$ \chi^{2}(A) = \sum_{i,j=1}^{n} \left[ g(i) – \overline{g(i)} \right] C^{-1}(i,j) \left[ g(j) – \overline{g(j)} \right] $$ with $$ \overline{g(i)} =\int d{\omega} K(\tau_{i},\omega) A(\omega)$$
The set of inverse temperatures used are given by:
$$ \alpha_m = \alpha_{st} R^{m}, \; \; m = 1 \cdots N_{\alpha} $$
The partition function is given by
$$Z = \int{DA} e^{-\alpha \chi^{2}(A)}$$ and the phase space by all possible spectral functions with given sum rule and required positivity.
For the Monte Carlo runs, Nsweeps corresponds to the number of sweeps, Nbins to the number of bins and Nwarm to the number of warmup sweeps. Note that the the parallel tempering moves are carried out at the end of each bin.
Finally if Lcov = 1 then the covariance will be taken into account. Otherwise only the diagonal will be used.
Output files
The code produces quite a lot of files.
The files Aom_n correspond to the average spectral function at temperature \( \alpha_n \). This corresponds to
$$ \langle A_n(\omega) \rangle = \frac{1}{Z} \int DA(\omega) e^{-\alpha_n \chi^{2}(A) } A(\omega). $$
The file contains three colums \( \omega, \; \langle A_n(\omega) \rangle , \; \Delta \langle A_n(\omega) \rangle \).
The files Aom_ps_n contain the average image over the temperatures \( \alpha_n \) to \( \alpha_{N_\gamma} \) see Kevin’s article for more details. The first three columns have the same meaning as for the files Aom_n
The file Green contains the Green function. The three columns correspond to \( \omega, \; {\rm Re} G(\omega), \; {\rm Im} G(\omega) \). This is obtained from the spectral function through:
$$ G(\omega) = -\frac{1}{\pi} \int d \Omega \frac{A(\Omega)}{\omega – \Omega + i \delta}$$
where \( \delta = 4 \Delta \omega \) and the image corresponds to that of the file Aom_ps_m with \( m = N_{\alpha} -10 \).
One of the most important files is the file energies. It contains there columns: \( \alpha_n, \langle \chi^2 \rangle, \Delta \langle \chi^2 \rangle \).
The File data_out is a crosscheck. It plots \( \tau, g(\tau), \Delta g(\tau), \int d \omega K(\tau, \omega) A(\omega) \) where the image is again taken from the file Aom_ps_m with \( m = N_{\alpha} -10 \). This file will give you a feeling on how good the fit actually is.
There are two dump files which are generated. Since this is essentially a Monte Carlo code, you would like to be able to continue a simulation if you find that the result is too noisy. The data in the dump files will allow you to continue the simulation without loosing the first run(s).
With all this, the essential question is: which image should one use. There is no real answer to this question in the context of the stochastic MaxEnt. The only rule of thumb is to consider temperatures for which the \( \chi^2 \) is comparable to the number of data points.
Archive
The archive contains three directories:
Wrapper_Akom This directory contains the wrapper. To compile just type Make. Do not forget to run the configure file before. This file can be found in the archive Program.tar (file section of the group).
Input_Akom The input files to run the code
Test_Akom_cov A test run with the covariance matrix
Test_Akom_nocov A test run without the covariance matrix