{
"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\n",
"--- --------------- --------- --------- ----\n",
" 1 -11.15665102824 -0.60 6.0\n",
" 2 -11.16017507190 -2.45 -1.30 1.0\n",
" 3 -11.16039508143 -3.66 -2.33 2.0\n",
" 4 -11.16041668900 -4.67 -3.31 3.1\n",
" 5 -11.16041704656 -6.45 -3.49 3.4\n",
" 6 -11.16041704971 -8.50 -3.67 1.1\n",
" 7 -11.16041705106 -8.87 -3.94 2.0\n",
" 8 -11.16041705135 -9.54 -4.41 2.0\n",
"┌ Warning: Negative ρ detected\n",
"│ min_ρ = -3.205767534872404e-16\n",
"└ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5\n",
" 9 -11.16041705141 -10.27 -4.76 2.1\n",
"┌ Warning: Negative ρ detected\n",
"│ min_ρ = -4.236192813938534e-16\n",
"└ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5\n",
" 10 -11.16041705143 -10.72 -5.02 1.9\n",
"┌ Warning: Negative ρ detected\n",
"│ min_ρ = -4.3506845116125484e-16\n",
"└ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5\n",
" 11 -11.16041705144 -10.80 -5.33 2.4\n",
"┌ Warning: Negative ρ detected\n",
"│ min_ρ = -5.495601488352693e-16\n",
"└ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5\n",
" 12 -11.16041705145 -11.13 -5.84 3.0\n",
"┌ Warning: Negative ρ detected\n",
"│ min_ρ = -1.3383354632328205e-16\n",
"└ @ DFTK ~/work/DFTK.jl/DFTK.jl/src/densities.jl:5\n",
" 13 -11.16041705145 -12.31 -6.25 2.3\n",
"Computing bands along kpath:\n",
" Γ -> M -> K -> Γ\n",
"\rDiagonalising Hamiltonian kblocks: 5%|▊ | ETA: 0:00:07\u001b[K\rDiagonalising Hamiltonian kblocks: 12%|██ | ETA: 0:00:06\u001b[K\rDiagonalising Hamiltonian kblocks: 17%|██▊ | ETA: 0:00:05\u001b[K\rDiagonalising Hamiltonian kblocks: 22%|███▌ | ETA: 0:00:04\u001b[K\rDiagonalising Hamiltonian kblocks: 27%|████▎ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 32%|█████▏ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 37%|█████▉ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 39%|██████▎ | ETA: 0:00:03\u001b[K\rDiagonalising Hamiltonian kblocks: 44%|███████ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 49%|███████▊ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 54%|████████▋ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 59%|█████████▍ | ETA: 0:00:02\u001b[K\rDiagonalising Hamiltonian kblocks: 63%|██████████▏ | ETA: 0:00:01\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: 78%|████████████▌ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 83%|█████████████▎ | ETA: 0:00:01\u001b[K\rDiagonalising Hamiltonian kblocks: 88%|██████████████ | 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: 100%|████████████████| Time: 0:00:03\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"
],
"image/svg+xml": [
"\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.4"
},
"kernelspec": {
"name": "julia-1.8",
"display_name": "Julia 1.8.4",
"language": "julia"
}
},
"nbformat": 4
}