| title | expQRTM Manual |
|---|---|
| date | 2021-11 |
| author | Yufeng Wang |
| mathjax | true |
expQRTM is a CUDA-based code package that implements QRTM_marmousi.cpp for QRTM_crosswell.cpp for MPI and CUDA available.
├── input
│ ├── para_crosswell
│ ├── para_marmousi
│ ├── records_crosswell
│ └── records_marmousi
├── output
│ ├── output_crosswell
│ └── output_marmousi
├── examples
│ ├── plot_crosswell
│ └── plot_marmousi
├── Myfunctions.h
├── CQRTM.cpp
├── CUDAQRTM.cu
├── QRTM_crosswell.cpp
├── QRTM_marmousi.cpp
├── Makefile
└── README.md/input/para_*: accurate velocity and /input/para_marmousi/acc_vp.dat: quasi-Marmousi velocity model;
- /input/para_marmousi/acc_Qp.dat: quasi-Marmousi /input/para_crosswell/acc_vp.dat: synthetic crosswell /input/para_crosswell/acc_Qp.dat: synthetic quasi-Marmousi /input/para_crosswell/sx.txt: the x location of sources in grid;
- /input/para_crosswell/sz.txt: the z location of sources in grid;
- /input/para_crosswell/rx.txt: the x location of receivers in grid;
- /input/para_crosswell/rz.txt: the z location of receivers in grid.
output/output_*: generated results such as seismograms, images of each shot and final stacked images. What we are most interested in is final images, wich includes:
- output/output_*/Final_image_cor_type0.dat: image from acoustic RTM;
- output/output_*/Final_image_cor_type1.dat: image from viscoacoustic RTM without compensation;
- output/output_*/Final_image_cor_type2.dat: image from output/output_*/Final_image_cor_type3.dat: image from output/output_*/Final_image_cor_type4.dat: image from output/output_*/Final_image_cor_type5.dat: image from
examples/plot_*: scripts for plotting final results, which includes:
- examples/plot_*/data: a folder for final results copied from ./output/output_*;
- examples/plot_*/madaimage/SConstruct: plot images, velocity and examples/plot_*/matlabtrace/martrace: plot extracted trace from final migrated images for comparison.
Myfunctions.h: header file for the statement of extern "C" functions defined in CUDAQRTM.cu and C functions defined in CQRTM.cpp;CQRTM.cpp: C functions file;CUDAQRTM.cu: CUDA functions file;QRTM_*.cpp: C main function file;Makefile: excution script.
Geometry: Geometry=0 for surface seismic survey and Geometry=1 for crosswell seismic survey;RTMtype: you can change this flag to generate different migrated images:
int Geometry=0; // Geometry=0 for surface seismic survey
// Geometry=1 for crosswell seismic survey
int RTMtype=0; // RTMtype=0 for acoustic RTM
// RTMtype=1 for viscoacoustic RTM without compensation
// RTMtype=2 for QRTM withou stabilization
// RTMtype=3 for QRTM using explicit stabilization scheme (alpha=1)
// RTMtype=4 for QRTM using explicit stabilization scheme (alpha=2)
// RTMtype=5 for QRTM using explicit stabilization scheme (alpha=8)- explicit satbiliztion parameters for different
RTMtypeconfigurations:
float alphaorder = 2; // the default stabilization order;
float kref = 0.32; // the reference wavenumber for stabilization;
float scaling = 0; // the scaling factor see equation (23) in our paper;
if(RTMtype==2)
{
scaling = 0;
}
if(RTMtype==3)
{
alphaorder = 1;
scaling = 1;
}
if(RTMtype==4)
{
alphaorder = 2;
scaling = 1;
}
if(RTMtype==5)
{
alphaorder = 8;
scaling =1;
}
float sigmafactor = scaling*powf(kref, 2*averGamma+1-alphaorder);expQRTM package is developed under Linux system, which should be equipped with the following environments:
- CUDA environment (cuda-10.2 for example);
- MPI environment (openmpi4 for example);
- Matlab;
- Madagascar.
- Step 1: Confirm the environment in
Makefile, and replace the folder path with your own enviroment path;
#! /bin/sh
# set CUDA and MPI environment path
CUDA_HOME=/usr/local/cuda-10.2 # change this with your own configuration
MPI_HOME=/home/wyf/openmpi4 # change this with your own configuration
INC=-I$(CUDA_HOME)/include -I$(MPI_HOME)/include
LIB=-L$(CUDA_HOME)/lib64 -L$(MPI_HOME)/lib- Step 2: Run the
Makefileby the command line:makefor generating records folder for saving synthetic seismograms; - Step 3: Run
make marmousifor surface seismic imaging on Marmousi model, or runmake crosswellfor crosswell imaging; - Step 4: View generated files in the folder
./ouput/output_*; - Step 5: Plot final results by run
/examples/plot_*/madaimage/SConstructand/examples/plot_*/matlabtrace/martrace.m.
I am Yufeng Wang, an associate research professor from China University of Geosciences, Wuhan. If you have any question about this coda package, please feel free to contact me by Email:wangyufeng@cug.edu.cn.
expQRTM is a CUDA-based code package that implements Q-compensated reverse time migration with explicit stabiization in the time-space domain. The Marmousi model used in this package is available for download from Madagascar MainPage http://www.ahay.org/data/marm2.
Copyright (C) 2021 China University of Geosciences, Wuhan (Yufeng Wang)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTI CULAR PURPOSE. See theGNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.