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.

Note

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?
Note

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?
Note

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