MCPcopy Index your code
hub / github.com/ardamavi/PI-rCNN

github.com/ardamavi/PI-rCNN @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
29 symbols 93 edges 4 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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

Core symbols most depended-on inside this repo

make_gif
called by 5
code/Plotting/plotting_procedure.py
create_model
called by 3
code/Model/model_procedure.py
difference_comparison
called by 2
code/Plotting/plotting_procedure.py
get_inital_states
called by 2
code/Model/model_procedure.py
training_pipeline
called by 2
code/Main_Pipeline/main_pipeline.py
plotting_pipeline
called by 2
code/Main_Pipeline/main_pipeline.py
plot_training_loss
called by 1
code/Plotting/plotting_procedure.py
plot_comparisons
called by 1
code/Plotting/plotting_procedure.py

Shape

Method 12
Function 11
Class 6

Languages

Python100%

Modules by API surface

code/Model/model_procedure.py21 symbols
code/Plotting/plotting_procedure.py5 symbols
code/Main_Pipeline/main_pipeline.py2 symbols
code/Training/training_procedure.py1 symbols

For agents

$ claude mcp add PI-rCNN \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact