SimulAI

https://github.ibm.com/simulai/simulai/blob/master/figs/coverage.svghttps://github.ibm.com/simulai/simulai/blob/master/figs/logo_2.svg

A Python library for machine-learning pipelines for computer simulation

https://github.ibm.com/simulai/simulai/blob/master/figs/simulai_diagram.svg

The SimulAI toolkit provides easy access to SOTA methodologies currently used in Physics-Informed Machine Learning (PIML) pipelines as:

  • Physics-Informed Neural Networks (PINNS)

  • Deep Operator Networks (DeepONets)

  • Variational Encoder-Decoders (VED)

  • Koopman AutoEncoders (experimental)

  • Operator Inference (OpInf)

and more.

SimulAI is continuously extended and updated with the contribution of the IBM PIML community.

Installation

Pre-requirement: 3.6 <= python < 3.10

Developer

  1. git clone this repository (git clone git@github.ibm.com:simulai/simulai.git)

  2. setup a python environment (see https://docs.python.org/3.7/library/venv.html)

  3. create a virtualenv: python3 -m venv /path/to/new/virtual/environment or a conda environment: conda create -n <environment_name> python=3.x

  4. activate it: source /path/to/new/virtual/environment/bin/activate or, in conda: conda activate <environment_name>

  5. go to simulai home directory and execute: pip install -r requirements.txt

  6. Share the simulai directory to PYTHONPATH: export PYTHONPATH=<simulai_up_dir>/simulai/

User

For using SimulAI as a python package, do:

pip install -e git+ssh://git@github.ibm.com/simulai/simulai@master#egg=simulai

Or:

git clone git@github.ibm.com:simulai/simulai.git

python setup.py install

For upgrading the package, one can execute:

pip install -e git+ssh://git@github.ibm.com/simulai/simulai@master#egg=simulai==<release ID>

For using MPI, it is necessary to guarantee some MPI distribution is installed (as MPICH or OpenMPI). In case of conda environments, it can be done as seen below:

conda install -c conda-forge mpich gcc mpi4py

Conda (Experimental)

For cloning the SimulAI conda environment do:

conda env create -f requirements/conda/simulai_env.yaml -n <environment_name>

Usage

For a set of examples see SimulAI notebooks: https://github.ibm.com/simulai/simulai_notebooks

For applications related to turbulence modelling see: https://github.ibm.com/Joao-Lucas-Sousa-Almeida/DeepTurbulenceClosure

Documentation

API docs: https://pages.github.ibm.com/simulai/simulai/

Unit testing (for developers)

  1. go to root of the repository

  2. set PYTHONPATH: export PYTHONPATH=.

  3. run pytest: pytest unit_tests/test_dense_net_tf_prediction.py

License

This software is licensed under Apache 2.0.

Contact

  • João Lucas de Almeida (joao.lucas.sousa.almeida@ibm.com)

  • Alberto Nogueira Jr. (albercn@br.ibm.com)

  • Leonardo Martins (leonardo.martins@br.ibm.com)

  • Leonardo P. Tizzei (ltizzei@br.ibm.com)

Credits

This package was created with Cookiecutter and the audreyr/cookiecutter-pypackage project template.

Citation

For referencing this toolkit:

@software{simulai,
  author = {IBM Research},
  title = {SimulAI},
  url = {https://github.ibm.com/simulai/simulai},
  version = {},
  date = {},
}