lucydot/effmass

View on GitHub
docs/build/analysis.html

Summary

Maintainability
Test Coverage


<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
  <meta charset="utf-8" />
  
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  
  <title>effmass.analysis &mdash; effmass 1.0.0 documentation</title>
  

  
  <link rel="stylesheet" href="_static/css/theme.css" type="text/css" />
  <link rel="stylesheet" href="_static/pygments.css" type="text/css" />

  
  

  
  

  

  
  <!--[if lt IE 9]>
    <script src="_static/js/html5shiv.min.js"></script>
  <![endif]-->
  
    
      <script type="text/javascript" id="documentation_options" data-url_root="./" src="_static/documentation_options.js"></script>
        <script src="_static/jquery.js"></script>
        <script src="_static/underscore.js"></script>
        <script src="_static/doctools.js"></script>
        <script async="async" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML"></script>
    
    <script type="text/javascript" src="_static/js/theme.js"></script>

    
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="effmass.outputs" href="outputs.html" />
    <link rel="prev" title="effmass.dos" href="dos.html" /> 
</head>

<body class="wy-body-for-nav">

   
  <div class="wy-grid-for-nav">
    
    <nav data-toggle="wy-nav-shift" class="wy-nav-side">
      <div class="wy-side-scroll">
        <div class="wy-side-nav-search" >
          

          
            <a href="index.html" class="icon icon-home"> effmass
          

          
          </a>

          
            
            
              <div class="version">
                1.0.0
              </div>
            
          

          
<div role="search">
  <form id="rtd-search-form" class="wy-form" action="search.html" method="get">
    <input type="text" name="q" placeholder="Search docs" />
    <input type="hidden" name="check_keywords" value="yes" />
    <input type="hidden" name="area" value="default" />
  </form>
</div>

          
        </div>

        
        <div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="main navigation">
          
            
            
              
            
            
              <ul class="current">
<li class="toctree-l1"><a class="reference internal" href="Features.html">Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="Supported%20codes.html">Supported Codes</a></li>
<li class="toctree-l1"><a class="reference internal" href="Installation.html">Installation</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="API%20documentation.html">API documentation</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="inputs.html">effmass.inputs</a></li>
<li class="toctree-l2"><a class="reference internal" href="extrema.html">effmass.extrema</a></li>
<li class="toctree-l2"><a class="reference internal" href="dos.html">effmass.dos</a></li>
<li class="toctree-l2 current"><a class="current reference internal" href="#">effmass.analysis</a></li>
<li class="toctree-l2"><a class="reference internal" href="outputs.html">effmass.outputs</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="Implementation.html">Implementation</a></li>
<li class="toctree-l1"><a class="reference internal" href="Related%20packages.html">Related packages</a></li>
<li class="toctree-l1"><a class="reference internal" href="Development.html">Development</a></li>
<li class="toctree-l1"><a class="reference internal" href="Testing.html">Testing</a></li>
<li class="toctree-l1"><a class="reference internal" href="Citing.html">Citing</a></li>
<li class="toctree-l1"><a class="reference internal" href="License.html">License</a></li>
<li class="toctree-l1"><a class="reference internal" href="Contributors.html">Contributors</a></li>
<li class="toctree-l1"><a class="reference internal" href="Acknowledgements.html">Acknowledgements</a></li>
</ul>

            
          
        </div>
        
      </div>
    </nav>

    <section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">

      
      <nav class="wy-nav-top" aria-label="top navigation">
        
          <i data-toggle="wy-nav-top" class="fa fa-bars"></i>
          <a href="index.html">effmass</a>
        
      </nav>


      <div class="wy-nav-content">
        
        <div class="rst-content">
        
          

















<div role="navigation" aria-label="breadcrumbs navigation">

  <ul class="wy-breadcrumbs">
    
      <li><a href="index.html" class="icon icon-home"></a> &raquo;</li>
        
          <li><a href="API%20documentation.html">API documentation</a> &raquo;</li>
        
      <li>effmass.analysis</li>
    
    
      <li class="wy-breadcrumbs-aside">
        
          
            <a href="_sources/analysis.rst.txt" rel="nofollow"> View page source</a>
          
        
      </li>
    
  </ul>

  
  <hr/>
</div>
          <div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
           <div itemprop="articleBody">
            
  <div class="section" id="module-effmass.analysis">
