From b7fe26dc4d10f3834090307656ae164436b70731 Mon Sep 17 00:00:00 2001 From: Qiangqiang Gu <98570179+QG-phy@users.noreply.github.com> Date: Mon, 25 Dec 2023 17:04:47 +0800 Subject: [PATCH] Example to get hr (#56) * add an jupyter to get HR. * update the get_HR jupyter --- examples/silicon/get_HR.ipynb | 277 ++++++++++++++++++++++++++++++++++ 1 file changed, 277 insertions(+) create mode 100644 examples/silicon/get_HR.ipynb diff --git a/examples/silicon/get_HR.ipynb b/examples/silicon/get_HR.ipynb new file mode 100644 index 00000000..26214242 --- /dev/null +++ b/examples/silicon/get_HR.ipynb @@ -0,0 +1,277 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 38, + "metadata": {}, + "outputs": [], + "source": [ + "import torch \n", + "import torch as th\n", + "import numpy as np\n", + "from dptb.plugins.init_nnsk import InitSKModel\n", + "from dptb.nnops.NN2HRK import NN2HRK\n", + "from dptb.nnops.apihost import NNSKHost\n", + "from ase.io import read,write\n", + "from dptb.structure.structure import BaseStruct\n", + "import matplotlib.pyplot as plt\n", + "from dptb.postprocess.bandstructure.band import bandcalc\n", + "import pickle as pickle\n", + "import matplotlib as mpl\n", + "mpl.rcParams['pdf.fonttype'] = 42" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "# initial rotate H or S func.\n" + ] + } + ], + "source": [ + "checkfile = './ckpt/2-2-2_best_nnsk_b5.000_c5.000_w0.100.pth'\n", + "f = torch.load(checkfile)\n", + "# define nnskapi for tb model.\n", + "nnskapi = NNSKHost(checkpoint=checkfile)\n", + "nnskapi.register_plugin(InitSKModel())\n", + "nnskapi.build()\n", + "# define nnHrk for Hamiltonian model.\n", + "nnHrk = NN2HRK(apihost=nnskapi, mode='nnsk')" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "tensor([14, 0, 14, 0, 0, 0, 0], dtype=torch.int32)\n", + "torch.Size([9, 9])\n" + ] + } + ], + "source": [ + "# read structure\n", + "atoms = read('./data/silicon.vasp', format='vasp')\n", + "# transfer structure to the nnHrk model.\n", + "nnHrk.update_struct(structure=atoms)\n", + "# get the Hamiltonian matrix.\n", + "allbonds, hamil_blocks, overlap_blocks = nnHrk.get_HR()\n", + "# Since we use orthogonal basis, the overlap_blocks is None.\n", + "# allbonds is a list of bonds, each bond is a tensor of (an_i,i,an_j,j,vec).\n", + "print(allbonds[0])\n", + "# an_i and an_j are the atomic numbers of atom i and j. Since this is a silicon mode. atom i and j are both silicon. an_i and an_j are both 14.\n", + "# vec is the vector from atom i to atom j. which is the lattice vector R.\n", + "# hamil_blocks is a list of Hamiltonian blocks, each block is a tensor of shape (norb_i, norb_j). \n", + "# norb_i and norb_j are the number of orbitals of atom i and j. Since this is a silicon mode. atom i and j are both silicon, and we use s,p,d orbitals for Si. norb_i and norb_j are both 9.\n", + "# the order of the list of allbonds and hamil_blocks is the same. that is, allbonds[i] is the bond corresponding to hamil_blocks[i].\n", + "print(hamil_blocks[0].shape)" + ] + }, + { + "cell_type": "code", + "execution_count": 26, + "metadata": {}, + "outputs": [], + "source": [ + "# get the band structure.\n", + "# define the kpoints.\n", + "# suppose we want to get the band structure along [0,0,0] -> [0.5,0,0.5]\n", + "kpath_list = [[x,0,x] for x in np.linspace(0,0.5,30)]\n", + "eigenvalues, estimated_E_fermi = nnHrk.get_eigenvalues(kpoints=kpath_list)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 36, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "(-15.0, 15.0)" + ] + }, + "execution_count": 36, + "metadata": {}, + "output_type": "execute_result" + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "plt.plot(np.linspace(0,0.5,30), eigenvalues-estimated_E_fermi,'k-')\n", + "plt.xlim([0,0.5])\n", + "plt.ylim([-15,15])" + ] + }, + { + "cell_type": "code", + "execution_count": 37, + "metadata": {}, + "outputs": [ + { + "data": { + "text/plain": [ + "" + ] + }, + "execution_count": 37, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "nnHrk" + ] + }, + { + "cell_type": "code", + "execution_count": 44, + "metadata": {}, + "outputs": [], + "source": [ + "# get band for obtained Hamiltonian blocks.\n", + "\n", + "def hs_block_R2k(all_bonds, hamil_blocks, kpoints, numOrbs, time_symm=True):\n", + " \"\"\" transfer HR to HK.\n", + "\n", + " Args:\n", + " all_bonds (list): list of bonds, each bond is a tensor of (an_i,i,an_j,j,vec).\n", + " hamil_blocks (list): list of Hamiltonian blocks, each block is a tensor of shape (norb_i, norb_j).\n", + " kpoints (list): list of kpoints.\n", + " numOrbs (list): list of number of orbitals for each atom.\n", + " time_symm (bool, optional): whether the Hamiltonian is time reversal symmetric. Defaults to True.\n", + "\n", + " Returns:\n", + " Hk (tensor): Hamiltonian matrix in k space.\n", + " \n", + " \"\"\"\n", + " totalOrbs = np.sum(numOrbs)\n", + " hijAll = hamil_blocks\n", + " Hk = th.zeros([len(kpoints), totalOrbs, totalOrbs], dtype = th.complex64)\n", + " for ik in range(len(kpoints)):\n", + " k = kpoints[ik]\n", + " hk = th.zeros([totalOrbs,totalOrbs],dtype = th.complex64)\n", + " for ib in range(len(all_bonds)):\n", + " Rlatt = all_bonds[ib,4:7].int()\n", + " i = all_bonds[ib,1].int()\n", + " j = all_bonds[ib,3].int()\n", + " ist = int(np.sum(numOrbs[0:i]))\n", + " ied = int(np.sum(numOrbs[0:i+1]))\n", + " jst = int(np.sum(numOrbs[0:j]))\n", + " jed = int(np.sum(numOrbs[0:j+1]))\n", + " if ib < len(numOrbs): \n", + " \"\"\"\n", + " len(numOrbs)= numatoms. the first numatoms are onsite energies.\n", + " if turn on timeSymm when generating the bond list . only i>= or <= j are included. \n", + " if turn off timeSymm when generating the bond list . all the i j are included.\n", + " for case 1, H = H+H^\\dagger to get the full matrix, the the onsite one is doubled.\n", + " for case 2. no need to do H = H+H^dagger. since the matrix is already full.\n", + " \"\"\"\n", + " if time_symm:\n", + " hk[ist:ied,jst:jed] += 0.5 * hijAll[ib] * np.exp(-1j * 2 * np.pi* np.dot(k,Rlatt))\n", + " else:\n", + " hk[ist:ied,jst:jed] += hijAll[ib] * np.exp(-1j * 2 * np.pi* np.dot(k,Rlatt)) \n", + " else:\n", + " hk[ist:ied,jst:jed] += hijAll[ib] * np.exp(-1j * 2 * np.pi* np.dot(k,Rlatt)) \n", + " if time_symm:\n", + " hk = hk + hk.T.conj()\n", + " Hk[ik] = hk\n", + " Hk.contiguous()\n", + " \n", + " return Hk" + ] + }, + { + "cell_type": "code", + "execution_count": 46, + "metadata": {}, + "outputs": [], + "source": [ + "# numOrbs = [9,9] means we use s,p,d orbitals for Si. and there are two Si atoms in the structure file.\n", + "HK = hs_block_R2k(all_bonds=allbonds, hamil_blocks=hamil_blocks, kpoints=kpath_list, numOrbs=[9,9])" + ] + }, + { + "cell_type": "code", + "execution_count": 49, + "metadata": {}, + "outputs": [], + "source": [ + "eigs = torch.linalg.eigvalsh(HK)" + ] + }, + { + "cell_type": "code", + "execution_count": 67, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "Hartree2eV = 27.211386245988\n", + "plt.plot(np.linspace(0,0.5,30), eigs.detach().numpy()*Hartree2eV,'k-')\n", + "plt.xlim([0,0.5])\n", + "#plt.ylim([-15,15])\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "# Hartree to eV\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "pydptb", + "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.9.7" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}