artachobristolsiestatut09-2
DESCRIPTION
SiestasTRANSCRIPT
-
1Basic introduction to SIESTA
Emilio ArtachoEmilio Artacho
Department of Earth SciencesUniversity of Cambridge
-
The methodLinear-scaling DFT based onNAOs (Numerical Atomic Orbitals)
P. Ordejon, E. Artacho & J. M. Soler , Phys. Rev. B 53, R10441 (1996)J. M.Soler et al, J. Phys.: Condens. Matter 14, 2745 (2002)
Born-Oppenheimer (relaxations, mol.dynamics)DFT (LDA, GGA)Pseudopotentials (norm conserving,factorised)Numerical atomic orbitals as basis (finite range)Numerical evaluation of matrix elements (3Dgrid)
Implemented in the SIESTA program
-
Siesta resources (I) Web page: http://www.uam.es/siesta Pseudos and basis database Tutorials Mailing list User guide and reference manual Mailing list archives (Wiki)
-
4Siesta resources (2)
Andrei Postnikov Siesta utils page:http://www.home.uni-osnabrueck.de/apostnik/download.html
Lev Kantorovich Siesta utils page:http://www.cmmp.ucl.ac.uk/~lev/codes/lev00/index.html
-
Siesta software package: Src: Sources of the Siesta code. Src/Sys: makefiles for the compilation Obj: default directory where compilation goes Tests: A collection of tests. Docs: Documentation and user conditions: Users Guide (siesta.tex) Pseudo: ATOM program to generate and test pseudos. Examples: fdf and pseudos input files for simple systems. Tutorials: Tutorials for basis and pseudo generation. Utils: Programs or scripts to analyze the results.
-
To run Siesta you need:1.- Access to the executable file2.- An input file: written in ascii (plain text) using:Flexible Data Format (FDF) (A. Garca and J. M. Soler)3.- A pseudopotential file for each kind of element inthe input file. Two different formats:Unformatted binary (.vps)Formatted ASCII (.psf) (more transportable and easy to look at)
-
Running siesta
Main input file: name.fdf Contents:
Physical data of the systemVariables to control the aproximations
Format: Flexible Data Format (FDF)
Siesta has no windows, it is run from a UNIX terminalor from a MSDOS console.
-
FDF (I)Data can be given in any orderData can be omitted in favor of default valuesSyntax: data label followed by its valueCharacter string: SystemLabel h2oInteger: NumberOfAtoms 3Real: PAO.SplitNorm 0.15Logical: SpinPolarized .false.Physical magnitudes LatticeConstant 5.43 Ang
-
FDF (II) Labels are case insensitive and characters -_. are ignored
LatticeConstant is equivalent to lattice_constant Text following # are comments Logical values: T , .true. , yes, F , .false. , no
By default logicals are true: DM.UseSaveDM Character strings, NOT in apostrophes Complex data structures: blocks
%block label%endblock label
-
FDF (III) Physical magnitudes: followed by its units. Many physical units are recognized for each magnitude
(Length: m, cm, nm, Ang, bohr) Automatic conversion to the ones internally required. You may include other FDF files or redirect the search toanother file, so for example in the main fdf its possible:AtomicCoordinatesFormat < system_xyz.fdfAtomicCoordinatesAndAtomicSpecies < system_xyz.fdf
-
Basic input variables
1.- General system descriptors2.- Structural and geometrical variables3.- Functional and solution mehod (Order-N/diagonalization)4.- Convergence of the results5.- Self-consistency6.- Basis set generation related variables7.- Molecular dynamics8.- Electron transport (TranSIESTA)
-
General system descriptor: output
SystemName: descriptive name of the systemSystemName Si bulk, diamond structure
SystemLabel: nickname of the system to name output filesSystemLabel bulkSi(After a successful run, you should have files like
bulkSi.DM : Density matrixbulkSi.XV: Final positions and velocities...)
-
Structural and geometrical variables
NumberOfAtoms: number of atoms in the simulationNumberOfAtoms 2
NumberOfSpecies: number of different atomic speciesNumberOfSpecies 1
ChemicalSpeciesLabel: specify the different chemical species%block ChemicalSpeciesLabel
1 14 Si BLOCK%endblock ChemicalSpeciesLabel
ALL THESE VARIABLES ARE MANDATORY
-
Geometry: Lattice Vectors
LatticeConstant: real length to define the scale of the lattice vectorsLatticeConstant 5.43 Ang
LatticeParameters: Crystallographic way%block LatticeParameters
1.0 1.0 1.0 60. 60. 60.%endblock LatticeParameters
LatticeVectors: read as a matrix, each vector on a line%block LatticeVectors 0.0 0.5 0.5 0.5 0.0 0.5 0.5 0.5 0.0%endblock LatticeVectors
PBC: Atoms in the unit cell always areperiodically repeated throughout space
along the lattice vectors
Surfaces
-
Atomic CoordinatesAtomicCoordinatesFormat:
Bohr: cartesian coordinates, in bohrsAng: cartesian coordinates, in AngstromsScaledCartesian: cartesian coor scaled by lattice constantFractional: referred to the lattice vectors
AtomicCoordinatesFormat Fractional
AtomicCoordinatesAndAtomicSpecies:
%block AtomicCoordinatesAndAtomicSpecies0.00 0.00 0.00 10.25 0.25 0.25 1
%endblock AtomicCoordinatesAndAtomicSpecies
-
FunctionalDFT
XC.Functional LDA GGA
XC.authors PW92CAPZ
PBE
DFT Density Functional TheoryLDA Local Density ApproximationGGA Generalized Gradient ApproximationVDW van der Waals
CA Ceperley-AlderPZ Perdew-ZungerPW92 Perdew-Wang-92PBE Perdew-Burke-ErnzerhofDRSLL Dion et al (VdW)
SpinPolarized
-
17
Not perfect, but a pragmatic possibility, still fromfirst-principles and within KS-DFT
Efficient implementation (Roman & Soler PRL 09)
Benzene sandwich
-
Solution method
Hamiltonian (H), Overlap (S) matrices
1: Compute H, S (Order N ):
2: SolutionMethoddiagon Order-N
0: Start from the atomic coordinates and the unit cell
Executiontime
-
k-samplingMany magnitudes require integration of Bloch functions over Brillouin zone (BZ)
!r r ( ) = d
r k n
r k ( )
BZ
"i
# $ ir k ( )
2
In practice: integral sum over a finite uniform gridEssential for:
Real space Reciprocal spaceSmall periodic systems Metals Magnetic systems
Good description of the Blochstates at the Fermi level
Even in same insulators:Perovskite oxides
-
k-sampling
kgrid_cutoff (1):kgrid_cutoff 10.0 Ang
kgrid_Monkhorst_Pack (2):%block kgrid_Monkhorst_Pack 4 0 0 0.5 0 4 0 0.5 0 0 4 0.5%endblock kgrid_Monkhorst_Pack
Special set of k-points: Accurate results for a small # k-points:
1 Moreno and Soler, PRB 45, 13891 (1992).2 Monkhorst and Pack, PRB 13, 5188 (1997)
-
Selfconsistency (SCF)Initial guess:
!
r r ( ) = !atom
r r ( )"
!r r ( ) = !,"##"
,"
$
Properties: Total energy, Charge density Forces
MaxSCFIterationsTolerance
Yes
No
?
-
22
Hard confining potentialsHard confining potentials
FireballsO. F. Sankey & D. J. Niklewski,Phys. Rev. B 40, 3979 (1989)
BUT:A different cut-off radius foreach orbital
A single parameter
Energy shift
Convergence vs Energy shift ofBond lengths Bond energies
E. Artacho et al. Phys. Stat. Solidi (b) 215, 809 (1999)
-
23
Soft confining potentialsSoft confining potentials
1 3 5 7 r (a.u.)
1 3 5 7 r (a.u.)
Better basis, variationally, & other results Removes the discontinuity in the derivative J. Junquera, O. Paz, D. Sanchez-Portal & E. Artacho, Phys. Rev. B, 64, 235111 (2001) E. Anglada, J. M. Soler, J. Junquera & E. Artacho, Phys. Rev. B 66, 205101 (2002)
-
24
Multiple-zetaMultiple-zeta
E. Artacho et al. , Phys. Stat. Solidi (b) 215, 809 (1999).
-
25
PolarizationPolarization
E. Artacho et al. , Phys. Stat. Solidi (b) 215, 809 (1999).
-
Basis set: Main controlsExplicit control within block PAO.Basis%block PAO.BasisSr 5 1.64000n=4 0 1 E 150. 6.0 6.5n=5 0 2 E 150. 6.5 7.0 5.5n=4 1 1 E 150 5.6 6.75n=5 1 1 E 4.6 1.2 4.n=4 2 1 E 145. 6.0 6.6%EndBlock PAO.Basis
Otherwise, automatic:PAO.BasisSize DZP // PAO.EnergyShift 50 meV etc
Rules of thumb in Artacho et al, JPCM 2008
-
How to run SiestaTo run the serial version, from a unix/terminal:
Basic run, output in the screen:% siesta < Fe.fdf
Output redirected to a file:% siesta < Fe.fdf > Fe.out
Screen and file output: % siesta < Fe.fdf | tee Fe.out
(assuming the siesta binary is in your PATH)
-
Output: the header
-
Output: dumping the input file
-
Output: processing the input
-
Output: coordinates and k-sampling
-
Output: First MD step
-
Output: Self-consistency
-
Output: Eigenvalues, forces, stress
-
Output: Total energy
-
Output: timer (real and cpu times)
-
Saving and reading information (I)
Some information is stored by Siesta to restart simulations from: Density matrix: DM.UseSaveDM Localized wave functions (Order-N): ON.UseSaveLWF Atomic positions and velocities: MD.UseSaveXV Conjugate gradient history (minimizations): MD.UseSaveCGAll of them are logical variables
EXTREMELY USEFUL TO SAVE A LOT OF TIME!
-
Saving and reading information (II)Information needed as input for various post-processing
programs, for example, to visualize: Total charge density: SaveRho Deformation charge density: SaveDeltaRho Electrostatic potential: SaveElectrostaticPotential Total potential: SaveTotalPotential Local density of states: LocalDensityOfStates Charge density contours: WriteDenchar Atomic coordinates: WriteCoorXmol and WriteCoorCerius
All of them are logical variables
-
Analyzing the electronic structure (I)Band structure along the high symetry lines of the BZ
BandLineScale: scale of the k vectors in BandLinesBandLineScale pi/a
BandLines: lines were band energies are calculated.
%block BandLines 1 1.000 1.000 1.000 L 20 0.000 0.000 0.000 \Gamma 25 2.000 0.000 0.000 X 30 2.000 2.000 2.000 \Gamma%endblock BandLines
-
Analyzing the electronic structure (II)Density of states: total and projected on the atomic orbitals
ProjectedDensityOfStates:%block ProjectedDensityOfStates -20.00 10.00 0.200 500 eV%endblock ProjectedDensityOfStates
-
Analyzing the electronic structure (III)Population analysis: Mulliken prescription - Charge associated to basis orbital or atom
- Careful, badly defined, arbitrary and very dependent on the basis functions
WriteMullikenPop
WriteMullikenPop 0 = None 1 = Atomic and orbitals charges 2 = 1 + atomic overlap pop. 3 = 2 + orbital overlap pop.
Others (Voronoi, Hirschfeld, Maier)
-
Tools (I)Various post-processing programs and utilities:- Phonons:
Finite differences: VIBRA (P. Ordejn)Linear response: LINRES ( J. M. Pruneda et al.)
- Interface with Phonon program (Parlinsky)
-Visualisation of CHARGE DENSITY and POTENTIALS-3D: PLRHO (J. M. Soler)-2D: CONTOUR (E. Artacho)-2D: DENCHAR (J. Junquera)-3D: sies2xsf (Xcrysden) (A. Postnikov)-3D: grid2cube (Gaussian) (P. Ordejn)-3D: rho2grd (Materials Studio) (O. Paz)
-
Tools (II)-TRANSPORT PROPERTIES:
TRANSIESTA (M. Brandbydge et al.)-PSEUDOPOTENTIAL and BASIS information:
PyAtom (A. Garca)-ATOMIC COORDINATES:
Sies2arc (J. Gale)-DOS, PDOS, Bands:
PlotUtils (O. Paz)- Others (STM etc)
-
44
Some things we have not covered
PolarisationPolarisation Optical propertiesOptical properties Variety of GGAsVariety of GGAs Z-matrixZ-matrix Tuning performance, output Tuning performance, output and parallelisationand parallelisation Alternative basis sets Alternative basis sets (Ghosts, (Ghosts, BesselsBessels, user provided, , user provided, variational variational ))
-
45
Releases
2.0 2.0 STABLE (2.0.2 STABLE (2.0.2 .).) 3.0 3.0 beta (present versionbeta (present version )) DevelopmentDevelopment
-
46
3.0
Several minor modificationsSeveral minor modifications DFT-D andDFT-D and similar molecular mechanicssimilar molecular mechanics COOP, COHP COOP, COHP Virtual crystal approximationVirtual crystal approximation Wu-Cohen GGA, Wu-Cohen GGA, PBEsolPBEsol Scripting and Siesta as a serverScripting and Siesta as a server Fire quench (optimiser)Fire quench (optimiser) 2 x faster 2 x faster diagondiagon
-
47
3.0 and beyond Improved parallelisationImproved parallelisation FilteringFilteringTransiestaTransiesta LDA+U, pseudo-SICLDA+U, pseudo-SIC Spin-OrbitSpin-Orbit TD-DFTTD-DFT VdW LangrethVdW Langreths s functionalfunctional Divide and conquerDivide and conquer & LNV O(N) solvers& LNV O(N) solvers Multigrid Multigrid Poisson solver; mixed BCPoisson solver; mixed BC (and a very substantial(and a very substantial internal reshape)internal reshape)
-
48
Back home Get academic licence (free): gives youGet academic licence (free): gives you IDID &&passwordpassword Compile: lets of shared experience for differentCompile: lets of shared experience for differentplatforms in mailingplatforms in mailing list and its archivelist and its archive Architecture dependent file: arch.makeArchitecture dependent file: arch.make Try with Try with ./configure./configure firstfirst