.. _sphx_glr_dimer_lattice_plot_hubbard_I_diagonal.py: ================================== Hubbard I for dimer diagonal basis ================================== The atomic self-energy is extracted and plotted into the lattice Green's function to see the behavior of the insulating state. Use the anti-bonding function .. code-block:: python # Created Mon Mar 14 13:56:37 2016 # Author: Óscar Nájera from __future__ import division, absolute_import, print_function import matplotlib.pyplot as plt import numpy as np from dmft.common import gw_invfouriertrans from dmft.plot import plot_band_dispersion import dmft.dimer as dimer import slaveparticles.quantum.operators as op Approximating Hubbard I ======================= Here I use the molecule self-energy .. code-block:: python def molecule_sigma(omega, U, mu, tp, beta): """Return molecule self-energy in the given frequency axis""" h_at, oper = dimer.hamiltonian_diag(U, mu, tp) oper_pair = [[oper[1], oper[1]], [oper[0], oper[0]]] eig_e, eig_v = op.diagonalize(h_at.todense()) gfsU = np.array([op.gf_lehmann(eig_e, eig_v, c.T, beta, omega, d) for c, d in oper_pair]) plt.plot(omega.real, -gfsU[0].imag, label='Anti') plt.plot(omega.real, -gfsU[1].imag, label='Bond') plt.plot(omega.real, -(1 / (omega - tp)).imag, label='Free') plt.xlabel(r'$\omega$') plt.ylabel(r'$A(\omega)$') plt.title(r'Isolated dimer $U={}$, $t_\perp={}$, $\beta={}$'.format(U, tp, beta)) plt.legend(loc=0) return [omega - tp - 1 / gfsU[0], omega + tp - 1 / gfsU[1]] The Real axis Self-energy ------------------------- .. code-block:: python def plot_self_energy(w, sd_w, so_w, U, mu, tp, beta): f, ax = plt.subplots(2, sharex=True) ax[0].plot(w, sd_w.real, label='Real') ax[0].plot(w, sd_w.imag, label='Imag') ax[1].plot(w, so_w.real, label='Real') ax[1].plot(w, so_w.imag, label='Imag') ax[0].legend(loc=0) ax[1].set_xlabel(r'$\omega$') ax[0].set_ylabel(r'$\Sigma_{Anti}(\omega)$') ax[1].set_ylabel(r'$\Sigma_{Bond}(\omega)$') ax[0].set_title( r'Isolated dimer $U={}$, $t_\perp={}$, $\beta={}$'.format(U, tp, beta)) w = np.linspace(-3, 3, 800) U, mu, tp, beta = 2.15, 0., 0.3, 100. sd_w, so_w = molecule_sigma(w + 5e-5j, U, mu, tp, beta) plot_self_energy(w, sd_w, so_w, U, mu, tp, beta) .. rst-class:: sphx-glr-horizontal * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_001.png :scale: 47 * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_002.png :scale: 47 Hubbard I Band dispersion ------------------------- .. code-block:: python eps_k = np.linspace(-1, 1, 61) lat_gf = 1 / np.add.outer(-eps_k, w + 5e-2j - sd_w) Aw = -lat_gf.imag / np.pi plot_band_dispersion( w, Aw, r'Hubbard I dimer $U={}$, $t_\perp={}$, $\beta={}$'.format(U, tp, beta), eps_k) .. rst-class:: sphx-glr-horizontal * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_003.png :scale: 47 * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_004.png :scale: 47 The Real axis Self-energy ------------------------- .. code-block:: python w = np.linspace(-3, 3, 800) U, mu, tp, beta = 2.15, 0., 0.3, 5. sd_w, so_w = molecule_sigma(w + 5e-5j, U, mu, tp, beta) plot_self_energy(w, sd_w, so_w, U, mu, tp, beta) .. rst-class:: sphx-glr-horizontal * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_005.png :scale: 47 * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_006.png :scale: 47 Hubbard I Band dispersion ------------------------- .. code-block:: python eps_k = np.linspace(-1, 1, 61) lat_gf = 1 / np.add.outer(-eps_k, w + 5e-2j - sd_w) Aw = -lat_gf.imag / np.pi plot_band_dispersion( w, Aw, r'Hubbard I dimer $U={}$, $t_\perp={}$, $\beta={}$'.format(U, tp, beta), eps_k) .. rst-class:: sphx-glr-horizontal * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_007.png :scale: 47 * .. image:: /dimer_lattice/images/sphx_glr_plot_hubbard_I_diagonal_008.png :scale: 47 **Total running time of the script:** ( 0 minutes 1.107 seconds) .. container:: sphx-glr-footer .. container:: sphx-glr-download :download:`Download Python source code: plot_hubbard_I_diagonal.py ` .. container:: sphx-glr-download :download:`Download Jupyter notebook: plot_hubbard_I_diagonal.ipynb ` .. rst-class:: sphx-glr-signature `Generated by Sphinx-Gallery `_