{
"info": {
"author": "Kyle Bystrom",
"author_email": "kylebystrom@berkeley.edu",
"bugtrack_url": null,
"classifiers": [
"License :: OSI Approved :: BSD License",
"Programming Language :: Python :: 3"
],
"description": "# PAWpySeed\n\n
\n\n**WARNING: PAWpySeed is still in early development: Some features are not yet thoroughly tested.\nThe evaluation of overlap operators is tested, but some features still require more thorough testing.\nAlso, installation has only been tested on a couple systems (all Linux).**\n\nPAWpySeed is a parallelized Python and C tool for reading and\nanalyzing the optimized band structure and wave functions\nof VASP DFT calculations. The code is written for the PAW\nformalism developed by P.E. Blochl and implemented\nin VASP.\n\n## Installation\n\nThe only tricky part to installing pawpyseed is linking with the Intel Math Kernel Library\n(MKL). There are many ways to do this, as aided by the config file. To make your own,\nmake a file in your home directory `~` named `.pawpyseed-site.cfg`. This file allows you\nto customize configuration settings for pawpyseed. It is read using the Python\nconfigparser module . If you don't\nwant to learn about the configuration file options, skip to \"The Easy Way\" to get this done with quickly.\n\n### The customizable way\n\nThe options (with their defaults) are as follows:\n\n```\n[compiler]\n# Name of the compiler to be used. By default, let's the setup script choose this.\ncompiler_name = # Examples: icc or gcc\n# Name of the linker to be used. By default, let's the setup script choose this.\n# NOTE: Don't forget the -shared tag for icc or gcc!\n# NOTE: If compiler_name is set and linker_name is not,\n# linker_name is set to compiler_name with the -shared tag appended.\nlinker_name = # Examples: icc -shared or gcc -shared\n\n[mkl]\n# MKL installation directory. /lib or /lib/intel64 must contain\n# the MKL shared object libraries, while /include must containn the MKL headers.\n# Many systems have the environment variable\n# MKLROOT set for this, so you can set this to the output of:\n# echo $MKLROOT\n# If you pip install mkl-devel, this goes to /usr or /usr/local.\n# If you pip install mkl-devel --user, this goes to ~/.local\n# (or the equivalents for your system).\nroot = \n# Don't change this. Might be used in the future but currently has no effect.\ninterface32 = True\n# Whether to compile with the single dynamic library libmkl_rt.so.\n# If you are having installation/performance problems, try setting sdl=True,\n# pip installing mkl-devel with the --user option, set root=~/.local,\n# and set the environment variable MKL_THREADING_LAYER=sequential\n# when using pawpyseed.\nsdl = False\n\n[threading]\n# Whether to use omp_loops. If False, pawpyseed doesn't do any parallelization\n# on its own, though its calls to MKL, BLAS, LAPACK, etc might be\n# threaded by MKL.\nomp_loops = True\n# Whether to use threading for MKL. OVERRIDDEN if sdl=True, in which case\n# MKL is threaded by default and you can run sequentially by\n# setting the environment variable MKL_THREADING_LAYER=sequential\n# when using pawpyseed.\n# NOTE: ONLY SET THIS TRUE IF COMPILING WITH icc (OR gcc with omp_loops=False),\n# and only if you are very concerned about speed. This is because gcc\n# cannot do nested parallelism with MKL\nthreaded_mkl = False\n\n# NOTE: Do not link to icc-compiled MKL libraries when compiling the C\n# extension with gcc or vice versa. Use like type compilers.\n```\n\n### The Easy Way\n\n#### Intel Easy Way\n\nIf you have `icc`, set `compiler=icc` in `~/.pawpyseed-site.cfg` and then\nset `root` to your MKL installation directory. Set `sdl=True`. You MKL distribution must have also\nbeen compiled with the Intel compiler. Run the `setup.py` script or `pip install pawpyseed`.\n\n#### The GNU Easy Way\n\nFirst, install `mkl-devel` in your local installation:\n\n```\npip install mkl-devel --user\n```\n\nCopy `site.cfg.default` from the pawpyseed repository to `~/.pawpyseed-site.cfg`.\nOpen it and set `root=/.local` under the `[mkl]` heading\nand uncomment it by removing the `#`. Then run\n\n```\npython setup.py build\npython setup.py install\n```\n\nOR with `pip`.\n\n```\npip install pawpyseed\n```\n\nThis has been tested on Scientific Linux 7 and Linux Mint 18,\nbut should work for systems that have the appropriate\npackages and environment variables defined as described below.\n\nIF you get linking issues at runtime using this method, try setting\n`sdl=True` in the config file and then setting the environment\nvariable MKL_THREADING_LAYER=sequential\n\n### Dependencies\n\nAll dependencies indicate the minimum version tested.\nPAWpySeed might work fine with earlier versions, but\nuse of older versions will not be officially supported.\n\nPython requirements:\n```\nPython>=3.5\nnumpy>=1.14\nscipy>=1.0\npymatgen>=2018.2.13\nsympy>=1.1.1\nmatplotlib>=0.2.5\n```\n\nC requirements:\n```\nicc >= 16.0.4 OR gcc >= 4.8.5\nIntel Math Kernel Library >= 11.3.4\n```\nIf you don't want to `pip install` Intel MKL,\nit is available for free installation on a variety of platforms.\nMost computing clusters will have Intel MKL, and you can install it\non your desktop (or any system to which you have root access) by following\nthe relevant instructions at the following URL:\n.\n\n## Theory and Input\n\n### PAW\n\nThe projector augmented wave (PAW) method is a technique\nused in plane wave density functional theory to simplify\nthe description of the wavefunctions near the nuclei\nof a system. The strong Coulombic forces near an atomic\nnucleus creates quickly oscillating wavefunctions that are\nnot well described by plane waves without prohibitively\nlarge basis sets, so a \"pseudopotential\" is introduced\nnear the atomic nuclei which results in smooth \n\"pseudo wavefunctions\" well described by plane waves. The\nfull wavefunctions can be recovered by a linear transform\nof the pseudowavefunctions. The PAW method requires\nthree sets of functions: projector functions, onto which\npseudowavefunctions are projected to probe their character;\nfull partial waves, which describe atomic valence states\nderived from the true potential; and pseudo partial waves,\nwhich are derived from the full partial waves and\npseudopotential.\n\n### Files\n\nThe projector functions and partial waves are unique\nto each element and stored in the POTCAR file\nused in a VASP calculation. The pseudowavefunction\nis the part of the wavefunction optimized during a DFT\ncalculation and is stored in the WAVECAR output file\nin VASP. PAWpySeed parses both files to retrieve\nall parts of the full Kohn Sham wavefunctions.\n\n## The Code\n\nThe main purpose of PAWpySeed is to evaluate overlap\noperators between Kohn-Sham wavefunctions from different\nstructures, which is not done by standard plane-wave DFT codes.\nSuch functionality can be useful for analyzing the composition\nof defect levels in solids, which is main application for which\nthe code is currently focused.\n\n### Implementation\n\n* Python Interface\n* Computationally intensive tasks in C\n* Parallelized with openmp\n\n### Current Functionality\n\n* Read pseudowavefunctions\n* Read projectors and partial waves from VASP POTCAR\n* Evaluate overlap operators between bands,\nincluding when bands belong to different structures\nwith the same lattice\n* Project point defect levels onto bulk valence\nand conduction bands\n* Convenient pycdt interface\n* Perturbation-extrapolation correction for point defect calculations\n* Read noncollinear pseudo wavefunctions and construct all-electron wavefunctions (no overlap operator evaluation for noncollinear data)\n\n### Future Functionality\n\n* Localize orbitals with SCDM-k\n* Atomic Hartree Fock and GGA DFT database for use in charge corrections and other applications\n* Convert PAW wavefunctions to NC wavefunctions (for use in GW calculations)\n* Perform general operator expectation values on all-electron wavefunctions\n\n## Acknowledgments\n\nThe code in PAWpySeed is based on a several algorithms and codes, which are enumerated\nhere.\n\n1. **PAW**:\nThe PAW method was developed by P. E. Blochl in 1994. His paper deriving the method\nwas helpful to me in deriving the extensions to the formalism needed to develop\nthis code.\n * P. E. Blochl. Projector augmented-wave method. Phys. Rev. B, 50:17953, 1994.\n2. **VASP**:\nPAWpySeed is primarily built to read and process the output of VASP calculations.\nPAWpySeed reads PAW wavefunctions and calculate overlap operators using algorithms\nderived from VASP and other plane-wave codes, so the following citations are necessary.\nThe last citation is specifically for the PAW method and potentials. See the VASP website\nat for information\non citing specific functionals.\n * G. Kresse and J. Hafner. Ab initio molecular dynamics for liquid metals. Phys. Rev. B, 47:558, 1993.\n * G. Kresse and J. Hafner. Ab initio molecular-dynamics simulation of the liquid-metal-amorphous-semiconductor transition in germanium. Phys. Rev. B, 49:14251, 1994.\n * G. Kresse and J. Furthm\u00fcller. Efficiency of ab-initio total energy calculations for metals and semiconductors using a plane-wave basis set. Comput. Mat. Sci., 6:15, 1996.\n * G. Kresse and J. Furthm\u00fcller. Efficient iterative schemes for ab initio total-energy calculations using a plane-wave basis set. Phys. Rev. B, 54:11169, 1996.\n * G. Kresse and D. Joubert. From ultrasoft pseudopotentials to the projector augmented-wave method. Phys. Rev. B, 59:1758, 1999.\n3. **NUMSBT**:\nNUMSBT is a code written by J. D. Talman, which implements an algorithm that\ncalculates the spherical Bessel transform (SBT) in O(NlogN) time.\nPAWpySeed\nemploys the high-k transform algorithm implemented in NUMSBT\nto calculate the overlap operators between\noverlapping augmentation spheres that have different positions or elements.\nIt is also used to filter out high-frequency components from AE partial\nwaves, which allows projections from pseudowavefunctions to AE partial\nwaves to be performed in real space, which is a vital component of the\ncode.\nNUMSBT is distributed under the Standard CPC License, and the algorithm is\ndeveloped in the following paper:\n * Talman, J. Computer Physics Communications 2009, 180, 332 \u2013338.\n4. **WaveTrans**:\nreader.c and reader.h, which read WAVECAR files from VASP output,\nare based on the Fortran program, WaveTrans, written by\nR. M. Feenstra and M. Widom from the Dept. of Physics at Carnegie\nMellon University. To see the original work,\nplease visit .\n5. **Doxygen**:\nDoxygen is a documentation generator from which I built the docs for PAWpySeed.\nIt is an excellent tool that allows for clean, up-to-date documentaton\nthat is easy to make and navigate. Check it out at .\n\n## Citing\n\nIf you find pawpyseed useful, please encourage its development by\nciting the following paper in your research:\n\n```\n@ARTICLE{2019arXiv190411572B,\n author = { {Bystrom}, Kyle and {Broberg}, Danny and {Dwaraknath}, Shyam and\n {Persson}, Kristin A. and {Asta}, Mark},\n title = \"{Pawpyseed: Perturbation-extrapolation band shifting corrections for point defect calculations}\",\n journal = {arXiv e-prints},\n keywords = {Condensed Matter - Materials Science},\n year = \"2019\",\n month = \"Apr\",\n eid = {arXiv:1904.11572},\n pages = {arXiv:1904.11572},\narchivePrefix = {arXiv},\n eprint = {1904.11572},\n primaryClass = {cond-mat.mtrl-sci},\n adsurl = {https://ui.adsabs.harvard.edu/abs/2019arXiv190411572B},\n adsnote = {Provided by the SAO/NASA Astrophysics Data System}\n}\n\n```\n\nYou can view the paper here: \n\n## Questions and Comments\n\nFind a bug? Areas of code unclearly documented? Other questions? Feel free to contact\nKyle Bystrom at kylebystrom@gmail.com with the subject \"pawpyseed: \"\nAND/OR create an issue on the Github page at .",
"description_content_type": "text/markdown",
"docs_url": null,
"download_url": "",
"downloads": {
"last_day": -1,
"last_month": -1,
"last_week": -1
},
"home_page": "https://github.com/kylebystrom/pawpyseed",
"keywords": "",
"license": "BSD",
"maintainer": "",
"maintainer_email": "",
"name": "pawpyseed",
"package_url": "https://pypi.org/project/pawpyseed/",
"platform": "",
"project_url": "https://pypi.org/project/pawpyseed/",
"project_urls": {
"Homepage": "https://github.com/kylebystrom/pawpyseed"
},
"release_url": "https://pypi.org/project/pawpyseed/0.6.0/",
"requires_dist": null,
"requires_python": "",
"summary": "Parallel C/Python package for numerical analysis of PAW DFT wavefunctions",
"version": "0.6.0"
},
"last_serial": 5721855,
"releases": {
"0.0.4a0": [
{
"comment_text": "",
"digests": {
"md5": "b3723eae61d043c90e0b71f604b089e5",
"sha256": "f9bcd4293731029d0f54a374a7fd71b41c4d93be86cd8b8e4491fb1712b0592c"
},
"downloads": -1,
"filename": "pawpyseed-0.0.4a0.tar.gz",
"has_sig": false,
"md5_digest": "b3723eae61d043c90e0b71f604b089e5",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 732655,
"upload_time": "2018-08-20T18:57:11",
"url": "https://files.pythonhosted.org/packages/f6/a5/7fcbd754e76b8ba8fe0813326d9f149510241383323e322ab338b073abfa/pawpyseed-0.0.4a0.tar.gz"
}
],
"0.2.0": [
{
"comment_text": "",
"digests": {
"md5": "73d71ffc492e7df8b9574217522bd0aa",
"sha256": "2756edaf6bd6034650d091cabd89557fb8d03f891eb8016e75336ff1be8f89c6"
},
"downloads": -1,
"filename": "pawpyseed-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "73d71ffc492e7df8b9574217522bd0aa",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2700741,
"upload_time": "2019-01-07T21:03:11",
"url": "https://files.pythonhosted.org/packages/b7/16/3087703ba223c95139d7692c86c4958e9602fd50b4e60db4376ef2351167/pawpyseed-0.2.0.tar.gz"
}
],
"0.3.0": [
{
"comment_text": "",
"digests": {
"md5": "8fbde33af31de1256298e2e845ff74b7",
"sha256": "9ed7a6481c7d3dd534ef8eeeede976db675d37da6ca9f6b81cb938e7841484ba"
},
"downloads": -1,
"filename": "pawpyseed-0.3.0.tar.gz",
"has_sig": false,
"md5_digest": "8fbde33af31de1256298e2e845ff74b7",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2904943,
"upload_time": "2019-01-31T23:04:12",
"url": "https://files.pythonhosted.org/packages/b1/4b/dedab0e0c7e2bbbbf30aad75ddc859a2f08d2cb2fbbf5600250e0ad4de91/pawpyseed-0.3.0.tar.gz"
}
],
"0.3.1": [
{
"comment_text": "",
"digests": {
"md5": "44d9bdd17d033e92b144c903a7922a6a",
"sha256": "ff92dd9bdcb3c2070641472ea422dec47d0db3d989ebfbf80a9f638cafcdc2d4"
},
"downloads": -1,
"filename": "pawpyseed-0.3.1.tar.gz",
"has_sig": false,
"md5_digest": "44d9bdd17d033e92b144c903a7922a6a",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 2904992,
"upload_time": "2019-02-01T22:25:14",
"url": "https://files.pythonhosted.org/packages/0a/2a/77cd9c4935e233dc5c540a7325fde5057e4b34836e723e23393d5c2e93bc/pawpyseed-0.3.1.tar.gz"
}
],
"0.4.0": [
{
"comment_text": "",
"digests": {
"md5": "fbf598d2bfa62ef96131db4650c08106",
"sha256": "9255d68377f9d385f3bf365cbc643dd8243f3ccdd61e535e49c308a86188e0e4"
},
"downloads": -1,
"filename": "pawpyseed-0.4.0.tar.gz",
"has_sig": false,
"md5_digest": "fbf598d2bfa62ef96131db4650c08106",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4359630,
"upload_time": "2019-02-28T00:49:25",
"url": "https://files.pythonhosted.org/packages/8f/be/6fd0ce82f22fc5bd6a5e4b66606ce9759b2433d527cb131234f48ba585d7/pawpyseed-0.4.0.tar.gz"
}
],
"0.5.0": [
{
"comment_text": "",
"digests": {
"md5": "d06542c5996734d09fa834fcf403140f",
"sha256": "183a4ef34f4eb52ec42ac11cdfbe66fa6c34501d4b4235c8bba06071e9e93a76"
},
"downloads": -1,
"filename": "pawpyseed-0.5.0.tar.gz",
"has_sig": false,
"md5_digest": "d06542c5996734d09fa834fcf403140f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4433684,
"upload_time": "2019-04-02T16:18:24",
"url": "https://files.pythonhosted.org/packages/d2/25/f8cb2c44882d6700bd07f03f1d53e47ccf4280711e93f30c9510d60687bb/pawpyseed-0.5.0.tar.gz"
}
],
"0.5.1": [
{
"comment_text": "",
"digests": {
"md5": "2b2d3c17bfeff0f30b1d3d0f0dfbc0ac",
"sha256": "3e6520d81ba5dba2963c63fb7548acecbabdfc7a26c7e2f874a6b5b96e3eac7a"
},
"downloads": -1,
"filename": "pawpyseed-0.5.1.tar.gz",
"has_sig": false,
"md5_digest": "2b2d3c17bfeff0f30b1d3d0f0dfbc0ac",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4472448,
"upload_time": "2019-04-10T23:23:34",
"url": "https://files.pythonhosted.org/packages/fa/cb/7ade90fe8b1a9b81044d971d5cb54c5788e51ebebc109d638ba68d5a0119/pawpyseed-0.5.1.tar.gz"
}
],
"0.6.0": [
{
"comment_text": "",
"digests": {
"md5": "37b0f98029d9a2d79eee2b2ccce5c23c",
"sha256": "6c95f4bd2fdb7be9ce309239c1de036e8f006e9c4bebac6e996a413a8c31796f"
},
"downloads": -1,
"filename": "pawpyseed-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "37b0f98029d9a2d79eee2b2ccce5c23c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4621995,
"upload_time": "2019-08-23T17:43:00",
"url": "https://files.pythonhosted.org/packages/0b/93/d0e47ed91f6340ffe657376890ad9f5e898f8acadcab23cd5f434592b4d4/pawpyseed-0.6.0.tar.gz"
}
]
},
"urls": [
{
"comment_text": "",
"digests": {
"md5": "37b0f98029d9a2d79eee2b2ccce5c23c",
"sha256": "6c95f4bd2fdb7be9ce309239c1de036e8f006e9c4bebac6e996a413a8c31796f"
},
"downloads": -1,
"filename": "pawpyseed-0.6.0.tar.gz",
"has_sig": false,
"md5_digest": "37b0f98029d9a2d79eee2b2ccce5c23c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 4621995,
"upload_time": "2019-08-23T17:43:00",
"url": "https://files.pythonhosted.org/packages/0b/93/d0e47ed91f6340ffe657376890ad9f5e898f8acadcab23cd5f434592b4d4/pawpyseed-0.6.0.tar.gz"
}
]
}