Help file for the optic utility of the ABINIT package.
This file explains the i/o parameters needed for the calculation of the
frequency dependent linear optical dielectric function and second order
nonlinear optical susceptibility, thanks to the Optic utility
of the ABINIT package.
The user is advised to be familiar with
the main ABINIT help file before reading the present file.
A knowledge of the computation of the linear response d/dk
perturbation, explained in the
ABINIT (respfn) help file, is also requested.
Actually, a full understanding of the ABINIT treatment of perturbation (respfn) should NOT be requested
in order to use Optic, but with the present ordering of the help files and tutorial, this is not obvious.
In a future version, the tutorials and help files will be reorder and modified.
It will be easier to discover the present file with the help of the Optic tutorial.
It is worthwhile to print this help file, for ease of reading.
Copyright (C) 2005-2013 ABINIT group (SS,XG)
This file is distributed under the terms of the GNU General Public License, see
~abinit/COPYING or
http://www.gnu.org/copyleft/gpl.txt .
For the initials of contributors, see ~abinit/doc/developers/contributors.txt .
Content of the help file.
1. Introduction
Optic allows to compute the
frequency dependent linear optical dielectric function and second order
nonlinear optical susceptibility.
An introduction to such computations is given in the following paper :
The following are also very useful references :
Before going to the detailed explanation of the Optic utility, the user
is advised to get familiar to the theory behind it, explained in these
references. So, either you know this theory and you continue the tutorial,
or you should stop the tutorial here, and read at least Ref. 1.
The specific purpose of the Optic utility is to read in the position matrix elements
generated by ABINIT (also giving the momentum matrix elements), and then use Eq. 46 in
Ref. 1
to determine the
linear and Eqs. 49, 50 and 51 in Ref. 1 to determine the nonlinear
optical response of the material under investigation.
2. How to run Optic ?
The use of Optic is quite simple :
optic < optic.files > optic.log
where the optic.files file contains three information : the name
of the input file, the name of an output file (actually unused), and
the root name for all other output files. These input files
will be described in the next section.
However, before being able to use Optic, you must have obtained, from the main abinit program,
four different files, corresponding to the physical system that you want to study :
- The ground state wavefunction file, indexed with _WFK
- Three files containing the matrix elements of the position operator (or the derivative with respect to wavector),
one for each direction of space
Supposing you have read
the main ABINIT help file,
the production of the first file should not require any additional explanation.
However, the way to obtain the matrix elements is worth explaining.
The long-wave method as well as the Berry-phase treatment of electric field,
allow to establish the equivalence between
the off-diagonal matrix elements of the position operator, and the
off-diagonal matrix elements of the derivative with respect to the wavevector (d/dk),
for the periodic part of the Bloch functions, see for example
section VI of X. Gonze, Phys. Rev. B 55, 10337 (1997),
or Nunes and Gonze, Phys. Rev. B 63, 155107 (2001), and references therein.
Moreover, a straightforward relationship exists between these matrix elements,
and the matrix elements of the momentum operator.
The main abinit program has
the capability to compute derivatives of wavefunctions with respect to their
wavevector. This is explained in the
ABINIT (respfn) help file.
Such a calculation implies treating three d/dk perturbations, with numbers 3*natom+1,
3*natom+2 and 3*natom+3 (that is, for a unit cell with 2 atoms, perturbations
number 7, 8 and 9). In the 2-atom case, the associated files needed for Optic have the
index _1WF7 , _1WF8 , and _1WF9 .
The formalism implemented in Optic treats explicitely
the eigenstates lying in the range of energy between the lowest
occupied wavefunction and the highest one plus the maximal excitation energy
(chosen by the user).
All the other ones are neglected. This has two important consequences for the
preliminary runs :
- The ground calculation must produce explicitely all the eigenstates
and eigenvalues for that target range of energy, so it cannot be restricted to the occupied wavefunctions only
- One does not need the full change of Bloch wavefunctions with respect to d/dk, but only
the matrix elements between the wavefunctions of this range of energy
Because of the latter, the computation of the response to d/dk perturbations is much
shorter than usual : indeed, the matrix elements between the explicitely ground-state
wavefunctions are computed at the very beginning of the abinit(respfn) run. It is not
worth to make a full calculation of the modification of the wavefunctions due to a change
of wavevector.
(XG050701)
HERE, I SHOULD GIVE EXPLICITELY THE SENSITIVE INPUT VARIABLES FOR ABINIT.
AND ALSO I SHOULD EXPLAIN SUBTLETIES RELATED TO THE USE OF SYMMETRIES.
3. Optic input file and input variables
A typical optic.files file is presented below :
optic.in ! Name of input file
optic.out ! Unused
optic ! Root name for all files that will be produced
Since very few input parameters are required for Optic, the optic.in file contains them in the
following order which must be kept unaltered :
abo_1WF7 ! Name of the first d/dk response wavefunction file, produced by abinit
abo_1WF8 ! Name of the second d/dk response wavefunction file, produced by abinit
abo_1WF9 ! Name of the third d/dk response wavefunction file, produced by abinit
abo_WFK ! Name of the ground-state wavefunction file, produced by abinit
0.01 ! Value of the *smearing factor*, in Hartree
0.010 1 ! frequency *step* and *maximum* frequency (Ha)
0.000 ! *Scissor* shift if needed, in Hartree
0.001 ! *Tolerance* on closeness of singularities (in Hartree)
3 ! *Number of components* of linear optic tensor to be computed
11 33 23 ! Linear *coefficients* to be computed (x=1, y=2, z=3)
2 ! Number of components of nonlinear optic tensor to be computed
123 222 ! Non-linear coefficients to be computed
You might use the sign ! as a delimiter for comments : the parser will ignore everything on the
same line after it.
We now describe in turn each line after the four first ones (already explained).
Smearing factor
Variable type: real parameter, given in Hartree
In Eq. 46 of Ref. 1, it is clear that when ever wnm(k) is equal to w,
there is a resonance. Numerically this would lead to an infinity. In order to
avoid this one could do two things. You could change the sum over k-points to
integration and then use linear tetrahedron method (see Ref. 2 for
details). Another way to get around the problem is, like we do in the present
case, avoid this singularity by adding a small complex number to the denominator.
This prevents the denominator from ever going to 0 and acts as a broadening to
the spectrum. The broadening should not be too large as this would wash out the
features in the spectrum.
Go to the top
Frequency grid : step and maximum
Variable type: two real parameters, given in Hartree
The step and maximum sets your energy grid for the calculation using the formula
number of energy mesh points=maximum/step (zero excluded). So in order to capture more
features you can decrease the step size to get a finer energy grid. In order
to go to higher frequency, increase the maximum.
Go to the top
Scissors shift
Variable type: real parameter, given in Hartree
LDA/GGA are well known to underestimate the band-gap by up to 100%. In order
to get the optical spectrum and make a realistic comparison with experiments
one needs to correct for this. This can be achieved in two ways. The scissors
shift is normally chosen to be the difference between the experimental and
theoretical band-gap and is used to shift the conduction bands only. Another
way in which you do not have to rely on experimental data is to determine the
self energy using the GW approach.
In this case the opening of the gap due to the GW correction can be used as
scissor shift.
Go to the top
Number of components
Variable type: integer
How many components out of 9 of the linear optical dielectric tensor do you
want to calculate. Most of these are either equal or zero depending upon the
symmetry of the material (for detail see Ref. 3).
Note that the directions are along the crystal axis.
Go to the top
Components
Variable type: integers (their number is given by the preceeding variable)
This tells which component of the dielectric tensor you want to calculate.
These numbers are called a and b Eqs. 46 in Ref. 1. 1 2 3 represent x y
and z respectively. For example 11 would be xx and 32 would mean zy.
Go to the top
The next two lines are same as the two above but for nonlinear optical susceptibility.
Remember second order non-linear optical response for materials with inversion
symmetry is zero.
4. Optic output files
4.1. Linear optical response data files
Name: case_a_b-linopt.out
Contains the following 3 data sets
- 1) Column 1 - energy(eV), column 2 - imaginary part of the ab component of the
frequency dependent linear dielectric tensor.
- 2) Column 1 - energy(eV), column 2 - real part of the ab component of the
frequency dependent linear dielectric tensor.
- 3) Column 1 - energy(eV), column 2 - absolute value of the ab component of the
frequency dependent linear dielectric tensor.
In the header of the file you can find information about the calculation. Some
results for GaAs(LiF???) are presented in this document to show what can be
expected.
4.2. Non-linear optical response data files
Name: case_a_b_c-ChiKIND1.out
KIND1:This can be TotIm, TotRe or TotAbs
Contains: column 1 - energy(eV), column 2 and 3 - imaginary (KIND1=TotIm),
real (KIND1=TotRe) or absolute (KIND1=TotAbs) value of the abc component of
the nonlinear optical susceptibility. Second column contains values in
electro-static units (esu) and third column contains values in the SI units.
Name: case_a_b_c-ChiKIND2.out
KIND2:This can be Im, Re or abs
Contains: column 1 - energy(eV), column 2, 3 inter and column 4, 5 intra band
contributions to the imaginary (KIND2=Im), real (KIND2=Re) or absolute
(KIND2=Abs) value of the abc component of the nonlinear optical susceptibility.
These components are labeled as inter and intra in Eqs. 49-51 in Ref. 1.
All the values are in electro-static units (esu). In the header of all the
above files you can find information about the calculation.
Some results of nonlinear optical spectrum for
GaAs(LiF???) are presented in this document to show what can be expected.
5. Trouble shooting
1) All I get is zeros in my *-linopt.out file. Why?
There are several possibilities.
Let us explore some of them here:
- (i) The component of the dielectric tensor that you are looking at could be zero
due to symmetry of the crystal. Normally zz component is a good place to
start. It is almost never zero. So check the file case__0003_0003-linopt.out.
- (ii) If the components zz is zero this is more serious, if you are using the
default input file t57.in then please check that on the line number 10
the second number is 33. If you are not using the default input file
please calculate the 33 (or zz) component and make sure it is not zero.
- (iii) If even zz component is zero then possibilities are endless maximum
frequency on line number 6 of t57.in is too small, or the number of bands
used for performing ground state calculation are too small.
2) All I get is zeros in my *-ChiKIND.out file. Why?
Two most common mistakes are:
- (i) You are calculating the second order response for material with inversion
symmetry in this case all the components will be correctly zero or very
small like 10-15.
- (ii) Most components out of the 27 are zero due to the symmetry of the crystal.
Please calculate a different component.
6. Results for GaAs
SHOULD STILL BE DONE !
A small description of results.
excitonic effects!!!
Fig LO
Fig NLO
For details about how to identify peaks and get information from them see
Ref. 4