ALPS 2.1 Tutorials:DMFT-04 Mott

Revision as of 10:52, 12 September 2013 by VersioningBOT (talk | contribs) (versioning BOT: creating ALPS 2.1. Update links.)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Tutorial 04: Mott Transition

Mott transitions are metal insulator transitions (MIT) that occur in many materials, e.g. transition metal compounds, as a function of pressure or doping. The review by Imada et al. gives an excellent introduction to the subject and mentions V_2O_3 and the organics as typical examples.

MIT are easily investigated by DMFT as the relevant physics is essentially local (or k-independent): At half filling the MIT can be modeled by a self energy with a pole at \omega=0 which splits the noninteracting band into an upper and a lower Hubbard band. In this context it is instructive to suppress antiferromagnetic long range order and enforce a paramagnetic solution in the DMFT simulation, to mimic the paramagnetic insulating phase. For this the up and down spin of the Green's functions are symmetrized (parameter SYMMETRIZATION = 1;).

In order to run the simulations in python type or use or the Vistrails file:

import pyalps
import numpy as np
import matplotlib.pyplot as plt
import pyalps.pyplot

#prepare the input parameters
for u in [4.,5.,6.,8.]: 
              'ANTIFERROMAGNET'         : 1,
              'CHECKPOINT'              : 'dump',
              'CONVERGED'               : 0.01,
              'F'                       : 10,
              'FLAVORS'                 : 2,
              'H'                       : 0,
              'H_INIT'                  : 0.,
              'MAX_IT'                  : 20,
              'MAX_TIME'                : 60,
              'MU'                      : 0,
              'N'                       : 1000,
              'NMATSUBARA'              : 1000, 
              'N_FLIP'                  : 0,
              'N_MEAS'                  : 10000,
              'N_MOVE'                  : 0,
              'N_ORDER'                 : 50,
              'N_SHIFT'                 : 0,
              'OMEGA_LOOP'              : 1,
              'OVERLAP'                 : 0,
              'SEED'                    : 0, 
              'SOLVER'                  : 'Hybridization',
              'SYMMETRIZATION'          : 0,
              'TOLERANCE'               : 0.03,
              't'                       : 1,
              'SWEEPS'                  : 100000000,
              'BETA'                    : 20,
              'THERMALIZATION'          : 10,
              'U'                       : u,
              'NMATSUBARA_MEASUREMENTS' : 18,
              'G0OMEGA_INPUT'           : 'G0_omega_input_u_'+str(u),

#write the input file and run the simulation
for p in parms:
    input_file = pyalps.writeParameterFile('parm_u_'+str(p['U']),p)
    res = pyalps.runDMFT(input_file)

We investigate the Mott transition in single-site DMFT, as a function of interaction at fixed temperature \beta t=20 (see e.g. Fig. 2 in this paper). Starting from a non-interacting solution we see in the imaginary time Green's function that the solution is metallic for U/t \leq 4.5, and insulating for U/t\geq 5. A coexistence region could be found by starting from an insulating (or atomic) solution and trying to convert it for smaller U.

Imaginary time Green's functions are not easy to interpret, and therefore many authors employ analytic continuation methods. There are however two clear features: the value at \beta corresponds to -n, the negative value of the density (per spin). And the value at \beta/2 goes for decreasing temperature to A(\omega=0), the spectral function at the Fermi energy: \beta G(\beta/2) \rightarrow A(0). From a temperature dependence of the imaginary time Green's function we can therefore immediately see if the system is metallic or insulating. In order to better inspect the behavior of the Green's function we will plot the data on a logarithmic scale:

for f in range(0,flavors):

data = ll.ReadMeasurementFromFile(pyalps.getResultFiles(pattern='parm_u_*h5'), respath='/simulation/results/G_tau', measurements=listobs, verbose=True)
for d in pyalps.flatten(data):
    d.x = d.x*d.props["BETA"]/float(d.props["N"])
    d.y = -d.y
    d.props['label'] = r'$U=$'+str(d.props['U'])
plt.title('Hubbard model on the Bethe lattice')

The beta20_U* parameter files in the directory tutorials/dmft-04-mott should show you how to go from a metallic (at small U) to an insulating (at large U) solution, at fixed \beta. The largest value of U is deep within the insulating phase.

Tutorial by Emanuel - Please don't hesitate to ask!