ALPS 2 Tutorials:DMFT-05 OSMT
From ALPS
|
Languages: |
English • 日本語 (ja) • 繁體中文 (zh-tw) • 简体中文 (zh) |
Tutorial 05: Orbitally Selective Mott Transition
An interesting phenomenon in multi-orbital models is the orbitally selective Mott transition, first examined by Anisimov et al. A variant of this, a momentum-selective Mott transition, has recently been discussed in cluster calculations as a cluster representation of pseudogap physics.
In an orbitally selective Mott transition some of the orbitals involved become Mott insulating as a function of doping or interactions, while others stay metallic.
As a minimal model we consider two bands: a wide band and a narrow band. In addition to the intra-orbital Coulomb repulsion U we consider interactions U', and J, with U' = U − 2J. We limit ourselves to Ising-like interactions - a simplification that is often problematic for real compounds.
We choose here a case with two bandwidth t1 = 0.5 and t2 = 1 and density-density like interactions of U' = U / 2, J = U / 4, and U between 1.6 and 2.8, where the first case shows a Fermi liquid-like behavior in both orbitals, the U = 2.2 is orbitally selective, and U = 2.8 is insulating in both orbitals.
The python command lines for running the simulations are found in tutorial5a.py. Alternatively, you can use the Vistrails file:
import pyalps
import numpy as np
import matplotlib.pyplot as plt
import pyalps.pyplot
#prepare the input parameters
parms=[]
coulombparam=[[1.8,0.45],[2.2,0.55],[2.8,0.7]]
for cp in coulombparam:
parms.append(
{
'CHECKPOINT' : 'dump',
'CONVERGED' : 0.01,
'F' : 10,
'FLAVORS' : 4,
'H' : 0,
'H_INIT' : 0.,
'MAX_IT' : 20,
'MAX_TIME' : 180,
'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' : 1,
'TOLERANCE' : 0.3,
't' : 1,
'SWEEPS' : 100000000,
'BETA' : 30,
'THERMALIZATION' : 10,
'U' : cp[0],
'J' : cp[1],
't0' : 0.5,
't1' : 1,
'G0TAU_INPUT' :'G0_tau_input_u_'+str(cp[0])+'_j_'+str(cp[1])
}
)
#write the input file and run the simulation
for p in parms:
input_file = pyalps.writeParameterFile('parm_u_'+str(p['U'])+'_j_'+str(p['J']),p)
res = pyalps.runDMFT(input_file)
The parameter files to run the simulation on the command line can be found in tutorials/dmft-05-osmt in the directories beta30_U1.8_2orbital, beta30_U2.2_2orbital and beta30_U2.8_2orbital. A paper using the same sample parameters can be found here.
As discussed in the previous tutorial, the (non-)metallicity of the Green's function is best observed by plotting the data on a logarithmic scale:
flavors=parms[0]['FLAVORS']
listobs=[]
for f in range(0,flavors):
listobs.append('Green_'+str(f))
ll=pyalps.load.Hdf5Loader()
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.figure()
plt.yscale('log')
plt.xlabel(r'$\tau$')
plt.ylabel(r'$G(\tau)$')
plt.title('Hubbard model on the Bethe lattice')
pyalps.pyplot.plot(data)
plt.legend()
plt.show()
Tutorial by Emanuel - Please don't hesitate to ask!
