Most of the time you will not have to change the species files Elk uses to define chemical elements. Occasionally however, species files may need modification for special cases where the core states have to be promoted to the valence band or just for checking the sensitivity of a calculation to certain parameters such as the muffin-tin radius.
In this HowTo we will construct a species file for Ca from scratch and promote one of the core states to the valence band for use in a Bethe–Salpeter equation (BSE) calculation. We will also describe how species can be modified simply by setting parameters in elk.in.
-
We'll start by creating a special elk.in file:
species 20 'Ca' 'calcium' 40.078 2.4 8 1 0 1 2 2 0 1 2 2 1 1 2 2 1 2 4 3 0 1 2 3 1 1 2 3 1 2 4 4 0 1 2
and then run Elk with this input file. This will create the species file 'Ca.in'.
(Note that the elk.in input file for making species files for all the elements can be found in the directory 'elk/species'.)
The number on the first line (20) is the atomic number which determines the nuclear charge. On the next line is the symbol of the element and the name. The symbol is used for naming the species file.
Next is the standard atomic mass in atomic mass units. This is followed by a reasonable choice for the muffin-tin radius.
The remaining lines define the electronic state of the atom. The first number (8) is the number of occupied atomic states and the subsequent lines contain the Dirac quantum numbers n, l, k (l or l+1), and the integer occupation number.
-
Elk generates the following species file on-the-fly as it reads elk.in:
'Ca' : spsymb 'calcium' : spname -20.0000 : spzn 73057.72469 : spmass 0.447214E-06 2.4000 50.3684 500 : rminsp, rmt, rmaxsp, nrmt 8 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 4 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7208 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0235 0 T
The parameters are defined as follows:
spsymb : the symbol of the element.
spname : the name of the element.
spzn : nuclear charge; this should be negative since the electron charge is taken to be postive in the code.
spmass : nuclear mass in atomic units.
rminsp, rmt, rmaxsp, nrmt : respectively, the minimum radius on logarithmic radial mesh; muffin-tin radius; effective infinity for atomic radial mesh; and number of radial mesh points to muffin-tin radius.
nstsp : number of atomic states.
nsp, lsp, ksp, occsp, spcore : respectively, the principal quantum number n of the radial Dirac equation; quantum number l; quantum number k (l or l+1); occupancy of atomic state (can be fractional); .T. if state is in the core and therefore treated with the Dirac equation in the spherical part of the muffin-tin Kohn-Sham potential.
apword : default APW function order, i.e. the number of radial functions and therefore the order of the radial derivative matching at the muffin-tin surface.
apwe0, apwdm, apwve : respectively, the default APW linearisation energy; the order of the energy derivative of the APW radial function d^m u(r)/dE^m; and .T. if the linearisation energy is allowed to vary.
nlx : the number of exceptions to the default APW configuration. These should be listed on subsequent lines for particular angular momenta.
nlorb : number of local-orbitals.
lorbl, lorbord : respectively, the angular momentum l of the local-orbital; and the order of the radial derivative which goes to zero at the muffin-tin surface.
lorbe0, lorbdm, lorbve : respectively, the default local-orbital linearisation energy; the order of the energy derivative of the local-orbital radial function; and .T. if the linearisation energy is allowed to vary.
-
There are two additional variables which affect how the species file is generated. These are the energy cut-offs ecvcut and esccut.
The variable ecvcut defines the boundary between core and valence states: any atomic state below this energy is assumed to be in the core. By default this is set to -3.5 Ha.
esccut defines which states will have semi-core local-orbitals. Any atomic state below this and above ecvcut will have a corresponding local orbital in the species file. In addition, d and f states always get local-orbitals, irrespective of their energy. By default, esccut is -0.4 Ha.
Let's try the following value:
ecvcut -13.0
and run the code again. Note that these values have to be set before the species block in elk.in. After running Elk we get a new species file:
'Ca' : spsymb 'calcium' : spname -20.0000 : spzn 73057.72475 : spmass 0.447214E-06 2.4000 50.3684 500 : rminsp, rmt, rmaxsp, nrmt 8 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 F 2 1 2 4.00000 F 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 5 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -12.2478 0 T 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7208 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0235 0 T
Note how spcore has changed to .F. for the 2p states and there is an extra local-orbital at -12.2478 Ha.
It is sometimes preferable to add core local-orbitals by hand. The core eigenvalues can be found in the file EVALCORE.OUT. A local-orbital of this energy and angular momentum should be appended to the species file. Don't forget to change spcore and nlorb when you do this.
For very deep core states it may be necessary to increase the order of the local-orbital to ensure that its radial function falls off rapidly enough away from the nucleus. For example, the Ca 1s orbital could be promoted with:
0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -145.0000 0 T -145.0000 1 T
Always check that the linearisation energies are correctly found. Elk will issue a warning if they are not. In this case you may have to lower the default linearisation energies (lorbe0) by a small amount for the radial functions which have lorbve=.T.
-
The modified Ca species file can now be used in a BSE calculation of the Ca 2p 1/2 - 2p 3/2 (L2 / L3) x-ray absorption spectra in CaO.
See the example in 'examples/BSE/CaO-core' by Markus Meinert.
-
Species parameters can also be modified without having to change the species files themselves but rather by setting parameters in elk.in.
One of the most useful modifications is obtained with
lorbcnd .true.
This adds a set of local-orbitals at conduction band energies which considerably improves the accuracy of excited Kohn-Sham states. This is automatically enabled with the high-quality setting
highq .true.
The order of the APW and local-orbitals can also be raised with
nxoapwlo 1
This equivalent to using the species file
'Ca' : spsymb 'calcium' : spname -20.0000 : spzn 73057.72469 : spmass 0.447214E-06 2.4000 50.3684 500 : rminsp, rmt, rmaxsp, nrmt 8 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 2 : apword 0.1500 0 F : apwe0, apwdm, apwve 0.1500 1 F 0 : nlx 4 : nlorb 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0.1500 2 F 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0.1500 2 F 0 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.7208 0 T 1 3 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F -1.0235 0 T
where all the orders have been increased by 1.
Another useful modification is obtained by setting
autolinengy .true.
When this is enabled, all fixed linearisation energies (default 0.15 Ha) are set to the Fermi energy plus the value of the variable dlefe (default -0.1 Ha). This is also enabled when highq=.true.
The number of radial mesh points (nrmt) can be changed from elk.in by setting the variable
nrmtscf 3.5
Here the default number of radial points (500) is scaled by 3.5 to give 1750 points. This is used for improving the precision of calculations, particularly those which require numerical gradients such as DFPT phonon calculations or GGA and meta-GGA calculations.
Lastly, if the default muffin-tin radius results in overlapping muffin-tins then Elk reduces them 'democratically' until they no longer overlap. The minimum distance between muffin-tin surfaces can be set using
rmtdelta 0.05
This keeps the muffin-tin surfaces at least 0.05 a.u. from each other (this is also the default value).
-
Finally, Elk can produce a complete species file from just the nuclear charge and the name. This is done with
fspecies -20.0 'Ca'
The code will automatically work out the atomic configuration, determine a reasonable muffin-tin radius and use an empirical formula for estimating the atomic mass.
The name 'fspecies' actually means 'fractional species' and this feature can be used for making fractionally charged nuclei with the corresponding number of electrons. Thus
fspecies -20.1 'Ca'
will yield the species file
'Ca' : spsymb 'Fractional species' : spname -20.1000 : spzn 80319.00665 : spmass 0.446100E-06 2.1590 58.4537 400 : rminsp, rmt, rmaxsp, nrmt 10 : nstsp 1 0 1 2.00000 T : nsp, lsp, ksp, occsp, spcore 2 0 1 2.00000 T 2 1 1 2.00000 T 2 1 2 4.00000 T 3 0 1 2.00000 F 3 1 1 2.00000 F 3 1 2 4.00000 F 4 0 1 2.00000 F 3 2 2 0.100000 F 3 2 3 0.00000 F 1 : apword 0.1500 0 F : apwe0, apwdm, apwve 0 : nlx 6 : nlorb 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve 0.1500 1 F 0 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.7512 0 T 1 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -1.0453 0 T 2 2 : lorbl, lorbord 0.1500 0 F : lorbe0, lorbdm, lorbve -0.0837 0 T
You can see that the nuclear charge is -20.1 and the 3d occupation number is 0.1 to maintain charge neutrality. The muffin-tin radius is estimated from the atomic charge density and is usually slightly smaller than that in the standard input file. The atomic mass is overestimated because it is an empirical function of the nuclear charge, but this can be corrected by hand.
These fractional species files are intended for use in a virtual crystal approximation (VCA) calculation.
Last edit: J. K. Dewhurst 2019-08-29
https://sourceforge.net/p/elk/discussion/897820/thread/710b96ae47/
0 Comments