{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import sisl\n", "from hubbard import HubbardHamiltonian, sp2, density, plot\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Periodic structures (perfect crystals, Bloch's theorem)\n", "\n", "In this example we study the effect of on-site Coulomb interactions for electrons in periodic systems by solving the mean-field Hubbard equation.\n", "\n", "We will start by building the geometry and the TB Hamiltonian for a 1D periodic chain of Carbon atoms using `sisl`." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Build sisl.Geometry object for a periodic 1D chain of Carbon atoms\n", "geom = sisl.Geometry([[0,0,0], [2.,0,0]], atoms=sisl.Atom(6), sc=[4,100,10])\n", "geom.set_nsc([3,1,1])\n", "\n", "# Plot geometry of unit cell\n", "p = plot.GeometryPlot(geom, cmap='Greys', figsize=(3,2))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We firstly build the TB `sisl.Hamiltonian` with the flag `spin='polarized` (for spin polarized calculations)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "# Build sisl.Hamiltonian object using sisl\n", "H0 = sisl.Hamiltonian(geom, spin='polarized')\n", "for ia in geom:\n", " idx = geom.close(ia, R=(0,2.1))\n", " H0[ia, idx[0]] = 0\n", " H0[ia, idx[1]] = -2.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now one can build the `HubbardHamiltonian` object, which enables the routines stored in this class to converge the mean-field Hubbard Hamiltonian to find the self-consistent solution. To model the interaction part (Hubbard term) we will use `U=3.5` eV. \n", "In this case, since the system has periodic boundary conditions, the Hamiltonian will be diagonalized per $\\mathbf k$-point to find the spin-densities. To do so one just need to pass the argument `nkpt=[nkx, nky, nkz]` when creating the `HubabrdHamiltonian(...)` object. This argument will set the number of $\\mathbf k$-points along each direction in which the Hamiltonian will be sampled in k-space." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Build the HubbardHamiltonian object with U=3.5 at room temperature\n", "HH = HubbardHamiltonian(H0, nkpt=[100,1,1], U=3.5, kT=0.025, q=(1,1))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As in [this example](https://dipc-cc.github.io/hubbard/docs/latest/examples/molecules.html) one has to break symmetry between up and down electrons so the program can find a self-consistent solution. To do so we can place one up electron on site 0 and one down electron on site 1." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "HH.set_polarization([0], dn=[1])" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now we can start the convergence until we find the self-consistent solution up to a desired tolerance (`tol`) by calling the `hubb.HubbardHamiltonian.converge` method. This method needs of another method to tell the code how to build the spin-densities. For instance, to compute the spin-densities for TB Hamiltonians with finite or periodic boundary conditions, one could use the method `density.calc_n`." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " HubbardHamiltonian: converge towards tol=1.00e-10\n", " 10 iterations completed: 0.0063626212646060165 -3.347981808109207\n", " 20 iterations completed: 0.0001918556205354749 -3.3579954880129295\n", " 30 iterations completed: 2.7045032879868813e-13 -3.35833095942144\n", " found solution in 30 iterations\n" ] } ], "source": [ "# Converge until a tolerance of tol=1e-10, print info each 10 iterations\n", "dn = HH.converge(density.calc_n, tol=1e-10, print_info=True, steps=10)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Also we can visualize some meaningful physical quantities and properties of the solution, e.g. such as the spin polarization of the unit-cell. Other interesting electronic properties can be visualized using the `hubbard.plot` module.\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Let's visualize some relevant physical quantities of the final result (this process may take a few seconds)\n", "p = plot.SpinPolarization(HH, colorbar=True, vmax=0.4, vmin=-0.4, figsize=(4,3))\n", "p.annotate(size=12)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Shift Hamiltonian with Fermi level to have it aligned to zero\n", "HH.shift(-HH.fermi_level())\n", "\n", "# Calculate bands for the bare TB Hamiltonian\n", "band_0 = sisl.BandStructure(H0, [[0., 0., 0.], [1./2, 0., 0.]], 301, [r'$\\Gamma$', 'X'])\n", "# Also for the converged MFH Hamiltonian\n", "band_MFH = sisl.BandStructure(HH.H, [[0., 0., 0.], [1./2, 0., 0.]], 301, [r'$\\Gamma$', 'X'])\n", "\n", "# Calculate eigenvalues of the band-structure\n", "eigs_0 = band_0.eigh()\n", "eigs_MFH = band_MFH.eigh()\n", "\n", "# Plot them\n", "import matplotlib.pyplot as plt\n", "\n", "plt.figure(figsize=(4,5))\n", "plt.xlabel('k', size=16)\n", "plt.ylabel(r'$E_{nk}-E_{F}$', size=16)\n", "\n", "# Generate linear-k for plotting (ensures correct spacing)\n", "lband = band_0.lineark()\n", "for i in range(eigs_0.shape[1]):\n", " plt.plot(lband, eigs_0[:, i], 'k--')\n", " plt.plot(lband, eigs_MFH[:, i], 'r')" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.3" } }, "nbformat": 4, "nbformat_minor": 2 }