A Python library for electronic structure pre/post-processing

Overview

PyPI version conda-forge version Build Status HitCount PyPI - Downloads

PyProcar

PyProcar is a robust, open-source Python library used for pre- and post-processing of the electronic structure data coming from DFT calculations. PyProcar provides a set of functions that manage data obtained from the PROCAR format. Basically, the PROCAR format is a projection of the Kohn-Sham states over atomic orbitals. That projection is performed to every k-point in the considered mesh, every energy band and every atom. PyProcar is capable of performing a multitude of tasks including plotting plain and spin/atom/orbital projected band structures and Fermi surfaces- both in 2D and 3D, Fermi velocity plots, unfolding bands of a super cell, comparing band structures from multiple DFT calculations, plotting partial density of states and generating a k-path for a given crystal structure.

Currently supports:

  1. VASP
  2. Elk
  3. Quantum Espresso
  4. Abinit
  5. Lobster

Documentation

https://romerogroup.github.io/pyprocar/

Developers

Francisco Muñoz
Aldo Romero
Sobhit Singh
Uthpala Herath
Pedram Tavadze
Eric Bousquet
Xu He
Reese Boucher
Logan Lang
Freddy Farah

How to cite

If you have used PyProcar in your work, please cite:

Uthpala Herath, Pedram Tavadze, Xu He, Eric Bousquet, Sobhit Singh, Francisco Muñoz, and Aldo H. Romero. "PyProcar: A Python library for electronic structure pre/post-processing". Computer Physics Communications 251 (2020): 107080.

Thank you.

BibTex:

@article{HERATH2020107080,
title = "PyProcar: A Python library for electronic structure pre/post-processing",
journal = "Computer Physics Communications",
volume = "251",
pages = "107080",
year = "2020",
issn = "0010-4655",
doi = "https://doi.org/10.1016/j.cpc.2019.107080",
url = "http://www.sciencedirect.com/science/article/pii/S0010465519303935",
author = "Uthpala Herath and Pedram Tavadze and Xu He and Eric Bousquet and Sobhit Singh and Francisco Muñoz and Aldo H. Romero",
keywords = "DFT, Bandstructure, Electronic properties, Fermi-surface, Spin texture, Python, Condensed matter",
}

Mailing list

Please post your questions on our forum.

https://groups.google.com/d/forum/pyprocar

Dependencies

matplotlib
numpy
scipy
seekpath
ase
scikit-image
pychemia
pyvista

Installation

with pip:

pip install pyprocar

with conda:

conda install -c conda-forge pyprocar

Usage

Typical use is as follows

import pyprocar
pyprocar.bandsplot('PROCAR',outcar='OUTCAR',mode='plain',code='vasp')

Refer to the documentation for further details.

Stand-alone mode:

procar.py -h

will bring a help menu.

Changelog

