{ "info": { "author": "Lucy Whalley", "author_email": "lucywhalley@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "# effmass\n\n[![PyPI version](https://badge.fury.io/py/effmass.svg)](https://badge.fury.io/py/effmass)\n[![Documentation Status](https://readthedocs.org/projects/effmass/badge/?version=latest)](https://effmass.readthedocs.io/en/latest/?badge=latest)\n[![Build Status](https://travis-ci.com/lucydot/effmass.svg?branch=master)](https://travis-ci.com/lucydot/effmass)\n[![Test Coverage](https://codeclimate.com/github/lucydot/effmass/badges/coverage.svg)](https://codeclimate.com/github/lucydot/effmass/coverage)\n[![DOI](https://zenodo.org/badge/136037407.svg)](https://zenodo.org/badge/latestdoi/136037407)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![JOSS status](http://joss.theoj.org/papers/389754561f0710b756514b8cb9ac0e6a/status.svg)](http://joss.theoj.org/papers/389754561f0710b756514b8cb9ac0e6a)\n\n`effmass` is a Python 3 package for calculating various definitions of effective mass from the electronic bandstructure of a semiconducting material. It consists of a core class that calculates the effective mass and other associated properties of selected bandstructure segments. The module also contains functions for locating bandstructure extrema and plotting approximations to the dispersion.\n\nExamples are provided in a Jupyter notebook [here](https://nbviewer.jupyter.org/github/lucydot/effmass/blob/master/paper/notebook.ipynb).\nAPI documentation is [here](https://effmass.readthedocs.io/en/latest/).\nSource code is available as a git repository at [https://github.com/lucydot/effmass](https://github.com/lucydot/effmass).\n\nThe [paper](https://github.com/lucydot/effmass/paper) directory contains the Vasp input data (POSCAR), Vasp output data (OUTCAR/PROCAR) and band structures generated for an academic paper using this software: *Impact of nonparabolic electronic band structure on the optical and transport properties of photovoltaic materials* \nPhys. Rev. B **99** (8), 085207 - also avaiable on [arXiv](https://arxiv.org/pdf/1811.02281.pdf)..\n\n## Features\n\n`effmass` can:\n\n**Read in a bandstructure:**\nThis requires the `VASP` output files `PROCAR` and `OUTCAR`. It is assumed you have walked through a 1D slice of the Brillouin Zone, capturing the maxima and minima of interest. `effmass` uses the Python package [vasppy](https://github.com/bjmorgan/vasppy) for parsing `VASP` output.\n\n**Locate extrema:**\nThese correspond to the valence band maxima and conduction band minima. Maxima and minima within a certain energy range can also be located.\n\n**Calculate curvature, transport and optical effective masses:**\nThe curvature (aka inertial) and transport masses are calculated using the derivatives of a fitted polynomial function. The optical effective mass can also be calculated assuming a Kane dispersion.\n\n**Assess the extent of non-parabolicity:**\nParameters of the Kane quasi-linear dispersion are calculated to quantify the extent of non-parabolicity over a given energy range. \n\n**Calculate the quasi-fermi level for a given carrier concentration:**\nThis requires the `VASP` output file `DOSCAR`. Using density-of-states data and assuming no thermal smearing, `effmass` can calculate the energy to which states are occupied. This is a useful approximation to the quasi-Fermi level.\n\n**Plot fits to the dispersion:**\nSelected bandstructure segments and approximations to the dispersion (assuming a Kane, quadratic, or higher order fit) can be visualised.\n\nThe `effmass` package is aimed towards theoretical solid state physicists and chemists who have a basic familiarity with Python. Depending on the functionality and level of approximation you are looking for, \nit may be that one of the packages listed [here](https://effmass.readthedocs.io/en/latest/Related%20packages.html) will suit your needs better.\n\n## Development\n\nPlease use the Github [issue tracker](https://github.com/lucydot/effmass/issues/) for feature requests and bug reports. \n\nIf you would like to contribute please do so via a pull request. All contributors must read and respect the [code of conduct](https://github.com/lucydot/effmass/blob/master/CODE_OF_CONDUCT.md). In particular, we welcome contributions which would extend `effmass` so that it is able to parse output from other electronic structure codes. \n\n## Installation\n\n`effmass` is a Python 3 package and requires key packages from the [SciPy ecosystem](https://www.scipy.org/about.html): SciPy, NumPy and Matplotlib. If you have not installed these packages before, it may be best to install them using your preferred package manager (eg: Homebrew). Note that together they will use >100MB of disk space. `effmass` can then be built using the Python package manager `pip`:\n\n```\npip3 install --user effmass\n```\n\nOr download the latest release from [GitHub](https://github.com/lucydot/effmass/releases), and install\n```\ncd effmass\npython3 setup.py install\n```\n\nOr clone the latest development version\n```\ngit clone git@github.com:lucydot/effmass.git\n```\nand install the same way.\n```\ncd effmass\npython3 setup.py install \n```\n\n## Tests\n\nAutomated testing of the latest commit happens [here](https://travis-ci.com/lucydot/effmass).\n\nManual tests can be run using \n```\npython3 -m pytest\n```\n\nThis code has been tested with Python versions 3.6.\n\n## Documentation\n\nAn overview of the features of effmass along with example code is contained in a [Jupyter notebook](https://nbviewer.jupyter.org/github/lucydot/effmass/blob/master/paper/notebook.ipynb), which is available in the `paper` directory.\n\nAPI documentation is available [here](https://effmass.readthedocs.io/en/latest/).\n\n## Citing `effmass`\n\nIf you use this code in your research, please cite the following paper:\n\nWhalley, Lucy D. (2018). *effmass - an effective mass package*. The Journal of Open Source Software, 3(28) 797.\n\n### Bibtex\n\n```\n@misc{Whalley_JOSS2018,\n author = {Lucy D. Whalley},\n title = {effmass: An effective mass package},\n volume = {3},\n issue = {28},\n pages = {797},\n month = {Aug},\n year = {2018},\n doi = {10.21105/joss.00797},\n url = {http://joss.theoj.org/papers/10.21105/joss.00797}\n}\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/lucydot/effmass/archive/1.1.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lucydot/effmass", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "effmass", "package_url": "https://pypi.org/project/effmass/", "platform": "", "project_url": "https://pypi.org/project/effmass/", "project_urls": { "Download": "https://github.com/lucydot/effmass/archive/1.1.0.tar.gz", "Homepage": "https://github.com/lucydot/effmass" }, "release_url": "https://pypi.org/project/effmass/1.1.0/", "requires_dist": [ "vasppy (>=0.5.0.0)", "scipy", "numpy", "matplotlib", "adjustText", "codeclimate-test-reporter", "pytest-lazy-fixture", "coverage (==4.3.4)" ], "requires_python": ">=3.6", "summary": "An effective mass package", "version": "1.1.0" }, "last_serial": 5286021, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "aab8ae2e0903611f19016d2652e26c53", "sha256": "fac73de597bf6e6f699b970eaebc5149e22e0b2f9ea2a4a6aa9cf3e3f4a3e96f" }, "downloads": -1, "filename": "effmass-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aab8ae2e0903611f19016d2652e26c53", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23596, "upload_time": "2018-06-07T10:54:48", "url": "https://files.pythonhosted.org/packages/3d/e2/05ef71358a34f4dbdd663a2d4b65511e1a992c30e64a968b9713fa104979/effmass-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "f656a3311c65b2f8601d397ae153d0ac", "sha256": "56a9f9f62e82d8ca27f001f4ec560bd453d8091230514fd82150a4216795b977" }, "downloads": -1, "filename": "effmass-0.1.0.tar.gz", "has_sig": false, "md5_digest": "f656a3311c65b2f8601d397ae153d0ac", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19051, "upload_time": "2018-06-07T10:54:49", "url": "https://files.pythonhosted.org/packages/ab/fe/ee5ff9ee5e9725a5034f47796dea9a6d90fd8873d8e7416f3627e1252fce/effmass-0.1.0.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "f316d99a4204a2aca915bc8904c3578e", "sha256": "d094255521f61b17d0ed07e86b444aba6173724cfd81dc5c12829f319e4357cb" }, "downloads": -1, "filename": "effmass-1.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "f316d99a4204a2aca915bc8904c3578e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 25203, "upload_time": "2018-08-06T11:09:43", "url": "https://files.pythonhosted.org/packages/40/54/441281baa1a612ccd665ec917f96f5692e4ec81a8798a4ada58a342f3e6e/effmass-1.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "d4c6bf487d49d9ec3201bbd7bf562c9b", "sha256": "2ae42cbb2fe6c3022396059e5a16672b91ec6c790d50f448dfaf717b6011aeb0" }, "downloads": -1, "filename": "effmass-1.0.0.tar.gz", "has_sig": false, "md5_digest": "d4c6bf487d49d9ec3201bbd7bf562c9b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 19869, "upload_time": "2018-08-06T11:09:44", "url": "https://files.pythonhosted.org/packages/a8/b3/ba7450abd76cd39ec35052c00bd7f1fbc4f7db6c38da0b971c969db4d145/effmass-1.0.0.tar.gz" } ], "1.0b2": [ { "comment_text": "", "digests": { "md5": "2d8693b940f620d0ffa842ff3fee0d4c", "sha256": "f1001e58e98040ca9a2774c5737e8b1411980718bb56ed7d3369cb01d67643e5" }, "downloads": -1, "filename": "effmass-1.0b2-py3-none-any.whl", "has_sig": false, "md5_digest": "2d8693b940f620d0ffa842ff3fee0d4c", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23308, "upload_time": "2018-07-09T18:25:20", "url": "https://files.pythonhosted.org/packages/e8/5e/c10658c0da287019f99558ffbd52da4f38034a0666bcf78cb2466d57f8f8/effmass-1.0b2-py3-none-any.whl" } ], "1.0b3": [ { "comment_text": "", "digests": { "md5": "b7505953e57154162bd9f60b30041b63", "sha256": "61577efc74c3ee68b861beb596f49cd6c8b067da252db41619816fefd6a0da7d" }, "downloads": -1, "filename": "effmass-1.0b3-py3-none-any.whl", "has_sig": false, "md5_digest": "b7505953e57154162bd9f60b30041b63", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23308, "upload_time": "2018-07-09T18:29:24", "url": "https://files.pythonhosted.org/packages/19/4e/a6d206243e7416fa7d9e9266a3469cd899ffa96c56baee72f035d5fb7ba2/effmass-1.0b3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "566516a644f57cc9f978509f98e0aa1f", "sha256": "5707ec3c47c139ba26b81b22f5e752e02f9d9f35e856d782dabc973b7f7ff36a" }, "downloads": -1, "filename": "effmass-1.0b3.tar.gz", "has_sig": false, "md5_digest": "566516a644f57cc9f978509f98e0aa1f", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 18511, "upload_time": "2018-07-09T18:30:14", "url": "https://files.pythonhosted.org/packages/49/7b/a4e2065e02bdadd11a0dc60b8c2171313ed8ea926d8f555db246690506e0/effmass-1.0b3.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "b1dfa5f3ec728c05ef1c26fd40ce16a4", "sha256": "33076caf692351f03ad3e416d49ade50c7b49aa157a5735318442a52dec66281" }, "downloads": -1, "filename": "effmass-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1dfa5f3ec728c05ef1c26fd40ce16a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23472, "upload_time": "2019-05-18T15:50:57", "url": "https://files.pythonhosted.org/packages/f3/9a/b4e2fb06cd7ed7339d73b91db6d26711c7622bb3f0e56b62dd050a15e82e/effmass-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8121749b6e0387af9557eff1bac2a022", "sha256": "1d9e6397a347d7eeab442baa2224b5c6d689a5e571309918922baeb44582c1ff" }, "downloads": -1, "filename": "effmass-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8121749b6e0387af9557eff1bac2a022", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 22981, "upload_time": "2019-05-18T15:51:00", "url": "https://files.pythonhosted.org/packages/c9/45/c40ad2650c92aa695d1715be4d3d539a348cfc37a7ac09f5a185c7d82b74/effmass-1.1.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b1dfa5f3ec728c05ef1c26fd40ce16a4", "sha256": "33076caf692351f03ad3e416d49ade50c7b49aa157a5735318442a52dec66281" }, "downloads": -1, "filename": "effmass-1.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "b1dfa5f3ec728c05ef1c26fd40ce16a4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 23472, "upload_time": "2019-05-18T15:50:57", "url": "https://files.pythonhosted.org/packages/f3/9a/b4e2fb06cd7ed7339d73b91db6d26711c7622bb3f0e56b62dd050a15e82e/effmass-1.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "8121749b6e0387af9557eff1bac2a022", "sha256": "1d9e6397a347d7eeab442baa2224b5c6d689a5e571309918922baeb44582c1ff" }, "downloads": -1, "filename": "effmass-1.1.0.tar.gz", "has_sig": false, "md5_digest": "8121749b6e0387af9557eff1bac2a022", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 22981, "upload_time": "2019-05-18T15:51:00", "url": "https://files.pythonhosted.org/packages/c9/45/c40ad2650c92aa695d1715be4d3d539a348cfc37a7ac09f5a185c7d82b74/effmass-1.1.0.tar.gz" } ] }