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.
近期下载者:
相关文件:
收藏者: