Skip to content

Inverse materials design via invertible neural networks

License

Notifications You must be signed in to change notification settings

sailfish009/MatDesINNe

 
 

Repository files navigation

MatDesINNe

This is the official repository to the paper "Inverse design of two-dimensional materials with invertible neural networks" by Victor Fung, Jiaxin Zhang, Guoxiang Hu, P. Ganesh, Bobby G. Sumpter.

Abstract

The ability to readily design novel materials with chosen functional properties on-demand represents a next frontier in materials discovery. However, thoroughly and efficiently sampling the entire design space in a computationally tractable manner remains a highly challenging task. To tackle this problem, we propose an inverse design framework (MatDesINNe) utilizing invertible neural networks which can map both forward and reverse processes between the design space and target property.

This approach can be used to generate materials candidates for a designated property, thereby satisfying the highly sought-after goal of inverse design. We then apply this framework to the task of band gap engineering in two-dimensional materials, starting with MoS2. Within the design space encompassing six degrees of freedom in applied tensile, compressive and shear strain plus an external electric field, we show the framework can generate novel, high fidelity, and diverse candidates with near-chemical accuracy.

Getting Started

You will need Python 3.6 and the packages specified in requirements.txt. We recommend setting up a virtual environment with pip and installing the packages there.

Install packages with:

$ pip install -r requirement.txt

The key packages and their versions used in our algorithm implementation are listed as follows

  • python==3.6+
  • FrEIA==0.2
  • torch==1.7+
  • scikit-learn==0.24.1

Usage

Training

To train the MDN, cVAE, INN and cINN models, please go to their folders and simply run

python main.py

The trained model will be saved into the local folder. New samples can be quickly generated by running

python generator.py

Pretrained Models

We provided the pretained models for MatDesINNe_cINN and MatDesINNe_INN. Generation step can be done via

python generator.py

The generated samples are refined by a localization step with gradient descent, by

python localization.py

Datasets

The datasets used in MatDesINNe are also released here. Please find the DFT dataset of MoS2 in

Simulated_DataSets/MoS2

Citation

@article{fung2021inverse,
  title={Inverse design of two-dimensional materials with invertible neural networks},
  author={Fung, Victor and Zhang, Jiaxin and Hu, Guoxiang and Ganesh, P and Sumpter, Bobby G},
  journal={arXiv preprint arXiv:2106.03013},
  year={2021}
}

License

This project is licensed under the MIT License.

About

Inverse materials design via invertible neural networks

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 97.4%
  • Python 2.6%