Exercises on basis set generation Control of the range of the … · 2014. 6. 16. · The...
Transcript of Exercises on basis set generation Control of the range of the … · 2014. 6. 16. · The...
Javier Junquera
Exercises on basis set generation
Control of the range of the second-ς orbital: the split norm
Most important reference followed in this lecture
Default mechanism to generate multiple- ζ in SIESTA: “Split-valence” method
Starting from the function we want to suplement
Default mechanism to generate multiple- ζ in SIESTA: “Split-valence” method
The second-ζ function reproduces the tail of the of the first-ζ outside a radius rm
Default mechanism to generate multiple- ζ in SIESTA: “Split-valence” method
And continuous smoothly towards the origin as
(two parameters: the second-ζ and its first derivative continuous at rm
Default mechanism to generate multiple- ζ in SIESTA: “Split-valence” method
The same Hilbert space can be expanded if we use the difference, with the advantage that now the second-ζ vanishes at rm (more efficient)
Default mechanism to generate multiple- ζ in SIESTA: “Split-valence” method
Finally, the second-ζ is normalized
rm controlled with PAO.SplitNorm
Meaning of the PAO.SplitNorm parameter
PAO.SplitNorm is the amount of the norm (the full norm tail + parabolla norm)
that the second-ς split off orbital has to carry (typical value 0.15)
Bulk Al, a metal that crystallizes in the fcc structure
Go to the directory with the exercise on the energy-shift
Inspect the input file, Al.energy-shift.fdf More information at the Siesta web page http://www.icmab.es/siesta and follow the link Documentations, Manual
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =
∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
where φµ(!r − !rµ −!R) is an atomic orbital of the basis set centered on atom µ in the unit cell !R, and cnµ(!k) are the
coefficients of the wave function, that must be identical that the ones used for wannierization in Mmn.
## General system descriptors#
SystemName Bulk Aluminium in the FCC latticeSystemLabel AlNumberOfAtoms 1NumberOfSpecies 1
## Lattice, coordinates, k-sampling#
%block ChemicalSpeciesLabel1 13 Al # Species index, atomic number, species label
%endblock ChemicalSpeciesLabel
LatticeConstant 4.05 Ang # Experimental lattice parameter 4.05 Ang
%block LatticeVectors0.000 0.500 0.5000.500 0.000 0.5000.500 0.500 0.000
%endblock LatticeVectors
AtomicCoordinatesFormat ScaledCartesian
%block AtomicCoordinatesAndAtomicSpecies0.000 0.000 0.000 1
%endblock AtomicCoordinatesAndAtomicSpecies
%block kgrid_Monkhorst_Pack20 0 0 0.50 20 0 0.50 0 20 0.5
%endblock kgrid_Monkhorst_Pack
## Variables to run a calculation at constant displacement field, D#
SlabDipoleCorrection .true. # SIESTA calculates the electric field# required to compensate the dipole of# the system at every iteration of# the self-consistent cycle.# The potential added to the grid# corresponds to that of a dipole layer# at the middle of the vacuum layer.
As starting point, we assume the theoretical lattice constant of bulk Al
FCC lattice
Sampling in k in the first Brillouin zone to achieve self-consistency
For each basis set, a relaxation of the unit cell is performed
Variables to control the Conjugate Gradient minimization
Two constraints in the minimization:
- the position of the atom in the unit cell (fixed at the origin)
- the shear stresses are nullified to fix the angles between the unit cell lattice vectors to 60°, typical of a fcc lattice
The splitnorm:
Variables to control the range of the second-ς shells in the basis set
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =
∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
where φµ(!r − !rµ −!R) is an atomic orbital of the basis set centered on atom µ in the unit cell !R, and cnµ(!k) are the
coefficients of the wave function, that must be identical that the ones used for wannierization in Mmn.
## Basis definition#PAO.BasisSize DZPAO.SplitNorm 0.15
SPLIT: Orbitals with angular momentum L= 0 *** s-shell
SPLIT: Basis orbitals for state 3s
SPLIT: PAO cut-off radius determined from anSPLIT: energy shift= 0.02000 Ry ****** ENERGY SHIFT (default value in
this example)izeta = 1
lambda = 1.000000rc = 5.669024 ****** Cutoff radius of the first-zeta
energy = -0.555418kinetic = 0.418589
potential(screened) = -0.974006potential(ionic) = -2.483577
izeta = 2rmatch = 5.194051 ****** Cutoff radius of the second-zeta
splitnorm = 0.150000 ****** SPLIT NORM (default value here)energy = -0.496638
kinetic = 0.602424potential(screened) = -1.099062
potential(ionic) = -2.666314
SPLIT: Orbitals with angular momentum L= 1 *** p-shell
SPLIT: Basis orbitals for state 3p
SPLIT: PAO cut-off radius determined from anSPLIT: energy shift= 0.020000 Ry
izeta = 1lambda = 1.000000
rc = 7.099496 ****** Cutoff radius of the first-zetaenergy = -0.185076
kinetic = 0.619725potential(screened) = -0.804801
potential(ionic) = -2.166893
izeta = 2rmatch = 5.959691 ****** Cutoff radius of the second-zeta
splitnorm = 0.150000 ****** SPLIT NORM (default value here)energy = -0.118050
The splitnorm:
Run SIESTA for different values of the PAO.SplitNorm
PAO.SplitNorm 0.10
Edit the input file and set up Then, run SIESTA
$siesta < Al.splitnorm.fdf > Al.splitnorm.0.10.out
For each splitnorm, search for the range of the orbitals
Edit each output file and search for:
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
SPLIT: Orbitals with angular momentum L= 0 *** s-shell
SPLIT: Basis orbitals for state 3s
SPLIT: PAO cut-off radius determined from anSPLIT: energy shift= 0.02000 Ry ****** ENERGY SHIFT (default value in
this example)izeta = 1
lambda = 1.000000rc = 5.669024 ****** Cutoff radius of the first-zeta
energy = -0.555418kinetic = 0.418589
potential(screened) = -0.974006potential(ionic) = -2.483577
izeta = 2rmatch = 5.194051 ****** Cutoff radius of the second-zeta
splitnorm = 0.150000 ****** SPLIT NORM (default value here)energy = -0.496638
kinetic = 0.602424potential(screened) = -1.099062
potential(ionic) = -2.666314
SPLIT: Orbitals with angular momentum L= 1 *** p-shell
SPLIT: Basis orbitals for state 3p
SPLIT: PAO cut-off radius determined from anSPLIT: energy shift= 0.020000 Ry
izeta = 1lambda = 1.000000
rc = 7.099496 ****** Cutoff radius of the first-zetaenergy = -0.185076
kinetic = 0.619725potential(screened) = -0.804801
potential(ionic) = -2.166893
izeta = 2rmatch = 5.959691 ****** Cutoff radius of the second-zeta
splitnorm = 0.150000 ****** SPLIT NORM (default value here)energy = -0.118050
kinetic = 0.885316potential(screened) = -1.003366
potential(ionic) = -2.477113atom: Total number of Sankey-type orbitals: 8
Edit each output file and search for:
We are interested in this number
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
siesta: Program’s energy decomposition (eV):siesta: Ebs = -25.348082siesta: Eions = 88.830648siesta: Ena = 22.110454siesta: Ekin = 22.645541siesta: Enl = 7.275412siesta: DEna = 1.808097siesta: DUscf = 0.046434siesta: DUext = 0.000000siesta: Exc = -21.656651siesta: eta*DQ = 0.000000siesta: Emadel = 0.000000siesta: Emeta = 0.000000siesta: Emolmec = 0.000000siesta: Ekinion = 0.000000siesta: Eharris = -56.601357siesta: Etot = -56.601362siesta: FreeEng = -56.601453
For each splitnorm, search for the range of the orbitals
Edit each output file and search for:
The lattice constant in this particular case would be 2.037521 Å × 2 = 4.075042 Å
For each splitnorm, search for the range of the orbitals
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
outcoor: Relaxed atomic coordinates (scaled):0.00000000 0.00000000 0.00000000 1 1 Al
outcell: Unit cell vectors (Ang):0.000000 2.037521 2.0375212.037521 0.000000 2.0375212.037521 2.037521 0.000000
outcell: Cell vector modules (Ang) : 2.881490 2.881490 2.881490outcell: Cell angles (23,13,12) (deg): 60.0000 60.0000 60.0000outcell: Cell volume (Ang**3) : 16.9175
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
Routine Calls Time/call Tot.time %siesta 1 198.732 198.732 100.00Setup 1 1.009 1.009 0.51bands 1 0.000 0.000 0.00writewave 1 0.000 0.000 0.00KSV_init 1 0.000 0.000 0.00IterMD 8 24.603 196.827 99.04STinit 8 0.839 6.715 3.38hsparse 8 0.009 0.069 0.03overlap 8 0.007 0.052 0.03naefs 16 0.000 0.004 0.00MolMec 16 0.000 0.000 0.00kinefsm 16 0.004 0.068 0.03nlefsm 16 0.293 4.686 2.36DHSCF_Init 8 0.529 4.234 2.13DHSCF1 8 0.108 0.865 0.44INITMESH 8 0.000 0.000 0.00DHSCF2 8 0.421 3.369 1.70REMESH 8 0.096 0.767 0.39REORD 130 0.000 0.008 0.00PHION 8 0.276 2.206 1.11COMM_BSC 90 0.000 0.006 0.00POISON 41 0.001 0.051 0.03fft 82 0.000 0.027 0.01IterSCF 25 6.791 169.781 85.43DHSCF 33 0.698 23.041 11.59DHSCF3 33 0.472 15.574 7.84rhoofd 33 0.294 9.701 4.88cellXC 33 0.025 0.830 0.42vmat 33 0.151 4.979 2.51compute_dm 25 6.319 157.973 79.49diagon 25 6.315 157.868 79.44c-eigval 100000 0.001 52.085 26.21c-buildHS 100000 0.000 48.513 24.41cdiag 200000 0.000 7.926 3.99cdiag1 200000 0.000 0.579 0.29cdiag2 200000 0.000 1.097 0.55cdiag3 200000 0.000 3.123 1.57cdiag4 200000 0.000 0.240 0.12c-eigvec 100000 0.001 53.110 26.72c-buildD 100000 0.001 51.385 25.86MIXER 25 0.001 0.036 0.02SCFconv 25 0.000 0.012 0.01PostSCF 8 1.720 13.760 6.92DHSCF4 8 0.933 7.467 3.76dfscf 8 0.679 5.429 2.73overfsm 8 0.003 0.020 0.01STanaly 8 0.002 0.016 0.01SIMOVE 8 0.001 0.006 0.00optical 1 0.000 0.000 0.00
For each energy shift, search for the timer per SCF step
We are interested in this number
The SplitNorm:
Run SIESTA for different values of the PAO.SplitNorm
PAO.SplitNorm 0.15
Edit the input file and set up Then, run SIESTA
$siesta < Al.splitnorm.fdf > Al.splitnorm.0.15.out
Try different values of the PAO.EnergyShift
PAO.SplitNorm 0.20 $siesta < Al.splitnorm.fdf > Al.splitnorm.0.20.out PAO.SplitNorm 0.25 $siesta < Al.splitnorm.fdf > Al.splitnorm.0.25.out PAO.SplitNorm 0.30 $siesta < Al.splitnorm.fdf > Al.splitnorm.0.30.out
PAO.SplitNorm 0.10 $siesta < Al.splitnorm.fdf > Al.splitnorm.0.10.out
Analyzing the results
Edit in a file (called, for instance, splitnorm.dat) the previous values as a function of the SplitNorm
2
I. ENERGY FUNCTIONAL FOR A DIELECTRIC INSIDE AN ELECTRIC FIELD.
Cite1,2.
un!k(!r) =∑
!Rµ
cnµ(!k)ei!k·(!rµ+!R−!r)φµ(!r − !rµ −
!R), (1)
$ more splitnorm.dat# SplitNorm rc(s) (au) rc(p) (au) Lat cons (Ang) FreeEner(eV) TimeSCFstep# ( Cutoff only for second-zeta)
0.10 5.529051 6.344070 4.086859 -56.624804 6.3700.15 5.194051 5.959691 4.075042 -56.601453 6.7910.20 4.879348 5.598600 4.110056 -56.582389 5.7790.25 4.699754 5.325544 4.144207 -56.590748 5.2230.30 4.470535 5.065805 4.139516 -56.595867 5.215
Analyzing the results: range of the orbitals as a function of the split norm
$ gnuplot $ gnuplot> plot ”splitnorm.dat" u 1:2 w l, ”splitnorm.dat" u 1:3 w l
$ gnuplot> set terminal postscript color $ gnuplot> set output “range-2zeta.ps” $ gnuplot> replot
4.4
4.6
4.8
5
5.2
5.4
5.6
5.8
6
6.2
6.4
0.08 0.1 0.12 0.14 0.16 0.18 0.2 0.22 0.24 0.26 0.28 0.3
"splitnorm.dat" u 1:2"splitnorm.dat" u 1:3
The larger the SplitNorm, the smaller the orbitals