Skip to content

An index of all software our group members are working on! Deploys a website at:

License

Notifications You must be signed in to change notification settings

PhasesResearchLab/SoftwareProjects

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Phases Research Lab Software Projects

This repository serves as an index of all software projects Phases Research Lab group members are working on, from small and private ones to large and open-source ones, emphasizing the latter.

Contents: Active Development (Open | Staging | Internal) Β |Β  Active Contributions Β |Β  Maintained Β |Β  Legacy Β |Β  Other Β |Β  Alumni Work

Active Group Members (ordered by GitHub activity):
Dr. Adam M. Krajewski orcidlogoΒ  | Β  Luke A. Myers orcidlogoΒ  | Β  Ricardo Amaral orcidlogoΒ  | Β  Dr. Nigel Hew orcidlogo Alexander Richter orcidlogoΒ  | Β  Rushi Gong orcidlogoΒ  | Β  Shuang Lin orcidlogoΒ  | Β  Li-Cheng Hsiao (Leon) orcidlogoΒ  | Β  Prof. Zi-Kui Liu orcidlogoΒ  | Β  Prof. ShunLi Shang orcidlogoΒ  | Β 

Recent Alumni: Hui Sun orcidlogoΒ  | Β  John Shimanek orcidlogoΒ  | Β 

Legend:

  • 🟒 Open Source / 🟠 Release Soon / πŸ”΄ Internal or Private
  • βœ… User-Ready / πŸ”¬ Research-Ready / πŸ— Under Construction and Experimental / πŸ’€ Not-Supported
  • 🀏 Small Codes or Modifications

Active Development

  • Ordered open-to-internal, ready-to-experimental, and large-to-small.
  • Unless specified, the lead developer/s are active PRL members

Open 🟒

  • 🟒 βœ… pycalphad - (@richardotis now at NASA JPL) - is a free and open-source Python library for designing thermodynamic models, calculating phase diagrams and investigating phase equilibria within the CALPHAD method. It provides routines for reading Thermo-Calc TDB files and for solving the multi-component, multi-phase Gibbs energy minimization problem.

    GitHub last commit (by committer) latest codecov PyPI version

  • 🟒 βœ… ESPEI - (@bocklund now at LLNL) - Extensible Self-optimizing Phase Equilibria Infrastructure, is a tool for creating CALPHAD databases and evaluating the uncertanity of CALPHAD models. The purpose of ESPEI is to be both a user tool for fitting state-of-the-art CALPHAD-type models and to be a research platform for developing methods for fitting and uncertainty quantification.

    GitHub last commit (by committer) latest PyPI version

  • 🟒 βœ… pySIPFENN - py(Structure-Informed Prediction of Formation Energy using Neural Networks) allows for easy prediction of formation energy out-of-the-box (πŸŸ’βœ…) and using small-dataset ML through transfer learning-based adjustment of models to new materials (🟠) and properties (πŸ”΄).

    GitHub last commit (by committer) latest codecov PyPI version

  • 🟒 βœ… ULTERA-contribute - A template data-repository with growing number of embedded automations for alloy dataset handling, including data validation and abnormality detection. For now, hardcoded for ULTERA (ultera.org) contributions, but will soon be generalized.

    GitHub last commit (by committer) GitHub forks

  • 🟒 βœ… nimplex - NIM simPLEX is a concise high-performance scientific Nim library (with CLI and Python binding) providing samplings, uniform grids, traversal graphs, and more in compositional (simplex) spaces, where traditional methods designed for euclidean spaces fail or otherwise become impractical. We use it primarily for designing Functionally Graded Materials (FGM) but it target applications also include a wide range disciplines including financial modeling.

    GitHub last commit (by committer) Static Badge Arxiv

  • 🟒 βœ… nimcso - NIM Composition Space Optimization is a high-performance tool leveraging metaprogramming to implement several methods for selecting components (data dimensions) in compositional datasets, as to optimize the data availability and density for applications such as machine learning.

    GitHub last commit (by committer) Static Badge Arxiv

  • 🟒 πŸ”¬ AMMAP - a CALPHAD-based tool helping avoid the formation of undesired phases and designing optimal composition pathway to join dissimilar materials. It provides a comprehensive understanding of the phase formation process during manufacturing processes through prediction of both equilibrium and non-equilibrium phases. Utilizes Nimplex to efficiently generate and explore multicomponent multidimensional space.

    GitHub last commit (by committer)

  • 🟒 πŸ”¬ MaterialsMap - **Materials map is a CALPHAD-based tool helping avoid the formation of undesired phases and designing optimal composition pathway to join dissimilar materials. It provides a comprehensive understanding of the phase formation process during manufacturing processes through prediction of both equilibrium and non-equilibrium phases.

    GitHub last commit (by committer) PyPI version

  • 🟒 πŸ”¬ PyQAlloy - Python toolset for Quality of Alloys data is aimed at curating large alloy datasets, and in particular error prone ones like HEA/MPEA/CCA ones, through multi-scope detection of a number of abnormal patterns prompting re-verification.

    GitHub last commit (by committer) latest codecov PyPI version

  • 🟒 πŸ— heaGAN - (codeveloped with Reinhart Group) - A demonstrator workflow for (1) training surrogate models for alloy design and (2) generating novel high entropy alloys design with condditional Generative Adversarial Networks. You can run it in the cloud and download your trained models.

    GitHub last commit (by committer) Stable:Binder Development:Binder

  • 🀏 🟒 πŸ”¬ optimade-python-tools-mpdd - fork of Materials-Consortia/optimade-python-tools by @ml-evs; tuned to the needs of MPDD and, more generally, other very large memory IO limited materials databases.

    GitHub last commit (by committer) Static Badge

  • 🀏 🟒 βœ… pqam-dparamhu2021 - PyQAlloy-compatible Model for alloy D Parameter prediction based on Yong-Jie Hu's 2021 literature model (in R) which has been optimized for high-throughput and wrapped in Python.

    GitHub last commit (by committer) PyPI version

  • 🀏 🟒 βœ… pqam_RMSADTandoc2023 - PyQAlloy-compatible Model for alloy Root Mean Squared Atomic Displacement prediction is a lightweight fork of Christopher Tandoc's 2023 literature model.

    GitHub last commit (by committer) PyPI version

