~jose-soler/siesta/unfolding

« back to all changes in this revision

Viewing changes to Docs/siesta.tex

  • Committer: Jose M Soler
  • Date: 2019-02-28 15:42:15 UTC
  • mfrom: (718.1.44 trunk)
  • Revision ID: jose.soler@uam.es-20190228154215-w7bkk8lhqkah593w
Updated to trunk-762

removed:
  Src/bsc_xcmod.F
  Src/cellxc_mod.F
  Src/xc.f
  Util/Gen-basis/local_sys.f
added:
  Src/bloch_unfold.F90
  Tests/Reference/bessel-rich.out
  Tests/bessel-rich/
  Tests/bessel-rich/bessel-rich.fdf
  Tests/bessel-rich/bessel-rich.pseudos
  Tests/bessel-rich/makefile
renamed:
  Util/TS/TBtrans/sorted_search_t.F90 => Util/TS/TBtrans/sorted_search.F90
modified:
  Docs/developer/ford-pages/contributions.md
  Docs/developer/ford-pages/grid.md
  Docs/install_netcdf4.bash
  Docs/siesta.tex
  Docs/tbtrans.tex
  RELEASE_NOTES
  Src/Makefile
  Src/SiestaXC/cellxc.F90
  Src/SiestaXC/mesh3d.F90
  Src/atmparams.f
  Src/atom.F
  Src/basis_io.F
  Src/basis_specs.f
  Src/basis_types.f
  Src/bsc_cellxc.F
  Src/dhscf.F
  Src/flook_siesta.F90
  Src/forhar.F
  Src/ldau.F
  Src/m_ncdf_siesta.F90
  Src/m_spin.F90
  Src/m_transiesta.F90
  Src/m_ts_contour_eq.f90
  Src/m_ts_contour_neq.f90
  Src/m_ts_elec_se.F90
  Src/m_ts_electrode.F90
  Src/m_ts_electype.F90
  Src/m_ts_gf.F90
  Src/m_ts_hartree.F90
  Src/m_ts_options.F90
  Src/m_ts_sparse.F90
  Src/meshsubs.F
  Src/siesta_init.F
  Src/version.F90
  Tests/Makefile
  Util/COOP/Makefile
  Util/Denchar/Src/Makefile
  Util/Gen-basis/Makefile
  Util/Grimme/Makefile
  Util/Helpers/Makefile
  Util/STM/ol-stm/Src/Makefile
  Util/SpPivot/Makefile
  Util/TS/TBtrans/Makefile
  Util/TS/TBtrans/m_tbt_contour.F90
  Util/TS/TBtrans/m_tbt_gf.F90
  Util/TS/TBtrans/m_tbt_kregions.F90
  Util/TS/TBtrans/m_tbt_options.F90
  Util/TS/TBtrans/m_tbt_regions.F90
  Util/TS/TBtrans/m_tbt_save.F90
  Util/TS/TBtrans/m_tbt_sigma_save.F90
  Util/TS/TBtrans/m_tbt_tri_scat.F90
  Util/TS/TBtrans/m_tbt_trik.F90
  Util/TS/TBtrans/m_tbtrans.F90
  Util/TS/ts2ts/Makefile
  Util/TS/tshs2tshs/Makefile
  Util/VCA/Makefile
  Util/Vibra/Examples/graf.bands
  Util/Vibra/Examples/si2.bands
  Util/Vibra/Examples/si2.vectors
  Util/Vibra/Examples/si54.bands
  Util/Vibra/Src/vibra.f
  version.info
  Util/TS/TBtrans/sorted_search.F90

Show diffs side-by-side

added added

removed removed

Lines of Context:
2192
2192
  \texttt{lmxkb(is) = lmxo(is) + 1}, where \texttt{lmxo(is)} is the
2193
2193
  maximum angular momentum of the basis orbitals of species
2194
2194
  \texttt{is}.
 
2195
However, the value of \texttt{lmxkb} is actually
 
2196
limited by the highest-l channel in the pseudopotential file.
2195
2197
  \begin{fdfexample}
