Effective Mass
**************

The physics of the effective mass tensor is explained in this tutorial

A rather important aspect is the determination of the top of the
valence band (TOVB or HOMO) and the bottom of the conduction band
(BOCB or LUMO). There are two ways to do this

* 1. IPOL: from the interpolated bands

* 2. PATH: from the calculated bands along the high symmetry path, as
     used by amsbands.

In case that the HOMO and LUMO are located on the high symmetry path
the PATH method is more accurate. A good example are 2D systems with a
triangular lattice. Often the HOMO or LUMO are at the point called
"K", which may not be present in the standard k-grid, but is always
present on the high symmetry path. Also, along the path a dense k-grid
is used. It remains possible that the extrema or not on the path and
then the IPOL method should be used (possibly using a denser k-grid
than usual). When chooising the PATH method some feedback is printed
about whether IPOL and PATH produce the same HOMO and LUMO energy and
k coordinates.


Input key block
===============

   EffectiveMass
      Enabled Yes/No
      KPointCoord float_list
      NumAbove integer
      NumBelow integer
      StepSize float
      UseBandStructureInfoFromPath Yes/No
   End

"EffectiveMass"
   Type:
      Block

   Description:
      In a semi-conductor, the mobility of electrons and holes is
      related to the curvature of the bands at the top of the valence
      band and the bottom of the conduction band.
      With the effective mass option, this curvature is obtained by
      numerical differentiation.                   The estimation is
      done with the specified step size, and twice the specified step
      size, and both results are printed to give a hint on the
      accuracy. The easiest way to use this key is to enabled it
      without specifying any extra options.

   "Enabled"
      Type:
         Bool

      Default value:
         No

      GUI name:
         Effective mass

      Description:
         Compute the EffectiveMass.

   "KPointCoord"
      Type:
         Float List

      Unit:
         1/Bohr

      Recurring:
         True

      GUI name:
         At K-point

      Description:
         Coordinate of the k-points for which you would like to
         compute the effective mass.

   "NumAbove"
      Type:
         Integer

      Default value:
         1

      GUI name:
         Include N bands above

      Description:
         Number of bands to take into account above the Fermi level.

   "NumBelow"
      Type:
         Integer

      Default value:
         1

      GUI name:
         Include N bands below

      Description:
         Number of bands to take into account below the Fermi level.

   "StepSize"
      Type:
         Float

      Default value:
         0.001

      Description:
         Size of the step taken in reciprocal space to perform the
         numerical differentiation

   "UseBandStructureInfoFromPath"
      Type:
         Bool

      Default value:
         Yes

      Description:
         The (automatic) location of the HOMO and LUMO can be
         determined via band interpolation, or from the path as used
         by the BandStructure feature. The latter works better when
         they are located on the path. See also comments in the
         BandStructure block. To reproduce results from before ams2025
         set to no.