v5.6.4 May 6th, 2021 -- Updates to Fermi surface plotter.
v5.6.3 Mar 5th, 2021 -- QE and elk bug fixes.
v5.6.2 Jan 11th, 2021 -- Updates and bugfixes to fermi surface and dos plotter.
v5.6.1 Dec 7th, 2020 -- Fixed bug in PyProcar.cat() for merging parallel Abinit files for spin polarized calculations. Converted units Ha to eV.
v5.6.0 Nov 30th, 2020 -- Repairs PROCAR file by default. Set flag repair=False to disable.
v5.5.8 Nov 24th, 2020 -- Updates to parametric band structure plotting. Ability to change linewidths with linewidth flag.
v5.4.4 Oct 23rd, 2020 -- Updates to DOS plotting, Fermi3D and bxsf parser and other bugfixes.
v5.5.2 July 27th, 2020 -- Updated spin colinear calculations for Quantum Espresso and Lobster codes.
v5.4.3 July 25th, 2020 -- Bug fixes in stand-alone version and updates to bandgap calculation.
v5.4.0 Jun 17th, 2020 -- Improved 3D Fermi Surface plotter, added support for Quantum Espresso, conda support.
v5.3.3 May 22nd, 2020 -- Added DOS plotting feature.
v5.2.1 May 11th, 2020 -- Bugfixes in pyprocar.cat and improving comparison method.
v5.2.0 Apr 21st, 2020 -- Added spin colinear plotting feature for Elk calculations and a method to plot spin up and spin down plots separately without the need to filter the PROCAR file.
v5.1.9 Apr 14th, 2020 -- Added feature to filter colinear spins in pyprocar.filter().
v5.1.8 Mar 27th, 2020 -- Fix iband reading error due to vasp incorrectly writting iband>999.
v5.1.5 Mar 8th, 2020 -- Fixed summation issues in ElkParser.
v5.1.4 Mar 7th, 2020 -- Added new class for parsing Abinit data.
v5.1.3 Mar 5th, 2020 -- Fixed Abinit PROCAR formatting issues in PyProcar cat function.
v5.1.1 Mar 5th, 2020 -- Removed bandscompare() due to redundancy with exportplt.
v5.1.0 Mar 4th, 2020 -- Elk implementation.
v5.0.1 Mar 2nd, 2020 -- Added orbital header array for newer version of VASP.
v5.0.0 Mar 1st, 2020 -- Added discontinuous band-plotting feature and other improvements.
v4.1.4 Feb 28th, 2020 -- Added option to convert k-points between reduced and cartesian when OUTCAR is supplied.
v4.1.3 Feb 27th, 2020 -- Renormalize alpha values in band unfolder for values > 1.
v4.1.2 Feb 24th, 2020 -- Bug fixes in band unfolder.
v4.1.1 Feb 12th, 2020 -- Added feature to compare two parametric plots with colormaps in bandscompare.
v4.1.0 Jan 10th, 2020 -- Added feature to export plots as matplotlib.pyplot objects for further processing through matplotlib options.
v4.0.4 Dec 6th, 2019 -- Added command-line compatibility to standalone version and better Latex rendering.
v4.0.1 Nov 17th, 2019 -- Added feature to filter k-points.
v4.0.0 Nov 6th, 2019 -- Various bug fixes. Release of standalone version. Updated documentation.
v3.9.2 Oct 4, 2019 -- Fixed bug in 2D Kmesh generator.
v3.9.1 Sep 15, 2019 -- Fixed unfold spin polarized eigenvalue bug and spin up/down band energy error in unfolding.
v3.9.0 Sep 12, 2019 -- Fixed spin polarized band unfolding.
v3.8.9 Sep 9, 2019 -- Added bbox_inches='tight' for savefig.
v3.8.8 Jul 24, 2019 -- Fixed ambiguity in spin flag.
v3.8.7 Jul 21, 2019 -- Fixed bug in K-mesh generator.
v3.8.6 Jun 26, 2019 -- Bug fixes in band unfolding Fermi shift energy and band structure labels for Fermi shifts.
v3.8.5 Jun 13, 2019 -- Bug fixes in Fermi surface plotting.
v3.8.4 Jun 11, 2019 -- Fixed parsing old PROCAR format.
v3.8.3 Jun 05, 2019 -- Updated parsing for PROCAR with phase.
v3.8.2 Jun 05, 2019 -- Updated docs.
v3.8.1 Jun 05, 2019 -- Updated reading from gzip for binary data. Increased parsing speed when phase factors are present.
v3.71 Jun 05, 2019 -- More bug fixes.
v3.7 Jun 04, 2019 -- Bug fixes for Fermi surface.
v3.6 Jun 04, 2019 -- Added 3D Fermi surface utility.
v3.5 May 22, 2019 -- added automatic high symmetry point labeling from KPOINTS file.
v3.4 May 21, 2019 -- Bug fixes for plotting and added capability to plot meta-GGA.
v3.3 Mar 19, 2019 -- Added band unfolder.
v3.2 Nov 26, 2018 -- Moved project to romerogroup.
v3.1 Sep 19, 2018 -- Minor bug fixes.
v3.0 Sep 17, 2018 -- Added method to compare two PROCARs. Moved to Python3.
v2.9 Jul 29,2018 -- Created PyProcar Mailing list.
v2.8 May 23,2018 -- Fixed procar.cat()
v2.7 May 18,2018 -- Fixed out-of-bounds error in k path generator.
v2.6 May 18,2018 -- Fixed more issues with fermi2D
v2.5 May 18.2018 -- Fixed issue with Vector
v2.4 May 18,2018 -- Fixed minor issues with fermi2D and procarsymmetry
v2.3 May 17,2018 -- Added k path generator.
v2.2 May 14,2018 -- Updated documentation.
v2.1 Apr 03,2018 -- Fixed issue with input arguments when using OUTCAR as an input
v2.0 Mar 21,2018 -- Created PyProcar package version with added support to Abinit.
v0.1.0, June 10, 2013 -- Initial release.

