Giter Site home page Giter Site logo

janosh / thermo Goto Github PK

View Code? Open in Web Editor NEW
12.0 3.0 4.0 50.71 MB

Data-driven risk-conscious thermoelectric materials discovery

License: MIT License

Python 100.00%
materials-discovery uncertainty-estimation portfolio-theory machine-learning thermoelectric thermoelectric-figure-of-merit

thermo's Introduction

Data-Driven Risk-Conscious
Thermoelectric Materials Discovery

pre-commit.ci status This project supports Python 3.8+ GitHub Repo Size

Project description

The aim is to discover high-figure–of-merit ($zT > 1$) and sustainable (lead-free and rare earth-free) bulk thermoelectrics using machine learning-guided experimentation. The key advance is going beyond 'big data' which in this domain is unattainable for the foreseeable future since both first-principles calculations and experimental synthesis and characterization of bulk thermoelectrics are costly and low throughput. Instead, we move towards so-called 'optimal data' by developing novel algorithms that optimize thermoelectric performance ($zT$) with minimal number of expensive calculations and experiments.

To date, there has been no statistically robust approach to simultaneously incorporate experimental and model error into machine learning models in a search space with high opportunity cost and high latency (i.e. large time between prediction and validation).

Consequently, searches have been unable to effectively guide experimentalists in the selection of exploring or exploiting new materials when the validation step is inherently low throughput and resource-intensive, as is the case for synthesizing new bulk functional materials like thermoelectrics. This project aims to implement a holistic pipeline to discover novel thermoelectrics: ML models predict the $zT$ of a large database of structures as well as their own uncertainty for each prediction. Candidate structures are then selected, based on maximizing $zT$ subject to a tolerable level of uncertainty, to proceed to the next stage where expensive experimental synthesis and characterization of high-$zT$ candidates are guided by Bayesian optimization and active machine learning.

Setup

To check out the code in this repo, reproduce results and start contributing to the project, clone the repo and create a conda environment containing all dependencies by running the following command (assumes you have git and conda installed)

git clone https://github.com/janosh/thermo \
&& cd thermo \
&& pip install -r requirements.txt
&& pre-commit install

Usage

Run any of the files in src/notebooks. The recommended way to work with those files is using VS Code and its Python extension. You'll see the results of running those files in an interactive window (similar to Jupyter).

thermo's People

Contributors

janosh avatar pre-commit-ci[bot] avatar

Stargazers

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

Watchers

 avatar  avatar  avatar

thermo's Issues

Preprint?

Is there a paper associated with the codebase?

Getting started with a custom dataset and "next suggested experiment"

Nice work! Could you give some pointers or a README tutorial on how to use thermo with a custom dataset for materials discovery, and suggest the next experiment?

Which .py file would you recommend starting out with?

I'm assuming the code is general to material inputs and properties rather than specifically thermoelectrics, correct?

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.