{ "info": { "author": "Ren\u00e9 Wirnata", "author_email": "rene.wirnata@pandascience.net", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Environment :: Console", "Environment :: X11 Applications :: Qt", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3 :: Only", "Topic :: Scientific/Engineering :: Physics" ], "description": "Elk Optics Analyzer (ElkOA)\n---------------------------\n\n|Python version| |PyPi version| |Code style: black| |License: GPL v3+|\n\nDescription\n~~~~~~~~~~~\n\nElk Optics Analyzer (ElkOA) helps to analyze optics output data from\n`The Elk Code `__.\n\nFeatures\n~~~~~~~~\n\nElk Optics Analyzer\u2026\n\n- Comes with a GUI as well as a python CLI\n- Supports Elk tasks 121, 187, 320 and 330\n- Recognizes available tasks / (tensor) fields automatically\n- Is easily extendable\n\nUsers can\u2026\n\n- Visualize real and imaginary parts of Elk optics output data in\n various ways\n- Import additional data files, e.g.\u00a0experimental measurements Ctrl+O\n- Convert response functions via `Universal Response\n Relations `__, e.g.\u00a0\u03b5 \u2799 \u03c3 Ctrl+C\n- Convert dielectric tensors into (extra-)ordinary refractive indices\n for arbitrary wavevectors Ctrl+C\n- Select tensor elements to plot individually via dialog Ctrl+T\n- Use global tensor elements settings for all plots Ctrl+G\n- Batch-load parameter studies to visually analyze the impact of\n different parameter settings Ctrl+B\n- Write out displayed data in different formats Ctrl+W\n\nSoon to come:\n\n- 3D-plotting of index ellipsoids\n- Batch-convert for a set of different q-points\n- Sample/geometry-dependent (i.e.\u00a0thin films) conversions of response\n functions\n\nRequirements\n~~~~~~~~~~~~\n\n- `Python 3.x `__\n- `numpy `__\n- `matplotlib `__\n- `PyQt5 `__\n- `pbr `__\n\nYou should use the packages provided by your linux distribution. On\nrecent Debian systems for example, you can get all requirements by\nrunning\n\n.. code:: bash\n\n apt install python3-numpy python3-matplotlib python3-pyqt5 python3-pbr\n\nAlternatively, you can get the latest PyPI versions of each package\nautomatically by installing via pip (see below).\n\nFor testing purposes, you additionally need the following packages: \\*\npytest \\* pytest-qt \\* pytest-mpl \\* nose\n\nInstallation\n~~~~~~~~~~~~\n\nThe easiest way to install ElkOA is via pip, either from PyPI directly\n\n.. code:: bash\n\n pip install elkoa\n\nor, if you want the latest git version,\n\n.. code:: bash\n\n git clone https://github.com/PandaScience/ElkOpticsAnalyzer.git\n cd ElkOpticsAnalyzer\n pip install .\n\nThis will also install all required but absent python packages\nautomatically from PyPI.\n\nIf you like to install ElkOA only for the current user, add the flag\n``--user``. If you want to take care of the required python packages\nyourself (i.e.\u00a0by using the ones provided by your Linux distribution),\nadd ``--no-deps``. If you like to run a developer installation (no\ncopying of files, instead use git repo files directly), add ``-e``.\n\nIn any case, after installation you can run the ElkOA GUI from\neverywhere in a terminal using either ``elkoa`` or\n``ElkOpticsAnalyzer``.\n\nAnother way to install is by cloning the repo as above and instead of\ninstalling via pip, put something like\n\n.. code:: bash\n\n export PATH=$PATH:/path/to/ElkOpticsAnalyzer/elkoa/gui\n export PYTHONPATH=$PYTHONPATH:/path/to/ElkOpticsAnalyzer/\n\nto your ``.bashrc`` or ``.bash_profile``. Then you can start the ElkOA\nGUI with ``ElkOpticsAnalyzer.py``.\n\nTests\n~~~~~\n\nTesting is done using the ``pytest`` library. Make sure you installed\nall additional requirements beforehand.\n\n1. Download and extract the sample data\n\n - TODO\n\n2. Run (\u2013mpl flag is mandatory!)\n\n.. code:: python\n\n pytest test_figures.py --mpl\n\nPython CLI\n~~~~~~~~~~\n\nIn an Elk output directory containing e.g.\u00a0the files\n\n.. code:: bash\n\n elk.in INFO.OUT EPSILON_11.OUT EPSILON_12.OUT EPSILON_13.OUT EPSILON_21.OUT\n EPSILON_22.OUT EPSILON_23.OUT EPSILON_31.OUT EPSILON_32.OUT EPSILON_33.OUT\n\nyou can run in a python3 interpreter:\n\n.. code:: python\n\n from elkoa.utils import elk, io, convert\n # parse Elk input file\n elk_input = elk.ElkInput()\n # read specific input parameter\n eta = elk.readElkInputParameter(\"swidth\")\n # read tensorial Elk optics output (ij = dummy for 11, 12, etc.)\n freqs, epsilon = io.readTenElk(\"EPSILON_TDDFT_ij.OUT\")\n # create converter instance\n q = [0, 0, 0]\n converter = convert.Converter(q, freqs, eta, opticalLimit=True)\n # convert dielectric tensor to optical conductivity\n sigma = converter.epsilonToSigma(epsilon)\n # write out converted tensor\n io.writeTensor(\"sigma_ij_test.dat\", freqs, sigma, threeColumn=True)\n # write out 11-element of converted tensor\n io.writeScalar(\"sigma_11-scalar.dat\", freqs, sigma[0, 0, :], threeColumn=True)\n\nMisc\n~~~~\n\n- Auto-converting filenames to tex-labels\n\n - For this feature to work, filenames must follow the pattern\n ``root``\\ +\\ ``_sub``\\ +\\ ``.ext``, which will show up as rootsub.\n - In case ``root`` contains a case-insensitive substring like eps,\n EPSILON, Sig, SIGma etc., corresponding greek letters will be\n used, i.e.\u00a0eps_ex.dat \u2799 \u03b5ex.\n\n- Additional data plots\n\n - Number is restricted to 6, but in return we use consistent\n coloring after consecutively adding more plots.\n\nUsage Examples GUI\n~~~~~~~~~~~~~~~~~~\n\n|see https://github.com/PandaScience/ElkOpticsAnalyzer/| |and\nhttps://github.com/PandaScience/ElkOpticsAnalyzer/|\n\n.. |Python version| image:: https://img.shields.io/pypi/pyversions/elkoa.svg?style=flat-square\n :target: pypi.org/project/elkoa/\n.. |PyPi version| image:: https://img.shields.io/pypi/v/elkoa.svg?style=flat-square\n :target: pypi.org/project/elkoa/\n.. |Code style: black| image:: https://img.shields.io/badge/code%20style-black-000000.svg?style=flat-square\n :target: https://github.com/python/black\n.. |License: GPL v3+| image:: https://img.shields.io/pypi/l/elkoa.svg?style=flat-square\n :target: http://www.gnu.org/licenses/gpl-3.0\n.. |see https://github.com/PandaScience/ElkOpticsAnalyzer/| image:: screenshots/basic.gif\n.. |and https://github.com/PandaScience/ElkOpticsAnalyzer/| image:: screenshots/batchload.gif\n\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/PandaScience/ElkOpticsAnalyzer", "keywords": "elk ab-initio simulation postprocessing optics analyze physics", "license": "GPLv3+", "maintainer": "", "maintainer_email": "", "name": "elkoa", "package_url": "https://pypi.org/project/elkoa/", "platform": "", "project_url": "https://pypi.org/project/elkoa/", "project_urls": { "Homepage": "https://github.com/PandaScience/ElkOpticsAnalyzer" }, "release_url": "https://pypi.org/project/elkoa/1.3.0/", "requires_dist": [ "pip", "pbr", "setuptools", "pyqt5", "numpy", "matplotlib" ], "requires_python": ">=3", "summary": "plot and analyze Elk optics output data", "version": "1.3.0" }, "last_serial": 5263872, "releases": { "1.2.0": [ { "comment_text": "", "digests": { "md5": "01f22cb435a1f63431270706338d7202", "sha256": "8461f48eb54df8aefe8e226f600eb9c0562e2ad96954e693e700a4e0baa7da99" }, "downloads": -1, "filename": "elkoa-1.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "01f22cb435a1f63431270706338d7202", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 278387, "upload_time": "2019-04-04T14:38:38", "url": "https://files.pythonhosted.org/packages/0b/85/49f56770e5d8c43386fe077a5be3bbd95ba42959278aa8866f3b9aa51127/elkoa-1.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ea7fecaccf977523978c0449c78abf8e", "sha256": "371055ec1be0c655e6780f713c75ebe1ba38813a8c37b0bfa0e3ae075b02bdfe" }, "downloads": -1, "filename": "elkoa-1.2.0.tar.gz", "has_sig": false, "md5_digest": "ea7fecaccf977523978c0449c78abf8e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2221584, "upload_time": "2019-04-04T14:38:41", "url": "https://files.pythonhosted.org/packages/4d/58/b054db589417ebad04a0be090f66669cf7e191e378dabfe0e4d4a1014abd/elkoa-1.2.0.tar.gz" } ], "1.3.0": [ { "comment_text": "", "digests": { "md5": "dc8cc1c85d1d33e742a0bfcf6ded6510", "sha256": "d0b3d95e2d685c69dcffc5e0386dc63f50d402a6aa3511fe095d1e0dae77c97c" }, "downloads": -1, "filename": "elkoa-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc8cc1c85d1d33e742a0bfcf6ded6510", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 300645, "upload_time": "2019-05-13T19:02:32", "url": "https://files.pythonhosted.org/packages/ee/cf/9e43f358d657f55ccfdd31e9f95891c1e1eee3790df2d067e3643939311a/elkoa-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aadd0daf48a037c881ecf7f8948c089e", "sha256": "ecbe6baa7143984758cef88b4fda8854c747f40d371ac7887861ed6d3fa5cee4" }, "downloads": -1, "filename": "elkoa-1.3.0.tar.gz", "has_sig": false, "md5_digest": "aadd0daf48a037c881ecf7f8948c089e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2244587, "upload_time": "2019-05-13T19:02:38", "url": "https://files.pythonhosted.org/packages/1d/62/0283f1547732251c3049c72f2b944c8ce71a40665903c54975e6b9d2ed8d/elkoa-1.3.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "dc8cc1c85d1d33e742a0bfcf6ded6510", "sha256": "d0b3d95e2d685c69dcffc5e0386dc63f50d402a6aa3511fe095d1e0dae77c97c" }, "downloads": -1, "filename": "elkoa-1.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "dc8cc1c85d1d33e742a0bfcf6ded6510", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 300645, "upload_time": "2019-05-13T19:02:32", "url": "https://files.pythonhosted.org/packages/ee/cf/9e43f358d657f55ccfdd31e9f95891c1e1eee3790df2d067e3643939311a/elkoa-1.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "aadd0daf48a037c881ecf7f8948c089e", "sha256": "ecbe6baa7143984758cef88b4fda8854c747f40d371ac7887861ed6d3fa5cee4" }, "downloads": -1, "filename": "elkoa-1.3.0.tar.gz", "has_sig": false, "md5_digest": "aadd0daf48a037c881ecf7f8948c089e", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 2244587, "upload_time": "2019-05-13T19:02:38", "url": "https://files.pythonhosted.org/packages/1d/62/0283f1547732251c3049c72f2b944c8ce71a40665903c54975e6b9d2ed8d/elkoa-1.3.0.tar.gz" } ] }