文档介绍:《地震数值模拟》实验报告
实验时间
2013年6月1--30日
开课单位
地球物理学院
指导教师
XXXXXXXXXXXXXX
实验题目: 叠加地震记录的相移波动方程正演模拟
姓名
学号
班级
勘查四班
专业
勘查技术与工程
院系
地球物理学院
单
项
成
绩
内容理解
写作结构
程序设计
模型设计
计算结果
结果分析
总成绩
实验题目
叠加地震记录的相移波动方程正演模拟
二、实验目的
、水平层状速度结构地质模型的相移波动方程正演模拟基本理论
。
三、实验原理
地震波传播的波动方程
设(x,z)为空间坐标,t为时间,地震波传播速度为v(x,z),则二位介质中任意位置、任意时刻的地震波场为p(z,x,t):压缩波——纵波。则二维各向同性均匀介质中地震波传播的遵循声波方程为
傅里叶变换的微分性质
p(t)与其傅里叶变换的P(w)的关系:
ïïîï ï íì = = ò ò¥¥ -- ¥
地震波传播的相移外推公式
令速度v不随x变化,只随z变化,则利用傅里叶变换微分性质把波动方程(变换到频率-波数域,得:
初始条件和边界条件
按照爆炸界面理论,反射界面震源在t=0时刻同时起爆,此时刻的波场就是震源。根据不同情况,可直接使用反射系数脉冲或子波作震源。如果直接使用反射系数作震源脉冲,则初始条件可表示为:
5、边界处理
(1)边界反射问题
把实际无穷空间区域中求解波场的问题化为有穷区域求解时,左右两边使用零边界条件。物理上假设探区距Xmin与Xmax两个端点很远,在两个端点上收到的反射波很弱。但是,上述条件在实际中不能成立,造成零边界条件反而成为绝对阻止波通过的强反射面。在正演模拟的剖面上出现了边界假反射干涉正常界面的反射。
(2)边界强反射的处理
镶边法、削波法、吸收边界都能有效消除边界强反射。
削波法就是在波场延拓过程中,没延拓一次,在其两侧均匀衰减到零,从而消除边界强反射的影响。假设横向总长度为NX,以两边Lx道吸波为例,有以下吸波公式:
四、实验内容
1、基本要求
(1) 点绕射构造和水平层状速度模型(参数如图1所示)的正演数值模拟;
五、实验步骤
1、参数初始化;
2、形成边界削波数据;
3、波场初始化;
4、Zmax层波场延拓到深度Zmax-1;
5、Zi+1层波场延拓到深度Zi;
6、重复5,从Iz=Nz-1开始,直到Iz=1,得测线上的频率—空间域波场;
7、频率-空间域波场对频率做反傅里叶变换,得时间-空间波场;
8、使用Fimage软件显示所得结果。
六、实验编程
/***************/
#include<>
#include<>
#include<>
#include<>
#include<>
//--- Request功能要求函数说明------
int kkfft(float *,float *,int,int);
int Absorb(int); //削波函数
int Rflct(); //反射函数
int Vlcty(); //速度函数
int WvFld0(); //波长函数
int exp_ikzDz(float *,int,float,int,float,float);//
int PsFrwd();//
int Po2Judge(int);//
-#define Nx 128 //------ --
#define Nt 256
#define Nz 100
#define Dx 20
#define Dt
#define Dz 20
#define pai
int main()
{
int Labs=10; //定义削波边界范围
if(Po2Judge(Nt) !=1) { printf("Nt=%d is not the Power of 2\n",Nt);exit(0); }
if(Po2Judge(Nx) !=1) { printf("Nx=%d is not the Power of 2\n",Nt);exit(0); }
if(Absorb(Labs) !=1) { printf("Absorb is error\n"); exit(0); }
if(Rflct() !=1) { printf("Rflction is error\n"); exit