Skip to content

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

Notifications You must be signed in to change notification settings

ardamavi/PI-rCNN

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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}
}



About

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

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages