声波波动方程正演模拟程序总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

声波波动方程正演模拟程序程序介绍:

第一部分:加载震源,此处选用雷克子波当作震源。

编写震源程序后,我将输出的数据复制,然后我用excel做成了图片,以检验程序编写是否正确。以下为雷克子波公式部分的程序: for(it=0;it<Nt;it++)

{

t1=it*dt;

t2=t1-t0;

source[it]=(1.0-2.0*pow(PI*fm*t1,2.0))*exp(-pow(PI*fm*t1,2.0));

fprintf(fp,"%.8f %.8f\n",t1,source[it]);

}

此处,为了成图完整,我用的是t2,而不是 t1,也就是把雷克子波向右移动了一段距离,使主要部分都显示出来。(频率采用的是

30hz)

从图中可以看出程序是正确的,符合理论上雷克子波的波形。第二部分:主程序,编写声波正演模拟算子。

首先定义了各种变量,然后指定震源位置,选择权系数,给速度赋值,然后是差分算子的编写,这是主要部分,最后再进行时间转换,即把n-1时刻的值给n时刻,把n时刻的值给n+1时刻。此处,我编写的是均匀介质声波方程规则网格的正演模拟程序,时间导数采用二阶中心差分、空间导数为2N阶差分精度,网格大小为 200*200,总时间为400。

第三部分:这一部分就是记录文件。

首先记录Un文件,然后记录record文件。

相关文档
最新文档