380 likes | 557 Views
How to run wannier90 directly from siesta. Javier Junquera. Important bibliography:. For a review on Maximally Localized Wannier functions :. Important bibliography:. The user guide of the wannier90 code. Freely available from : http :// www.wannier.org.
E N D
How to run wannier90 directly from siesta Javier Junquera
Important bibliography: For a reviewonMaximallyLocalizedWannierfunctions:
Important bibliography: Theuser guide of thewannier90code Freelyavailablefrom: http://www.wannier.org
wannier90 code directly called from siesta wannier90code (version 3.0.0) has beencompiled in librarymode and calleddirectlyfromsiesta Thatmeansthatwe can run allthefunctionalities of wannier90directlyfromsiesta • Advantages • No need to prepare twodifferent input files • No need to run wannier90 in pre-processingmode • We can use thebasis set of siesta (numericalatomicorbitals) as theinitialguessfortheprojections • Wannierization of differentmanifolds can be done in thesame run of siesta • Theunitary matrices connectingtheBloch and Wannierrepresentations are available in siesta. • New functionalities can follow (initialguessesfororder-N simulations) • Interface withothercodeswill be mucheasier: • scale-up (second-principles) • DMFTwDFT (DMFT codeby Aldo Romero’sgroup)
Apply the patch to wannier90 to be called from siesta Downloadanofficialreleasetarballfromthewannier90website http://www.wannier.org/download/ Theversion to downloadmustcorrespondexactly to theversion of thepatchyouwant to apply. Forinstance, ifthepatchiscalled "wannier90-3.0.0-siesta.patch", youhave to downloadthe 3.0.0 version of wannier90. Uncompressthesourcecode of wannier90and go to its top directory $ tarxvzf wannier90-3.0.0.tar.gz $ cd wannier90-3.0.0 Fromthere, you can applythepatchfromsiesta $ patch-p1 < /path/to/siesta/Util/Wannier90/wannier90-3.0.0-siesta.patch whereyoureplace /path/to/siesta/Util/Wannier90 bythedirectorypathcontainingthepatch file.
Compile wannier90 to be run in serial from siesta Editthemake.inc file $ vi make.inc Chooseyour Fortran compiler Selectthelocation of BLAS and LAPACK libraries $ makeveryclean $ make $ makelib
Compile siesta in serial to be run with wannier90 Includeormodifythefollowinglines in thearch.make $ vi arch.make Point to thewannier90directory $ make
Compile wannier90 to be run in parallel from siesta Editthemake.inc file $ vi make.inc Chooseyour Fortran compiler (nowparallel) Extremelyimportant to includethis -DMPI Selectthelocation of BLAS and LAPACK libraries $ makeveryclean $ make $ makelib
Compile siesta in parallelto be run with wannier90 Includeormodifythefollowinglines in thearch.make $ vi arch.make Point to thewannier90directory Point to bothobjectsdirectory $ make
wannier90 code directly called from siesta Practicalexamples: Bulk SrTiO3 in thecubicphase Graphene
After running siesta and compute the PDOS, we can analyze the character of the different bands Whichatomscontribute more tothebands at a particular energywindow
We can analyze the character of the different bands Whichatomscontribute more tothebands at a particular energywindow Zoom aroundthe top of thevalencebands and bottom of conductionbands Bottom of conductionbands: mostly Ti t2gcharacter Top of valencebands: mostly O 2pcharacter We can projecton particular atomicorbitalswithinanatomtofurther define thecharacter.
Choose the Bloch states that will be used to compute the Wannier functions In this particular example, we are interested in thewannierization of threedifferentmanifolds Manifoldnumber 1: Top of valencebands: mostly O 2pcharacter • Thatmeans: • - 3 O pbands (px, py, pz) • × 3 O atoms • 9 bands to wannierize
Choose the Bloch states that will be used to compute the Wannier functions In this particular example, we are interested in thewannierization of threedifferentmanifolds Manifoldnumber 2: Bottom of conductionbands: mostly Ti t2gcharacter • Thatmeans: • -3 Ti t2g bands (dxy, dyz, dxz) • 3bands to wannierize
Choose the Bloch states that will be used to compute the Wannier functions In this particular example, we are interested in thewannierization of threedifferentmanifolds Manifoldnumber 3: Bottom of conductionbands: mostly Ti t2gcharacter Top of valencebands: mostly O 2pcharacter • Thatmeans: • - 3 O pbands (px, py, pz) • × 3 O atoms • - 3 Ti t2g bands (dxy, dyz, dxz) • 12 bandstowannierize
siesta variables related with the wannierization Number of manifolds to wannierize Data relatedwithManifold 1 Data relatedwithManifold 2 Data relatedwithManifold 3 Dimensions of theMonkhorst-Pack grid of k-pointsforwannierization
siesta variables related with the wannierization Number of Wannierfunctions: Thisnumberisequal to thenumber of bands in themanifold in we are dealingwithisolatedgroup of bands Butifthedesiredbands lie within a limitedenergyrangebutoverlap and hybridizewithotherbandswhichextendfurther in energy, thenthenumber of wannierfunctionsmight be differentfromthenumber of bands in themanifolds A disentanglementprocedureisrequired (seethegrapheneexamplebelow)
siesta variables related with the wannierization A goodinitialguess to projectthebands of the top of thevalence band are the O-2porbitals Take a look to theSystemLabel.ORB_INDX file p-orbitals of thefirst O atom p-orbitals of thesecond O atom p-orbitals of thethird O atom
siesta variables related with the wannierization Number of iterationsfortheminimization of thelocalizationfunctional Ifzero, thentheprocedureisthesame as a Löwdinorthonormalization TheresultingWannierfunctionswillkeepthesymmetry of theprojectionfunction, butitwillnot be maximallylocalized
siesta variables related with the wannierization Instruction to plottheWannierfunctions Theintegerrefers to thesize of thesupercellforplottingtheWannierfunctions
siesta variables related with the wannierization Instruction to plotthe Fermi surface
siesta variables related with the wannierization Instruction to writetheHamiltonian in real space in a basis of Wannierfunctions
siesta variables related with the wannierization Instruction to writethelatticevectors, Hamiltonian in real space and position operator in a basis of Wannierfunctions
Succesful output of siesta The output isexactlythesame as thewannier90code 9 WF centeredonthethree O Thespread of theWannierfunctions (in Å) isthree and sixfolddegenerated
Succesful output of siesta The output isexactlythesame as thewannier90code
How to plot the Wannier functions First of all, siesta has towritetheperiodicpart of theBlochfunctions in a 3D grid. Thenumber of points in thegridalongthethreelatticevectors are givenby seedname.fdffile (input of siesta) • This produces many files withthename UNKXXXXX.Y where • XXXXX isthenumber of the k-point, from 1 tothenumber of pointsincluded in seedname.win file • Y referstothe spin compoment (1 or 2)
How to plot the Wannier functions Wannier90 produces files withthename: SystemLabel.manifold.X_0000Y.xsf that can be directlyplottedwithxcrysden Once XCrySDenstarts, clickon File → Open structure (Selectyourxsf file) Tools → Data Grid ClickonOK Then, select: Degree of triCubicSpline: 3 ClickonRender+/- isovalue Selectthedesiredisovalue (in thisexample 0.1) Submit SrTiO3.manifold.1_00001.xsf
wannier90 code directly called from siesta Practicalexamples: Bulk SrTiO3 in thecubicphase Graphene
Graphene, including bond centered Hydrogen ghost atoms
wannier90 code directly available from siesta Wehaveeightbands in theouterenergywindow We are interested in projectoverthewannierizationoverthethree sp2orbitals and themanifold (fiveWannierfunctions in total)
wannier90 code directly available from siesta SomeBlochstates are forced to be preservedidentically in theprojectedmanifold; those are referred to as belonging to a frozen “inner” window Frozenenergywindow We are interested in projectoverthewannierizationoverthethree sp2orbitals and themanifold (fiveWannierfunctions in total)
Output of a succesful run Three sp2type-Wanniers Themanifold
How to plot the Wannier functions Wannier90 produces files withthename: SystemLabel.manifold.X_0000Y.xsf that can be directlyplottedwithxcrysden Once XCrySDenstarts, clickon File → Open structure (Selectyourxsf file) Modify→ Number of unitsdrawn 2 (along x) 2 (along y) 1 (along z) Tools → Data Grid ClickonOK Then, select: Degree of triCubicSpline: 3 ClickonRender+/- isovalue Selectthedesiredisovalue (in thisexample 0.1) Submit graphene.manifold.1_00004.xsf Lateral view Top view
Funding SPANISH INITIATIVE FOR ELECTRONIC SIMULATIONS WITHTHOUSANDS OF ATOMS: CÓDIGO ABIERTO CON GARANTÍA Y SOPORTE PROFESIONAL: SIESTA-PRO Proyecto financiado por el Ministerio de Economía, Industria y Competitividad, y cofinanciado con Fondos Estructurales de la Unión Europea Referencia: RTC-2016-5681-7 Objetivo Temático del Programa Operativo: "Promover el desarrollo tecnológico, la innovación y una investigación de calidad"