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 |
---|---|---|
- Running the Code
- Modules -- Main Pipeline -- Pipeline options -- PDDO Kernels -- Model Procedures -- Training Procedure -- Plotting Procedure
- Data Generation
- Envoriment Versions
- Hardware
- Sample SLURM Job
- Cite as
- Fulfill the environment requirements, see Envoriment Versions
- Download the Repository
- Create a
Dataset/
folder undercode
.
Save the dataset (see Data Generation section) in it with namedataset.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 intocode/Main_Pipeline/Checkpoints/Model
All the train and test figures will be saved intocode/Main_Pipeline/Main_Outputs/Figures
Detailed module documentations can be found in the module files, e.g. :
code/Plotting/plotting_procedures.py |
---|
File: code/Main_Pipeline/main_pipeline.py
Creating, training, and testing model and plotting the figures.
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.
Folder: code/PDDO_Kernels
Keeps Peridynamic kernel files as .mat
format.
File: code/Model/model_procedure.py
Prepares model and loss functions.
File: code/Training/training_procedure.py
Model training procedure.
File: code/Plotting/plotting_procedure.py
Plotting of training loss, several comparison figures, and GIF animations of data during time.
- 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.
- 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 script can be found with name slurm_job.sh
under the Sample_Slurm_Job/
directory.
Caution: Change the <...>
parts.
@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}
}