<span id="effmass-analysis"></span><h1>effmass.analysis<a class="headerlink" href="#module-effmass.analysis" title="Permalink to this headline">¶</a></h1>
<p>A module for analysing the data contained in a <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> object.</p>
<p>Contains the <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> class and methods for calculating various definitions of the effective mass.</p>
<dl class="py class">
<dt id="effmass.analysis.Segment">
<em class="property"><span class="pre">class</span> </em><code class="sig-prename descclassname"><span class="pre">effmass.analysis.</span></code><code class="sig-name descname"><span class="pre">Segment</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">Data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">band</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kpoint_indices</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment" title="Permalink to this definition">¶</a></dt>
<dd><p>Class for segments of the bandstructure. A Segment contains data for a
particular region of reciprocal space and particular band.</p>
<dl class="py attribute">
<dt id="effmass.analysis.Segment.band">
<code class="sig-name descname"><span class="pre">band</span></code><a class="headerlink" href="#effmass.analysis.Segment.band" title="Permalink to this definition">¶</a></dt>
<dd><p>The band number of the segment (counting starts from 0).</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>int</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.kpoint_indices">
<code class="sig-name descname"><span class="pre">kpoint_indices</span></code><a class="headerlink" href="#effmass.analysis.Segment.kpoint_indices" title="Permalink to this definition">¶</a></dt>
<dd><p>The indices of <a class="reference internal" href="inputs.html#effmass.inputs.Data.kpoints" title="effmass.inputs.Data.kpoints"><code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.Data.kpoints</span></code></a> from which this Segment is formed.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>list(int)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.kpoints">
<code class="sig-name descname"><span class="pre">kpoints</span></code><a class="headerlink" href="#effmass.analysis.Segment.kpoints" title="Permalink to this definition">¶</a></dt>
<dd><p>2-dimensional array. Each row contains the fractional coordinates of a kpoint [kx,ky,kz]. A slice of <a class="reference internal" href="inputs.html#effmass.inputs.Data.kpoints" title="effmass.inputs.Data.kpoints"><code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.Data.kpoints</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.cartesian_kpoints">
<code class="sig-name descname"><span class="pre">cartesian_kpoints</span></code><a class="headerlink" href="#effmass.analysis.Segment.cartesian_kpoints" title="Permalink to this definition">¶</a></dt>
<dd><p>2-dimensional array. Each row contains the cartesian coordinates (angstrom <span class="math notranslate nohighlight">\(^{-1}\)</span>) of a kpoint.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.dk_angs">
<code class="sig-name descname"><span class="pre">dk_angs</span></code><a class="headerlink" href="#effmass.analysis.Segment.dk_angs" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array which contains the distance (angstrom <span class="math notranslate nohighlight">\(^{-1}\)</span>) between each kpoint and the extrema.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.dk_bohr">
<code class="sig-name descname"><span class="pre">dk_bohr</span></code><a class="headerlink" href="#effmass.analysis.Segment.dk_bohr" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array which contains the distance (bohr <span class="math notranslate nohighlight">\(^{-1}\)</span>) between each kpoint and the extrema.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.energies">
<code class="sig-name descname"><span class="pre">energies</span></code><a class="headerlink" href="#effmass.analysis.Segment.energies" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array which contains the energy (eV) of each eigenstate. A slice of <a class="reference internal" href="inputs.html#effmass.inputs.Data.energies" title="effmass.inputs.Data.energies"><code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.Data.energies</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.dE_eV">
<code class="sig-name descname"><span class="pre">dE_eV</span></code><a class="headerlink" href="#effmass.analysis.Segment.dE_eV" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array which contains the difference in energy (hartree) between each kpoint and the extrema.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.dE_hartree">
<code class="sig-name descname"><span class="pre">dE_hartree</span></code><a class="headerlink" href="#effmass.analysis.Segment.dE_hartree" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array which contains the difference in energy (eV) between each kpoint and the extrema.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.occupancy">
<code class="sig-name descname"><span class="pre">occupancy</span></code><a class="headerlink" href="#effmass.analysis.Segment.occupancy" title="Permalink to this definition">¶</a></dt>
<dd><p>2-dimensional array. Each row contains occupation number of the eigenstates for a particular band. A slice of <a class="reference internal" href="inputs.html#effmass.inputs.Data.occupancy" title="effmass.inputs.Data.occupancy"><code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.Data.occupancy</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.direction">
<code class="sig-name descname"><span class="pre">direction</span></code><a class="headerlink" href="#effmass.analysis.Segment.direction" title="Permalink to this definition">¶</a></dt>
<dd><p>1-dimensional array with length 3. The direction between kpoints in the segment.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>array</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.band_type">
<code class="sig-name descname"><span class="pre">band_type</span></code><a class="headerlink" href="#effmass.analysis.Segment.band_type" title="Permalink to this definition">¶</a></dt>
<dd><p>The band type, determined by occupancy of the eigenstate. Argument choices are “conduction_band”, “valence_band” or “unknown”. If set to “unknown”, some class methods will raise a warning and return None.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>str</p>
</dd>
</dl>
</dd></dl>