Staging 🟠

  • 🟠/🟒 βœ… MPDD (server & tools) - Material-Property-Descriptor Database is an atomistic data processing infrastructure allowing decentralized featurization (calculation of descriptors) and rapid machine learning model deployment on millions of DFT-relaxed configurations. Data is openly served through OPTIMADE API at mpddoptimade.phaseslab.com, but the high-throughput API and source code for server and client are kept internal for now.

    Arxiv

  • 🟠 βœ… crystALL - a set of tools to leverage speed of new SIPFENN featurizers and millions of structures in MPDD for prediction of crystal structure applicable to ALL chemistries. Demonstrated, e.g., in:

  • 🟠 πŸ— pqam-dparamkrajewski2023 - Transfer-learnig based prediction of intrinsic ductility of refractory alloys.

  • 🟠 πŸ— [Automation of thermodynamic modelling package] The package aims to develop an automated workflow for CALPHAD-based thermodynamic modeling using four Python based open-source tools: PyCalphad for equilibrium thermodynamic calculations, ESPEI for automation of CALPHAD modeling, DFTTK for density functional theory (DFT) based first-principles calculations, and PySIPFENN for machine learning predictions of thermodynamic properties.

  • 🟠 πŸ— [Third Generation Pure Element with Pycalphad and ESPEI] Custom installations of pycalphad and ESPEI with common 3rd generation CALPHAD models as well as built in experimental Cp data fitting for model parameters.

Internal πŸ”΄

  • πŸ”΄ πŸ”¬ ULTERA - Internal set of software tools developed within ULTERA projects, which will be individually released (e.g., PyQAlloy 🟒) or kept internal.

  • πŸ”΄ πŸ— matmdl - Tooling for gradient-free material model optimizations and interoperability between Abaqus finite elements and crystal plasticity subroutines.

  • πŸ”΄ πŸ— PyZentropy - Python toolset to implement the Zentropy approach (doi.org/10.1007/s11669-022-00942-z) described in brief in this news article

Active Contributions

  • 🟒 pymatgen:
    • 2024: 1 bug fix to pymatgen.ext by @rdamaral
    • 2023: 1 enhancement and 1 bug fix, both to pymatgen.core by @amkrajewski
    • 2017: 1 enhancement to pymatgen.analysis and 1 bug fix to pymatgen.io by @bocklund

Maintained

  • 🟒 βœ… DFTTK - The goal of DFTTK is to make high-throughput first-principles calculations as simple as possible.

  • 🟒 βœ… scheil - A Scheil-Gulliver simulation tool using pycalphad.

Legacy

Other

Alumni Work

  • 🟒 βœ… kawin - Python implementation of the Kampmann-Wagner Numerical (KWN) model to predict precipitate nucleation and growth behavior. This package couples with pycalphad to perform thermodynamic and kinetic calculations. See the Docs

    GitHub last commit (by committer) PyPI version

Contributions

  • Please limit the description to 3 lines of text and up to 1 of badges.
  • Make sure to include links to source code if the project is open-source.
  • If you are an active PRL member, you should have write access to this repository by default, and you are allowed to make changes directly.
  • If you are a past PRL member, you are welcome to contribute (1) the code you worked on while active to the appropriate category (please use Legacy if you no longer actively maintain it), as well as (2) code you created after leaving the group under Alumni Work. You can contribute by forking the repository and opening a pull request.
  • The easiest way to contribute is to open the GitHub dev environment in your browser by simply clicking the . key. It will work on any device with a keyboard (even an iPad!). With it, you can make a simple contribution in under a minute without any knowledge of git!. Simply (1) edit the text in the README file, which will open automatically, (2) click on the Source Control icon on the left panel (third from top), (3) write a short message about what you did, and (4) click Commit&Push. Done!