Input Files

The input files for the ACFlow toolkit can be divided into two groups: data files and configuration files.

Data Files

The input data should be stored in some text-based files, which adopt the space-separated data format. For imaginary time Green's function, the data file should contain three columns. They represent $\tau$, $\bar{G}(\tau)$, and standard deviation of $\bar{G}(\tau)$. For fermionic Matsubara Green's function, the data file should contain five columns. They represent $\omega_n$, Re$G(i\omega_n)$, Im$G(i\omega_n)$, standard deviation of Re$G(i\omega_n)$, and standard deviation of Im$G(i\omega_n)$. For bosonic correlation function $\chi(i\omega_n)$, the data file should contain three columns. They represent $\omega_n$, Re$\chi(i\omega_n)$, and standard deviation of Re$\chi(i\omega_n)$.

Configuration Files

The configuration file adopts the TOML format. It is used to customize the computational parameters. It consists of one or more blocks. Possible blocks (or sections) of the configuration file include [BASE], [MaxEnt], [BarRat], [NevanAC], [StochAC], [StochSK], [StochOM], and [StochPX]. The [BASE] block is mandatory, while the other blocks are optional. A schematic configuration file (ac.toml) is listed as follows:

[BASE]
finput = "giw.data"
solver = "StochOM"
...

[MaxEnt]
method = "chi2kink"
...

[BarRat]
atype  = "cont"
...

[NevanAC]
pick   = true
...

[StochAC]
nfine  = 10000
...

[StochSK]
method = "chi2min"
...

[StochOM]
ntry   = 100000
...

[StochPX]
method = "mean"
...

In the [BASE] block, the analytic continuation problem is defined. The solver used to solve the problem must be assigned. The types of mesh, grid, default model function, and kernel function are also determined. The [MaxEnt], [BarRat], [NevanAC], [StochAC], [StochSK], [StochOM], and [StochPX] blocks are used to customize the corresponding analytic continuation solvers further. In Table 1-Table 8, all the possible input parameters for these blocks are collected and summarized. As for detailed explanations of these parameters, please see Parameters.

ParameterTypeDefaultDescription
finputstring''green.data''Filename for input data.
solverstring''MaxEnt''Solver for the analytic continuation problem.
ktypestring''fermi''Type of kernel function.
mtypestring''flat''Type of default model function.
gridstring''ffreq''Grid for input data (imaginary axis).
meshstring''linear''Mesh for output data (real axis).
ngridinteger10Number of grid points.
nmeshinteger501Number of mesh points.
wmaxfloat5.0Right boundary (maximum value) of mesh.
wminfloat-5.0Left boundary (minimum value) of mesh.
betafloat10.0Inverse temperature.
offdiagboolfalseTreat the off-diagonal part of matrix-valued function?
fwriteboolN/AAre the analytic continuation results written into files?
pmodelarrayN/AAdditional parameters for customizing the default model.
pmesharrayN/AAdditional parameters for customizing the mesh.
excludearrayN/ARestriction of energy range of the spectrum.

Table 1 | Possible parameters for the [BASE] block (See [BASE] Block).

ParameterTypeDefaultDescription
methodstring''chi2kink''How to determine the optimized $\alpha$ parameter?
stypestring''sj''Type of the entropic factor.
nalphinteger12Total number of the used $\alpha$ parameters.
alphafloat1e9Starting value for the $\alpha$ parameter.
ratiofloat10.0Scaling factor for the $\alpha$ parameter.
blurfloat-1.0Shall we preblur the kernel and spectrum?

Table 2 | Possible input parameters for the [MaxEnt] block, which are used to configure the solver based on the maximum entropy method (See [MaxEnt] Block).

ParameterTypeDefaultDescription
atypestring''cont''Possible type of the spectrum.
denoisestring''prony''How to denoise the input data.
epsiloninteger1e-10Threshold for the Prony approximation.
pcutfloat1e-3Cutoff for unphysical poles.
etafloat1e-2Tiny distance from the real axis.

Table 3 | Possible input parameters for the [BarRat] block, which are used to configure the solver based on the Barycentric rational function approximation (See [BarRat] Block).

ParameterTypeDefaultDescription
pickboolfalseCheck the Pick criterion or not.
hardyboolfalsePerform Hardy basis optimization or not.
hmaxinteger50Upper cut off of Hardy order.
alphafloat1e-4Regulation parameter for smooth norm.
etafloat1e-2Tiny distance from the real axis.

Table 4 | Possible input parameters for the [NevanAC] block, which are used to configure the solver based on the Nevanlinna analytical continuation (See [NevanAC] Block).

ParameterTypeDefaultDescription
nfineinteger10000Number of points of a very fine linear mesh.
ngamminteger512Number of $\delta$ functions.
nwarminteger4000Number of Monte Carlo thermalization steps.
nstepinteger4000000Number of Monte Carlo sweeping steps.
ndumpinteger40000Intervals for monitoring Monte Carlo sweeps.
nalphinteger20Total number of the used $\alpha$ parameters.
alphafloat1.0Starting value for the $\alpha$ parameter.
ratiofloat1.2Scaling factor for the $\alpha$ parameter.

Table 5 | Possible input parameters for the [StochAC] block, which are used to configure the solver based on the stochastic analytic continuation (Beach's algorithm. See [StochAC] Block).

ParameterTypeDefaultDescription
methodstring''chi2min''How to determine the optimized $\Theta$ parameter?
nfineinteger100000Number of points of a very fine linear mesh.
ngamminteger1000Number of $\delta$ functions.
nwarminteger1000Number of Monte Carlo thermalization steps.
nstepinteger20000Number of Monte Carlo sweeping steps.
ndumpinteger200Intervals for monitoring Monte Carlo sweeps.
retryinteger10How often to recalculate the goodness-of-fit function.
thetafloat1e6Starting value for the $\Theta$ parameter.
ratiofloat0.9Scaling factor for the $\Theta$ parameter.

Table 6 | Possible input parameters for the [StochSK] block, which are used to configure the solver based on the stochastic analytic continuation (Sandvik's algorithm. See [StochSK] Block).

ParameterTypeDefaultDescription
ntryinteger2000Number of attempts to figure out the solution.
nstepinteger1000Number of Monte Carlo sweeping steps per try.
nboxinteger100Number of rectangles to used construct the spectrum.
sboxfloat0.005Minimum area of the randomly generated rectangles.
wboxfloat0.02Minimum width of the randomly generated rectangles.
normfloat-1.0Is the norm calculated?

Table 7 | Possible input parameters for the [StochOM] block, which are used to configure the solver based on the stochastic optimization method (See [StochOM] Block).

ParameterTypeDefaultDescription
methodstring''mean''How to evaluate the final spectral density?
nfineinteger100000Number of points of a very fine linear mesh.
npoleinteger200Number of poles.
ntryinteger1000Number of attempts to figure out the solution.
nstepinteger1000000Number of Monte Carlo sweeping steps per attempt / try.
thetafloat1e+6Artificial inverse temperature $\Theta$.
etafloat1e-4Tiny distance from the real axis $\eta$.

Table 8 | Possible input parameters for the [StochPX] block, which are used to configure the solver based on the stochastic pole expansion (See [StochPX] Block).