{ "cells": [ { "cell_type": "markdown", "source": [ "# Graphene band structure" ], "metadata": {} }, { "cell_type": "markdown", "source": [ "This example plots the band structure of graphene, a 2D material. 2D band\n", "structures are not supported natively (yet), so we manually build a custom\n", "path in reciprocal space." ], "metadata": {} }, { "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "n Energy log10(ΔE) log10(Δρ) Diag Δtime\n", "--- --------------- --------- --------- ---- ------\n", " 1 -11.15656881832 -0.60 6.0 \n", " 2 -11.16015822545 -2.44 -1.30 1.0 219ms\n", " 3 -11.16039367848 -3.63 -2.32 2.0 230ms\n", " 4 -11.16041668817 -4.64 -3.29 3.0 280ms\n", " 5 -11.16041704566 -6.45 -3.48 3.1 277ms\n", " 6 -11.16041704960 -8.40 -3.65 1.3 209ms\n", " 7 -11.16041705106 -8.83 -3.94 1.9 206ms\n", " 8 -11.16041705135 -9.54 -4.37 2.0 222ms\n", " 9 -11.16041705140 -10.30 -4.79 2.1 223ms\n", " 10 -11.16041705143 -10.61 -5.05 2.1 242ms\n", " 11 -11.16041705144 -10.84 -5.31 2.6 238ms\n", " 12 -11.16041705145 -11.12 -5.72 2.7 261ms\n", " 13 -11.16041705145 -11.88 -6.27 2.7 256ms\n", "Computing bands along kpath:\n", " Γ -> M -> K -> Γ\n", "\rDiagonalising Hamiltonian kblocks: 5%|▊ | ETA: 0:00:08\u001b[K\rDiagonalising Hamiltonian kblocks: 12%|██ | ETA: 0:00:07\u001b[K\rDiagonalising Hamiltonian kblocks: 15%|██▍ | ETA: 0:00:06\u001b[K\rDiagonalising Hamiltonian kblocks: 17%|██▊ | ETA: 0:00:05\u001b[K\rDiagonalising Hamiltonian kblocks: 22%|███▌ | ETA: 0:00:05\u001b[K\rDiagonalising Hamiltonian kblocks: 27%|████▎ | ETA: 0:00:04\u001b[K\rDiagonalising Hamiltonian kblocks: 32%|█████▏ | ETA: 0:00:04\u001b[K\rDiagonalising Hamiltonian kblocks: 34%|█████▌ | ETA: 0:00:04\u001b[K\rDiagonalising Hamiltonian kblocks: 39%|██████▎ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 41%|██████▋ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 46%|███████▍ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 51%|████████▎ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 56%|█████████ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 59%|█████████▍ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 63%|██████████▏ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 68%|██████████▉ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 73%|███████████▊ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 76%|████████████▏ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 80%|████████████▉ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 83%|█████████████▎ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 85%|█████████████▋ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 88%|██████████████ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 90%|██████████████▌ | ETA: 0:00:00\u001b[K\rDiagonalising Hamiltonian kblocks: 93%|██████████████▉ | ETA: 0:00:00\u001b[K\rDiagonalising Hamiltonian kblocks: 95%|███████████████▎| ETA: 0:00:00\u001b[K\rDiagonalising Hamiltonian kblocks: 98%|███████████████▋| ETA: 0:00:00\u001b[K\rDiagonalising Hamiltonian kblocks: 100%|████████████████| Time: 0:00:04\u001b[K\n" ] }, { "output_type": "execute_result", "data": { "text/plain": "Plot{Plots.GRBackend() n=25}", "image/png": "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", "text/html": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ], "image/svg+xml": [ "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", " \n", " \n", " \n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n", "\n" ] }, "metadata": {}, "execution_count": 1 } ], "cell_type": "code", "source": [ "using DFTK\n", "using Unitful\n", "using UnitfulAtomic\n", "using LinearAlgebra\n", "\n", "# Define the convergence parameters (these should be increased in production)\n", "L = 20 # height of the simulation box\n", "kgrid = [6, 6, 1]\n", "Ecut = 15\n", "temperature = 1e-3\n", "\n", "# Define the geometry and pseudopotential\n", "a = 4.66 # lattice constant\n", "a1 = a*[1/2,-sqrt(3)/2, 0]\n", "a2 = a*[1/2, sqrt(3)/2, 0]\n", "a3 = L*[0 , 0 , 1]\n", "lattice = [a1 a2 a3]\n", "C1 = [1/3,-1/3,0.0] # in reduced coordinates\n", "C2 = -C1\n", "positions = [C1, C2]\n", "C = ElementPsp(:C, psp=load_psp(\"hgh/pbe/c-q4\"))\n", "atoms = [C, C]\n", "\n", "# Run SCF\n", "model = model_PBE(lattice, atoms, positions; temperature)\n", "basis = PlaneWaveBasis(model; Ecut, kgrid)\n", "scfres = self_consistent_field(basis)\n", "\n", "# Construct 2D path through Brillouin zone\n", "sgnum = 13 # Graphene space group number\n", "kpath = irrfbz_path(model; dim=2, sgnum)\n", "plot_bandstructure(scfres, kpath; kline_density=20)" ], "metadata": {}, "execution_count": 1 } ], "nbformat_minor": 3, "metadata": { "language_info": { "file_extension": ".jl", "mimetype": "application/julia", "name": "julia", "version": "1.8.5" }, "kernelspec": { "name": "julia-1.8", "display_name": "Julia 1.8.5", "language": "julia" } }, "nbformat": 4 }