Skip to content

DeepWave-KAUST/Separation-PINN-pub

Repository files navigation

LOGO

Reproducible material for Separation-PINN: Seismic P- and S-waves mode separation with physics informed neural networks - Xinru Mu, Shijun Cheng, and Tariq Alkhalifah.

Project structure

This repository is organized as follows:

  • 📂 asset: folder containing logo;
  • 📂 elastic_wave_modeling: folder generating the elastic wavefield;
  • 📂 prepare_input_data: folder generating input data for training PINN based on the elastic wavefield;
  • 📂 PINN_training/xp_xs_component/code: folder contains Python scripts for separating P- and S-waves of the horizontal components;
  • 📂 PINN_training/zp_zs_component/code: folder contains Python scripts for separating P- and S-waves of the vertical components;
  • 📂 PINN_training/plot_xp_xs: folder contains MATLAB scripts for plotting separated P- and S-waves of the horizontal components;
  • 📂 PINN_training/plot_zp_zs: folder contains MATLAB scripts for plotting separated P- and S-waves of the vertical components

Scripts

The following scripts are provided:

  • 📙 wpfbos.m: script is located in elastic_wave_modeling and is used for performing elastic forward modeling;
  • 📙 build_input.m: script is located in prepare_input_data and is used for generating the input data for training PINN;
  • 📙 train_x.py: script is located in PINN_training/xp_xs_component/code and is used for training PINN model to separate P- and S-waves in the horizontal component;
  • 📙 train_z.py: script is located in PINN_training/zp_zs_component/code and is used for training PINN model to separate P- and S-waves in the vertical component

Getting started 👾 🤖

To ensure reproducibility of the results, we suggest using the sepapinn.yml file when creating an environment.

Simply run:

sh install_env.sh

It will take some time, if at the end you see the word Done! on your terminal you are ready to go.

Remember to always activate the environment by typing:

conda activate sepapinn

Running code

Once you have downloaded the files and set up the environment, you can directly run the execution scripts in folders PINN_training/xp_xs_component/code and PINN_training/xp_xs_component/code to train the Separation-PINN model by using the following commands:

sh train_exe_x
sh train_exe_z

Note: While training the PINN, we simultaneously perform data prediction and save the predicted results in the output folder under the current directory.

Disclaimer: All experiments have been carried on a Intel(R) Xeon(R) CPU @ 2.10GHz equipped with a single NVIDIA GEForce A100 GPU. Different environment configurations may be required for different combinations of workstation and GPU.

Cite us

@article{mu2025separationpinn,
  title={SeparationPINN: Physics-informed neural networks for seismic P-and S-wave mode separation},
  author={Mu, Xinru and Cheng, Shijun and Alkhalifah, Tariq},
  journal={IEEE Transactions on Geoscience and Remote Sensing},
  year={2025},
  publisher={IEEE}
}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors