Skip to content

Latest commit

 

History

History
154 lines (118 loc) · 4.77 KB

README.md

File metadata and controls

154 lines (118 loc) · 4.77 KB

PI-rCNN

An unsupervised latent/output physics-informed convolutional-LSTM network for solving partial differential equations using peridynamic differential operator


Arda Mavi 1
Ali Can Bekar 1
Ehsan Haghighat 2
Erdogan Madenci 1

1 University of Arizona, Tucson, AZ
2 Massachusetts Institute of Technology, Cambridge, MA

Paper: arXiv:2210.12177

Burgers’
Equation
λ − ω Reaction-Diffusion
Equation
Gray-Scott
Equation







README Contents:



Running the Code

  • Fulfill the environment requirements, see Envoriment Versions
  • Download the Repository
  • Create a Dataset/ folder under code.
    Save the dataset (see Data Generation section) in it with name dataset.npy as Numpy file.
  • Change directory to code/Main_Pipeline
  • Run main pipeline using python main_pipeline.py or see Sample SLURM Job
    Trained model parameters will be saved into code/Main_Pipeline/Checkpoints/Model
    All the train and test figures will be saved into code/Main_Pipeline/Main_Outputs/Figures


Modules

Detailed module documentations can be found in the module files, e.g. :

code/Plotting/plotting_procedures.py

Main Pipeline:

File: code/Main_Pipeline/main_pipeline.py
Creating, training, and testing model and plotting the figures.

Pipeline options:

  • python main_pipeline.py -m train creates and trains the model.
  • python main_pipeline.py -m plot plots the figures using existed model.
  • Use -m train plot arguments together or leave blank to run both pipeline.

PDDO Kernels:

Folder: code/PDDO_Kernels
Keeps Peridynamic kernel files as .mat format.

Model Procedures:

File: code/Model/model_procedure.py
Prepares model and loss functions.

Training Procedure:

File: code/Training/training_procedure.py
Model training procedure.

Plotting Procedure:

File: code/Plotting/plotting_procedure.py
Plotting of training loss, several comparison figures, and GIF animations of data during time.


Data Generation

  • Burgers’ Equation : Repo
  • λ − ω Reaction-Diffusion Equation : Repo
  • Gray-Scott Equation : Repo


Envoriment Versions

  • CentOS 7
  • Anaconda 3
  • Conda 4.9.2
  • Python 3.6.13
  • * CUDA 11.6
  • * CuDNN 8.2.1.32
  • * Cudatoolkit 10.2.89
  • Necessary Python modules can be installed using pip install -r library_requirements.txt command.

* Optional for CPU usages. Required to take advantage of GPU and multi-GPU feature.


Hardware

  • Device Model: Penguin Altus XE2242
  • CPU: AMD EPYC 7642 - 48 Cores - 2.4 GHz
  • Memory: 4 GB
  • * GPU: NVIDIA V100S - 32 GB

* Due to a bug we had with the TensorFlow library, only 22.4 GB out of 32 GB was allocated as the maximum GPU memory limit while testing GPU features.


Sample SLURM Job

Sample SLURM Job script can be found with name slurm_job.sh under the Sample_Slurm_Job/ directory.
Caution: Change the <...> parts.


Cite as

@misc{mavi2022unsupervised,
      title={An unsupervised latent/output physics-informed convolutional-LSTM network for solving partial differential equations using peridynamic differential operator},
      author={A. Mavi and A. C. Bekar and E. Haghighat and E. Madenci},
      year={2022},
      eprint={2210.12177},
      archivePrefix={arXiv},
      primaryClass={cs.LG}
}