<dl class="py attribute">
<dt id="effmass.analysis.Segment.fermi_energy">
<code class="sig-name descname"><span class="pre">fermi_energy</span></code><a class="headerlink" href="#effmass.analysis.Segment.fermi_energy" title="Permalink to this definition">¶</a></dt>
<dd><p>the fermi energy in eV.</p>
<dl class="field-list simple">
<dt class="field-odd">Type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.__init__">
<code class="sig-name descname"><span class="pre">__init__</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">Data</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">band</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kpoint_indices</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.__init__" title="Permalink to this definition">¶</a></dt>
<dd><p>Initialise an instance of the Segment class.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>Data</strong> (<a class="reference internal" href="inputs.html#effmass.inputs.Data" title="effmass.inputs.Data"><em>Data</em></a>) – Data instance initialised from the bandstructure which contains the segment</p></li>
<li><p><strong>band</strong> (<em>int</em>) – the band number of the segment</p></li>
<li><p><strong>kpoint_indices</strong> (<em>list</em><em>(</em><em>int</em><em>)</em>) – the kpoint indices of the segment</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>None.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.alpha">
<code class="sig-name descname"><span class="pre">alpha</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">truncate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.alpha"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.alpha" title="Permalink to this definition">¶</a></dt>
<dd><p>The transport mass (<span class="math notranslate nohighlight">\(\frac{k}{\delta E \delta k}\)</span>) is calculated as a function of <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a> and fitted to a straight line. The gradient of this line determines the alpha parameter which is used in the kane dispersion.</p>
<p>See <a class="reference internal" href="#effmass.analysis.Segment.transport_effmass" title="effmass.analysis.Segment.transport_effmass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.transport_effmass()</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>truncate</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, data only up to <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.explosion_index()</span></code></a> is used. If False, alpha is calculated using data for the whole segment. Defaults to True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The alpha parameter (hartree <span class="math notranslate nohighlight">\(^{-1}\)</span>).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.explosion_index">
<code class="sig-name descname"><span class="pre">explosion_index</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.explosion_index"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.explosion_index" title="Permalink to this definition">¶</a></dt>
<dd><p>This will find the index at which there is a change in sign of the second derivative.</p>
<p>In the region of this point the first derivative will pass through zero and so the transport mass (<span class="math notranslate nohighlight">\(\frac{1}{\delta E \delta k}\)</span>) will explode.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>This marks the point at which the Kane dispersion is definitely not valid, although it may be that the Kane dispersion is a poor approximation prior to this.</p>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.fd">
<code class="sig-name descname"><span class="pre">fd</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">k</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">fermi_level</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mass_bandedge</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.fd"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.fd" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the probability that an eigenstate of momentum k is occupied, using Fermi-Dirac statistics and assuming a Kane dispersion.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>k</strong> – the momentum of the eigenstate (bohr:math:<cite>^{-1}</cite>).</p></li>
<li><p><strong>fermi_level</strong> (<em>float</em><em>, </em><em>optional</em>) – Fermi level (eV) to be used in Fermi-dirac statistics. Defaults to <a class="reference internal" href="#effmass.analysis.Segment.fermi_energy" title="effmass.analysis.Segment.fermi_energy"><code class="xref py py-attr docutils literal notranslate"><span class="pre">fermi_energy</span></code></a>.</p></li>
<li><p><strong>temp</strong> (<em>float</em><em>, </em><em>optional</em>) – The temperature (K) to be used in Fermi-Dirac statistics. Defaults to 300.</p></li>
<li><p><strong>alpha</strong> (<em>float</em><em>, </em><em>optional</em>) – The alpha parameter of the Kane dispersion (hartree$^{-1}$)</p></li>
<li><p><strong>mass_bandedge</strong> – The mass at bandedge parameter of the Kane dispersion (units electron mass).</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The probability that the eigenstate is occupied.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The sign of the alpha parameter and mass_bandedge are important. If these are negative (as would be expected for the valence band), then they must be passed as negative values to the function.</p>
</div>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.finite_difference_effmass">
<code class="sig-name descname"><span class="pre">finite_difference_effmass</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.finite_difference_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.finite_difference_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>The curvature at the band edge is calculated using a second order
forward finite difference method. This is then inverted to give an
effective mass.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Bandedge effective mass from finite difference (in units of electron mass).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.finite_difference_fit">
<code class="sig-name descname"><span class="pre">finite_difference_fit</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.finite_difference_fit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.finite_difference_fit" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the curvature at the band edge using a finite difference method and then evaluates the corresponding quadratic dispersion along <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<p>See <a class="reference internal" href="#effmass.analysis.Segment.finite_difference_effmass" title="effmass.analysis.Segment.finite_difference_effmass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.finite_difference_effmass()</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>list containing energies (hartree). The energies are calculated at 100 points evenly distributed across <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a> using the quadratic approximation.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>list(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.five_point_leastsq_effmass">
<code class="sig-name descname"><span class="pre">five_point_leastsq_effmass</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.five_point_leastsq_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.five_point_leastsq_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>Fits a parabolic dispersion using the least-squares method to 5
points (3 DFT-calculated points + 2 from symmetry).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Curvature effective mass (in units of electron mass).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>no weighting is used.</p>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.five_point_leastsq_fit">
<code class="sig-name descname"><span class="pre">five_point_leastsq_fit</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.five_point_leastsq_fit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.five_point_leastsq_fit" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the curvature effective mass using a parabolic least-
squares fit and then evaluates the corresponding parabolic dispersion
along <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>list containing energies (hartree). The energies are calculated at 100 points evenly distributed across <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>list(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.inertial_effmass">
<code class="sig-name descname"><span class="pre">inertial_effmass</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dk</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">polyfit_weighting</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.inertial_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.inertial_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the inertial (curvature) effective mass (<span class="math notranslate nohighlight">\(\frac{1}{\frac{\delta^2E}{\delta k^2}}\)</span>), evaluated at <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>dk</strong> (<em>array</em><em>, </em><em>optional</em>) – distance (bohr :math:^{-1}) from extrema in reciprocal space at which to evaluate second order derivatives. Defaults to 100 points evenly distributed across the whole segment.</p></li>
<li><p><strong>polyfit_weighting</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, polyfit will be weighted according to occupation of eigenstates. If False, no weighting will be used.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>array(float). 1d array containing the conductivity effective mass (in units of electron rest mass) evaluated at the points specified in dk.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.kane_fit">
<code class="sig-name descname"><span class="pre">kane_fit</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.kane_fit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.kane_fit" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculate the Kane quasi-linear dispersion parameters, then evaluates at 100 points evenly distributed across <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<dl class="simple">
<dt>The Kane quasi-linear dispersion is described by</dt><dd><dl class="simple">
<dt>..math::</dt><dd><p>frac{hbar ^2 k^2}{2m_{tb}} = E(1+alpha E)</p>
</dd>
</dl>
</dd>
<dt>where the transport mass at bandedge (<span class="math notranslate nohighlight">\(m_{tb}\)</span>) and the alpha parameter are calculated by fitting a linear function to the transport mass <span class="math notranslate nohighlight">\(m_t\)</span> as a function of energy E.</dt><dd><dl class="simple">
<dt>..math::</dt><dd><p>m_t = m_{tb}(1+2alpha E)</p>
</dd>
</dl>
</dd>
</dl>
<p>The transport mass <span class="math notranslate nohighlight">\(m_t\)</span> is calculated by approximating the dispersion with a polynomial function and taking the first derivative, see <a class="reference internal" href="#effmass.analysis.Segment.transport_effmass" title="effmass.analysis.Segment.transport_effmass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">transport_effmass()</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>1d array containing energies (hartree).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>array</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.kane_mass_band_edge">
<code class="sig-name descname"><span class="pre">kane_mass_band_edge</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">truncate</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.kane_mass_band_edge"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.kane_mass_band_edge" title="Permalink to this definition">¶</a></dt>
<dd><p>The transport mass (<span class="math notranslate nohighlight">\(\frac{1}{\delta E \delta k}\)</span>) is calculated as a function of <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a> and fitted to a straight line. The intercept of this line with the y-axis gives a transport mass at bandedge which is used as a parameter in the kane dispersion.</p>
<p>See <a class="reference internal" href="#effmass.analysis.Segment.transport_effmass" title="effmass.analysis.Segment.transport_effmass"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.transport_effmass()</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>truncate</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, data only up to <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.explosion_index()</span></code></a> is used. If False, alpha is calculated using data for the whole segment. Defaults to True.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>transport mass at bandedge (in units of electron mass).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.mass_integration">
<code class="sig-name descname"><span class="pre">mass_integration</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fermi_level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mass_bandedge</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.mass_integration"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.mass_integration" title="Permalink to this definition">¶</a></dt>
<dd><p>Integrates the product of the fermi-dirac distribution, density of
states and second derivative of kane dispersion along the one-
dimensional slice of k-space defined by
<a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> (up to
<a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fermi_level</strong> (<em>float</em><em>, </em><em>optional</em>) – Fermi level (eV) to be used in Fermi-dirac statistics. Defaults to <a class="reference internal" href="#effmass.analysis.Segment.fermi_energy" title="effmass.analysis.Segment.fermi_energy"><code class="xref py py-attr docutils literal notranslate"><span class="pre">fermi_energy</span></code></a>.</p></li>
<li><p><strong>temp</strong> (<em>float</em><em>, </em><em>optional</em>) – The temperature (K) to be used in Fermi-Dirac statistics. Defaults to 300.</p></li>
<li><p><strong>alpha</strong> (<em>float</em><em>, </em><em>optional</em>) – The alpha parameter of the Kane dispersion (hartree$^{-1}$)</p></li>
<li><p><strong>mass_bandedge</strong> – The mass at bandedge parameter of the Kane dispersion (units electron mass).</p></li>
<li><p><strong>upper_limit</strong> (<em>float</em><em>, </em><em>optional</em>) – The integration upper limit (bohr$^{-1}$). Defaults to where the Kane quasi-linear dispersion is no longer valide, defined by <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The optical effective mass (units of electron mass), defined as the inverse of the second derivative of a kane dispersion, weighted according to occupancy of available eigenstates (the product of density of states and the fermi-dirac distribution).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The sign of the alpha parameter and mass_bandedge are important. If these are negative (as would be expected for the valence band), then they must be passed as negative values to the function.</p>
</div>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.optical_effmass_kane_dispersion">
<code class="sig-name descname"><span class="pre">optical_effmass_kane_dispersion</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fermi_level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mass_bandedge</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.optical_effmass_kane_dispersion"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.optical_effmass_kane_dispersion" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the optical effective mass, with the dispersion approximated by a Kane quasi-linear function.</p>
<dl class="simple">
<dt>This optical effective mass is defined as:</dt><dd><dl class="simple">
<dt>..math::</dt><dd><p>frac{1}{m_o} = frac{int f(E_k(k),T) frac{delta^2 E_k(k)}{delta k^2} dk}{int f(E_k(k),T)  dk}</p>
</dd>
</dl>
</dd>
<dt>where the integral is along the one-dimensional slice of k-space defined by <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> (up to <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>) and <span class="math notranslate nohighlight">\(f(E_k,T)\)</span> is the Fermi-Dirac distribution. E_k(k) is the Kane dispersion:</dt><dd><dl class="simple">
<dt>..math::</dt><dd><p>frac{hbar ^2}{2m_{tb}} = E(1+alpha E)</p>
</dd>
</dl>
</dd>
</dl>
<p>where the transport mass at bandedge (<span class="math notranslate nohighlight">\(m_{tb}\)</span>) is calculated using <a class="reference internal" href="#effmass.analysis.Segment.kane_mass_band_edge" title="effmass.analysis.Segment.kane_mass_band_edge"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.kane_mass_band_edge()</span></code></a> and the alpha parameter is calculated using <a class="reference internal" href="#effmass.analysis.Segment.alpha" title="effmass.analysis.Segment.alpha"><code class="xref py py-meth docutils literal notranslate"><span class="pre">effmass.analysis.Segment.alpha()</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fermi_level</strong> (<em>float</em><em>, </em><em>optional</em>) – Fermi level (eV) to be used in Fermi-dirac statistics. Defaults to <a class="reference internal" href="#effmass.analysis.Segment.fermi_energy" title="effmass.analysis.Segment.fermi_energy"><code class="xref py py-attr docutils literal notranslate"><span class="pre">fermi_energy</span></code></a>.</p></li>
<li><p><strong>temp</strong> (<em>float</em><em>, </em><em>optional</em>) – The temperature (K) to be used in Fermi-Dirac statistics. Defaults to 300.</p></li>
<li><p><strong>alpha</strong> (<em>float</em><em>, </em><em>optional</em>) – The alpha parameter of the Kane dispersion (hartree$^{-1}$)</p></li>
<li><p><strong>mass_bandedge</strong> – The mass at bandedge parameter of the Kane dispersion (units electron mass).</p></li>
<li><p><strong>upper_limit</strong> (<em>float</em><em>, </em><em>optional</em>) – The integration upper limit (bohr$^{-1}$). Defaults to where the Kane quasi-linear dispersion is no longer valide, defined by <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The optical effective mass (units of electron mass) of the <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a>.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The sign of the alpha parameter and mass_bandedge are important. If these are negative (as would be expected for the valence band), then they must be passed as negative values to the function.</p>
</div>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.optical_poly_effmass">
<code class="sig-name descname"><span class="pre">optical_poly_effmass</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.optical_poly_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.optical_poly_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the optical effective mass with a polynomial approximation to the dispersion</p>
<dl class="simple">
<dt>This optical effective mass is defined as:</dt><dd><dl class="simple">
<dt>..math::</dt><dd><p>frac{1}{m_o} = frac{sum_i f(E_i) g(k_i) frac{delta^2 E}{delta k^2}|_i}{sum f(E_i) g(k_i)}</p>
</dd>
</dl>
</dd>
</dl>
<p>where the sum is over eigenstates i contained withing the <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a>. <span class="math notranslate nohighlight">\(f_(E_i)\)</span> is the probability of occupation (Fermi-Dirac statistics) and <span class="math notranslate nohighlight">\(g(k_i)\)</span> is the density of states at that k-point.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>The optical effective mass (units of electron mass) of the <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a>.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.poly_derivatives">
<code class="sig-name descname"><span class="pre">poly_derivatives</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">polyfit_weighting</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dk</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.poly_derivatives"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.poly_derivatives" title="Permalink to this definition">¶</a></dt>
<dd><p>Constructs a polynomial function using a least squares fit to
Segment dispersion data, then evaluates first and second order
derivatives.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>polyfit_weighting</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, polyfit will be weighted according to occupation of eigenstates. If False, no weighting will be used.</p></li>
<li><p><strong>dk</strong> (<em>array</em><em>, </em><em>optional</em>) – distance (bohr :math:^{-1}) from extrema in reciprocal space at which to evaluate first and second order derivatives. Defaults to 100 points evenly distributed across the whole segment.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A tuple containing a 1d array of first derivatives and 1d array of second derivatives, evaluated at dk: ([dedk],[d2edk2])</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>tuple</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.poly_fit">
<code class="sig-name descname"><span class="pre">poly_fit</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">polyfit_weighting</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">True</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.poly_fit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.poly_fit" title="Permalink to this definition">¶</a></dt>
<dd><p>Constructs a polynomial function using a least squares fit to
<a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> dispersion data, then evaluates at
100 points evenly distributed across
<a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>polyfit_weighting</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, polyfit will be weighted according to occupation of eigenstates. If False, no weighting will be used.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>1d array containing energies (hartree).</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>array</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.transport_effmass">
<code class="sig-name descname"><span class="pre">transport_effmass</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">polyfit_order</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">6</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">dk</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">polyfit_weighting</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">False</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.transport_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.transport_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the transport mass (<span class="math notranslate nohighlight">\(\frac{k}{\delta E \delta k}\)</span>), evaluated at <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a> .</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>polyfit_order</strong> (<em>int</em><em>, </em><em>optional</em>) – order of polynomial used to approximate the dispersion. Defaults to 6.</p></li>
<li><p><strong>dk</strong> (<em>array</em><em>, </em><em>optional</em>) – distance (bohr :math:^{-1}) from extrema in reciprocal space at which to evaluate first order derivatives. Defaults to 100 points evenly distributed across the whole segment.</p></li>
<li><p><strong>polyfit_weighting</strong> (<em>bool</em><em>, </em><em>optional</em>) – If True, polyfit will be weighted according to occupation of eigenstates. If False, no weighting will be used.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>array(float). 1d array containing the transport effective mass (in units of electron rest mass) evaluated at the points specified in dk.</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.weight_integration">
<code class="sig-name descname"><span class="pre">weight_integration</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fermi_level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">alpha</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">mass_bandedge</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">upper_limit</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.weight_integration"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.weight_integration" title="Permalink to this definition">¶</a></dt>
<dd><p>Integrates the product of the fermi-dirac distribution
along the one-dimensional slice of k-space defined by
<a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> (up to
<a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>fermi_level</strong> (<em>float</em><em>, </em><em>optional</em>) – Fermi level (eV) to be used in Fermi-dirac statistics. Defaults to <a class="reference internal" href="#effmass.analysis.Segment.fermi_energy" title="effmass.analysis.Segment.fermi_energy"><code class="xref py py-attr docutils literal notranslate"><span class="pre">fermi_energy</span></code></a>.</p></li>
<li><p><strong>temp</strong> (<em>float</em><em>, </em><em>optional</em>) – The temperature (K) to be used in Fermi-Dirac statistics. Defaults to 300.</p></li>
<li><p><strong>upper_limit</strong> (<em>float</em><em>, </em><em>optional</em>) – The integration upper limit (bohr$^{-1}$). Defaults to where the Kane quasi-linear dispersion is no longer valide, defined by <a class="reference internal" href="#effmass.analysis.Segment.explosion_index" title="effmass.analysis.Segment.explosion_index"><code class="xref py py-meth docutils literal notranslate"><span class="pre">explosion_index()</span></code></a>.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A normalisation factor for <a class="reference internal" href="#effmass.analysis.Segment.mass_integration" title="effmass.analysis.Segment.mass_integration"><code class="xref py py-meth docutils literal notranslate"><span class="pre">mass_integration()</span></code></a>.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>The sign of the alpha parameter and mass_bandedge are important. If these are negative (as would be expected for the valence band), then they must be passed as negative values to the function.</p>
</div>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.weighted_leastsq_effmass">
<code class="sig-name descname"><span class="pre">weighted_leastsq_effmass</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.weighted_leastsq_effmass"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.weighted_leastsq_effmass" title="Permalink to this definition">¶</a></dt>
<dd><p>Fits a parabolic dispersion using the weighted least-squares method
to all points in the segment, plus those from symmetry, E(k)=E(-k).</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>Curvature effective mass (in units of electron mass)</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>float</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>weighting is given by the Fermi-Dirac distribution.</p>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.weighted_leastsq_fit">
<code class="sig-name descname"><span class="pre">weighted_leastsq_fit</span></code><span class="sig-paren">(</span><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.weighted_leastsq_fit"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.weighted_leastsq_fit" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates the curvature effective mass usinhag a weighted least-
squares fit and then evaluates the corresponding parabolic dispersion
along <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><p><strong>None</strong> – </p>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>list containing energies (hartree). The energies are calculated at 100 points evenly distributed across <a class="reference internal" href="#effmass.analysis.Segment.dk_bohr" title="effmass.analysis.Segment.dk_bohr"><code class="xref py py-attr docutils literal notranslate"><span class="pre">dk_bohr</span></code></a>.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>list(float)</p>
</dd>
</dl>
</dd></dl>

<dl class="py method">
<dt id="effmass.analysis.Segment.weighting">
<code class="sig-name descname"><span class="pre">weighting</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">fermi_level</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">None</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">temp</span></span><span class="o"><span class="pre">=</span></span><span class="default_value"><span class="pre">300</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#Segment.weighting"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.Segment.weighting" title="Permalink to this definition">¶</a></dt>
<dd><p>Calculates a weighting for each kpoint using the Fermi-Dirac
statistics.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>quasi_fermi_level</strong> (<em>float</em><em>, </em><em>optional</em>) – The fermi level to be used in Fermi-Dirac statistics. Defaults to <code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.Segment.fermi_energy</span></code>.</p></li>
<li><p><strong>temp</strong> (<em>float</em><em>, </em><em>optional</em>) – The temperature (K) to be used in Fermi-Dirac statistics. Defaults to 300.</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>A 1-dimensional array which contains the weighting for each k-point.</p>
</dd>
<dt class="field-odd">Return type</dt>
<dd class="field-odd"><p>array(float)</p>
</dd>
</dl>
<p class="rubric">Notes</p>
<p>The weighting is relative only: constants will cancel out when using to weight least square fits or means.</p>
</dd></dl>

</dd></dl>

<dl class="py class">
<dt id="effmass.analysis.SegmentVasp">
<em class="property"><span class="pre">class</span> </em><code class="sig-prename descclassname"><span class="pre">effmass.analysis.</span></code><code class="sig-name descname"><span class="pre">SegmentVasp</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">DataVasp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">band</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kpoint_indices</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#SegmentVasp"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.SegmentVasp" title="Permalink to this definition">¶</a></dt>
<dd><p>Class for segments of a Vasp bandstructure. Inherits from <a class="reference internal" href="#effmass.analysis.Segment" title="effmass.analysis.Segment"><code class="xref py py-class docutils literal notranslate"><span class="pre">Segment</span></code></a> class,
and extends to include DOS Segment data.</p>
<dl class="simple">
<dt>Additional attributes:</dt><dd><p>dos (array): 2-dimensional array. Each row contains density of states data (units “number of states / unit cell”)  at a given energy: [energy(float),dos(float)]. A slice of <code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.DataVasp.dos</span></code>.
integrated_dos (array): 2-dimensional array. Each row contains integrated density of states data at a given energy: [energy(float),integrated_dos(float)]. A slice of <code class="xref py py-attr docutils literal notranslate"><span class="pre">effmass.inputs.DataVasp.integrated_dos</span></code>.</p>
</dd>
</dl>
<dl class="py method">
<dt id="effmass.analysis.SegmentVasp.__init__">
<code class="sig-name descname"><span class="pre">__init__</span></code><span class="sig-paren">(</span><em class="sig-param"><span class="n"><span class="pre">DataVasp</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">band</span></span></em>, <em class="sig-param"><span class="n"><span class="pre">kpoint_indices</span></span></em><span class="sig-paren">)</span><a class="reference internal" href="_modules/effmass/analysis.html#SegmentVasp.__init__"><span class="viewcode-link"><span class="pre">[source]</span></span></a><a class="headerlink" href="#effmass.analysis.SegmentVasp.__init__" title="Permalink to this definition">¶</a></dt>
<dd><p>Initialise an instance of the Segment class.</p>
<dl class="field-list simple">
<dt class="field-odd">Parameters</dt>
<dd class="field-odd"><ul class="simple">
<li><p><strong>Data</strong> (<a class="reference internal" href="inputs.html#effmass.inputs.Data" title="effmass.inputs.Data"><em>Data</em></a>) – Data instance initialised from the bandstructure which contains the segment</p></li>
<li><p><strong>band</strong> (<em>int</em>) – the band number of the segment</p></li>
<li><p><strong>kpoint_indices</strong> (<em>list</em><em>(</em><em>int</em><em>)</em>) – the kpoint indices of the segment</p></li>
</ul>
</dd>
<dt class="field-even">Returns</dt>
<dd class="field-even"><p>None.</p>
</dd>
</dl>
</dd></dl>

</dd></dl>

</div>


           </div>
           
          </div>
          <footer>
    <div class="rst-footer-buttons" role="navigation" aria-label="footer navigation">
        <a href="outputs.html" class="btn btn-neutral float-right" title="effmass.outputs" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
        <a href="dos.html" class="btn btn-neutral float-left" title="effmass.dos" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
    </div>

  <hr/>

  <div role="contentinfo">
    <p>
        &#169; Copyright 2018, Lucy Whalley.

    </p>
  </div>
    
    
    
    Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
    
    <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
    
    provided by <a href="https://readthedocs.org">Read the Docs</a>. 

</footer>
        </div>
      </div>

    </section>

  </div>
  

  <script type="text/javascript">
      jQuery(function () {
          SphinxRtdTheme.Navigation.enable(true);
      });
  </script>

  
  
    
   

</body>
</html>