一维fdtd模拟程序C语言_第1页
一维fdtd模拟程序C语言_第2页
一维fdtd模拟程序C语言_第3页
一维fdtd模拟程序C语言_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、.#include H-.88 #include j53Td. #include wwHV;i PKM8MY vo #define NUM_of_ZAXIS 400 nE3m) 2U;ImC1g float gauss_pulse(float T,float t0,float spread); IZkQmA= L: ;L/ int file_save(float* data,char* filename); m:7$oq| ,!s;o6|*y sSMcF2I WU -_Y void main() _8CE|Cn (hn+hc float exNUM_of_ZAXIS,hyNUM_of_ZAXI

2、S; O!D0 hW4 float obj_parametersNUM_of_ZAXIS4;/*模型参数设置 */ ng,qEI;Z ?X1vU0 c float dt,ddz; %8)GuxG* float source,T; 4|ryt4B int pos_driv_source; P| o_/BS int i,n,Nsteps; |_/i/H int e_low,e_high; ZqHh$QBD 9 HG2iy Vu DSjh 4+t9SD FILE* fp; #:Bd8PS 4#$gTc NGD?. (G /*初始化各个变量 */ 83dwr;- Pi=3.14159; / c1=OJ

3、 Epsilon=8.85e-12; =U sl Mu=4*Pi*1e-7; NPws uFDJRQJ var_cb=dt/Epsilon; lP*_dt9 var_cp=0.5*h_sigma*dt/Mu; okfGd= & var_cq=dt/Mu; :_;9&H9ha hsIC5s3 ca=(1-var_ca)/(1+var_ca); 4.|-?qG cb=var_cb/(1+var_ca); sWw cp=(1-var_cp)/(1+var_cp); #9aB3C cq=var_cq/(1+var_cp); 07WZ w1(; 4.)hCb var_border=(C*dt-ddz)/

4、(C*dt+ddz); /i;/$ o ex_high_m1=0; :7 .a._WZF ex_low_s1=0; =ML6jr ex_low_s2=0; 4naL2 Y! ex_high_s1=0; z(14250 ex_high_s2=0; 6.? Ke8iC 8z&7wO / 上 ,下 边界位置 S#+Dfa8X e_low=20; p%) 1(R8qM e_high=380; RRh0G* k.nq, pos_driv_source=200; FHpS?htRy ihCa $ +92/0 for(i=0;iNUM_of_ZAXIS;i+) sE87Lz pyA;%vJn ex=0; t

5、r8a_CV hy=0; pv$ o obj_parameters0=1; ETk4I obj_parameters1=1; 0) u#,#z_ /2 V printf(Nsteps-); nPlg5&E scanf(%d,&Nsteps); fc,LFvZ +5AWX,9,- for(n=0;nNsteps;n+) jL3/0o .W;,.l T+=1; d v8q&_ P*=M?:Jb, / 计算 Ex Fa |Y for(i=e_low+1;ie_high;i+) iXtL:,i x:wv#Wh:l7 / 采用葛德彪书中的一维FDTD 公式 TR7j? ex=CA*ex-CB*(hy-h

6、yi-1)/ddz; 5t=7- 7XM:4whw $ kAal26z if(T200) b8FSVV 7 obzdH:S expos_driv_source+=gauss_pulse(T,40,12); K;L6a A# $K12Wcp- Xtk3 b)(si/ TxA%0 /Mur 边界吸收 OCN: 52P0T 7X$+S ex_low_s2=ex_low_s1; Q$)z_jai ex_low_s1=exe_low+1; 0Qr|!B:+9) 36QZV*P ex_high_m2=ex_high_m1; 1$n! Lj=5 ex_high_m1=exe_high; n2N:rP &BO

7、G&ot ex_high_s2=ex_high_s1; ,O|#?G ex_high_s1=exe_high-1; 0RF:9x2 fq(3uEnC 2 #_ i_j exe_low=ex_low_s2+var_border*(exe_low+1-ex_low_m2); HV*=Qi exe_high=ex_high_s2+var_border*(exe_high-1-ex_high_m2); -TgA*_5 MTkrv(G /行波时延法 mNQ*YCq. /exe_high=0.5*(ex_high_m2+ex_high_s2); Ps7cl /exe_low=0.5*(ex_low_m2+ex_low_s2); (iB+c +3K)9H / 计算 Hy t+z r3 ;|D8D6 for(i=e_low;ie_high;i+) 2 X5YN; e$4$G / 存储数据 95-ptO1 (6 e$j fp=fopen(Ex,w); V38v2LI for(i=0;iUl0&Mf? fclose(fp); vw /X PtT$#hx fp=fopen(Hy,w); kz?m 1 for(i=0;i= Mg8 3kS M*#UV2 float gauss_pulse(float T,float t0,float spread) P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论