Comments
  • Problem in Band Structure Plotting

    Problem in Band Structure Plotting

    While plotting a band structure along the high-symmetry k-path K->Gamma-> Kp, I noticed that the k-path distances are not symmetrical around Gamma, which should not happen due to a hexagonal brillouin zone. Can you please suggest any solution for this issue? Figure_6

    opened by shahid-sattar 8
  • Fermi3D

    Fermi3D

    Hi, I have been trying to plot 3D fermi surface using my PROCAR and OUTCAR from a VASP hybrid band structure calculation. Pyprocar.repair works fine. However, when I try pyrocar.fermi3D, it gives me the error shown below:

    Plotting band 0
    Traceback (most recent call last):
      File "/home/zccappr/.local/bin/procar", line 815, in <module>
        args.func(args)
      File "/home/zccappr/.local/bin/procar", line 120, in call_fermi3D
        kwargs = args.kwargs)
      File "/home/zccappr/.local/lib/python3.6/site-packages/pyprocar/scriptFermi3D.py", line 463, in fermi3D
        mapped_func,kpoint_matrix = mapping_func(kvector,eigen)
      File "/home/zccappr/.local/lib/python3.6/site-packages/pyprocar/scriptFermi3D.py", line 54, in mapping_func
        if len(bands[tot_cond]) != 0 :
    IndexError: boolean index did not match indexed array along dimension 0; dimension is 304 but corresponding boolean dimension is 311
    

    I tried it with different structures and for each I got the same error with a difference of 7 between the numbers in IndexError: boolean index did not match indexed array along dimension 0; dimension is 304 but corresponding boolean dimension is 311.

    I am using pyprocar.fermi3D(PROCAR, OUTCAR, bands=-1, scale=1, mode='plain', st=False) Secondly, for some reason it is also finding the wrong number of ions. I have 24 ions in my POSCAR but it finds 25. I am attaching my PROCAR, OUTCAR, POSCAR and KPOINTS files.

    PROCAR.zip OUTCAR.zip POSCAR.zip KPOINTS.zip

    Thank you.

    opened by warda-rahim 5
  • Unfold

    Unfold

    Hi Uthpala, The band unfolding is added. List of changes:

    • procarunfold module added.
    • scriptUnfold.py added.
    • documentation (docx file, is it the right place?)
    • I found the parser a bit slow so I put my simple version in as readFile2. From your comment, I see that there could be some problem with 1 atom case but I don't know why. I think the extensive use of re.findall() is guilty for the slowness, for large files it can cost minutes, or even hours to parse. Cheers, HeXu
    opened by mailhexu 5
  • 2D-spin mesh plot,could not convert string to float happen

    2D-spin mesh plot,could not convert string to float happen

    I have run the "pyprocar.fermi2D('PROCAR-repaired', outcar='OUTCAR', st=True, energy=0.01, noarrow=False, spin=3, code='vasp')" The procar is repaired before fermi2D.

    then after several mins error happens: Traceback (most recent call last): File "/beegfs/home/b00004/calculation-hcq/soc/2Dslice/soc/slice/py", line 4, in pyprocar.fermi2D('PROCAR-repaired', outcar='OUTCAR', st=True, energy=0.01, noarrow=False, spin=3, code='vasp') File "/beegfs/home/b00004/anaconda3/lib/python3.9/site-packages/pyprocar/scriptFermi2D.py", line 92, in fermi2D rec_basis = outcarparser.RecLatOutcar(outcar) File "/beegfs/home/b00004/anaconda3/lib/python3.9/site-packages/pyprocar/utilsprocar/utilsprocar.py", line 271, in RecLatOutcar recLat = np.array(recLat, dtype=float) ValueError: could not convert string to float: '0.000000000171.062194824'

    PS. my vasp running is successful but PROCAR is large due to 200 atoms.

    Can anyone help me?

    opened by ChenqiangHua 2
  • Potential dependency conflicts between pyprocar and numpy

    Potential dependency conflicts between pyprocar and numpy

    Hi, as shown in the following full dependency graph of pyprocar, pyprocar requires numpy ==1.17.2, pyprocar requires matplotlib * (matplotlib 3.2.1 will be installed, i.e., the newest version satisfying the version constraint), and directed dependency matplotlib 3.2.1 transitively introduces numpy >=1.11.

    Obviously, there are multiple version constraints set for numpy in this project. However, according to pip's “first found wins” installation strategy, numpy 1.17.2 (i.e., the newest version satisfying constraint ==1.17.2) is the actually installed version.

    Although the first found package version numpy 1.17.2 just satisfies the later dependency constraint (numpy ==1.17.2), such installed version is very close to the upper bound of the version constraint of numpy specified by matplotlib 3.2.1.

    Once matplotlib upgrades,its newest version will be installed, as pyprocar does not specify the upper bound of version constraint for matplotlib. Therefore, it will easily cause a dependency conflict (build failure), if the upgraded matplotlib version introduces a higher version of numpy, violating its another version constraint ==1.17.2.

    According to the release history of matplotlib, it habitually upgrates Numpy in its recent releases. For instance, matplotlib #15645 upgrated Numpy’s constraint from >=1.11 to >=1.12, and matplotlib #15698 upgrated Numpy’s constraint from >=1.12 to >=1.15.

    As such, it is a warm warning of a potential dependency conflict issue for pyprocar.

    Dependency tree

    pyprocar - 5.2.1
    | +- ase(install version:3.19.1 version range:*)
    | | +- matplotlib(install version:3.2.1 version range:*)
    | | | +- cycler(install version:0.10.0 version range:>=0.10)
    | | | | +- six(install version:1.14.0 version range:*)
    | | | +- kiwisolver(install version:1.2.0 version range:>=1.0.1)
    | | | +- numpy(install version:1.17.2 version range:>=1.11)
    | | | +- pyparsing(install version:3.0.0a1 version range:>=2.0.1)
    | | | +- python-dateutil(install version:2.8.1 version range:>=2.1)
    | | +- numpy(install version:1.17.2 version range:*)
    | | +- scipy(install version:1.4.1 version range:*)
    | +- matplotlib(install version:3.2.1 version range:*)
    | | +- cycler(install version:0.10.0 version range:>=0.10)
    | | | +- six(install version:1.14.0 version range:*)
    | | +- kiwisolver(install version:1.2.0 version range:>=1.0.1)
    | | +- numpy(install version:1.17.2 version range:>=1.11)
    | | +- pyparsing(install version:3.0.0a1 version range:>=2.0.1)
    | | +- python-dateutil(install version:2.8.1 version range:>=2.1)
    | +- mayavi(install version:4.6.2 version range:==4.6.2)
    | +- numpy(install version:1.17.2 version range:==1.17.2)
    | +- pyfiglet(install version:0.8.post1 version range:*)
    | +- scikit-image(install version:0.16.2 version range:*)
    | +- scipy(install version:1.4.1 version range:==1.4.1)
    | +- seekpath(install version:1.9.5 version range:>=1.0)
    | | +- future(install version:0.18.2 version range:>=0.15)
    | | +- numpy(install version:1.17.2 version range:>=1.0)
    | | +- spglib(install version:1.14.1.post0 version range:>=1.14.1)
    | | | +- numpy(install version:1.17.2 version range:*)
    

    Thanks for your help. Best, Neolith

    opened by NeolithEra 2
  • Tutorial error using pyprocar.kpath

    Tutorial error using pyprocar.kpath

    My POSCAR:

    azo
    1.00000000000000
    9.5670000000000002 0.0000000000000000 0.0000000000000000 -4.7835000000000001 8.2852650380099995 0.0000000000000000 0.0000000000000000 0.0000000000000000 40.0000000000000000 Mo S H C N O 18 35 10 13 2 2 Direct ...

    If I tried pyprocar.kpath('POSCAR',40,True,'hpkot',1e-07,1e-05,-1.0)

    Traceback (most recent call last): File "", line 1, in File "/home/noki/anaconda3/envs/procar/lib/python3.7/site-packages/pyprocar/scriptKpath.py", line 21, in kpath atoms = np.array(POSCAR[5].split()).astype(np.int) ValueError: invalid literal for int() with base 10: 'Mo'

    It should change from 5 to 6 or not compatible for my POSCAR.

    opened by Nokimann 2
  • Plot 2D spin-texture Error: cannot import name '_ccallback_c' from 'scipy._lib'

    Plot 2D spin-texture Error: cannot import name '_ccallback_c' from 'scipy._lib'

    Dear Uthpala: Hi! I am now learning your great tool PyProcar. When I want to plot the fermi2D spin-texture, there is an error: --- ImportError: cannot import name '_ccallback_c' from 'scipy.lib' (C:\Users\user\AppData\Roaming\Python\Python37\site-packages\scipy_lib_init.py)

    I have installed and upgrade the SciPy, but the error remains.

    So, please, how can I solve this problem?

    opened by Yang-Jun-tao 2
  • DOS plot error for unfinished DFT calculation

    DOS plot error for unfinished DFT calculation

    Hi I am trying to check how the DOS plot looks for a DFT calculation I did that was ended early due to a walltime issue on the supercomputer I have access to. At first I got an issue due to unclosed tags in the vasprun.xml file which makes sense, but after manually closing the necessary tags so the file could be parsed, I am getting an error that the self.data variable in vaspxml.py does not contain the key 'dos'.

    Looking into this file I see that the lines 662 to 675 in the function parse_vasprun in the file vaspxml.py are all commented out, and on quick inspection this looks to be the only place where 'dos' string gets set as a key within the variable self.data. Are these lines supposed to commented out? Is the 'dos' key being set in another function and I am missing it? Screen Shot 2022-10-19 at 4 41 17 PM

    I have resubmitted the DFT job so it will run to completion, but in the meantime I would like to see the DOS plots to see how the current unconverged results are looking while I wait for the DFT calculation to finish.

    Thank you in advance for your help, and for your reference I have added a screenshot of the exact error message I see when I try to call the function dosplot from pyprocar. Please let me know any additional information you require from me.

    opened by artoland 1
  • Mybinder Example

    Mybinder Example

    Try it online Binder

    I mainly added one example notebook

    examples/MoS2_QEv6.5/pyprocar.ipynb
    

    I guess it should be easy to add similar notebooks for the other examples.

    opened by jan-janssen 1
  • conda-forge package

    conda-forge package

    Hi,

    I recently create the pyprocar conda forge package, now it is possible to install PyProcar via:

    conda install -c conda-forge pyprocar
    

    I was wondering if one of the core developers is interested in joining me in maintaining the package.

    Best,

    Jan

    opened by jan-janssen 1
  • Bug in procarparser.py

    Bug in procarparser.py

    I am trying using the package to unfold a 9x9x1 supercell band, and I encountered the following error: self.procar.readFile2(self.fname, phase=True, ispin=ispin) File "/u/fs1/.local/lib/python3.6/site-packages/pyprocar/procarparser/procarparser.py", line 688, in readFile2 iband = int(ss[1]) - 1 ValueError: invalid literal for int() with base 10: '***'

    I think this is due to the fact that the code does not realise that VASP does not write down the band index beyond 999. For example, my PROCAR looks like:

    band 998 # energy -0.2155885 # occ. 0.00000000

    ion s py pz px dxy dyz dz2 dxz dx2 tot 1 0.000 0.001 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.003 2 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.002 3 0.000 0.001 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.004 ....

    band 999 # energy -0.19090405 # occ. 0.00000000

    ion s py pz px dxy dyz dz2 dxz dx2 tot 1 0.000 0.000 0.002 0.000 0.000 0.000 0.000 0.000 0.000 0.003 2 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.002 3 0.000 0.001 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.002 ....

    band *** # energy -0.18754690 # occ. 0.00000000

    ion s py pz px dxy dyz dz2 dxz dx2 tot 1 0.000 0.000 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.003 2 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.002 3 0.000 0.000 0.000 0.001 0.000 0.000 0.000 0.000 0.000 0.002 ....

    band *** # energy -0.17669861 # occ. 0.00000000

    ion s py pz px dxy dyz dz2 dxz dx2 tot 1 0.000 0.003 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.006 2 0.000 0.001 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.002 3 0.000 0.002 0.001 0.000 0.000 0.000 0.000 0.000 0.000 0.004 ....

    Could you please fix this bug? Thanks.

    opened by SiyuChen 1
  • pyprocar not found

    pyprocar not found

    I have tried to install pyprocar using pip and conda both and in both the cases it is not showing the pyprocar.

    At the end of the installation, I am getting this.

    Installing collected packages: pyparsing Successfully installed pyparsing-3.0.9

    Could you please have a look at it?

    opened by kcbhamu 1
  • How to filter KPOINTS from hybrid calculation?

    How to filter KPOINTS from hybrid calculation?

    Hello developers, firstly many thanks for the amazing post processing scheme. I was trying to follow the tutorials to filter weighted KPOINTS from hybrid calculation. But I'm getting the following error- //File "hello.py", line 2 pyprocar.filter('PROCAR’,'PROCAR-filtered_kpoints’, kpoints=[2,3]) ^ SyntaxError: invalid syntax// What I'm doing wrong here/ how can I fix this ?

    opened by nirjha008 0
  • In ability to use stack_orbitals mode for F orbitals

    In ability to use stack_orbitals mode for F orbitals

    Hey, I am following the posted tutorial for plotting the orbitals of Np atom in my crystal structure.

    the plots made by stack_orbitals mode does not show any F orbitals (only show s p d). can you please let me know how to correct this issue?

    Thank you, Harindu

    opened by iowachem 1
  • vertical axis or graph height is not adjusted when plot_total = False in dosplots: projected DOS becomes too small to see

    vertical axis or graph height is not adjusted when plot_total = False in dosplots: projected DOS becomes too small to see

    In plotting projected DOS contributions without showing the total DOS, I see that the vertical scale is not readjusted to be suitable for the projections. It is still referring to the total DOS.

    So if my total DOS is at 100 units, while my projections is at 5-10 units, the projected DOS plots becomes hard to analyze (because too small compared to the graph size). What could we do in this case?

    I use pyprocar version 5.6.5.

    opened by alpinnovianus 5
  • Different result between DOS plots on 'parametric_line' vs 'stack' modes?

    Different result between DOS plots on 'parametric_line' vs 'stack' modes?

    Dear PyProCar developers,

    I encounter in my calculations that the amount of projected DOS, or DOS contribution from specific atom/orbitals is shown differently in magnitude when plotted with 'stack' and 'parametric_line' mode, respectively. I use version 5.6.5

    In general, the overall shape and energy locations are similar, but the DOS amplitude contribution appear higher in 'stack' than in the parametric_line plots.

    I check the tutorial page, and it seems that it is already seen here:

    https://romerogroup.github.io/pyprocar/dos.html#mode-parametric-line https://romerogroup.github.io/pyprocar/dos.html#mode-stack

    If we look at the oxygen p orbital contribution between -2.7 to -1.5 eV, for example, it is clearly shown that these contributions are higher in 'stack' mode as they almost cover the area under total DOS curve, while there is some uncovered space in the parametric_line mode.

    I note that all O atoms are included in both plots, and. the other element contributions from Sr or V in the stack plot is negligible in this energy range, so they cannot explain this 0.8 - 1 a.u. DOS difference at -2.7 eV.

    Because of this phenomena, I am seeing that if one uses the parametric line to plot separately all contributions from each element in a compound, say ABC, the individual contributions A+B+C won't sum up to match the total density of states curve. On the other hand, we can expect the individual contributions to sum up to the total DOS if we use the 'stack' modes.

    May I know if this is expected? If so, what causes the parametric_line mode to show this different behavior? due to this finding, I do have doubts in the parametric_line mode. I hope you can help enlighten this problem for me.

    Thank you. Alpin N. Tatan University of Tokyo

    opened by alpinnovianus 2