2196
2198
      %block Ps.lmax
2197
2199
          Al_adatom   3
2200
2202
      %endblock Ps.lmax
2201
2203
  \end{fdfexample}
2202
2204
  
2203
 
  By default \texttt{lmax} is the maximum angular momentum plus one.
2204
 
 
 
2205
By default \texttt{lmax} is the maximum angular momentum plus one,
 
2206
limited by the highest-l channel
 
2207
in the pseudopotential file.
2205
2208
\end{fdfentry}
2206
2209
 
2207
2210
 
2208
2211
\begin{fdfentry}{PS.KBprojectors}[block]
2209
2212
 
2210
 
This block provides information about the number of Kleinman-Bylander
2211
 
projectors per angular momentum, and for each species, that will used
2212
 
in the calculation. This block is optional.
2213
 
If the block is absent, or for species not mentioned in it, only
2214
 
one projector will be used for each angular momentum. The projectors
2215
 
will be constructed using the eigenfunctions of the respective
2216
 
pseudopotentials.
 
2213
  This block provides
 
2214
  information about the number of Kleinman-Bylander projectors per
 
2215
  angular momentum, and for each species, that will used in the
 
2216
  calculation. This block is optional.  If the block is absent, or for
 
2217
  species not mentioned in it, only one projector will be used for
 
2218
  each angular momentum (except for l-shells with semicore states, for
 
2219
  which two projectors will be constructed). The projectors will be
 
2220
  constructed using the eigenfunctions of the respective
 
2221
  pseudopotentials.
2217
2222
 
2218
2223
 
2219
2224
This block allows to specify the number of projector for each l, and also
2223
2228
increasing number of nodes (if there is not bound state with
2224
2229
the corresponding number of nodes, the ``eigenstates'' are taken to be just
2225
2230
functions which are made zero at very long distance of the nucleus).
2226
 
The units for the energy can be optionally specified, if not, the
2227
 
program will assumed that are given in Rydbergs.
 
2231
The units for the energy can be optionally specified; if not, the
 
2232
program will assumed that they are given in Rydbergs.
2228
2233
The data provided in this block must be consistent with those
2229
2234
read from the block \fdf{PS!lmax}. For example,
2230
2235
 
2243
2248
\end{verbatim}
2244
2249
 
2245
2250
The reading is done this way (those variables in brackets are optional,
2246
 
therefore they are only read if
2247
 
present):
 
2251
therefore they are only read if present):
2248
2252
 
2249
2253
\begin{verbatim}
2250
2254
 From is = 1 to  nspecies
2254
2258
         read: {erefKB(izeta,il,is)}, from ikb = 1 to nkbl(l,is), {units}
2255
2259
\end{verbatim}
2256
2260
 
 
2261
All angular momentum shells should be specified.  Default values are
 
2262
assigned to missing shells with l below lmax, where lmax is the
 
2263
highest angular momentum present in the block for that particular
 
2264
species. High-l shells (beyond lmax) not specified in the block will
 
2265
also be assigned default values.
 
2266
 
 
2267
Care should be taken for l-shells with semicore states. For them, two
 
2268
KB projectors should be generated. This is not checked while
 
2269
processing this block.
 
2270
 
2257
2271
When a very high energy, higher that 1000 Ry, is specified, the
2258
2272
default is taken instead.  On the other hand, very low (negative)
2259
2273
energies, lower than -1000 Ry, are used to indicate that the energy
2260
 
derivative of the last state must be used. For example, in the example
 
2274
derivative of the last state must be used. For example, in the block
2261
2275
given above, two projectors will be used for the \textit{s}
2262
2276
pseudopotential of Si. One generated using a reference energy of -0.5
2263
2277
Hartree, and the second one using the energy derivative of this
2276
2290
with the presence of ghost states.
2277
2291
 
2278
2292
The default is \emph{one} KB projector from each angular momentum,
2279
 
constructed from the nodeless eigenfunction.
 
2293
constructed from the nodeless eigenfunction, used for each angular
 
2294
momentum, except for l-shells with semicore states, for which two
 
