GithubHelp home page GithubHelp logo

materialsvirtuallab / matgenb Goto Github PK

View Code? Open in Web Editor NEW
206.0 29.0 137.0 75.25 MB

Jupyter notebooks demonstrating the utilization of open-source codes for the study of materials science.

License: BSD 3-Clause "New" or "Revised" License

Jupyter Notebook 100.00% Python 0.01%

matgenb's Introduction

Visit the Github Pages for a nicely formatted HTML page and notebook search functionality.

Introduction

This repo is started by the Materials Virtual Lab as a useful collection of Jupyter notebooks that demonstrate the utilization of open-source codes for the study of materials science.

We frequently get requests (from students, postdocs, collaborators, or just general users) for example codes that demonstrate various capabilities in the open-source software we maintain and contribute to, such as the Materials Project software stack comprising Python Materials Genomics (pymatgen), Custodian, and Fireworks. This repo is a start at building a more sustainable path towards sharing of code examples.

It is not limited to the codes we develop - any use of open source software for materials analysis is welcome. Also, anyone is welcome to contribute.

Running the examples from a browser

                       
2013-01-01-Bandstructure of NiO Binder Launch Codespace Open in Google Colab
2013-01-01-Basic functionality Binder Launch Codespace Open in Google Colab
2013-01-01-Calculating Reaction Energies with the Materials API Binder Launch Codespace Open in Google Colab
2013-01-01-Calculating XRD patterns Binder Launch Codespace Open in Google Colab
2013-01-01-Getting crystal structures from online sources Binder Launch Codespace Open in Google Colab
2013-01-01-Ordering Disordered Structures Binder Launch Codespace Open in Google Colab
2013-01-01-Plotting and Analyzing a Phase Diagram using the Materials API Binder Launch Codespace Open in Google Colab
2013-01-01-Plotting the electronic structure of Fe Binder Launch Codespace Open in Google Colab
2016-09-08-Data-driven First Principles Methods for the Study and Design of Binder Launch Codespace Open in Google Colab
2016-09-08-Data-driven First Principles Methods for the Study Binder Launch Codespace Open in Google Colab
2016-09-08-Data-driven First Principles Methods for the Study Binder Launch Codespace Open in Google Colab
2016-09-25-Plotting phonon bandstructure and dos Binder Launch Codespace Open in Google Colab
2017-03-02-Getting data from Materials Project Binder Launch Codespace Open in Google Colab
2017-04-03-Slab generation and Wulff shape Binder Launch Codespace Open in Google Colab
2017-04-14-Inputs and Analysis of VASP runs Binder Launch Codespace Open in Google Colab
2017-05-11-Running Jupyter Notebook on clusters Binder Launch Codespace Open in Google Colab
2017-09-03-Analyze and plot band structures Binder Launch Codespace Open in Google Colab
2017-12-15-Plotting a Pourbaix Diagram Binder Launch Codespace Open in Google Colab
2018-01-01-ChemEnv - How to automatically identify coordination environments in a structure Binder Launch Codespace Open in Google Colab
2018-03-09-Computing the Reaction Diagram between Two Compounds Binder Launch Codespace Open in Google Colab
2018-03-14-Plotting COHP from LOBSTER Binder Launch Codespace Open in Google Colab
2018-07-24-Adsorption on solid surfaces Binder Launch Codespace Open in Google Colab
2018-09-25-Structure Prediction using Pymatgen and the Materials API Binder Launch Codespace Open in Google Colab
2018-11-6-Dopant suggestions using Pymatgen Binder Launch Codespace Open in Google Colab
2019-01-04-How to use Boltztrap2 interface Binder Launch Codespace Open in Google Colab
2019-01-11-How to plot and evaluate output files from Lobster Binder Launch Codespace Open in Google Colab
2019-03-11-Interface Reactions Binder Launch Codespace Open in Google Colab
2020-07-15-How to plot a Fermi surface Binder Launch Codespace Open in Google Colab
2021-08-26-Magnetic Structure Generation as Input for Initial DFT Calculations Binder Launch Codespace Open in Google Colab
2021-5-12-Explanation of Corrections Binder Launch Codespace Open in Google Colab
2022-07-23 Interactive Crystal Toolkit Structure Viewer Binder Launch Codespace Open in Google Colab

Contributing

  1. Fork this repo and clone.

    git clone [email protected]:<your_github_username>/matgenb
    cd matgenb
  2. Write a new notebook in the notebooks folder.

    cd notebooks
    jupyter notebook
  3. Notebooks should be well-documented and simple. The idea here is to be pedagogical. A newcomer to the software (with the right materials science background) should be able to follow the logic without too much difficulty. Feel free to add authorship and contact information, as well as works to cite and acknowledge your contributions. In view that scientific codes tend to be continuously being updated, please put in a list of the key pinned dependencies so that other users can install the exact version of software to run the notebook if needed. The best practice is to put a section that provides a commented out pip install command that can be used in Google Colab. For example,

    # Uncomment the subsequent lines in this cell to install dependencies for Google Colab.
    # !pip install pymatgen==2022.2.27
  4. Ideally, please update notebooks as needed to use more modern versions of the codes, and you may update the date of the notebook as needed.

  5. Notebooks should be placed in the notebooks folder, and the name should start with the date in YYYY-MM-DD-<intuitive title> format. See existing examples. Remember to add it to the above table too.

  6. In the root folder of the repo, convert the jupyter notebooks to html.

    jupyter nbconvert --to html notebooks/*.ipynb --output-dir docs/_posts
  7. Commit and push.

    git add .
    git commit -a -m "Describe your contribution"
    git push
  8. Submit a pull request from Github.

matgenb's People

Contributors

costrouc avatar dependabot-preview[bot] avatar dependabot[bot] avatar devthepenguin avatar dwinston avatar fraricci avatar glasnt avatar jageo avatar janosh avatar mattmcdermott avatar montoyjh avatar rkingsbury avatar shyuep avatar utf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

matgenb's Issues

Import Error when using "get_pourbaix_entries"

Using python version 3.7.1 I am trying to use the example for producing pourbaix diagrams.
The first errors I receive when importing the packages and calling "get_pourbaix_entries" are resolved upon recompiling.
ValueError: numpy.ufunc has the wrong size, try recompiling. Expected 192, got 216

I then get the following error upon recompiling the code below:
# Get all pourbaix entries corresponding to the Cu-O-H chemical system.
entries = mpr.get_pourbaix_entries(["Cu"])

ImportError: cannot import name 'LinearAssignment' from 'pymatgen.optimization.linear_assignment' (unknown location)

Can developers update files?

Hi, I found that pymatgen has changed a lot change-log, which some modules can not be found in the lastest version. May I request developers update the notebook files for convenience?

Notebook for using adsorption.py

Add the tutorial for using adsorption.py from the supplementary material of:

Montoya, J. H., & Persson, K. A. (2017). A high-throughput framework for determining adsorption energies on solid surfaces. Npj Computational Materials, 3(1), 14. https://doi.org/10.1038/s41524-017-0017-z

to matgenb. Will take a pedantic approach to discussing the nuances of modelling adsorption.

Request: Notebook demonstrating pymatgen transformations capabillities

Requesting an example notebook of using the transformations framework in pymatgen to create structures with full provenance of how they were generated.

  • using various transformations
  • chaining transformations
  • the one to many concept
  • converting to a SNL
  • embedding provenance for original structure into SNL ( e.g. ICSD, MP, OQMD, etc. IDs and info)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.