diff --git a/doc/tutorials/svo_vasp/INCAR b/doc/tutorials/svo_vasp/INCAR index f219ac18..970d91ef 100644 --- a/doc/tutorials/svo_vasp/INCAR +++ b/doc/tutorials/svo_vasp/INCAR @@ -1,23 +1,23 @@ SYSTEM = SrVO3 -NCORE = 4 +NCORE = 1 +KPAR = 5 LMAXMIX=6 EDIFF = 1.E-10 +# make sure that the wavefunction is properly converged +NELMIN = 30 # DOS energy window -NEDOS = 2001 - -! switch off symmetries -ISYM=-1 +NEDOS = 3001 # Smearing procedure ISMEAR = -5 # the energy window to optimize projector channels -EMIN = 3.9 -EMAX = 7.1 +EMIN = -1.0 +EMAX = 10.1 # use the PAW channel optimization LORBIT=14 # project to V d -LOCPROJ = 2 : d : Pr \ No newline at end of file +LOCPROJ = 2 : d : Pr diff --git a/doc/tutorials/svo_vasp/KPOINTS b/doc/tutorials/svo_vasp/KPOINTS index 663e888b..584cac26 100644 --- a/doc/tutorials/svo_vasp/KPOINTS +++ b/doc/tutorials/svo_vasp/KPOINTS @@ -1,6 +1,6 @@ Automatic Mesh 0 Gamma - 9 9 9 + 15 15 15 0 0 0 diff --git a/doc/tutorials/svo_vasp/svo_notebook.ipynb b/doc/tutorials/svo_vasp/svo_notebook.ipynb index 87c60afb..d1c84dda 100644 --- a/doc/tutorials/svo_vasp/svo_notebook.ipynb +++ b/doc/tutorials/svo_vasp/svo_notebook.ipynb @@ -12,33 +12,23 @@ "matplotlib.use(\"Pdf\")\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", - "%config InlineBackend.figure_format = 'svg'\n", - "\n", - "# set matplotlib parameters\n", - "params = {'backend': 'ps',\n", - " 'axes.labelsize': 13,\n", - " 'font.size': 13,\n", - " 'legend.fontsize': 13,\n", - " 'xtick.labelsize': 13,\n", - " 'ytick.labelsize': 13,\n", - " 'text.usetex': False,\n", - " 'text.latex.preamble': \"\\\\usepackage{mathpazo}, \\\\usepackage{amsmath}\",\n", - " 'font.family': 'sans-serif',\n", - " 'font.sans-serif': ['Computer Modern Sans serif']}\n", - "plt.rcParams.update(params)\n", "\n", "import warnings \n", "warnings.filterwarnings(\"ignore\") #ignore some matplotlib warnings\n", "\n", "# numpy\n", - "import numpy as np" + "import numpy as np\n", + "\n", + "from h5 import HDFArchive" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "In this basic example we will perform a VASP calculation for SrVO$_3$, build PLOs for the Vanadium t$_{2g}$ orbitals, and load them as SumK object, which can be then used to perform a DMFT calculation.\n", + "In this basic example we will perform a VASP calculation for SrVO$_3$, build PLOs for the Vanadium t$_{2g}$ orbitals, and load them as SumK object, which can be then used to perform a DMFT calculation. \n", + "\n", + "__Note: This example works with VASP version 6.5.0 or newer with hdf5 support enabled__\n", "\n", "## VASP setup\n", "\n", @@ -58,9 +48,6 @@ "# DOS energy window\n", "NEDOS = 2001\n", "\n", - "! switch off symmetries\n", - "ISYM=-1\n", - "\n", "# Smearing procedure\n", "ISMEAR = -5\n", "\n", @@ -88,11 +75,18 @@ "execution_count": 2, "metadata": {}, "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Warning: could not identify MPI environment!\n" + ] + }, { "name": "stderr", "output_type": "stream", "text": [ - "Starting run with 1 MPI rank(s) at : 2019-12-05 16:12:52.689539\n" + "Starting serial run at: 2025-02-18 21:42:09.686927\n" ] } ], @@ -121,10 +115,7 @@ " 0.0 0.0 0.0 1.0 0.0\n", "\n", "```\n", - "where the energy window of the t$_{2g}$ bands is specified by `EWINDOW` and the `TRANSFORM` flag picks the correct three orbitals out of the five Vanadium $d$ orbitals [see the guide for the ordering of orbitals](../../guide/conv_vasp.html). Before running PLOVASP, make sure that the Fermi energy is written in the first line of the `LOCPROJ` file, or copy it there (see the VASP [interface guide](../../guide/conv_vasp.html) for more information). The first line should look like\n", - "```\n", - "1 729 21 5 5.3834262 # of spin, # of k-points, # of bands, # of proj, Efermi\n", - "```\n", + "where the energy window of the t$_{2g}$ bands is specified by `EWINDOW` and the `TRANSFORM` flag picks the correct three orbitals out of the five Vanadium $d$ orbitals [see the guide for the ordering of orbitals](../../guide/conv_vasp.html). \n", "\n", "Now run PLOVASP:" ] @@ -138,30 +129,31 @@ "name": "stdout", "output_type": "stream", "text": [ - "Read parameters:\n", - "0 -> {'m': 0, 'l': 2, 'isite': 2, 'label': 'dxy'}\n", - "1 -> {'m': 1, 'l': 2, 'isite': 2, 'label': 'dyz'}\n", - "2 -> {'m': 2, 'l': 2, 'isite': 2, 'label': 'dz2'}\n", - "3 -> {'m': 3, 'l': 2, 'isite': 2, 'label': 'dxz'}\n", - "4 -> {'m': 4, 'l': 2, 'isite': 2, 'label': 'dx2-y2'}\n", - " Found POSCAR, title line: SrVO3\n", + "[WARNING]: Reading from vaspout.h5\n", + "Read parameters: LOCPROJ\n", + "0 -> {'label': 'dxy ', 'isite': 2, 'coord': array([-0.5, -0.5, -0.5]), 'l': 2, 'm': 0}\n", + "1 -> {'label': 'dyz ', 'isite': 2, 'coord': array([-0.5, -0.5, -0.5]), 'l': 2, 'm': 1}\n", + "2 -> {'label': 'dz2 ', 'isite': 2, 'coord': array([-0.5, -0.5, -0.5]), 'l': 2, 'm': 2}\n", + "3 -> {'label': 'dxz ', 'isite': 2, 'coord': array([-0.5, -0.5, -0.5]), 'l': 2, 'm': 3}\n", + "4 -> {'label': 'dx2-y2 ', 'isite': 2, 'coord': array([-0.5, -0.5, -0.5]), 'l': 2, 'm': 4}\n", " Total number of ions: 5\n", " Number of types: 3\n", - " Number of ions for each type: [1, 1, 3]\n", + " Number of ions for each type: [1 1 3]\n", "\n", - " Total number of k-points: 729\n", - " Total number of tetrahedra: 4374\n", - "eigvals from LOCPROJ\n", + " Reduced number of k-points: 120\n", + " Total number of k-points: 3375\n", + " Total number of tetrahedra: 1667\n", + "eigvals from EIGENVAL\n", "\n", " Unorthonormalized density matrices and overlaps:\n", " Spin: 1\n", " Site: 2\n", " Density matrix Overlap\n", - " 0.5875772 0.0015679 -0.0003707 0.0015674 0.0000000 0.9294791 -0.0000080 -0.0000078 -0.0000080 -0.0000001\n", - " 0.0015679 0.5876177 -0.0001854 -0.0016078 0.0003240 -0.0000080 0.9294790 -0.0000042 0.0000080 0.0000070\n", - " -0.0003707 -0.0001854 0.5815486 -0.0001854 -0.0000000 -0.0000078 -0.0000042 0.9715751 -0.0000038 0.0000003\n", - " 0.0015674 -0.0016078 -0.0001854 0.5876172 -0.0003240 -0.0000080 0.0000080 -0.0000038 0.9294791 -0.0000066\n", - " 0.0000000 0.0003240 -0.0000000 -0.0003240 0.5815487 -0.0000001 0.0000070 0.0000003 -0.0000066 0.9715748\n", + " 0.6117189 -0.0000015 0.0000000 -0.0000015 0.0000003 0.9363450 0.0000000 0.0000000 -0.0000000 -0.0000034\n", + " -0.0000015 0.6117651 -0.0000000 -0.0000015 0.0000000 0.0000000 0.9363441 -0.0000000 0.0000000 0.0000000\n", + " 0.0000000 -0.0000000 0.6323383 0.0000000 -0.0000000 0.0000000 -0.0000000 0.6770490 0.0000000 0.0001153\n", + " -0.0000015 -0.0000015 0.0000000 0.6117651 -0.0000000 -0.0000000 0.0000000 0.0000000 0.9363441 -0.0000000\n", + " 0.0000003 0.0000000 -0.0000000 -0.0000000 0.6323386 -0.0000034 0.0000000 0.0001153 -0.0000000 0.6743177\n", "\n", " Generating 1 shell...\n", "\n", @@ -170,36 +162,37 @@ " Number of ions: 1\n", " Dimension : 3\n", " Correlated : True\n", - " Ion sort : [1]\n", + " Ion sort : [2]\n", "Density matrix:\n", " Shell 1\n", + "Site diag : True\n", " Site 1\n", - " 0.3332630 0.0021719 0.0021714\n", - " 0.0021719 0.3333128 -0.0022211\n", - " 0.0021714 -0.0022211 0.3333123\n", - " trace: 0.9998880790966638\n", + " 0.3332494 -0.0000020 -0.0000020\n", + " -0.0000020 0.3333083 -0.0000020\n", + " -0.0000020 -0.0000020 0.3333083\n", + " trace: 0.9998660025516617\n", "\n", - " Impurity density: 0.9998880790966638\n", + " Impurity density: 0.9998660025516617\n", "\n", "Overlap:\n", " Site 1\n", - "[[ 1. -0. 0.]\n", - " [-0. 1. 0.]\n", - " [ 0. 0. 1.]]\n", + "[[1. 0. 0.]\n", + " [0. 1. 0.]\n", + " [0. 0. 1.]]\n", "\n", "Local Hamiltonian:\n", " Shell 1\n", - " Site 1\n", - " 0.5633806 0.0007563 0.0007563\n", - " 0.0007563 0.5633801 -0.0007559\n", - " 0.0007563 -0.0007559 0.5633801\n", + " Site 1 (real | complex part)\n", + " 0.5835197 0.0000000 -0.0000000 | -0.0000000 -0.0000000 -0.0000000\n", + " 0.0000000 0.5835196 -0.0000000 | 0.0000000 -0.0000000 -0.0000001\n", + " -0.0000000 -0.0000000 0.5835196 | 0.0000000 0.0000001 -0.0000000\n", "\n", "Evaluating DOS...\n", " Shell 1\n", - " Total number of states: [[[7.33737319 7.48285647 7.28002405]]]\n", + " Total number of states: [[[1.99988583 1.9995459 1.99942225]]]\n", " Storing ctrl-file...\n", " Storing PLO-group file 'vasp.pg1'...\n", - " Density within window: 0.9999741659673522\n" + " Density within window: 1.0000000000110985\n" ] } ], @@ -212,11 +205,62 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "PLOVASP created one shell with three orbitals, which are equally filled by 1/3, one electron in total. Additionally we calculated the density of states. Both in VASP and PLOVASP. The later stores the data in the file pdos_x.dat, which can be simply plotted with [matplotlib](https://matplotlib.org/). The result should look similar to:\n", + "PLOVASP created one shell with three orbitals, which are equally filled by 1/3, one electron in total. Additionally we calculated the density of states. Both in VASP and PLOVASP. The later stores the data in the file pdos_x.dat, which can be simply plotted with [matplotlib](https://matplotlib.org/):" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "plo_dos = np.loadtxt('pdos_0_0.dat')\n", "\n", - "![](svo_dos.svg)\n", + "with HDFArchive('vaspout.h5','r') as vaspout:\n", + " vasp_dos = vaspout['results/electron_dos/dos']\n", + " vasp_dos_energies = vaspout['results/electron_dos/energies']\n", + " vasp_fermi = vaspout['results/electron_dos/efermi']" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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IZ9//jn//e9/AVi2bBlxcXH885//pGfPnqSkpDB+/Hjee+895/AXQrR1BYGpPGWZ4rLNLqlMiDpJKPMxOp2O66+/ngULFrh0mF28eDE2m42rr77aue3999/n2muvJTQ0lAkTJtQIcnFxcXz//feUlJQ0qgZ/f/86T9GtX78egJ9//pmsrCy+/PJLAP71r3/x0ksv8eKLL7JlyxbGjRvHRRddxJ49e055XElJCVOnTuW3335j7dq1pKamcv755ze65tqMHj2aPn36OJ9r2bJl5Ofnc//999fY98ILL+SMM85wthDGxcWRlZXF6tWrT7sOIVoru6rWMiSZpDIh6tKmB4+tzYWv/UZuianFnzc62MD/7jyrQfvedNNNvPDCC6xatcrZojR//nwuu+wyQkNDAdizZw9r1651Bo5rr72WWbNm8X//93/OoRneffddpkyZQmRkJH369OGss85i8uTJDB8+vNbntdlsfPrpp2zZsoVbbrml9p8jOhqAyMhI4uLinNtffPFFHnroIa666ioAnn/+eVasWMG8efN444036jxu9OjRLo//7rvvEhYWxqpVq7jgggsa9HqdSteuXZ198Hbv3g1At27d6tz3xD6XX345P/74IyNGjCAuLo4hQ4YwZswYrr/+ekJCQk67LiFag9paxezSVCZEnaSl7CS5JSayiytb/NaYINi1a1eGDRvm7Ce2d+9efv31V5dTlx988AHjxo0jKioKgPPPP5+ioiJ++eUX5z7nnHMO+/fvZ/ny5UyePJlt27Zx9tln89RTT7k835tvvklQUBD+/v5Mnz6de++9lxkzZjS43uLiYjIzM2uEveHDh7Njx45THnv06FGmT59OamoqoaGhhISEUFpayuHDhxv8/KdS2zx8DblkX6vVMn/+fDIyMvjnP/9Ju3btePbZZ+nRowdZWTIBsxAANlVFOallTJWWMiHqJC1lJ4kONvjE806bNo0777yTN954g/nz55OSksKIESMAR4vWhx9+SHZ2Njpd1X+xzWbjgw8+YMyYMc5tfn5+nH322Zx99tk89NBDPP300zz55JM89NBD6PV6AKZMmcIjjzyCv78/8fHxaDQtl+WnTp1Kfn4+//rXv+jQoQMGg4GhQ4e67QrHHTt2OPuznXHGGc5tw4YNq3Xf7t27u2xr164d1113Hddddx1PPfUUZ5xxBm+//TZPPPGEW+oTwpeFFe3iEb9PXLbJ1ZdC1E1C2UkaegrR06644gruvvtuPvnkEz766CNmzJjhbPE50U9s8+bNLnMs/v3339x4440UFhYSFhZW6+N2794dq9VKZWWlM5SFhobSuXPnBtV14pjqVyCGhISQkJDAmjVrnMERYM2aNQwaNKjO407s8+abb3L++ecDkJ6eTl5eXoNqqc8vv/zC1q1buffeewE477zziIiI4KWXXqoRyr755hv27NlToxWxuvDwcOLj4ykrK3NLfUL4OoM5v8Y2aSkTom4SynxUUFAQV155JbNnz6a4uJgbbrjBed/777/PxIkT6dOnj8sx3bt3595772XhwoXMnDmTkSNHcvXVVzNw4EAiIyPZvn07//jHPxg1alST+0XFxMTg7+/P0qVLad++PUajkdDQUB544AEef/xxUlJS6Nu3L/PnzyctLY2FCxee8rjU1FQ+/vhjBg4cSHFxMQ888ECTrm40mUxkZ2djs9k4evQoS5cuZe7cuVxwwQVcf/31AAQGBvLOO+9w1VVXccstt3DHHXcQEhLC8uXLeeCBB5g8eTJXXHEFAO+88w5paWlccsklpKSkUFlZyUcffcS2bdt47bXXmvTaCdHq2GsOD6PWMjagEMJB+pT5sGnTpnHs2DHGjRtHQkIC4OiD9d1333HZZZfV2F+j0XDJJZfw/vvvAzBu3Dg+/PBDzjvvPLp168add97JuHHjnMM+NIVOp+PVV1/lnXfeISEhgYsvvhiAu+66i1mzZnHffffRq1cvli5dyjfffENqauopj3v//fc5duwY/fv357rrruOuu+4iJiam0XUtXbqU+Ph4kpOTGT9+PCtWrODVV1/l66+/dmlNnDx5MitWrODw4cOcffbZdOnShVdeeYVHHnmERYsWOVsjBw0aRGlpKbfddhs9evRgxIgRrF27liVLlri0BgrRptUWyqShTIg6KWorn4isuLiY0NBQioqKarT+VFZWcuDAATp27IjRaPRQhaKtcOfv265du9xUlRDNJ/3Pbxi792kAnrJcy/u28/nkymQiA1rHSZouXbp4ugThhU6VO+ojLWVCCCGahVqtpcyKo0W6dTcDCHF6JJQJIYRoHtVC2Ykpl+ySyoSok4QyIYQQzaPahORBVGDAPUPZCNFaSSgTQgjRPNSqlrKH/Raxy3gDqrXlZ0wRwldIKBNCCNE81JpXX548wr8QooqEMiGEEM0iV59UY5vMfSlE3SSUCSGEaBaHAnvzvOWqk7bK4LFC1EVCmRBCiGZhs9cyIbk0lAlRJwllQgghmoVdhR/tA122tfLxyoU4LRLKhBBCNAubqrJPbeeyTTKZEHWTUOajbrjhBhRFQVEU9Ho9nTt35sknn8RqtTrvnzRp0ikfIz09nZtuuomEhAT0ej0dOnTg7rvvJj8/v97nv/fee7n00kvd8aMIIVqps3IXscsw9aStksqEqIuEMh82fvx4srKy2LNnD/fddx9z5szhhRdeaNCx+/fvZ+DAgezZs4dPP/2UvXv38vbbb7N8+XKGDh1KQUHBKY9fv349AwcOPOU+Qoi2TWO3YFAsLttUVTr6C1EXCWU+zGAwEBcXR4cOHZgxYwZjx47lm2++adCxM2fORK/Xs2zZMkaMGEFSUhITJkzg559/5siRIzzyyCO1Hmc2m/Hz8+P333/nkUceQVEUhgwZ4s4fSwjRWtQSwOT0pRB1k1DWivj7+2M21z+NSUFBAT/++CO33347/v7+LvfFxcUxZcoUPvvss1o75Op0OtasWQNAWloaWVlZLF261D0/gBCiVVFUq3P5J1t/nrJci1Wj92BFQng3CWWtgKqq/Pzzz/z444+MHj263v337NmDqqp069at1vu7devGsWPHyM3NrXGfRqMhMzOTyMhI+vTpQ1xcHCUlJYwcOZLu3bvTu3dvFi9efNo/kxDC9ynVWsretV7A+7bzsWsMHqxICO+m83QBXun31+GPN+rfL74PXLPIddsnV0HWX/UfO3QmDLujafUd9+233xIUFITFYsFut3PNNdcwZ86cBh/f1EvTN2/eTJ8+fZzrOp2OefPm0bdvX7KzsxkwYADnn38+gYGBTXp8IUTroFSbZsl2vA3ALucvhaiThLLamEqgJLP+/ULb1dxWntewY00lja/rJKNGjeKtt95Cr9eTkJCATtew/87OnTujKAo7duzgkksuqXH/jh07CA8PJzo6utbj09LSXEJZfHw88fHxgOP0Z1RUFAUFBc5QlpaWxowZMygvL+eaa67hl19+4ccff2zsjyuE8DXVWspscmJGiHpJKKuNIRiCE+rfLyCq9m0NOdYQ3Pi6ThIYGEjnzp0bfVxkZCTnnnsub775Jvfee69Lv7Ls7GwWLlzI9ddfj6IotR6/detWLrvsslrv27hxIzabjcTERAAsFgs33HADixYtomvXrlx00UX07t270TULIXyPplpLWYxSSIKah90e78GKhPBuEspqM+yOpp9aPPl0pgcVFRWRlpbmsi0yMpLExERef/11hg0bxrhx43j66afp2LEj27Zt44EHHqBdu3Y888wzdT6u3W5n165dZGZmEhgYSGhoKOC4gOD666/nvffec+771VdfMXToULp27Qo4+qv17NnT/T+sEML7VAtl7+lfBuAHy9eAdG0QojbSntyKrVy5kn79+rncnnjiCQBSU1PZsGEDnTp14oorriAlJYVbbrmFUaNG8ccffxAREVHn4z799NMsWLCAdu3a8fTTTwNgMpmYNGkSDz/8MMOGDXPuu2XLFvr27etc37Ztm7SUCdFGVG8pc7LLOGVC1EVaynzUggUL6r2/vn06dOhQ7z61ufbaa7n22mud66qqcsMNNzB69Giuu+46l30jIiLYu3cv4AiJy5cv58svv2z0cwohfM8vgRfw8bGevKN/pWpjtWEyhBCupKVMnLY1a9bw2WefsWTJEvr27Uvfvn3ZunUr4AhwK1asoE+fPnzzzTeceeaZ6PUyTpEQbcFBXUd+tJ/J/2xVA0wr9lpaz4QQgIdD2erVq7nwwgtJSEhAURSWLFnicr+qqjz22GPEx8fj7+/P2LFj2bNnj2eKFXU666yzsNvtpKWlOW+9evUCHBcjbNiwgc2bN6PVamu0pAkhWi/78dEvrGirNtZ2SlMIAXg4lJWVldGnTx/eeKP2McH++c9/8uqrr/L222+zbt06AgMDGTduHJWVlS1cqWiqF154gZ49e9K/f3/0ej0333yzp0sSQrQQ2/ExyWwuoUz6lAlRF4/2KZswYQITJkyo9T5VVZk3bx7/93//x8UXXwzARx99RGxsLEuWLOGqq65qyVJFE82ZM6dRA9oKIVqPduaDDFLy6KvsdW5TpKVMiDp5bZ+yAwcOkJ2dzdixY53bQkNDGTx4MH/88YcHKxNCCNEQl5Uu5L+Gp+isqTagtl06+gtRF6+9+jI7OxuA2NhYl+2xsbHO+2pjMpkwmUzO9eLi4uYpUAghxClpajlVKR39haib17aUNdXcuXMJDQ113k6MLC+EEKJlKdQSwOT0pRB18tpQFhcXB8DRo0ddth89etR5X21mz55NUVGR85aent6sdQohhKhd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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "%matplotlib inline\n", + "fig = plt.figure(figsize=(7,4))\n", "\n", - "Here the gray area highlights the energy window for the PLOs. The total DOS of VASP (blue) coincides with the PLO DOS in the window, as we re-orthonormalized the projector functions in the given window, picking up also Oxygen weight. This setting is closed to the result of maximally localized Wannier functions created with [wannier90](http://www.wannier.org/) without running the actual minimization of the spread. Note, for a proper comparison one can use the hydrogen projector in VASP by using the the line `LOCPROJ= 2 : d : Hy`, instead of `Pr`. \n", + "plt.plot(vasp_dos_energies-vasp_fermi, vasp_dos[0,:], lw=2, label=r'VASP total DOS')\n", + "\n", + "plt.plot(plo_dos[:,0],plo_dos[:,1]+plo_dos[:,2]+plo_dos[:,3], '--', lw=2, label=r'PLO $t_{2g}$')\n", + "\n", + "plt.axvspan(-1., 1.5, facecolor='gray', alpha=0.3)\n", + "\n", + "plt.xlim([-3,3])\n", + "plt.ylim(0,12)\n", + "plt.ylabel(r'states/eV')\n", + "plt.legend()\n", + "\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here the gray area highlights the energy window for the PLOs. The total DOS of VASP (blue) coincides with the PLO DOS in the window, as we re-orthonormalized the projector functions in the given window, picking up also Oxygen weight. This setting is closest to the result of maximally localized Wannier functions created with [wannier90](http://www.wannier.org/) without running the actual minimization of the spread. Note, for a proper comparison one can use the hydrogen projector in VASP by using the the line `LOCPROJ= 2 : d : Hy`, instead of `Pr`. \n", "\n", "\n", "## Converting to hdf5 file\n", @@ -226,7 +270,7 @@ }, { "cell_type": "code", - "execution_count": 4, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -236,8 +280,24 @@ "Reading input from vasp.ctrl...\n", "{\n", " \"ngroups\": 1,\n", - " \"nk\": 729,\n", + " \"nk\": 3375,\n", + " \"nkibz\": 120,\n", " \"ns\": 1,\n", + " \"kvec1\": [\n", + " 0.2602750065719439,\n", + " 0.0,\n", + " 0.0\n", + " ],\n", + " \"kvec2\": [\n", + " 0.0,\n", + " 0.2602750065719439,\n", + " 0.0\n", + " ],\n", + " \"kvec3\": [\n", + " 0.0,\n", + " 0.0,\n", + " 0.2602750065719439\n", + " ],\n", " \"nc_flag\": 0\n", "}\n", "\n", @@ -265,7 +325,7 @@ }, { "cell_type": "code", - "execution_count": 5, + "execution_count": 7, "metadata": {}, "outputs": [], "source": [ @@ -284,28 +344,27 @@ }, { "cell_type": "code", - "execution_count": 6, + "execution_count": 8, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ + "Warning: No Sigma set but parameter with_Sigma=True, calculating Gloc without Sigma.\n", "found 1 blocks of degenerate orbitals in shell 0\n", "block 0 consists of orbitals:\n", - " up_2\n", " up_0\n", " up_1\n", - " down_2\n", + " up_2\n", + " down_0\n", " down_1\n", - " down_0\n" + " down_2\n" ] } ], "source": [ - "Sigma = SK.block_structure.create_gf(beta=40)\n", - "SK.put_Sigma([Sigma])\n", - "G = SK.extract_G_loc()\n", + "G = SK.extract_G_loc(transform_to_solver_blocks=False)\n", "SK.analyse_block_structure_from_gf(G, threshold = 1e-3)\n", "for i_sh in range(len(SK.deg_shells)):\n", " num_block_deg_orbs = len(SK.deg_shells[i_sh])\n", @@ -324,18 +383,11 @@ "\n", "Afterwards the exact same DMFT script as in the [Wien2k tutorial](../srvo3.html) can be used. For a more elaborate example including charge self-consistency take a look at the [VASP NiO example](../nio_csc.html)." ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], "metadata": { "kernelspec": { - "display_name": "Python 3", + "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, @@ -348,9 +400,10 @@ "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", - "pygments_lexer": "ipython3" + "pygments_lexer": "ipython3", + "version": "3.12.7" } }, "nbformat": 4, - "nbformat_minor": 2 + "nbformat_minor": 4 }