2295
projectors will be constructed.
 
2296
Note that the value of \texttt{lmxkb} is actually limited by the
 
2297
highest-l channel in the pseudopotential file.
2280
2298
 
2281
2299
For full spin-orbit calculations, the program generates $lj$
2282
2300
projectors using the $l+1/2$ and $l-1/2$ components of the
2395
2413
    \texttt{nzls(lsh,is)}: Number of ``zetas'' for this shell. For a
2396
2414
    filteret basis this number is ignored since the number is
2397
2415
    controlled by the cutoff.
 
2416
    For bessel-floating orbitals, the different 'zetas' map to
 
2417
    increasingly excited states with the same angular momentum (with
 
2418
    increasing number of nodes).
 
2419
    
2398
2420
 
2399
2421
    \item[-]%
2400
2422
    \texttt{PolOrb(l+1)}: \textit{Optional input}. If set equal to
2473
2495
    this shell. For the second zeta onwards, if this value is
2474
2496
    negative, the actual rc used will be the given fraction of the
2475
2497
    first zeta's rc.
 
2498
    If the number of rc's for a given shell is less than the number of
 
2499
    'zetas', the program will assign the last rc value to the remaining
 
2500
    zetas, rather than stopping with an error. This is particularly
 
2501
    useful for Bessel suites of orbitals.
2476
2502
 
2477
2503
    \item[-]%
2478
2504
    \texttt{contrf(izeta,l,is)}: \textit{Optional input}.  Contraction
2479
 
    factor\index{scale factor} of each ``zeta'' for this shell.
 
2505
    factor\index{scale factor} of each ``zeta'' for this shell.   
 
2506
    If the number of entries for a given shell is less than the number of
 
2507
    'zetas', the program will assign the last contraction value to the remaining
 
2508
    zetas, rather than stopping with an error.
2480
2509
    \textit{Default value}: \texttt{1.0}
2481
 
 
2482
2510
\end{itemize}
2483
2511
 
