Terminal output
Introduction
At run time, the quantum impurity solvers will generate a lot of output in the terminal. We usually redirect the terminal output to an external disk file in order to facilitate further analysis. The terminal output contains a lot of useful information, where we can learn the status of the solvers and extract some important physical quantities.
Format
The format/structure of the terminal output is a bit complex. Next, let's take a typical terminal output as an example to illustrate how to get some useful information from it.
The terminal outputs generated by various impurity solvers are somewhat different. But the main ingredients are similar.
The typical terminal output is as follows:
>>> Part 1:
GARDENIA
>>> A DMFT Engine With Continuous Time Quantum Monte Carlo Impurity Solver
Version: 2015.01.06T (built at 01:24:09 Dec 17 2015)
Develop: by li huang (at IOP/CAS & SPCLab/CAEP & UNIFR)
Support: lihuang.dmft@gmail.com
License: GNU General Public License version 3
GARDENIA >>> start running at 14:29:29 Dec 17 2015
GARDENIA >>> parallelism: Yes >>> processors: 8
GARDENIA >>> parameters list:
isscf : 1 isbin : 2
issun : 2 isspn : 1
isort : 1 issus : 98
isvrt : 1
lemax : 32 legrd : 20001
chmax : 32 chgrd : 20001
mkink : 1024 mfreq : 8193
nband : 2 nspin : 2
norbs : 4 ncfgs : 16
niter : 20 nfreq : 128
nffrq : 32 nbfrq : 8
ntime : 1024 nflip : 20000
ntherm: 2000000 nsweep: 200000000
nclean: 100000 nwrite: 20000000
nmonte: 100 ncarlo: 100
U : 4.40000 Uc : 4.40000
Js : 0.00000 Uv : 2.20000
Jp : 0.00000 Jz : 1.10000
mune : 3.85000 beta : 50.00000
part : 1.00000 temp : 232.09010
It is the header of the terminal output. In this part, we can get the following messages:
- The component we just used. Here it is the GARDENIA component.
- What is the version number is? And when was the compiling time of the code?
- What's the running mode? Is it parallel or sequential?
- When did the calculation start?
- How many cores were used in the calculation?
- All of the computational parameters. Are they reasonable?
>>> Part 2:
GARDENIA >>> DMFT iter:999 <<< BINNING
GARDENIA >>> CTQMC quantum impurity solver running
nband : 2 Uc : 4.40000
nspin : 2 Jz : 1.10000
quantum impurity solver initializing
seed: 504449434
time: 3.401s
quantum impurity solver retrieving
time: 0.000s
quantum impurity solver warmming
time: 1.083s
quantum impurity solver sampling
In this part, we can get the following information:
- Is the data binning activated?
- What's the random number seed?
The random number seed is very important. With it we can recover the scene once a fatal error/exception occurs.
>>> Part 3:
GARDENIA >>> iter:999 sweep: 200000000 of 2000000000
auxiliary system observables:
etot : 4.35130 epot : 4.38829
ekin : -0.03698 <Sz> : 0.00001
<N1> : 2.00001 <N2> : 4.00076
<K2> :.62528E+01 <K3> :.59136E+02
<K4> :.71594E+03
insert kink statistics:
count: 89994172 3070561 86923611
ratio: 1.00000 0.03412 0.96588
remove kink statistics:
count: 90009856 3070563 86939293
ratio: 1.00000 0.03411 0.96589
lshift kink statistics:
count: 9996436 474388 9522048
ratio: 1.00000 0.04746 0.95254
rshift kink statistics:
count: 9999536 475572 9523964
ratio: 1.00000 0.04756 0.95244
global swap statistics:
count: -1 0 0
ratio: 1.00000 0.00000 0.00000
global flip statistics:
count: 17943 17943 0
ratio: 1.00000 1.00000 0.00000
>>> quantum impurity solver status: normal
>>> used time: 4 m 48.46 s in current iteration.
>>> used time: 4 m 48.46 s in total iteration.
This is the most important part of the terminal output. The quantum impurity solvers will output this part every nwrite Monte Carlo sampling steps. So there are nsweep/nwrite similar parts in total. We usually extract useful data from the last part.
In this part, we can gain the following information:
- The progress of the impurity solver.
- Total energy, etot
- Potential energy, epot
- Kinetic energy, ekin
- Magnetic momentum, $\langle S_z \rangle$
- Total occupancy, $\langle N^1 \rangle$, $\langle N^2\rangle$
- Average of histogram, $\langle K^2 \rangle$, $\langle K^3 \rangle$, $\langle K^4 \rangle$
- Probability for the accept/reject events for various update
- Is the status of the solver normal?
- How long did the solver spend in this period?
From $\langle N^1 \rangle$ and $\langle N^2\rangle$, we can calculate the charge fluctuation. From $\langle K^2 \rangle$, $\langle K^3 \rangle$, and $\langle K^4 \rangle$, we can calculate the skewness and kurtosis of the histogram of the perturbation expansion order.
>>> Part 4:
GARDENIA >>> CTQMC quantum impurity solver shutdown
GARDENIA >>> total time spent: 2987.44s
GARDENIA >>> I am tired and want to go to bed. Bye!
GARDENIA >>> happy ending at 15:24: 8 Dec 17 2015
This is the final part of the terminal output, from which you will find:
- How long did the solver spend in the whole calculation?
- When did the code terminate?
Code
N/A