{ "cells": [ { "cell_type": "markdown", "id": "f69268be-e6b4-43b0-8715-6f45daf638ea", "metadata": {}, "source": [ "## Phase diagram from first principle calculation\n", "\n", "Author: **S. Jung (v1, Apr14.2025., v1.1 May07.2025.)**\n", "Revision: **S. Tiwari (TBA)**\n", "\n", "In this Noteboook, we compute the Gibbs free energy of magnesium using the _ab initio_ calculation. Electrons and phonons are computed with Quantum ESPRESSO (QE), electronic and vibrational entropy are computed with quasi-harmonic approximation (QHA). Finally, pressure-temperature phase diagram is drawn" ] }, { "cell_type": "markdown", "id": "6da239c0-d992-4c23-b966-ddfccd5aa284", "metadata": {}, "source": [ "### Theory\n", "\n", "Here, we briefly introduce the main concepts and equations used in QE to obtain the Gibbs free energy. To draw a phase diagram, we need the Gibbs free energy for two different phases at a given temperature and pressure. The Gibbs free energy is given by\n", "$${G}(p,T) = {F}(p,T) + pV,$$\n", "where $G(p,T)$ and $F(p,T)$ are the Gibbs and Helmholtz free energies at a given temperature ($T$) and pressure ($p$), respectively. To evaluate $F$, we need the volume ($V$) and pressure ($p$), which can be obtained from the gradient of the $V$–$F$ curve. The Helmholtz free energy $F$ can be expressed as\n", "$${F}(p,T) = {F}(p;V,T) = {U}_{0}(V) + {F}_{\\mathrm{vib}}(V,T) + {F}_{\\mathrm{elec}}(V,T),$$\n", "where $U_{0}$, ${F}_{\\mathrm{vib}}$, and ${F}_{\\mathrm{elec}}$ are the internal, vibrational, and electronic free energies, respectively. $U_{0}$ can be calculated using self-consistent field (SCF) calculations. The remaining two contributions to the free energy are derived from the phonon and electronic density of states (DOS). \n", "\n", "First, the vibrational free energy is given by\n", "$${F}_{\\mathrm{vib}}(V,T) = {E}_{\\mathrm{zpe}}(V) - T{S}_{\\mathrm{vib}}(V,T),$$\n", "where ${E}_{\\mathrm{zpe}}$ and ${S}_{\\mathrm{vib}}$ are the zero-point energy and vibrational entropy, respectively. These quantities can be expressed using the phonon frequency ($\\omega_{\\mathbf{q}\\nu}$) for a given wavevector ($\\mathbf{q}$) and phonon mode ($\\nu$),\n", "$${E}_{\\mathrm{zpe}} = \\sum_{\\mathbf{q},\\nu} \\cfrac{\\hbar \\omega_{\\mathbf{q}\\nu}}{2}, $$\n", "$${S}_{\\mathrm{vib}} = -k_{B} \\sum_{\\mathbf{q},\\nu} \\log \\left[ 1 - \\exp \\left( -\\cfrac{\\hbar \\omega_{\\mathbf{q}\\nu}}{k_{B}T} \\right) \\right]. $$\n", "\n", "In this notebook, these equations are implemented using the phonon DOS instead of the individual phonon frequencies $\\omega_{\\mathbf{q}\\nu}$,\n", "$${E}_{\\mathrm{zpe}} = \\cfrac{1}{2} \\int_{0}^{\\infty} dE\\, E\\, g_{p}(E), $$\n", "$${S}_{\\mathrm{vib}} = M \\int_{0}^{\\infty} dE\\, \\log(1 + n(E))\\, g_{p}(E), $$\n", "where $E$, $g_{p}$, and $n$ denote the phonon energy, phonon DOS, and the Bose–Einstein distribution function, respectively. $M$ represents the number of atoms in the unit cell, but $M$ can be ignored since QE automatically normalizes the phonon DOS to the total number of phonon modes.\n", "\n", "On the other hand, the electronic free energy is given by\n", "$${F}_{\\mathrm{elec}}(V,T) = {E}_{\\mathrm{exct}}(V,T) - T{S}_{\\mathrm{elec}}(V,T),$$\n", "where ${E}_{\\mathrm{exct}}$ and ${S}_{\\mathrm{elec}}$ are the electronic excitation energy and entropy, respectively.\n", "$${E}_{\\mathrm{exct}} = \\int_{-\\infty}^{\\infty} d\\varepsilon\\, \\varepsilon\\, g_{e}(\\varepsilon) f(\\varepsilon) - \\int_{-\\infty}^{E_{F}} d\\varepsilon\\, \\varepsilon\\, g_{e}(\\varepsilon),$$\n", "$${S}_{\\mathrm{elec}} = -k_{B} \\int_{-\\infty}^{\\infty} d\\varepsilon \\left[ f(\\varepsilon)\\log(f(\\varepsilon)) + (1 - f(\\varepsilon))\\log(1 - f(\\varepsilon)) \\right] g_{e}(\\varepsilon),$$\n", "where $\\varepsilon$, $g_{e}$, and $f$ represent the electronic energy, electronic DOS, and the Fermi–Dirac distribution function, respectively.\n", "\n", "Finally, we obtain $F(V,T)$ for each phase. This $F(V,T)$ is then interpolated and expressed as a function of pressure, i.e., $F(p;V,T)$. The final step is to compare the Gibbs free energies $G$ of the different phases at a given temperature and pressure." ] }, { "cell_type": "markdown", "id": "112c8fc8-b57f-4cbb-92b6-6278b43d1188", "metadata": {}, "source": [ "### Calculation steps\n", "1. Construct a volume set for each phase via structural relaxation calculations under pressure. (`pw.x`)\n", "2. Perform phonon dispersion and DOS calculations. (`ph.x`, `q2r.x`, and `matdyn.x`)\n", "3. Conduct non-self-consistent field (NSCF) and electronic DOS calculations. (`pw.x` and `dos.x`)\n", "4. Calculate the zero-point energy and vibrational entropy from step 2.\n", "5. Calculate the electronic excitation energy and entropy from step 3.\n", "6. Using the results from steps 4 and 5, calculate and interpolate the Helmholtz free energy as a function of pressure.\n", "7. Finally, compute and compare the Gibbs free energy of each phase." ] }, { "cell_type": "markdown", "id": "9eb3a525-0c37-4849-8d60-e71ad0a34333", "metadata": {}, "source": [ "### Basic steups\n", "We need to set paths, constants, pararellization parameters." ] }, { "cell_type": "code", "execution_count": 2, "id": "8aa777d9-4fca-47fa-b43a-e2c93d900877", "metadata": { "scrolled": true }, "outputs": [], "source": [ "import os\n", "import math\n", "import numpy as np\n", "import EPWpy\n", "from EPWpy import EPWpy\n", "from EPWpy.QE.PW_util import *\n", "from scipy.integrate import simpson\n", "from scipy.interpolate import interp1d\n", "\n", "# Set your pseudopotential dir. This tutorial use LDA \n", "# paramiterized by Pseudodojo\n", "pseudo = '/work2/08400/jsyeb/frontera/epwpy/pseudos'\n", "workdir = '/scratch/08400/jsyeb/'\n", "cores = 48\n", "bccnk = 24\n", "hcpnk = 12" ] }, { "cell_type": "code", "execution_count": 3, "id": "6ee092b8-736f-4b7d-94c4-3f7186afa101", "metadata": {}, "outputs": [], "source": [ "# Move to your working directory and make dirs for each phase\n", "os.chdir(workdir)\n", "os.mkdir(\"mg-epwpy\")\n", "os.chdir(\"./mg-epwpy\")\n", "os.mkdir(\"bcc\")\n", "os.mkdir(\"hcp\")" ] }, { "cell_type": "code", "execution_count": 4, "id": "a5fc571d-1a28-4a59-8eb4-4191b4c5a4d7", "metadata": {}, "outputs": [], "source": [ "# Set constant values\n", "kb = 8.617333E-05 # Boltzmann [eV/K]\n", "ry2ev = 13.6057 # rydberg to electronvolt\n", "ry2cmm1 = 109677.57 # rydberg to cm-1\n", "ry2k = 157887.6634 # rydberg to kelvin\n", "# this constant standing for Ry/bohr3 -> kbar\n", "pressunit = 147105.371715 # pressure unit conversion" ] }, { "cell_type": "markdown", "id": "689d9151-3b0e-4111-9db1-b11409825a9c", "metadata": {}, "source": [ "### Input values\n", "The following are input values. All values depend on the specific system and the pseudopotential used. You can manually control how many volume and temperature points are considered." ] }, { "cell_type": "code", "execution_count": 5, "id": "e2d20aae-fbf0-4d62-a495-530cfee8b35b", "metadata": {}, "outputs": [], "source": [ "# Set input values\n", "bccnatom = 1.0 # number of atoms for BCC Mg\n", "hcpnatom = 2.0 # number of atoms for HCP Mg\n", "bccnelec = 10.0 # number of electrons for BCC Mg\n", "hcpnelec = 20.0 # number of electrons for HCP Mg\n", "\n", "numvol = 6 # numver of volume to consider\n", "ntemp = 50 # number of temperature to consider\n", "tstep = 40.0 # temperature interval\n", "\n", "pmin = 50.0 # minimum pressure value\n", "pmax = 550.0 # maximum pressure value\n", "pstep = 5.0 # pressure interval" ] }, { "cell_type": "code", "execution_count": 6, "id": "d604dc3f-beb0-411d-b6d7-21e5b34ff96e", "metadata": {}, "outputs": [], "source": [ "# We will consider six different volume and 20 temperature points\n", "# for each BCC and HCP Mg:\n", "bcclat = [None]*numvol\n", "bccenergy = [None]*numvol\n", "bcchelm = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "bccgibbs = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "hcplat = [None]*numvol\n", "hcpcoa = [None]*numvol\n", "hcpenergy = [None]*numvol\n", "hcphelm = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "hcpgibbs = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "# interpolation arrays:\n", "bccvol = [None]*numvol\n", "hcpvol = [None]*numvol\n", "bccitpv = [None]*ntemp\n", "hcpitpv = [None]*ntemp\n", "bccpress = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "hcppress = [[0.0 for x in range(numvol)] for y in range(ntemp)]\n", "bccitpg = [None]*ntemp\n", "hcpitpg = [None]*ntemp\n", "# Set volume and phase boundary arrays:\n", "nump = int((pmax - pmin)/pstep)\n", "press = [None]*nump\n", "pb = [None]*nump\n", "top = [None]*nump" ] }, { "cell_type": "markdown", "id": "8aa90a87-079d-4f70-97b4-a6edf57cbdb7", "metadata": {}, "source": [ "### BCC Mg calculaions\n", "First, we define the general calculation parameters for body-centered cubic (BCC) magnesium (Mg)." ] }, { "cell_type": "code", "execution_count": 7, "id": "c8c4a5f0-9447-49fd-b995-c7d97d008367", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n" ] } ], "source": [ "bccrelax=EPWpy.EPWpy({'prefix':'\\'bccrelax\\'','restart_mode':'\\'from_scratch\\'',\n", " 'calculation':'\\'scf\\'',\n", " 'ibrav':3,'celldm(1)':'6.41680','ntyp':1,'nat':1,\n", " 'atomic_species':['Mg'],'mass':[24.305],'atoms':['Mg'],'pseudo':['Mg.upf'],\n", " 'atomic_pos':np.array([[0.0, 0.0, 0.0]]),'atomic_position_type':'crystal',\n", " 'ecutwfc':'100','occupations':'\\'smearing\\'','smearing':'\\'gaussian\\'','degauss':'0.05',\n", " 'verbosity':'\\'low\\'','pseudo_dir':'\\''+str(pseudo)+'\\''\n", " },env='mpirun',system='bccrelax')\n", "\n", "bccrelax.run_serial = True\n", "bccrelax.verbosity = 2\n", "bccrelax.iondynamics = True\n", "bccrelax.celldynamics = True" ] }, { "cell_type": "markdown", "id": "6d0d0daf-2911-4c17-9cfd-77c4dbc0bfa5", "metadata": {}, "source": [ "### Structure relaxation calculations with pressure\n", "Relax the BCC Mg lattice parameter without applying external pressure. All subsequent relaxation calculations under finite pressure will be carried out. Each calculation is named according to its pressure value in kbar." ] }, { "cell_type": "code", "execution_count": 8, "id": "32cbb3eb-8395-4a70-afef-fd906b6559d0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "-- -- -- -- -- -- -- -- -- -- -- Calculation: 0 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 0.in > 0.out\n", "Running 0 |████████████████████████████████████████| in 14.5s (0.10/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n" ] } ], "source": [ "bccrelax.scf(ions={'ion_dynamics':'bfgs'},\n", " cell={'press':'0','press_conv_thr':'0.1'},\n", " system={'nbnd':10},\n", " control = {'calculation':'\\'vc-relax\\'','nstep':50},\n", " electrons = {'conv_thr':'1E-12'},\n", " kpoints={'kpoints':[[12,12,12]]},\n", " name = '0')\n", "bccrelax.prepare(cores,'scf',infile = '0.in')\n", "bccrelax.run(cores,'scf',infile='0')" ] }, { "cell_type": "markdown", "id": "c8566db3-009b-4458-afe4-215ad9f147ff", "metadata": {}, "source": [ "Now, we have relaxed BCC Mg structure, and we will check the values. All the values should be zero, because this was a first calculation of this tutorial." ] }, { "cell_type": "code", "execution_count": 9, "id": "66288fe9-c857-4e1c-b8e2-5b396948522c", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "{'cell_type': 'alat', 'lattice_vector': array([['0.000 0.000 0.000'],\n", " ['0.000 0.000 0.00'],\n", " ['0.000 0.000 0.000']], dtype=' 50.out\n", "Running 50 |████████████████████████████████████████| in 3.3s (0.53/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "new_cell_parameters: [[ 1.69781149 1.69781149 1.69781149]\n", " [-1.69781149 1.69781149 1.69781149]\n", " [-1.69781149 -1.69781149 1.69781149]]\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 150 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 150.in > 150.out\n", "Running 150 |████████████████████████████████████████| in 5.2s (0.30/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.477690', '0.477690', '0.477690', ')']\n", "new_cell_parameters: [[ 1.62205514 1.62205514 1.62205514]\n", " [-1.62205514 1.62205514 1.62205514]\n", " [-1.62205514 -1.62205514 1.62205514]]\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 250 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 250.in > 250.out\n", "Running 250 |████████████████████████████████████████| in 5.6s (0.27/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.462946', '0.462946', '0.462946', ')']\n", "new_cell_parameters: [[ 1.57199007 1.57199007 1.57199007]\n", " [-1.57199007 1.57199007 1.57199007]\n", " [-1.57199007 -1.57199007 1.57199007]]\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 350 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 350.in > 350.out\n", "Running 350 |████████████████████████████████████████| in 5.9s (0.26/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.451870', '0.451870', '0.451870', ')']\n", "new_cell_parameters: [[ 1.53438015 1.53438015 1.53438015]\n", " [-1.53438015 1.53438015 1.53438015]\n", " [-1.53438015 -1.53438015 1.53438015]]\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 450 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 450.in > 450.out\n", "Running 450 |████████████████████████████████████████| in 5.9s (0.26/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.442987', '0.442987', '0.442987', ')']\n", "new_cell_parameters: [[ 1.50421683 1.50421683 1.50421683]\n", " [-1.50421683 1.50421683 1.50421683]\n", " [-1.50421683 -1.50421683 1.50421683]]\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 550 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 48 -nt 1 -in 550.in > 550.out\n", "Running 550 |████████████████████████████████████████| in 5.5s (0.28/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '0.500000', '0.500000', '0.500000', ')']\n", "['a(1)', '=', '(', '0.435573', '0.435573', '0.435573', ')']\n", "new_cell_parameters: [[ 1.47904169 1.47904169 1.47904169]\n", " [-1.47904169 1.47904169 1.47904169]\n", " [-1.47904169 -1.47904169 1.47904169]]\n" ] } ], "source": [ "for prs in range(50, 650, 100):\n", " bccrelax.scf(ions={'ion_dynamics':'bfgs'},\n", " cell={'press':''+str(prs)+'','press_conv_thr':'0.1'},\n", " control = {'calculation':'\\'vc-relax\\'','nstep':50},\n", " system={'nbnd':10},\n", " electrons = {'conv_thr':'1E-12'},\n", " kpoints={'kpoints':[[12,12,12]]},\n", " name = ''+str(prs)+'')\n", " bccrelax.prepare(cores,'scf',infile = ''+str(prs)+'.in')\n", " bccrelax.run(cores,'scf',infile=''+str(prs)+'')\n", " bccrelax.pw_util = bccrelax.PW_utilities()\n", " bccrelax.pw_cell_parameters['lattice_vector'] = obtain_cell_parameters(bccrelax.pw_util.file)\n", " print('new_cell_parameters:', bccrelax.pw_cell_parameters['lattice_vector'])" ] }, { "cell_type": "markdown", "id": "adff62e0-553e-4480-b686-d1db8634c0d5", "metadata": {}, "source": [ "The relaxed lattice parameters are saved as an array." ] }, { "cell_type": "code", "execution_count": 12, "id": "5d8d21a0-19ac-4154-89a5-cd631f9d2d16", "metadata": {}, "outputs": [], "source": [ "# Save the relaxed lattice parameters as a array manually\n", "bcclat =[6.41680,6.13032,5.94124,5.79916,5.68522,5.59006]" ] }, { "cell_type": "code", "execution_count": 13, "id": "0c9e87f8-35fc-476a-83de-1903625b91b0", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "/scratch/08400/jsyeb/mg-epwpy/bcc\n" ] } ], "source": [ "# Move to BCC workplace\n", "os.chdir(workdir)\n", "os.chdir(\"./mg-epwpy/bcc/\")\n", "cwd = os.getcwd()\n", "print(cwd)" ] }, { "cell_type": "markdown", "id": "839c096a-b636-45cb-9711-ec0535172dff", "metadata": {}, "source": [ "### SCF, phonon, band, and DOS calculations\n", "Here, we enter the main loop over `numvol`, performing SCF and phonon calculations. This is one of the most powerful features of epwpy. An outer loop over volume is constructed to sequentially run SCF, NSCF, electronic DOS, phonon, and phonon DOS calculations. Each volume is calculated in its own independent directory." ] }, { "cell_type": "code", "execution_count": 14, "id": "f16417a3-58d0-4682-b335-668e53daba4e", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc0 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc0.in > bcc0.out\n", "Running bcc0 |████████████████████████████████████████| in 2.5s (0.80/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.55802521\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 4.3s (0.38/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.6s (1.96/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 57.0s (0.02/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 1.0s (7.26/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (14.36/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 20.5s (0.07/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc1 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc1.in > bcc1.out\n", "Running bcc1 |████████████████████████████████████████| in 2.3s (0.93/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.54710635\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 3.9s (0.42/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.7s (1.62/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 43.1s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (19.63/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (15.51/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 19.5s (0.07/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc2 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc2.in > bcc2.out\n", "Running bcc2 |████████████████████████████████████████| in 2.3s (0.93/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.53328093\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 3.9s (0.43/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.4s (2.51/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 41.7s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (13.73/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (19.70/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 20.5s (0.07/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc3 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc3.in > bcc3.out\n", "Running bcc3 |████████████████████████████████████████| in 2.3s (0.96/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.51841918\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 3.6s (0.48/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.6s (1.98/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 33.5s (0.04/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (13.94/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (14.39/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 21.3s (0.06/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc4 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc4.in > bcc4.out\n", "Running bcc4 |████████████████████████████████████████| in 2.3s (0.95/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.50316494\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 3.9s (0.43/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.5s (2.25/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 33.1s (0.04/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (14.05/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (16.14/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 24.6s (0.05/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: bcc5 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in bcc5.in > bcc5.out\n", "Running bcc5 |████████████████████████████████████████| in 2.3s (0.95/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -118.48779427\n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 24 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 3.9s (0.42/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.6s (1.99/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 24\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 24 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 34.0s (0.04/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (14.55/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (15.31/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 22.7s (0.06/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n" ] } ], "source": [ "for i in range(0, numvol):\n", " # Define bcc calculation as a function of lattice parameter\n", " bcc=EPWpy.EPWpy({'prefix':'\\'bcc'+str(i)+'\\'','restart_mode':'\\'from_scratch\\'',\n", " 'calculation':'\\'scf\\'',\n", " 'ibrav':3,'celldm(1)':''+str(bcclat[i])+'','ntyp':1,'nat':1,\n", " 'atomic_species':['Mg'],'mass':[24.305],'atoms':['Mg'],'pseudo':['Mg.upf'],\n", " 'atomic_pos':np.array([[0.0, 0.0, 0.0]]),'atomic_position_type':'crystal',\n", " 'ecutwfc':'100','occupations':'\\'smearing\\'',\n", " 'smearing':'\\'gaussian\\'','degauss':'0.05',\n", " 'verbosity':'\\'low\\'','pseudo_dir':'\\''+str(pseudo)+'\\''\n", " },env='mpirun',system='bcc'+str(i)+'')\n", " # SCF block\n", " bcc.run_serial = True\n", " bcc.Run.serial = True\n", " bcc.verbosity = 2\n", " bcc.Run.verbosity = 2\n", " bcc.scf(control = {'calculation':'\\'scf\\''},system={'nbnd':10},\n", " electrons = {'conv_thr':'1E-12'},kpoints={'kpoints':[[12,12,12]]},\n", " name = 'bcc'+str(i)+'')\n", " bcc.prepare(1,type_run='scf',infile = 'bcc'+str(i)+'.in')\n", " bcc.run(cores,type_run='scf',infile='bcc'+str(i)+'',parallelization='-nk '+str(bccnk)+'')\n", " # NB: We need the total energy values to calculate Gibbs free energies.\n", " bcc.pw_util = bcc.PW_utilities()\n", " print('Total Energy: ',bcc.pw_util.total_energy)\n", " bccenergy[i]=bcc.pw_util.total_energy\n", " # Electronic density of state (DOS) block\n", " bcc.scf(control = {'calculation':'\\'nscf\\''},system={'nbnd':10},\n", " electrons = {'conv_thr':'1E-12'},kpoints={'kpoints':[[24,24,24]]},\n", " name = 'nscf')\n", " bcc.prepare(1,type_run='nscf',infile = 'nscf.in')\n", " bcc.run(cores,type_run='nscf',infile = 'nscf',parallelization='-nk '+str(bccnk)+'')\n", " bcc.dos(dos={'DeltaE':'0.01','degauss':'0.02'})\n", " # NB: The DOS calculation was implemented by using manual call in EPWpy.\n", " # Following six lines could be change in future.\n", " bcc.set_work()\n", " bcc.Prepare.prepare_dos(name = 'nscf')\n", " bcc.set_home()\n", " bcc.set_work()\n", " bcc.Run.run_dos(type_run='nscf',name='dos')\n", " bcc.set_home()\n", " # Phonon block\n", " bcc.ph(phonons={'fildyn':'\"bcc'+str(i)+'.dyn\"','nq1':3,'nq2':3,'nq3':3,\n", " 'fildvscf':'\"dvscf\"','tr2_ph':'1.0d-14'})\n", " bcc.prepare(1,type_run='ph')\n", " bcc.run(cores,type_run='ph',parallelization='-nk '+str(bccnk)+'')\n", " # q2r and matdyn block\n", " bcc.q2r(name='q2r')\n", " bcc.prepare(type_run='q2r')\n", " bcc.run(1,type_run='q2r')\n", " bcc.matdyn(name='matdyn',matdyn={'flfrq':'\\'bcc'+str(i)+'.freq\\''},\n", " kpoints={'kpoints':[\n", " ['0.00','0.00','0.00','20'],\n", " ['-0.50','0.50','0.50','20'],\n", " ['0.00','0.50','0.00','20'],\n", " ['0.00','0.00','0.00','20'],\n", " ['0.25','0.25','0.25','20']\n", " ],\n", " 'kpoints_type':'{crystal_b}'\n", " },\n", " )\n", " bcc.prepare(type_run='matdyn')\n", " bcc.run(1,type_run='matdyn')\n", " # Phonon DOS block\n", " bcc.phdos(name='phdos',phdos={'flfrq':'\\'bcc'+str(i)+'.dos.freq\\'','flfrc':'\\'bcc'+str(i)+'.fc\\'','asr':'\\'simple\\'',\n", " 'fldos':'\\'bcc'+str(i)+'.dos\\'','dos':'.true.','nk1':30,'nk2':30,'nk3':30})\n", " bcc.prepare(type_run='phdos')\n", " bcc.run(1,type_run='phdos')" ] }, { "cell_type": "markdown", "id": "8e2b282f-b86c-4745-bf63-f4415098e4cc", "metadata": {}, "source": [ "### Calculation of vibrational entropy\n", "This section provides a short code to calculate the zero-point energy and vibrational entropy, as described in the theory section." ] }, { "cell_type": "code", "execution_count": 15, "id": "bbb7ff29-5d8b-47f4-8a55-a5d3ea444fca", "metadata": { "scrolled": true }, "outputs": [], "source": [ "for v in range(0, numvol):\n", " # Go to actual working dir\n", " os.chdir(workdir)\n", " os.chdir('./mg-epwpy/bcc/bcc'+str(v)+'/ph')\n", " \n", " # Read phonon DOS result\n", " pdata = []\n", " with open('bcc'+str(v)+'.dos', 'r') as f:\n", " next(f)\n", " for line in f:\n", " row = [float(x) for x in line.split()]\n", " pdata.append(row)\n", " if abs(pdata[0][0]) < 0.01:\n", " pdata[0][0] = 0.0\n", " numpdat = len(pdata)\n", " \n", " # Set data arrays\n", " etemps=[None]*ntemp\n", " temps=[None]*ntemp\n", " for i in range(0, ntemp):\n", " etemps[i]=i*tstep/ry2k\n", " temps[i]=i*tstep\n", " energy = [None]*numpdat\n", " phdos = [None]*numpdat\n", " logdos = [None]*numpdat\n", " vibent = [None]*ntemp\n", " \n", " # Calculate zero-point energy\n", " for i in range(0,numpdat):\n", " energy[i]=pdata[i][0]/ry2cmm1\n", " phdos[i]=pdata[i][1]*ry2cmm1*energy[i]\n", " zpe = simpson(phdos, x=energy)\n", " zpe = 0.5*zpe\n", " \n", " # Set temperature loop and calculate zero-point energy and\n", " # vibrational entropy at given temperature to calculate\n", " # Helmholtz free energy\n", " for i in range(0, ntemp):\n", " if etemps[i] == 0.0:\n", " vibent[i] = 0.0\n", " bcchelm[i][v] = bccenergy[v] + zpe\n", " continue\n", " for j in range(0,numpdat):\n", " if energy[j] == 0.0:\n", " logdos[j] = 0.0\n", " continue\n", " logdos[j]=pdata[j][1]*ry2cmm1*math.log(1.0+(1.0/(math.exp(energy[j]/etemps[i])-1.0)))\n", " # phonon DOS in QE was already normalized to # of phonons\n", " vibent[i] = -etemps[i]*simpson(logdos, x=energy)\n", " bcchelm[i][v] = vibent[i] + bccenergy[v] + zpe" ] }, { "cell_type": "markdown", "id": "75974340-b959-4296-acde-eb364be01686", "metadata": {}, "source": [ "### Calculation of electronic excitation entropy\n", "This section provides a short code to calculate the electronic excitation energy and entropy, as described in the theory section." ] }, { "cell_type": "code", "execution_count": 16, "id": "496f0690-2767-4c38-9cee-1446a1e10662", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fermienergy calculation was finished for volume 0\n", "Fermienergy calculation was finished for volume 1\n", "Fermienergy calculation was finished for volume 2\n", "Fermienergy calculation was finished for volume 3\n", "Fermienergy calculation was finished for volume 4\n", "Fermienergy calculation was finished for volume 5\n" ] } ], "source": [ "for v in range(0, numvol):\n", " os.chdir(workdir)\n", " os.chdir('./mg-epwpy/bcc/bcc'+str(v)+'/nscf')\n", " \n", " edata = []\n", " with open('bcc'+str(v)+'.dos', 'r') as f:\n", " next(f)\n", " for line in f:\n", " row = [float(x) for x in line.split()]\n", " edata.append(row)\n", " numedat = len(edata)\n", " \n", " en = [None]*numedat\n", " edos = [None]*numedat\n", " edosfd = [None]*numedat\n", " doslog = [None]*numedat\n", " tfermi = [None]*ntemp\n", " exce = [None]*ntemp\n", " excent = [None]*ntemp\n", " niter = 200\n", " \n", " for i in range(0,numedat):\n", " en[i]=edata[i][0]/ry2ev\n", " edos[i]=edata[i][1]*ry2ev*en[i]\n", " \n", " # Get fermi energy in DOS by using bisection method\n", " for i in range(0, ntemp):\n", " if etemps[i] == 0.0:\n", " # Set lower limit of calculation as 10K\n", " etemps[i] = 10.0/ry2k\n", " tmpfermi1 = max(en)\n", " tmpfermi2 = min(en)\n", " for k in range(0,niter):\n", " dosfd = [0]*numedat\n", " tmpfermi = (tmpfermi1+tmpfermi2)/2.0\n", " tmpelec = 0.0\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tmpfermi)/etemps[i]\n", " if abs(etmp) > 10e+0:\n", " if etmp < 0.0:\n", " dosfd[j] = edata[j][1]*ry2ev\n", " else:\n", " dosfd[j] = 0.0\n", " continue\n", " dosfd[j] = edata[j][1]*ry2ev*(1.0/(math.exp(etmp)+1.0))\n", " tmpelec = simpson(dosfd, x=en)\n", " if abs(tmpelec - bccnelec) < 1.0e-12:\n", " tfermi[i] = tmpfermi\n", " break\n", " if tmpelec < bccnelec:\n", " tmpfermi2 = tmpfermi\n", " if tmpelec > bccnelec:\n", " tmpfermi1 = tmpfermi\n", " print('Fermienergy calculation was finished for volume '+str(v)+'')\n", " \n", " # Calculate electronic excitations energy\n", " for i in range(0, ntemp):\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tfermi[i])/etemps[i]\n", " if abs(etmp) > 1.0e+2:\n", " if etmp < 0.0:\n", " edosfd[j] = edos[j]\n", " else:\n", " edosfd[j] = 0.0\n", " continue\n", " edosfd[j] = edos[j]*(1.0/(math.exp(etmp)+1.0))\n", " exce[i] = simpson(edosfd, x=en)\n", " \n", " uzero = exce[0]\n", " for i in range(0, ntemp):\n", " exce[i] = exce[i] - uzero\n", "\n", " # Calculate electronic excitations entropy\n", " for i in range(0, ntemp):\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tfermi[i])/etemps[i]\n", " if abs(etmp) > 1.0e+2:\n", " if etmp < 0.0:\n", " fd = 1.0\n", " else:\n", " fd = 0.0\n", " else:\n", " fd = (1.0/(math.exp(etmp)+1.0))\n", " if fd>0.0 and fd<1.0:\n", " # kb has an unit of eV/K. So, we don't need ry2ev here:\n", " doslog[j] = (fd*math.log(fd)+(1.0-fd)*math.log(1.0-fd))*edata[j][1]\n", " else:\n", " doslog[j] = 0.0\n", " excent[i] = -kb*simpson(doslog, x=en)\n", " # Now, exce is electronic free energy:\n", " exce[i] = exce[i] - excent[i]*temps[i]\n", " bcchelm[i][v] = bcchelm[i][v] + exce[i]" ] }, { "cell_type": "markdown", "id": "c6aec7c6-f3da-4c6f-84d4-09ecc324e90f", "metadata": {}, "source": [ "### HCP Mg calculations\n", "Next, we perform the same procedure for hexagonal close-packed (HCP) magnesium (Mg). In the case of HCP Mg, there are two atoms in the unit cell, so the calculations will take more time compared to BCC Mg." ] }, { "cell_type": "code", "execution_count": 17, "id": "1f105c16-c1da-4672-8197-a604836e3e17", "metadata": {}, "outputs": [], "source": [ "os.chdir(workdir)\n", "os.chdir(\"./mg-epwpy/\")" ] }, { "cell_type": "markdown", "id": "e0d01417-0c5a-45de-a430-1525358f608d", "metadata": {}, "source": [ "### Structure relaxation calculations with pressure" ] }, { "cell_type": "code", "execution_count": 18, "id": "e801110d-077a-4eab-95d8-d686a358b9f4", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n" ] } ], "source": [ "hcprelax=EPWpy.EPWpy({'prefix':'\\'hcprelax\\'','restart_mode':'\\'from_scratch\\'',\n", " 'calculation':'\\'scf\\'',\n", " 'ibrav':4,'celldm(1)':'5.92367','celldm(3)':'1.62803','ntyp':1,'nat':2,\n", " 'atomic_species':['Mg'],'mass':[24.305],'atoms':['Mg','Mg'],'pseudo':['Mg.upf'],\n", " 'atomic_pos':np.array([[0.3333333, 0.6666667, 0.25],\n", " [0.6666667, 0.3333333, 0.75]]),\n", " 'atomic_position_type':'crystal',\n", " 'ecutwfc':'100','occupations':'\\'smearing\\'','smearing':'\\'gaussian\\'','degauss':'0.045',\n", " 'verbosity':'\\'low\\'','pseudo_dir':'\\''+str(pseudo)+'\\''\n", " },env='mpirun',system='hcprelax')\n", "\n", "hcprelax.run_serial = True\n", "hcprelax.verbosity = 2\n", "hcprelax.iondynamics = True\n", "hcprelax.celldynamics = True" ] }, { "cell_type": "code", "execution_count": 19, "id": "cc2b3181-7998-4003-844d-0d3955f20e81", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 50 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 50.in > 50.out\n", "Running 50 |████████████████████████████████████████| in 14.8s (0.09/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.969953', '-0.000000', '0.000000', ')']\n", "new_cell_parameters: [[ 3.04048249 -0. 0. ]\n", " [-1.52023968 2.63313527 0. ]\n", " [ 0. 0. 4.90030096]]\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 150 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 150.in > 150.out\n", "Running 150 |████████████████████████████████████████| in 13.1s (0.11/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.926960', '0.000000', '-0.000000', ')']\n", "new_cell_parameters: [[ 2.90571363 0. -0. ]\n", " [-1.45285681 2.51642211 0. ]\n", " [-0. -0. 4.6862657 ]]\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 250 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 250.in > 250.out\n", "Running 250 |████████████████████████████████████████| in 10.9s (0.13/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.898446', '-0.000000', '0.000000', ')']\n", "new_cell_parameters: [[ 2.81633165 -0. 0. ]\n", " [-1.40816583 2.43901457 0. ]\n", " [-0. -0. 4.5444595 ]]\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 350 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 350.in > 350.out\n", "Running 350 |████████████████████████████████████████| in 13.6s (0.10/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.876982', '-0.000000', '0.000000', ')']\n", "new_cell_parameters: [[ 2.7490491 -0. 0. ]\n", " [-1.37452455 2.38074732 0. ]\n", " [-0. -0. 4.43762682]]\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 450 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 450.in > 450.out\n", "Running 450 |████████████████████████████████████████| in 13.1s (0.11/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.859735', '-0.000000', '0.000000', ')']\n", "new_cell_parameters: [[ 2.69498544 -0. 0. ]\n", " [-1.34749429 2.33392476 0. ]\n", " [ 0. 0. 4.35199391]]\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: 550 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in 550.in > 550.out\n", "Running 550 |████████████████████████████████████████| in 13.1s (0.11/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "['a(1)', '=', '(', '1.000000', '0.000000', '0.000000', ')']\n", "['a(1)', '=', '(', '0.845289', '-0.000000', '0.000000', ')']\n", "new_cell_parameters: [[ 2.649702 -0. 0. ]\n", " [-1.32484943 2.2947069 0. ]\n", " [-0. -0. 4.28038551]]\n" ] } ], "source": [ "for prs in range(50, 650, 100):\n", " hcprelax.scf(ions={'ion_dynamics':'bfgs'},\n", " cell={'press':''+str(prs)+'','press_conv_thr':'0.1'},\n", " control = {'calculation':'\\'vc-relax\\'','nstep':50},\n", " system={'nbnd':20},\n", " electrons = {'conv_thr':'1E-12'},\n", " kpoints={'kpoints':[[8,8,8]]},\n", " name = ''+str(prs)+'')\n", " hcprelax.prepare(cores,'scf',infile = ''+str(prs)+'.in')\n", " hcprelax.run(cores,'scf',infile=''+str(prs)+'',parallelization='-nk '+str(hcpnk)+'')\n", " hcprelax.pw_util = hcprelax.PW_utilities()\n", " hcprelax.pw_cell_parameters['lattice_vector'] = obtain_cell_parameters(hcprelax.pw_util.file)\n", " print('new_cell_parameters:', hcprelax.pw_cell_parameters['lattice_vector'])" ] }, { "cell_type": "code", "execution_count": 20, "id": "773b801d-288b-4bac-a4dc-46818b117657", "metadata": {}, "outputs": [], "source": [ "# Save the relaxed lattice parameters as a array manually\n", "hcplat =[5.745679,5.491004,5.322100,5.194951,5.092787,5.007211]\n", "hcpcoa =[1.611686,1.612777,1.613609,1.614240,1.614848,1.615422]" ] }, { "cell_type": "code", "execution_count": 21, "id": "9f88538b-c57a-4ff6-8e51-a8ef08d2357f", "metadata": {}, "outputs": [], "source": [ "# Move to HCP workplace\n", "os.chdir(workdir)\n", "os.chdir(\"./mg-epwpy/hcp/\")" ] }, { "cell_type": "markdown", "id": "e8a88c65-05a2-4ff7-b477-cf14357b7844", "metadata": {}, "source": [ "### SCF, phonon, band, and DOS calculations" ] }, { "cell_type": "code", "execution_count": 22, "id": "ae01b0f1-fbea-4139-b28f-722c4f790d01", "metadata": { "scrolled": true }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp0 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp0.in > hcp0.out\n", "Running hcp0 |████████████████████████████████████████| in 3.7s (0.46/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -237.11964833\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 7.8s (0.19/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.7s (1.65/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 3:51.3 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (14.50/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (13.95/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 40.4s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp1 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp1.in > hcp1.out\n", "Running hcp1 |████████████████████████████████████████| in 3.0s (0.61/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -237.09800288\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 7.0s (0.21/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.7s (1.62/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 3:08.5 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (19.50/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.9s (13.11/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 44.0s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp2 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp2.in > hcp2.out\n", "Running hcp2 |████████████████████████████████████████| in 2.9s (0.65/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -237.07046548\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 6.7s (0.22/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.7s (1.78/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 2:59.6 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (19.64/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (14.68/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 48.1s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp3 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp3.in > hcp3.out\n", "Running hcp3 |████████████████████████████████████████| in 2.8s (0.69/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -237.04079096\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 6.3s (0.24/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.8s (1.58/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 2:53.7 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.9s (13.93/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (15.65/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 51.8s (0.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp4 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp4.in > hcp4.out\n", "Running hcp4 |████████████████████████████████████████| in 3.1s (0.60/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -237.01029264\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 6.0s (0.26/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.8s (1.45/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 2:59.8 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (20.03/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.8s (19.72/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 54.8s (0.02/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "\n", " \n", " \n", " -*#*- ...............- \n", " .+*= .+%*-=%%: .=#*- -===============-:.\n", " :*%=*%%- *%* #%* :+%+-%%+ .:. -=. :==-. \n", " -%S -%%*: :#%. -%%-. -##: #%* -=. :==- \n", " .. .%S: +%%%%*. :*%%%#= %%= -=. :==- \n", " :=#%%*- .#S- .. .%%= :*#*: -=. :==- \n", " -%S:.=#%%*==%# *%%=::=##-+%%. . .=-. :==- .= \n", " :%%- .-+++: -+##*=. =%S :-::==: .==- --.\n", " *%# #%+ -=--:. .----:. \n", " :%%- -%S. \n", " .-=*####SS%#########: -###########*+: +#######= =%SS####+::. \n", " =+#**%SSSSSSSSSSSSSSSS= =SSSSSSSSSSSSSSS= #SSSSSSS*. +SSSSSSSS%%%%- \n", " *%% =SSS.. .SSS= SSS=. .:+SSS+ -SSS:. .-::. .SSS+. #%* \n", " #%#. =SSS. *S# *S%: SSS= %SS%. .SSS= #SSS%. :SSS: =%#. \n", " *%%: =SSS#*#SSS- SSS= .+SSS+. %SS*.=SSSSS+ +SS%.:+%+ \n", " +%%:=SSSSSSSSS- SSSSSSSSSSSSS=. +SSS:SSS%SSS:%SS*-#%= \n", " ....#S==SSS:..SSS: =+- SSS%######+=. -SSS%SS%.#SS%SSS==%%=. \n", " .:+##%%#*- =SSS. ::. :SSS. SSS=. SSSSSS:..SSSSSS: :*%%%*=- \n", " #%+. -+#SSS*+++++++*SSS: .=+SSS#++++: %SSSS+. =SSSS%. :-+#%%+ \n", " #%* .SSSSSSSSSSSSSSSSSS: *SSSSSSSSSSS. +SSS%. %SSS*. . .%%= \n", " =%S :::::::::::::::::. .:::::::::. :::. :::. =+=-.#%+ \n", " -%S: =+===#S: \n", " ==*------------------------------=========+++++++++++++++++++++++========++-+## \n", " =+++++++++++*******++++++++++++++++========------------------==========+++++++- \n", "-- -- -- -- -- -- -- -- -- -- -- -- Structure Info -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: hcp5 -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in hcp5.in > hcp5.out\n", "Running hcp5 |████████████████████████████████████████| in 2.8s (0.71/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "Total Energy: -236.97947762\n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: nscf -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/pw.x -nk 12 -in nscf.in > nscf.out\n", "Running nscf |████████████████████████████████████████| in 5.2s (0.30/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: dos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/dos.x -in dos.in > dos.out\n", "Running dos |████████████████████████████████████████| in 1.8s (1.59/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "parallelization chosen: -nk 12\n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: ph -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 48 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/ph.x -nk 12 -in ph.in > ph.out\n", "Running ph |████████████████████████████████████████| in 2:22.0 (0.01/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: q2r -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/q2r.x -in q2r.in > q2r.out\n", "Running q2r |████████████████████████████████████████| in 0.8s (12.85/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: matdyn -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in matdyn.in > matdyn.out\n", "Running matdyn |████████████████████████████████████████| in 0.9s (12.04/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n", "-- -- -- -- -- -- -- -- -- -- -- Calculation: phdos -- -- -- -- -- -- -- -- -- -- -- \n", "on 1: running: mpirun -np 1 /work2/08400/jsyeb/frontera/epwpy/build/q-e-EPW-5.9s/bin/matdyn.x -in phdos.in > phdos.out\n", "Running phdos |████████████████████████████████████████| in 57.3s (0.02/s) \n", "\n", "-- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- \n" ] } ], "source": [ "for i in range(0, numvol):\n", " # Define HCP calculation as a function of lattice parameter\n", " hcp=EPWpy.EPWpy({'prefix':'\\'hcp'+str(i)+'\\'','restart_mode':'\\'from_scratch\\'',\n", " 'calculation':'\\'scf\\'',\n", " 'ibrav':4,'celldm(1)':''+str(hcplat[i])+'','celldm(3)':''+str(hcpcoa[i])+'','ntyp':1,'nat':2,\n", " 'atomic_species':['Mg'],'mass':[24.305],'atoms':['Mg','Mg'],'pseudo':['Mg.upf'],\n", " 'atomic_pos':np.array([[0.3333333, 0.6666667, 0.25],\n", " [0.6666667, 0.3333333, 0.75]]),\n", " 'atomic_position_type':'crystal',\n", " 'ecutwfc':'100','occupations':'\\'smearing\\'',\n", " 'smearing':'\\'gaussian\\'','degauss':'0.045',\n", " 'verbosity':'\\'low\\'','pseudo_dir':'\\''+str(pseudo)+'\\''\n", " },env='mpirun',system='hcp'+str(i)+'')\n", " # SCF block\n", " hcp.run_serial = True\n", " hcp.Run.serial = True\n", " hcp.verbosity = 2\n", " hcp.Run.verbosity = 2\n", " hcp.scf(control = {'calculation':'\\'scf\\''},system={'nbnd':20},\n", " electrons = {'conv_thr':'1E-12'},kpoints={'kpoints':[[8,8,8]]},\n", " name = 'hcp'+str(i)+'')\n", " hcp.prepare(1,type_run='scf',infile = 'hcp'+str(i)+'.in')\n", " hcp.run(cores,type_run='scf',infile='hcp'+str(i)+'',parallelization='-nk '+str(hcpnk)+'')\n", " # NB: We need the total energy values to calculate Gibbs free energies.\n", " hcp.pw_util = hcp.PW_utilities()\n", " print('Total Energy: ',hcp.pw_util.total_energy)\n", " hcpenergy[i]=hcp.pw_util.total_energy\n", " # Electronic density of state (DOS) block\n", " hcp.scf(control = {'calculation':'\\'nscf\\''},system={'nbnd':20},\n", " electrons = {'conv_thr':'1E-12'},kpoints={'kpoints':[[16,16,16]]},\n", " name = 'nscf')\n", " hcp.prepare(1,type_run='nscf',infile = 'nscf.in')\n", " hcp.run(cores,type_run='nscf',infile = 'nscf',parallelization='-nk '+str(hcpnk)+'')\n", " hcp.dos(dos={'DeltaE':'0.01','degauss':'0.02'})\n", " # NB: The DOS calculation was implemented by using manual call in EPWpy.\n", " # Following six lines could be change in future.\n", " hcp.set_work()\n", " hcp.Prepare.prepare_dos(name = 'nscf')\n", " hcp.set_home()\n", " hcp.set_work()\n", " hcp.Run.run_dos(type_run='nscf',name='dos')\n", " hcp.set_home()\n", " # Phonon block\n", " hcp.ph(phonons={'fildyn':'\"hcp'+str(i)+'.dyn\"','nq1':3,'nq2':3,'nq3':3,\n", " 'fildvscf':'\"dvscf\"','tr2_ph':'1.0d-14'})\n", " hcp.prepare(1,type_run='ph')\n", " hcp.run(cores,type_run='ph',parallelization='-nk '+str(hcpnk)+'')\n", " # q2r and matdyn block\n", " hcp.q2r(name='q2r')\n", " hcp.prepare(type_run='q2r')\n", " hcp.run(1,type_run='q2r')\n", " hcp.matdyn(name='matdyn',matdyn={'flfrq':'\\'hcp'+str(i)+'.freq\\''},\n", " kpoints={'kpoints':[\n", " ['0.00000','0.00000','0.00000','20'],\n", " ['0.50000','0.00000','0.00000','20'],\n", " ['0.33333','0.33333','0.00000','20'],\n", " ['0.00000','0.00000','0.00000','20'],\n", " ['0.00000','0.00000','0.50000','20']\n", " ],\n", " 'kpoints_type':'{crystal_b}'\n", " },\n", " )\n", " hcp.prepare(type_run='matdyn')\n", " hcp.run(1,type_run='matdyn')\n", " # Phonon DOS block\n", " hcp.phdos(name='phdos',phdos={'flfrq':'\\'hcp'+str(i)+'.dos.freq\\'','flfrc':'\\'hcp'+str(i)+'.fc\\'','asr':'\\'simple\\'',\n", " 'fldos':'\\'hcp'+str(i)+'.dos\\'','dos':'.true.','nk1':30,'nk2':30,'nk3':30})\n", " hcp.prepare(type_run='phdos')\n", " hcp.run(1,type_run='phdos')" ] }, { "cell_type": "markdown", "id": "c9d11348-350d-46ea-b4b4-524ca19e5e11", "metadata": {}, "source": [ "### Calculation of vibrational entropy" ] }, { "cell_type": "code", "execution_count": 23, "id": "0cd8cd11-18a6-4489-b772-2b6016a26e9e", "metadata": {}, "outputs": [], "source": [ "for v in range(0, numvol):\n", " # Go to actual working dir\n", " os.chdir(workdir)\n", " os.chdir('./mg-epwpy/hcp/hcp'+str(v)+'/ph')\n", " \n", " # Read phonon DOS result\n", " pdata = []\n", " with open('hcp'+str(v)+'.dos', 'r') as f:\n", " next(f)\n", " for line in f:\n", " row = [float(x) for x in line.split()]\n", " pdata.append(row)\n", " if abs(pdata[0][0]) < 0.01:\n", " pdata[0][0] = 0.0\n", " numpdat = len(pdata)\n", " \n", " # Set data arrays\n", " etemps=[None]*ntemp\n", " temps=[None]*ntemp\n", " for i in range(0, ntemp):\n", " etemps[i]=i*tstep/ry2k\n", " temps[i]=i*tstep\n", " energy = [None]*numpdat\n", " phdos = [None]*numpdat\n", " logdos = [None]*numpdat\n", " vibent = [None]*ntemp\n", " \n", " # Calculate zero-point energy\n", " for i in range(0,numpdat):\n", " energy[i]=pdata[i][0]/ry2cmm1\n", " phdos[i]=pdata[i][1]*ry2cmm1*energy[i]\n", " zpe = simpson(phdos, x=energy)\n", " zpe = 0.5*zpe\n", " \n", " # Set temperature loop and calculate zero-point energy and\n", " # vibrational entropy at given temperature to calculate\n", " # Helmholtz free energy\n", " for i in range(0, ntemp):\n", " if etemps[i] == 0.0:\n", " vibent[i] = 0.0\n", " hcphelm[i][v] = hcpenergy[v] + zpe\n", " continue\n", " for j in range(0,numpdat):\n", " if energy[j] == 0.0:\n", " logdos[j] = 0.0\n", " continue\n", " logdos[j]=pdata[j][1]*ry2cmm1*math.log(1.0+(1.0/(math.exp(energy[j]/etemps[i])-1.0)))\n", " # phonon DOS in QE was already normalized to # of phonons\n", " vibent[i] = -etemps[i]*simpson(logdos, x=energy)\n", " hcphelm[i][v] = vibent[i] + hcpenergy[v] + zpe" ] }, { "cell_type": "markdown", "id": "00f0e98d-8d9b-484e-b942-dc263ca096de", "metadata": {}, "source": [ "### Calculation of electronic excitation entropy" ] }, { "cell_type": "code", "execution_count": 24, "id": "571808a0-1cb6-4960-b849-07ee10092cdb", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Fermienergy calculation was finished for volume 0\n", "Fermienergy calculation was finished for volume 1\n", "Fermienergy calculation was finished for volume 2\n", "Fermienergy calculation was finished for volume 3\n", "Fermienergy calculation was finished for volume 4\n", "Fermienergy calculation was finished for volume 5\n" ] } ], "source": [ "for v in range(0, numvol):\n", " os.chdir(workdir)\n", " os.chdir('./mg-epwpy/hcp/hcp'+str(v)+'/nscf')\n", " \n", " edata = []\n", " with open('hcp'+str(v)+'.dos', 'r') as f:\n", " next(f)\n", " for line in f:\n", " row = [float(x) for x in line.split()]\n", " edata.append(row)\n", " numedat = len(edata)\n", " \n", " en = [None]*numedat\n", " edos = [None]*numedat\n", " edosfd = [None]*numedat\n", " doslog = [None]*numedat\n", " tfermi = [None]*ntemp\n", " exce = [None]*ntemp\n", " excent = [None]*ntemp\n", " niter = 200\n", " \n", " for i in range(0,numedat):\n", " en[i]=edata[i][0]/ry2ev\n", " edos[i]=edata[i][1]*ry2ev*en[i]\n", " \n", " # Get fermi energy in DOS by using bisection method\n", " for i in range(0, ntemp):\n", " if etemps[i] == 0.0:\n", " # Set lower limit of calculation as 10K\n", " etemps[i] = 10.0/ry2k\n", " tmpfermi1 = max(en)\n", " tmpfermi2 = min(en)\n", " for k in range(0,niter):\n", " dosfd = [0]*numedat\n", " tmpfermi = (tmpfermi1+tmpfermi2)/2.0\n", " tmpelec = 0.0\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tmpfermi)/etemps[i]\n", " if abs(etmp) > 10e+0:\n", " if etmp < 0.0:\n", " dosfd[j] = edata[j][1]*ry2ev\n", " else:\n", " dosfd[j] = 0.0\n", " continue\n", " dosfd[j] = edata[j][1]*ry2ev*(1.0/(math.exp(etmp)+1.0))\n", " tmpelec = simpson(dosfd, x=en)\n", " if abs(tmpelec - hcpnelec) < 1.0e-12:\n", " tfermi[i] = tmpfermi\n", " break\n", " if tmpelec < hcpnelec:\n", " tmpfermi2 = tmpfermi\n", " if tmpelec > hcpnelec:\n", " tmpfermi1 = tmpfermi\n", " print('Fermienergy calculation was finished for volume '+str(v)+'')\n", " \n", " # Calculate electronic excitations energy\n", " for i in range(0, ntemp):\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tfermi[i])/etemps[i]\n", " if abs(etmp) > 1.0e+2:\n", " if etmp < 0.0:\n", " edosfd[j] = edos[j]\n", " else:\n", " edosfd[j] = 0.0\n", " continue\n", " edosfd[j] = edos[j]*(1.0/(math.exp(etmp)+1.0))\n", " exce[i] = simpson(edosfd, x=en)\n", " \n", " uzero = exce[0]\n", " for i in range(0, ntemp):\n", " exce[i] = exce[i] - uzero\n", "\n", " # Calculate electronic excitations entropy\n", " for i in range(0, ntemp):\n", " doslog = [None]*numedat\n", " for j in range(0,numedat):\n", " etmp = (en[j]-tfermi[i])/etemps[i]\n", " if abs(etmp) > 1.0e+2:\n", " if etmp < 0.0:\n", " fd = 1.0\n", " else:\n", " fd = 0.0\n", " else:\n", " fd = (1.0/(math.exp(etmp)+1.0))\n", " if fd>0.0 and fd<1.0:\n", " # kb has an unit of eV/K. So, we don't need ry2ev here:\n", " doslog[j] = (fd*math.log(fd)+(1.0-fd)*math.log(1.0-fd))*edata[j][1]\n", " else:\n", " doslog[j] = 0.0\n", " excent[i] = -kb*simpson(doslog, x=en)\n", " \n", " # Now, exce is electronic free energy:\n", " exce[i] = exce[i] - excent[i]*temps[i]\n", " hcphelm[i][v] = hcphelm[i][v] + exce[i]" ] }, { "cell_type": "markdown", "id": "2fd3d300-e1a8-4480-830d-9531e1072fca", "metadata": {}, "source": [ "### Calculation of Gibbs free energy as a function of pressure\n", "Finally, we obtain the Gibbs free energies at given temperatures and pressures by interpolating the pressure-dependent values. The calculated Gibbs free energies for each phase are then compared, and the phase boundary is determined and saved." ] }, { "cell_type": "code", "execution_count": 25, "id": "92e19241-8f0d-4688-9e7c-2ae8528702f7", "metadata": {}, "outputs": [], "source": [ "#Calculate volume\n", "for i in range(0,numvol):\n", " bccvol[i] = (bcclat[i] ** 3.0)/2.0\n", " hcpvol[i] = (hcplat[i] ** 3.0)*(math.sqrt(3.0)/2.0)*hcpcoa[i]\n", " \n", "# Helmholtz free energy interolation as a function of volume\n", "for i in range(0,ntemp):\n", " bccitpv[i] = interp1d(bccvol, bcchelm[i][:], kind='quadratic',fill_value='extrapolate')\n", " hcpitpv[i] = interp1d(hcpvol, hcphelm[i][:], kind='quadratic',fill_value='extrapolate')\n", "\n", "# Calculate pressure\n", "control = 100.0\n", "tmpup = max(bccvol)\n", "tmplw = min(bccvol)\n", "\n", "# Calculate Gibbs free energy as a function of\n", "interval = (tmpup - tmplw)/((numvol-1)*control)\n", "for i in range(0,ntemp):\n", " for j in range(0,numvol):\n", " abc = np.array([bccitpv[i](bccvol[j]-interval), bccitpv[i](bccvol[j]), bccitpv[i](bccvol[j]+interval)])\n", " defg = np.array([bccvol[j]-interval,bccvol[j],bccvol[j]+interval])\n", " bccpress[i][j] = -np.gradient(abc, defg)[1] * pressunit\n", " bccgibbs[i][j] = bcchelm[i][j] + (bccpress[i][j]*bccvol[j]/pressunit)\n", "\n", "tmpup = max(hcpvol)/2.0\n", "tmplw = min(hcpvol)/2.0\n", "interval = (tmpup - tmplw)/((numvol-1)*control)\n", "for i in range(0,ntemp):\n", " for j in range(0,numvol):\n", " abc = np.array([hcpitpv[i](hcpvol[j]-interval), hcpitpv[i](hcpvol[j]), hcpitpv[i](hcpvol[j]+interval)])\n", " defg = np.array([hcpvol[j]-interval,hcpvol[j],hcpvol[j]+interval])\n", " hcppress[i][j] = -np.gradient(abc, defg)[1] * pressunit\n", " hcpgibbs[i][j] = hcphelm[i][j] + (hcppress[i][j]*hcpvol[j]/pressunit)\n", "\n", "# Interpolate Gibbs free energy\n", "for i in range(0,ntemp):\n", " bccitpg[i] = interp1d(bccpress[i][:], bccgibbs[i][:], kind='quadratic',fill_value='extrapolate')\n", " hcpitpg[i] = interp1d(hcppress[i][:], hcpgibbs[i][:], kind='quadratic',fill_value='extrapolate')\n", "\n", "for p in range(0,nump):\n", " press[p] = pmin + p*pstep\n", " top[p] = 2400.0\n", "\n", "# Compare\n", "for p in range(0,nump):\n", " for i in range(0,ntemp):\n", " if (bccitpg[i](press[p])/bccnatom)<(hcpitpg[i](press[p])/hcpnatom):\n", " #print(press[p],i*tstep)\n", " pb[p] = i*tstep\n", " break" ] }, { "cell_type": "markdown", "id": "9ae35dc4-a8b4-4b42-be81-96941f15c150", "metadata": {}, "source": [ "### Visualization of phase diagram" ] }, { "cell_type": "code", "execution_count": 26, "id": "efcdd516-90d8-4580-982e-2c2463312111", "metadata": {}, "outputs": [ { "data": { "image/png": "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tw4QBEHbQyYCAAiiKIraHkRNlJqaCplMBvm9s1W6WjURERGpL1WeAplrL8jlcpiZmT23HydpExEREalgQCIiIiJSwYBEREREpIIBiYiIiEgFAxIRERGRCgYkIiIiIhUMSEREREQqGJCIiIiIVDAgEREREalgQCIiIiJSwYBEREREpIIBiYiIiEgFAxIRERGRCgYkIiIiIhUMSEREREQqGJCIiIiIVDAgEREREalgQCIiIiJSwYBEREREpIIBiYiIiEgFAxIRERGRCgYkIiIiIhUMSEREREQqGJCIiIiIVDAgEREREalgQCIiIiJSwYBEREREpIIBiYiIiEgFAxIRERGRCgYkIiIiIhUMSEREREQqGJCIiIiIVDAgEREREalgQCIiIiJSwYBEREREpIIBiYiIiEgFAxIRERGRCgYkIiIiIhUMSEREREQqGJCIiIiIVDAgEREREalgQCIiIiJSwYBEREREpEKvIm/Oy8tDfHw8MjMzYWVlBQsLC02Ni4iIiEhryn0GKT09HRs3bkTPnj0hk8nQpEkTtG7dGlZWVnBycsKkSZNw9erVyhgrERERUZUoV0D65ptv0KRJE/z444/o3bs39uzZg+DgYNy9excXL17EokWLkJ+fj379+mHgwIEIDw+vrHETERERVZpyXWK7cOECTp48CXd39xK3d+zYEe+++y6+//57/PTTTzh9+jRcXFw0MlAiIiKiqlKuM0h//PEHzp49+8J+BgYG+OCDDzBx4sRyDebMmTMYMmQI7O3tIQgC/vrrL6Xtb7/9NgRBUHp07txZqU9OTg6mT58OS0tLmJiYwNfXF9HR0Up9kpOTMW7cOMhkMshkMowbNw4pKSnlGisRERHVXuWegzR37lxcvHix1D7x8fFqDSYjIwMeHh5Yt27dc/sMHDgQcXFx0uPgwYNK2/38/LB3717s2rUL586dQ3p6OgYPHoyCggKpz+jRoxEcHIyAgAAEBAQgODgY48aNU2vMREREVPuUu4rtiy++wIgRIxAUFAQbG5ti24OCgjB06FBERkaWezA+Pj7w8fEptY+BgQFsbW1L3CaXy/HTTz9h+/bt6Nu3LwDgl19+gYODA44dO4YBAwbg9u3bCAgIwKVLl9CpUycAwI8//oguXbrg7t27aNGiRbnHTURERLVLuc8g+fn5oVevXhgxYgTy8/OVtu3btw8vv/wy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A4BJsz8v0/4YkIiIiKjWMDQxRN/pA7Bj7g6pTaFQYOKspeXaD+cgERERUa3y7FIk6mJAIiIiolqlpMo2CIXrtpUVAxIRERHVKqqVbYKOgEF+g+Dj5wOUMSNxDhIRERHVOkWVbcmxyTC3N4eZVeG6a0ZNjPDnzD9f+H4GJCIiIqqViirbnmVsYVym9/ISGxEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqWBAIiIiIlLBgERERESkggGJiIiISAUDEhEREZEKBiQiIiIiFQxIRERERCoYkIiIiIhUMCARERERqajTAWn9+vVwdnaGoaEhvLy8cPbsWW0PiYiIiKqBOhuQfvvtN/j5+eHjjz9GUFAQXn75Zfj4+CAyMlLbQyMiIiItq7MBafXq1ZgwYQImTpyIVq1a4dtvv4WDgwM2bNig7aERERGRlulpewDakJubi8DAQHz00UdK7f3798eFCxdKfE9OTg5ycnKk13K5HAAQmRAJfSP9yhssERERaUzRv9+iKJbar04GpMTERBQUFMDGxkap3cbGBvHx8SW+x9/fH0uWLCnW/sd7f1TKGImIiKjypKWlQSaTPXd7nQxIRQRBUHotimKxtiILFizArFmzpNcKhQJJSUlo2LDhc99TE6SmpsLBwQFRUVEwMzPT9nDqPB6P6oXHo3rh8ah+auIxEUURaWlpsLe3L7VfnQxIlpaW0NXVLXa2KCEhodhZpSIGBgYwMDBQamvQoEFlDbHKmZmZ1Zj/uOsCHo/qhcejeuHxqH5q2jEp7cxRkTo5SbtevXrw8vLC0aNHldqPHj2K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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "import matplotlib.pyplot as plt\n", "\n", "plt.plot(press, pb, color='Black', marker='.', label='Phase boundary')\n", "plt.fill_between(press, pb, color='forestgreen', alpha=.6)\n", "plt.fill_between(press, pb, 2400.0, color='bisque', alpha=.8)\n", "plt.xlim(50,545)\n", "plt.ylim(0,2400)\n", "plt.legend()\n", "plt.xlabel(r'$Pressure (kbar)$')\n", "plt.ylabel(r'$Temperature (K)$')\n", "plt.figtext(0.3, 0.3, 'HCP', size=20)\n", "plt.figtext(0.6, 0.7, 'BCC', size=20)\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "e72f7d8e-0208-4a75-ac08-440738e1906d", "metadata": {}, "source": [ "**Note:** The overall shape and trend of the phase diagram agree well with previous experimental measurements and theoretical calculations. [Olijnyk and Holzapfel (1985)], [Moriarty and Althoff (1995)], and [Mehta et al. (2006)] However, the phase boundary is slightly overestimated. This is because the calculations in this tutorial use unconverged parameters. For more accurate results, one should consider using a denser k-point grid and a higher `ecutwfc` value in the SCF calculations. Converged calculation parameters can be found in the original *epwpy* paper." ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "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.12.9" } }, "nbformat": 4, "nbformat_minor": 5 }