2484
2512
Polarization orbitals\index{perturbative
2508
2536
a constant-pseudopotential atom, \textit{i.e.}, the basis functions
2509
2537
generated will be spherical Bessel functions\index{Bessel functions}
2510
2538
with the specified $r_c$. In this case, $r_c$ has to be given, as
2511
 
\fdf*{EnergyShift} will not calculate it.\index{basis!Bessel functions}
 
2539
\fdf*{PAO.EnergyShift} will not calculate it.\index{basis!Bessel functions}
2512
2540
 
2513
2541
Other negative atomic numbers will be interpreted by \siesta\ as
2514
2542
\textit{ghosts}\index{ghost atoms}\index{basis!ghost atoms}
2538
2566
  (which must be squared to obtain the valence density) are really
2539
2567
  filtered with a cutoff reduced by an empirical factor
2540
2568
  $0.7^2 \simeq 0.5$. The \fdf{FilterCutoff} should be similar or
2541
 
  lower than the \fdf{MeshCutoff} to avoid the \emph{eggbox
 
2569
  lower than the \fdf{Mesh!Cutoff} to avoid the \emph{eggbox
2542
2570
      effect} on the atomic forces.  However, one should not try to
2543
 
  converge \fdf{MeshCutoff} while simultaneously changing
 
2571
  converge \fdf{Mesh!Cutoff} while simultaneously changing
2544
2572
  \fdf{FilterCutoff}, since the latter in fact changes the used
2545
2573
  basis functions. Rather, fix a sufficiently large
2546
 
  \fdf{FilterCutoff} and converge only \fdf{MeshCutoff}.  If
 
2574
  \fdf{FilterCutoff} and converge only \fdf{Mesh!Cutoff}.  If
2547
2575
  \fdf{FilterCutoff} is not explicitly set, its value is calculated
2548
2576
  from \fdf{FilterTol}.
2549
2577
 
2571
2599
  orbitals may be meaningless, leading to incorrect results or even a
2572
2600
  program crash.
2573
2601
 
2574
 
  To be implemented: If \fdf{MeshCutoff} is not present in the
 
2602
  To be implemented: If \fdf{Mesh!Cutoff} is not present in the
2575
2603
  input file, it can be set using the maximum filtering cutoff used
2576
2604
  for the given \fdf{FilterTol} (for the time being, you can use
2577
2605
  \fdf{AtomSetupOnly} \fdftrue\ to stop the program after basis generation,
3762
3790
 
3763
3791
\end{fdfentry}
3764
3792
 
 
3793
\begin{fdflogicalF}{XC!Use.BSC.CellXC}
 
3794
  \index{exchange-correlation!cellXC}
 
3795
 
 
3796
  If \fdftrue, the version of \texttt{cellXC} from the BSC's mesh
 
3797
  suite is used instead of the default SiestaXC version. BSC's version
 
3798
  might be slightly better for GGA operations. SiestaXC's version is
 
3799
  mandatory when dealing with van der Waals functionals.
 
3800
 
 
3801
\end{fdflogicalF}
3765
3802
 
3766
3803
 
3767
3804
\subsection{Spin polarization}
5628
5665
\siesta\ uses a finite 3D grid for the calculation of some
5629
5666
integrals and the representation of charge densities and potentials.
5630
5667
Its fineness is determined by its plane-wave cutoff, as
5631
 
given by the \fdf{MeshCutoff} option. It means that all periodic
 
5668
given by the \fdf{Mesh!Cutoff} option. It means that all periodic
5632
5669
plane waves with kinetic energy lower than this cutoff 
5633
5670
can be represented in the grid without aliasing. In turn,
5634
5671
this implies that if a function (e.g. the density or the 
5656
5693
diagnose the eggbox effect to be expected for a particular
5657
5694
pseudopotential/basis-set combination.
5658
5695
 
5659
 
Apart from increasing the mesh cutoff (see the \fdf{MeshCutoff} option),
 
5696
Apart from increasing the mesh cutoff (see the \fdf{Mesh!Cutoff} option),
5660
5697
the following options might help in lessening a given eggbox problem. But
5661
5698
note also that a filtering of the orbitals and the relevant parts of
5662
5699
the pseudopotential and the pseudocore charge might be enough to solve
5663
5700
the issue (see Sec.~\ref{sec:filtering}).
5664
5701
 
5665
 
\begin{fdfentry}{MeshSizes}[block]
5666
 
  \index{grid}%
5667
 
  \index{mesh}
5668
 
 
5669
 
  Defines the number of mesh divisions of each lattice vector. Thus
5670
 
  \begin{fdfexample}
5671
 
     %block MeshSizes
5672
 
        30  30  80
5673
 
     %endblock MeshSizes
5674
 
  \end{fdfexample}
5675
 
  determines that the first, second, and third lattice vectors will
5676
 
  be divided in 30, 30, and 80 mesh intervals, respectively.
5677
 
  The number of mesh divisions should all be multiples of MeshSubDivisions 
5678
 
  below, or a stopping error will occur. 
5679
 
  If \fdf{MeshSizes} is not present, the mesh divisions are calculated
5680
 
  to meet the \fdf{MeshCutoff} below.
5681
 
  If \fdf{MeshSizes} is present and it gives a mesh cutoff lower than the
5682
 
  input \fdf{MeshCutoff}, a warning is issued, but the calculation
5683
 
  continues with the given \fdf{MeshSizes}.
5684
 
 
5685
 
\end{fdfentry}
5686
 
 
5687
 
\begin{fdfentry}{MeshCutoff}[energy]<$300\,\mathrm{Ry}$>
 
5702
\begin{fdfentry}{Mesh!Cutoff}[energy]<$300\,\mathrm{Ry}$>
5688
5703
  \index{grid}%
5689
5704
  \index{mesh}
5690
5705
 
5691
5706
  Defines the plane wave cutoff for the grid.
5692
5707
  
5693
5708
  % JMS/AG. To be implemented:
5694
 
  % \textit{Default value:} If not present, \textbf{MeshCutoff} is made equal 
5695
 
  % to \textbf{FilterCutoff}, if present. If not, it is obtained from
5696
 
  % \textbf{FilterTol}, if present, as explained in that parameter.
 
5709
  % \textit{Default value:} If not present, \fdf{Mesh!Cutoff} is made equal 
 
5710
  % to \fdf{FilterCutoff}, if present. If not, it is obtained from
 
5711
  % \fdf{FilterTol}, if present, as explained in that parameter.
5697
5712
  % If none of these parameters is present, the default value for 
5698
 
  % \textbf{MeshCutoff} is \texttt{100 Ry}
 
5713
  % \fdf{Mesh!Cutoff} is \texttt{100 Ry}
5699
5714
 
5700
5715
\end{fdfentry}
5701
5716
 
5702
 
\begin{fdfentry}{MeshSubDivisions}[integer]<$2$>
 
5717
\begin{fdfentry}{Mesh!Sizes}[list]<\fdfvalue{Mesh!Cutoff}>
 
5718
  \index{grid}%
 
5719
  \index{mesh}
 
5720
 
 
5721
  Manual definition of grid size along each lattice vector. The value
 
5722
  must be divisible by \fdf{Mesh!SubDivisions}, otherwise the
 
5723
  program will die. The numbers should also be divisible with $2$, $3$
 
5724
  and $5$ due to the FFT algorithms.
 
5725
 
 
5726
  This option may be specified as a block, or a list:
 
5727
  \begin{fdfexample}
 
5728
    %block Mesh.Sizes
 
5729
      100 202 210
 
5730
    %endblock
 
5731
    # Or equivalently:
 
5732
    Mesh.Sizes [100 202 210]  
 
5733
  \end{fdfexample}
 
5734
 
 
5735
  By default the grid size is determined via \fdf{Mesh!Cutoff}. This
 
5736
  option has precedence if both are specified.
 
5737
 
 
5738
\end{fdfentry}
 
5739
 
 
5740
\begin{fdfentry}{Mesh!SubDivisions}[integer]<$2$>
5703
5741
  \index{grid}%
5704
5742
  \index{mesh}
5705
5743
  
8969
9007
  the ``cube'' format, accepted by several Bader-analysis programs
8970
9008
  (for example, see \url{http://theory.cm.utexas.edu/bader/}).  Due to
8971
9009
  the need to represent a localized core charge, it is advisable to
8972
 
  use a moderately high MeshCutoff when invoking this option (300-500
 
9010
  use a moderately high Mesh!Cutoff when invoking this option (300-500
8973
9011
  Ry). The size of the ``basin of attraction'' around each atom in
8974
9012
  the Bader analysis should be monitored to check that the model core
8975
9013
  charge is contained in it.
9535
9573
 
9536
9574
      \item New MD routines
9537
9575
 
9538
 
      \item Convergence tests of \fdf{MeshCutoff} and
 
9576
      \item Convergence tests of \fdf{Mesh!Cutoff} and
9539
9577
      \fdf{kgrid.MonkhorstPack}, or other parameters (currently basis
9540
9578
      set optimizations cannot be performed in the Lua script).
9541
9579
 
10955
10993
    \option[Initialize-MD]%
10956
10994
    Right before the SCF step starts. This point is somewhat
10957
10995
    superfluous, but is necessary to communicate the actual meshcutoff
10958
 
    used\footnote{Remember that the \fdf{MeshCutoff} defined is the
 
10996
    used\footnote{Remember that the \fdf{Mesh!Cutoff} defined is the
10959
10997
        minimum cutoff used.}.
10960
10998
 
10961
10999
    \note \program{siesta.state == siesta.INIT\_MD}.
12348
12386
    
12349
12387
    \option[Eta]%
12350
12388
    \fdfindex*{TS!Elec.<>!Eta}%
12351
 
    \fdfdepend{TS!Elecs!Eta}
12352
 
    Control the imaginary part of the surface Green function for this
12353
 
    electrode.
 
12389
    \fdfdepend{TS!Elecs!Eta}%
 
12390
    Control the imaginary energy ($\eta$) of the surface Green
 
12391
    function for this electrode.
 
12392
 
 
12393
    The imaginary part is \emph{only} used in the non-equilibrium
 
12394
    contours since the equilibrium are already lifted into the complex
 
12395
    plane. Thus this $\eta$ reflects the imaginary part in the
 
12396
    $G\Gamma G^\dagger$ calculations. Ensure that all imaginary values
 
12397
    are larger than $0$ as otherwise \tsiesta\ may seg-fault.
 
12398
 
 
12399
    \note if this energy is negative the complex value associated with
 
12400
    the non-equilibrium contour is used. This is particularly useful
 
12401
    when providing a user-defined contour along the real axis.
12354
12402
 
12355
12403
    \option[Accuracy]%
12356
12404
    \fdfindex*{TS!Elec.<>!Accuracy}%
12357
 
    \fdfdepend{TS!Elecs!Accuracy}
 
12405
    \fdfdepend{TS!Elecs!Accuracy}%
12358
12406
    Control the convergence accuracy required for the self-energy
12359
12407
    calculation when using the Lopez-Sanchez, Lopez-Sanchez iterative
12360
12408
    scheme. 
12434
12482
  
12435
12483
\end{fdflogicalT}
12436
12484
 
12437
 
\begin{fdfentry}{TS!Elecs!Eta}[energy]<$10^{-4}\,\mathrm{eV}$>
 
12485
\begin{fdfentry}{TS!Elecs!Eta}[energy]<$1\,\mathrm{meV}$>
12438
12486
  
12439
 
  Globally control the imaginary part used for the surface Green
12440
 
  function calculation.
 
12487
  Globally control the imaginary energy ($\eta$) used for the surface
 
12488
  Green function calculation on the non-equilibrium contour.
12441
12489
  %
12442
 
  See \fdf{TS!Elec.<>!Eta}.
 
12490
  See \fdf{TS!Elec.<>!Eta} for extended details on the usage of this
 
12491
  flag. 
12443
12492
  
12444
12493
\end{fdfentry}
12445
12494
 
12842
12891
  The imaginary part ($\eta$) of the device states. Generally this is
12843
12892
  not necessary to define as the imaginary part naturally arises from
12844
12893
  the self-energies (where $\eta>0$).
12845
 
  
 
12894
 
12846
12895
\end{fdfentry}
12847
12896
 
12848
12897
\begin{fdfentry}{TS!Contours.nEq!Fermi.Cutoff}[energy]<$5\,k_BT$>
12919
12968
  \item[\sysfile{TSCCEQ*}]: The equilibrium complex contour integration paths.
12920
12969
 
12921
12970
  \item[\sysfile{TSCCNEQ*}]: The non-equilibrium complex contour
12922
 
  integration paths.
 
12971
  integration paths for \emph{correcting} the equilibrium contours.
12923
12972
 
12924
12973
  \item[\sysfile{TSGF*}]: Self-energy files containing the used
12925
12974
  self-energies from the leads. These are very large files used in the
13037
13086
  generation of the basis orbitals and the screened pseudopotentials.
13038
13087
 
13039
13088
  \item%
13040
 
  The exchange-correlation routines contained in file xc.f were
13041
 
  written by J.M.Soler in 1996 and 1997, in collaboration with
13042
 
  \textbf{C.\ Balb\'as} and \textbf{J. L.\ Martins}.  Routine pzxc (in
13043
 
  the same file), which implements the Perdew-Zunger LDA
13044
 
  parametrization of xc, is based on routine velect, written by
13045
 
  \textbf{S.\ Froyen}.
 
13089
  The exchange-correlation routines contained in SiestaXC were written
 
13090
  by J.M.Soler in 1996 and 1997, in collaboration with
 
13091
  \textbf{C.\ Balb\'as} and \textbf{J. L.\ Martins}.  Routine pzxc,
 
13092
  which implements the Perdew-Zunger LDA parametrization of xc, is
 
13093
  based on routine velect, written by \textbf{S.\ Froyen}.
13046
13094
 
13047
13095
  \item%
13048
13096
  The serial version of the multivariate fast fourier transform used