ps2d

所属分类:数学计算
开发工具:Fortran
文件大小:189KB
下载次数:142
上传日期:2012-04-23 13:57:13
上 传 者skyey
说明:  利用伪谱法进行二维弹性波模拟,更加详细的介绍见英文描述,对于做波场模拟的同学很有用。
(This is a very simple code for elastic wave simulation in 2D using a Pseudo-Spectral Fourier method Authors: Heiner Igel General: Wave propagation Code level: Training Language: Fortran 90/95 or later Associated groups: Digital Library Supercomputing: Serial Grid dimensions: 2D Coordinate system: Cartesian Method: Pseudospectral method Tested operating system: Linux, Windows Rheology: Elastic isotropic Boundary conditions: Free surface (planar), Absorbing boundaries, Circular boundaries Grid type: Rectangular, regular Solution type: Numerical Total hits: 7157 )

文件列表:
ps2d\bin (0, 2005-11-23)
ps2d\doc (0, 2005-11-23)
ps2d\examples (0, 2005-11-23)
ps2d\examples\Par (653, 2005-11-23)
ps2d\output (0, 2005-11-23)
ps2d\src (0, 2005-11-23)
ps2d\src\common.h (1035, 2005-11-23)
ps2d\src\params.h (162, 2005-03-09)
ps2d\src\ps_check.f (2431, 2005-03-10)
ps2d\src\ps_deriv.f (25556, 2005-03-10)
ps2d\src\ps_evolution.f (3196, 2005-03-10)
ps2d\src\ps_init.f (2162, 2005-03-10)
ps2d\src\ps_input.f (857, 2005-03-10)
ps2d\src\ps_main.f (720, 2005-03-10)
ps2d\src\ps_model.f (794, 2005-03-10)
ps2d\src\ps_oper.f (1093, 2005-03-09)
ps2d\src\ps_output.f (1109, 2005-03-09)
ps2d\test (0, 2005-11-23)
ps2d\test\Partest (654, 2005-11-23)
ps2d\test\Test_Sesimograms.fig (71065, 2005-11-23)
ps2d\test\Test_Sesimograms.jpg (106891, 2005-11-23)
ps2d\test\test_z (142800, 2005-11-23)
ps2d\tools (0, 2005-11-23)
ps2d\tools\show_seis.m (1195, 2005-03-09)
ps2d\tools\show_snaps.m (1419, 2005-03-09)
ps2d (0, 2005-11-23)

Minimal documentation on the 2D Fourier code: Author: Heiner Igel Date: March 2005 Last change: March 10, 2005 ======================================== General code description: This code is a direct implementation of the code described by Wang and Carcione (1993), howver using - instead of Chebyshev derivatives simple Fourier derivatives df=IFFT(ik*FFT(f)) It solves the elastic wave equation in 2D. ======================================== File description: ps_main: main file with time extrapolation loop ps_input: reads parameters from standard input (ps2d.exe < Par) ps_init: initialization of various things ps_model: model initialization ps_evolution: numerical solution of wave equation, time exatrpolation, space derivatives, Hookes law ps_output: outpuit of snaps and seismograms ps_check: paramter check before simulation ps_deriv: subroutine to calculate derivatives ======================================== Directories: /src contains source /bin contains executable /examples contains parameter file /output contains output /tools contains matlab script to visualize snaps and seismograms /doc contains documentation/readme /output contains simulation output ======================================== Compilation: No makefile is given as code is compiled with Visual Fortran, tested only under Windows, executable should sit in /bin ======================================== Execution: run in /examples using ../bin/ps2d.exe < Par will create output in ../output ======================================== Parameters: An example of a parameter file is given below with comments parametres ================== seisfile =..\output\test "test" is the root name for output files modelfile = may be used to input model nt =200 number of time steps dt (ms) =.5 time increment tord =4 time order (1 - not stable, 2 or 4) Model ----------------------- model_type =1 flag for model type 1- homogeneous vs0 =2887. velocities for homogeneous model vp0 =5000. rho0 =2500. Source ---------------------- xxs =900. source location x (in m) zzs =900. same in z source_type =4 flag for source type (1-fx, 2-fz, 3-expl, 4-sxz) srcfreq(Hz) =100. Source frequency in Hz alpha =25. half-width of source Gaussian in m Receivers------------------------------ xa =14 index of first receiver in x xe =65 index of last receiver in x irec =1 reciever increment along profile izrec =0 index of receiver in z isamp =1 sampling rate of seismogram output (in dt's, dont change) ssamp =10 snapshot sampling in time steps JUNK------------------------------ ibound =4 flag for boundaries (1-free surfaces, 2-absorb, 3-freesurf+absorb, 4-circular icheck =5 output rate in time steps of min/max values xmax =1000. physical dimension [0,xmax] in m zmax =1000. same for z ======================================== Output: The following files will be created named with the root given in the parameter file e.g. "test_..." _gauss - spatial gauss function _rec - # of receivers and offsets _src - source time function _x - x component seismograms in Ascii nt*nr _z - same for z component _x_snp - snapshots ns*nx*nz _z_snp - same for snaps ======================================== Tools: in /tools there are two matlab programs show_snaps.m allows you to visualize snapshots show_seis.m the seismograms ======================================== Problems: Careful, the source input is not scaled so the absolute amplitudes are meaningless ======================================== References: Carcione, J.M., Wang, J.P., 1993. A Chebyshev collocation method for the elastic wave equation in generalized coordinates, Comput. Fluid. Dynam. J., 2, 269-290. Carcione, J. M. (1994). The wave equation in generalized coordinates, Geophysics . 59, 1911-1919. Tessmer, E., Kosloff, D., 1994. 3-D elastic modelling with surface topography by a Chebyshev spectral method, Geophysics, 59, 4***-473.

近期下载者

相关文件


收藏者