欢迎来到天天文库
浏览记录
ID:19326974
大小:891.00 KB
页数:27页
时间:2018-10-01
《叠加地震记录的相移波动方程正演模拟数值模拟实验书》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、《地震数值模拟》实验报告实验时间2013年6月1--30日开课单位地球物理学院指导教师XXXXXXXXXXXXXX实验题目:叠加地震记录的相移波动方程正演模拟姓名学号班级勘查四班专业勘查技术与工程院系地球物理学院单项成绩内容理解写作结构程序设计模型设计计算结果结果分析总成绩一、实验题目叠加地震记录的相移波动方程正演模拟二、实验目的1.掌握各向同性介质任意构造、水平层状速度结构地质模型的相移波动方程正演模拟基本理论2.实现方法与程序编制3.由正演记录初步分析地震信号的分辨率。三、实验原理1、地震波传播的波动方程设(x,z)为空间坐标,t为时间,地震波传播速度为v(x,z),则
2、二位介质中任意位置、任意时刻的地震波场为p(z,x,t):压缩波——纵波。则二维各向同性均匀介质中地震波传播的遵循声波方程为2、傅里叶变换的微分性质p(t)与其傅里叶变换的P(w)的关系:ïïîïïíì==òò¥¥--¥1、地震波传播的相移外推公式令速度v不随x变化,只随z变化,则利用傅里叶变换微分性质把波动方程(变换到频率-波数域,得:1、初始条件和边界条件按照爆炸界面理论,反射界面震源在t=0时刻同时起爆,此时刻的波场就是震源。根据不同情况,可直接使用反射系数脉冲或子波作震源。如果直接使用反射系数作震源脉冲,则初始条件可表示为:5、边界处理(1)边界反射问题把实际无穷空
3、间区域中求解波场的问题化为有穷区域求解时,左右两边使用零边界条件。物理上假设探区距Xmin与Xmax两个端点很远,在两个端点上收到的反射波很弱。但是,上述条件在实际中不能成立,造成零边界条件反而成为绝对阻止波通过的强反射面。在正演模拟的剖面上出现了边界假反射干涉正常界面的反射。(2)边界强反射的处理镶边法、削波法、吸收边界都能有效消除边界强反射。削波法就是在波场延拓过程中,没延拓一次,在其两侧均匀衰减到零,从而消除边界强反射的影响。假设横向总长度为NX,以两边Lx道吸波为例,有以下吸波公式:四、实验内容1、基本要求(1)点绕射构造和水平层状速度模型(参数如图1所示)的正演数
4、值模拟;五、实验步骤1、参数初始化;2、形成边界削波数据;3、波场初始化;4、Zmax层波场延拓到深度Zmax-1;5、Zi+1层波场延拓到深度Zi;6、重复5,从Iz=Nz-1开始,直到Iz=1,得测线上的频率—空间域波场;7、频率-空间域波场对频率做反傅里叶变换,得时间-空间波场;8、使用Fimage软件显示所得结果。六、实验编程/*******1.头文件********/#include#include#include#include#include//---2.Functio
5、nRequest功能要求函数说明------intkkfft(float*,float*,int,int);intAbsorb(int);//削波函数intRflct();//反射函数intVlcty();//速度函数intWvFld0();//波长函数intexp_ikzDz(float*,int,float,int,float,float);//intPsFrwd();//intPo2Judge(int);//-#defineNx128//---3.参数设置定义符号-----#defineNt256#defineNz100#defineDx20#defineDt0.00
6、4#defineDz20#definepai3.1415926intmain(){intLabs=10;//定义削波边界范围if(Po2Judge(Nt)!=1){printf("Nt=%disnotthePowerof2",Nt);exit(0);}if(Po2Judge(Nx)!=1){printf("Nx=%disnotthePowerof2",Nt);exit(0);}if(Absorb(Labs)!=1){printf("Absorbiserror");exit(0);}if(Rflct()!=1){printf("Rflctioniserror"
7、);exit(0);}if(Vlcty()!=1){printf("Vlctyiserror");exit(0);}if(WvFld0()!=1){printf("WvFldiserror");exit(0);}if(PsFrwd()!=1){printf("PsFrwdiserror");exit(0);}return1;}intPo2Judge(intN)//////////判断是否是2的倍数/////////////////{intk=0;longLn=0;for(k=0;N-Ln>0;k++){
此文档下载收益归作者所有