资源描述:
《弹性波理论基础上机实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、弹性波理论基础上机实验报告姓名:苏晓璐学号:20111001098专业:地球物理课程名称:弹性波理论基础实验时间:2013年12月5口、7LI实验地点:信息楼105指导老师:王海江一、实验目的和要求1.理解并掌握用有限羌分法来解决二维弹性波传播问题;2.了解一些关键参数(dx、dt)的选取及对数值模拟精度的影响,通过改变这些最得到的结果进行对比总结;3.用模拟的方法了解均匀介质与层状介质的
2、11
3、线形态的区别及影响方面;4.用Matlab绘制数值模拟的结果。二、实验内容和原理1、实验原理根据运动平衡方稈的速度一应力模式,如下:dfdxdzdvz
4、It1c、西T9v7■^=(2+2#)于+2寸utdxozde/ac、d几i西==(Q+2〃)寸+2于otozoxdtdtdx运用有限差分法Z时间外推公式:匕(/+/)-比(/)+d"(/)•加有限差分法之函数空间微分近似公式:2^vx(x+dx)-vx(x-dx)xx〜2dx以及Courant准则:c•—<0.625dt对假定参数的均匀介质和层状介质模熨进行Fortran语言程序编辑,通过设定不同的参数对模熨模拟的实际情况进行修改达到模拟效果,设定参数包括dt,nx,nz等在程序屮都有不同的控制作用,对于均匀模型和层状介质模型都冇不同的代码计
5、算;再通过matlab绘制传播过稈图来进行分析解释与评价。2.1均匀介质模拟实验1.改变nx,nz,dt设置点源及运行Fortran得到结果在Matlab上输岀(沿一侧线上时程图、整个工作区域内波动传播动曲);2.计算精度分析:通过分别改变nx,nz或dt分析距源点距离固定的某一点上观测到的震动时程区别,需改动数据变化如下表:(dt修改在Par文件屮,nx,nz修改在params,h文件屮)图表1:精度分析数据修改表对照组模型1模型2模型3模型4模型5模型6nx256512128256256256256nz2565121282562562562
6、56dt0.350.350.350.150.250.450.552.2多层介质模拟实验通过修改Par文件屮的变最model-type为2(此实验屮设置为三层介质情况)图表2:三层介质参数vsOvpOrhoOz第一层1732300025000-50第二层28875000250050-100第二层346460002500100-2.3平面波模拟实验衣文件init.f90'
7、«修改農源,把点震源修改成线慝源,得到平面波的传播。三、主要仪器设备1.软件Fortran90编译器(MicrosoftFortranPowerStation)1套2.Matla
8、b7.11.0(R2010b)1套3.PC机(酷睿i3,2.1GHz)1台四、作方法与实验步骤4.1不同实验内容的模型修改:Harams,h程序参数设置代码:(只需修改nx和nz的值,程序其他出无需修改,对应的将nx、nz分别改成128、256、512模拟不同的模型)!globalspecifiactionsparameter(nx=512,nz=512)!computationaldomainofoursimulation(nxFzpointscalculated)parameter(maxnt二20000)!upperboundinthen
9、umberoftimestepsparameter(maxnr=50)Supperboundinthenumberofreceiversdoubleprecisionpiparameter(pi=3.14159265358979)!trigonometricalconstantpiparameter(nabsh5)Par文件用记事本打开如下:(通过修改dt(二.15—25…35、.45、.55)达到时间修改,通过改变model-type(1代表均匀介质,2代表层状介质)改变模型,改变izrec(=60.120.240)改变采样位置及绘制图线位置
10、)parametresseisfile=./tools/testmodelfile二nt=400dt(ms)二.55tord=4nop=4Modelmodeljype=2vsO=2887.vpO=5000.rhoO=2500.Sourcexxs=850.zzs=850.sourcejype=3srcfreq(Hz)=50.alpha=25.Receivers-—xa=825xe=925irec=5izrec=240isamp=1ssamp=10JUNKibound=4icheck=5xmax=2000.zmax=2000.对于在多层介质屮的速度
11、悖度等参数的修改在model.90文件屮subroutinefd.modelineludeCommon.h1realx(nx,nz)realz(nx,