Releases(5.6.3)
Owner
Romero Group
Computational Condensed Matter Physics research group at West Virginia University led by Prof. Aldo Romero
Romero Group
Data Structure With Python

Data-Structure-With-Python- Python programs also include in this repo Stack A stack is a linear data structure that stores items in a Last-In/First-Ou

Sumit Nautiyal 2 Jan 9, 2022
This repo represents all we learned and are learning in Data Structure course.

DataStructure Journey This repo represents all we learned and are learning in Data Structure course which is based on CLRS book and is being taught by

Aprime Afr (Alireza Afroozi) 3 Jan 22, 2022
Chemical Structure Generator

CSG: Chemical Structure Generator A simple Chemical Structure Generator. Requirements Python 3 (>= v3.8) PyQt5 (optional; >= v5.15.0 required for grap

JP&K 5 Oct 22, 2022
IADS 2021-22 Algorithm and Data structure collection

A collection of algorithms and datastructures introduced during UoE's Introduction to Datastructures and Algorithms class.

Artemis Livingstone 20 Nov 7, 2022
pyprobables is a pure-python library for probabilistic data structures

pyprobables is a pure-python library for probabilistic data structures. The goal is to provide the developer with a pure-python implementation of common probabilistic data-structures to use in their work.

Tyler Barrus 86 Dec 25, 2022
Python library for doing things with Grid-like structures

gridthings Python library for doing things with Grid-like structures Development This project uses poetry for dependency management, pre-commit for li

Matt Kafonek 2 Dec 21, 2021
RLStructures is a library to facilitate the implementation of new reinforcement learning algorithms.

RLStructures is a lightweight Python library that provides simple APIs as well as data structures that make as few assumptions as possibl

Facebook Research 262 Nov 18, 2022
Array is a functional mutable sequence inheriting from Python's built-in list.

funct.Array Array is a functional mutable sequence inheriting from Python's built-in list. Array provides 100+ higher-order methods and more functiona

null 182 Nov 21, 2022
A DSA repository but everything is in python.

DSA Status Contents A: Mathematics B: Bit Magic C: Recursion D: Arrays E: Searching F: Sorting G: Matrix H: Hashing I: String J: Linked List K: Stack

Shubhashish Dixit 63 Dec 23, 2022
Common sorting algorithims in Python

This a Github Repository with code for my attempts for commonly used sorting algorithims, tested on a list with 3000 randomly generated numbers.

Pratham Prasoon 14 Sep 2, 2021
Python collections that are backended by sqlite3 DB and are compatible with the built-in collections

sqlitecollections Python collections that are backended by sqlite3 DB and are compatible with the built-in collections Installation $ pip install git+

Takeshi OSOEKAWA 11 Feb 3, 2022
This repository is a compilation of important Data Structures and Algorithms based on Python.

Python DSA ?? This repository is a compilation of important Data Structures and Algorithms based on Python. Please make seperate folders for different

Bhavya Verma 27 Oct 29, 2022
Leetcode solutions - All algorithms implemented in Python 3 (for education)

Leetcode solutions - All algorithms implemented in Python 3 (for education)

Vineet Dhaimodker 3 Oct 21, 2022
nocasedict - A case-insensitive ordered dictionary for Python

nocasedict - A case-insensitive ordered dictionary for Python Overview Class NocaseDict is a case-insensitive ordered dictionary that preserves the or

PyWBEM Projects 2 Dec 12, 2021
This Repository consists of my solutions in Python 3 to various problems in Data Structures and Algorithms

Problems and it's solutions. Problem solving, a great Speed comes with a good Accuracy. The more Accurate you can write code, the more Speed you will

SAMIR PAUL 1.3k Jan 1, 2023
Programming of a spanning tree algorithm with Python : In depth first with a root node.

ST Algorithm Programming of a spanning tree algorithm with Python : In depth first with a root node. Description This programm reads informations abou

Mathieu Lamon 1 Dec 16, 2021
A Python dictionary implementation designed to act as an in-memory cache for FaaS environments

faas-cache-dict A Python dictionary implementation designed to act as an in-memory cache for FaaS environments. Formally you would describe this a mem

Juan 3 Dec 13, 2022
🔬 Fixed struct serialization system, using Python 3.9 annotated type hints

py-struct Fixed-size struct serialization, using Python 3.9 annotated type hints This was originally uploaded as a Gist because it's not intended as a

Alba Mendez 4 Jan 14, 2022
Final Project for Practical Python Programming and Algorithms for Data Analysis

Final Project for Practical Python Programming and Algorithms for Data Analysis (PHW2781L, Summer 2020) Redlining, Race-Exclusive Deed Restriction Lan

Aislyn Schalck 1 Jan 27, 2022