📄 upweik.par.lib
字号:
UPWEIK - Upwind Finite Difference Eikonal Solvereikpex - Eikonal equation extrapolation of times and derivatives in polar coordinatesray_theoretic_sigma - difference equation extrapolation of "ray_theoretic_sigma" in polar coordinatesray_theoretic_beta - difference equation extrapolation of "ray_theoretic_beta" in polar coordinateseiktam - Compute traveltimes t(x,z) and propagation angle a(x,z) via eikonal equation, and ray_theoretic_sigma sig(x,z), incident angle bet(x,z) via Crank-Nicolson MethodFunction Prototypes:void eikpex (int na, float da, float r, float dr, float sc[], float uc[], float wc[], float tc[], float sn[], float un[], float wn[], float tn[]);void ray_theoretic_sigma (int na, float da, float r, float dr, float uc[], float wc[], float sc[], float un[], float wn[], float sn[]);void ray_theoretic_beta (int na, float da, float r, float dr, float uc[], float wc[], float bc[], float un[], float wn[], float bn[]);void eiktam (float xs, float zs, int nz, float dz, float fz, int nx, float dx, float fx, float **vel, float **time, float **angle, float **sig, float **bet)eikpex:Input:na number of a samplesda a sampling intervalr current radial distance rdr radial distance to extrapolatesc array[na] of slownesses at current ruc array[na] of dt/dr at current rwc array[na] of dt/da at current rtc array[na] of times t at current rsn array[na] of slownesses at next rOutput:un array[na] of dt/dr at next r (may be equivalenced to uc)wn array[na] of dt/da at next r (may be equivalenced to wc)tn array[na] of times t at next r (may be equivalenced to tc)ray_theoretic_sigma:Input:na number of a samplesda a sampling intervalr current radial distance rdr radial distance to extrapolateuc array[na] of dt/dr at current rwc array[na] of dt/da at current rsc array[na] of ray_theoretic_sigma at current run array[na] of dt/dr at next rwn array[na] of dt/da at next rOutput:sn array[na] of ray_theoretic_sigma at next r ray_theoretic_beta:Input:na number of a samplesda a sampling intervalr current radial distance rdr radial distance to extrapolateuc array[na] of dt/dr at current rwc array[na] of dt/da at current rbc array[na] of ray_theoretic_beta at current run array[na] of dt/dr at next rwn array[na] of dt/da at next rOutput:bn array[na] of ray_theoretic_beta at next r eiktam:Input:xs x coordinate of source (must be within x samples)zs z coordinate of source (must be within z samples)nz number of z samplesdz z sampling intervalfz first z samplenx number of x samplesdx x sampling intervalfx first x samplevel array[nx][nz] containing velocitiesOutput:time array[nx][nz] containing first-arrival timesangle array[nx][nz] containing propagation anglessig array[nx][nz] containing ray_theoretic_sigmasbet array[nx][nz] containing ray_theoretic_betasNotes:eikpex:If na*da==2*PI, then the angular coordinate is wrapped around (periodic). This function implements the finite-difference method described by BillSymes (Rice University) and Jos van Trier (Stanford University) in a(1990) preprint of a paper submitted to Geophysics.ray_theoretic_sigma:This routine implements the Crank-Nicolson finite-difference method withboundary conditions dray_theoretic_sigma/da=0.ray_theoretic_beta:This function implements the Crank-Nicolson finite-difference method, with boundary conditions dray_theoretic_beta/da=1. eiktam:The actual computation of times and ray_theoretic_sigmas is done in polar coordinates,with bilinear interpolation used to map to/from rectangular coordinates.Authors: CWP: Zhenuye Liu, based on code by Dave Hale, 1992.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -