声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 9926|回复: 21

[经典算法] 请教校长有限差分法和FDTD程序

[复制链接]
发表于 2005-12-19 11:50 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
请问校长有没 有限差分法的程序(拉式方程求解程序,算例)呢?
还有FDTD 一维时域有限差分法(分层介质,反射,透过系数-FFT)或者二维FDTD(算例,方程0的一些程序呢?)
请教指点!

[ 本帖最后由 风花雪月 于 2006-11-12 07:38 编辑 ]
回复
分享到:

使用道具 举报

发表于 2005-12-22 08:14 | 显示全部楼层

回复:(luo)请教校长有限差分法和FDTD程序

三维的看到过,没见过一维二维的
 楼主| 发表于 2005-12-22 17:02 | 显示全部楼层
三维的有就写出来嘛

[ 本帖最后由 风花雪月 于 2006-11-12 07:38 编辑 ]
发表于 2005-12-29 11:07 | 显示全部楼层

请教

请教搂住:给我一个FDTD的程序,一维和二维的。谢谢
www.xiong1983@163.com

[ 本帖最后由 风花雪月 于 2006-11-12 07:38 编辑 ]
发表于 2006-1-11 10:22 | 显示全部楼层

回复:(luo)请教校长有限差分法和FDTD程序

一个二维的FDTD程序
  1. % 本程序实现2维TM波FDTD仿真
  2. % 此程序用PML设置吸收边界条件
  3. % FDTD_2D_kongqi_PML
  4. % 仅喊有Ez,Hx,Hy分量

  5. clear;clc;

  6. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  7. %% 1.初始化
  8. T=200; % 迭代次数
  9. IE=100; %
  10. JE=100;
  11. npml=8; %PML的网格数量

  12. c0=3*10^8; % 波速
  13. f=1.5*10^(9); % 频率
  14. lambda=c0/f; % 波长

  15. wl=10;
  16. dx=lambda/wl;
  17. dy=lambda/wl;
  18. pi=3.14159;

  19. dt=dx/(2*c0); % 时间间隔

  20. epsz=1/(4*pi*9*10^9); % 真空介电常数
  21. epsilon=1; % 相对介电常数
  22. sigma=0; % 电导率

  23. spread=6; % 脉冲宽度
  24. t0=20; % 脉冲高度

  25. ic=IE/2; % 源的X位置
  26. jc=JE/2; % 源的Y位置

  27. for i=1E+1;
  28. for j=1:JE+1;
  29. dz(i,j)=0; % z方向电荷密度
  30. ez(i,j)=0; % z方向电场
  31. hx(i,j)=0; % x方向磁场
  32. hy(i,j)=0; % y方向磁场
  33. ihx(i,j)=0;%
  34. ihy(i,j)=0;
  35. iz(i,j)=0; % z方向求和参量,频域卷积转化为时域求和
  36. end;
  37. end;

  38. for i=2E; %
  39. for j=2:JE;

  40. ga(i,j)=1;
  41. end;
  42. end;

  43. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  44. %PML参数的设置

  45. for i=1E;
  46. gi2(i)=1;
  47. gi3(i)=1;
  48. fi1(i)=0;
  49. fi2(i)=1.0;
  50. fi3(i)=1.0;
  51. end

  52. for j=1:JE;
  53. gj2(j)=1;
  54. gj3(j)=1;
  55. fj1(j)=0;
  56. fj2(j)=1;
  57. fj3(j)=1;
  58. end

  59. for i=1:npml+1; %设置PML层中的参数
  60. xnum=npml+1-i;
  61. xn=0.33*(xnum/npml)^3;
  62. gi2(i)=1.0/(1+xn);
  63. gi2(IE-1-i)=1/(1+xn);
  64. gi3(i)=(1-xn)/(1+xn);
  65. gi3(IE-1-i)=(1-xn)/(1+xn);

  66. xn=0.25*((xnum-0.5)/npml)^3;
  67. fi1(i)=xn;
  68. fi1(IE-2-i)=xn;
  69. fi2(i)=1.0/(1+xn);
  70. fi2(IE-2-i)=1/(1+xn);
  71. fi3(i)=(1-xn)/(1+xn);
  72. fi3(IE-2-i)=(1-xn)/(1+xn);

  73. end

  74. for i=1:npml+1;

  75. xnum=npml+1-i;
  76. xn=0.33*(xnum/npml)^3;
  77. gj2(i)=1.0/(1+xn);
  78. gj2(JE-1-i)=1/(1+xn);
  79. gj3(i)=(1-xn)/(1+xn);
  80. gj3(JE-1-i)=(1-xn)/(1+xn);

  81. xn=0.25*((xnum-0.5)/npml)^3;
  82. fj1(i)=xn;
  83. fj1(JE-2-i)=xn;

  84. fj2(i)=1.0/(1+xn);
  85. fj2(JE-2-i)=1/(1+xn);
  86. fj3(i)=(1-xn)/(1+xn);
  87. fj3(JE-2-i)=(1-xn)/(1+xn);

  88. end

  89. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  90. %% 2.迭代求解电场和磁场

  91. for t=1:T;
  92. for i=2E; % 为了使每个电场周围都有磁场进行数组下标处理
  93. for j=2:JE;
  94. dz(i,j)=gi3(i)*gj3(j)*dz(i,j)+gi2(i)*gj2(j)*0.5*(hy(i,j)-hy(i-1,j)-hx(i,j)+hx(i,j-1));
  95. end;
  96. end; % 电场循环结束

  97. pulse=sin(2*pi*f*t*dt); % 正弦波源
  98. dz(ic,jc)=dz(ic,jc)+pulse; % 软源

  99. for i=1E; % 为了使每个电场周围都有磁场进行数组下标处理
  100. for j=1:JE;
  101. ez(i,j)=ga(i,j)* dz(i,j); %反映煤质的情况都是放到这里的

  102. % iz(i,j)=iz(i,j)+gb(i,j)*ez(i,j) ;
  103. end;
  104. end; % 电荷密度循环结束

  105. for j=1:JE;
  106. ez(1,j)=0;
  107. ez(IE,j)=0;
  108. end

  109. for i=1E;
  110. ez(i,1)=0;
  111. ez(i,JE)=0;
  112. end

  113. for i=1E; % 为了使每个磁场周围都有电场进行数组下标处理
  114. for j=1:JE-1;
  115. curl_e=ez(i,j)-ez(i,j+1);
  116. ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;
  117. hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));
  118. end;
  119. end; % 磁场HX循环结束
  120. for i=1E-1; % 为了使每个磁场周围都有电场进行数组下标处理
  121. for j=1:JE;
  122. curl_e=ez(i+1,j)-ez(i,j);
  123. ihy(i,j)=ihy(i,j)+fj1(j)*curl_e;
  124. hy(i,j)=fi3(i)*hy(i,j)+fi2(i)*0.5*(curl_e+ihy(i,j));
  125. end;
  126. end; % 磁场HY循环结束
  127. end;
  128. end;
复制代码

[ 本帖最后由 风花雪月 于 2006-11-12 07:39 编辑 ]
发表于 2006-2-22 09:16 | 显示全部楼层

回复:(风花雪月)回复:(luo)请教校长有限差分法和...

<P>想问一下,在pml的设置中,刚开始的0。33是经验值,那么那个0。25是什么意思啊?</P>
发表于 2006-4-25 15:26 | 显示全部楼层

回复:(luo)请教校长有限差分法和FDTD程序

<P>能解释一下这个程序吗?3q</P>
发表于 2006-5-13 21:48 | 显示全部楼层

求助!

请问在哪里能找到三维计算传输线或相关的FDTD计算程序呢?万分感谢!!!
发表于 2006-11-12 07:40 | 显示全部楼层
原帖由 风花雪月 于 2005-12-22 08:14 发表
三维的看到过,没见过一维二维的


看帖子http://forum.vibunion.com/forum/thread-13240-1-1.html
发表于 2006-11-12 07:44 | 显示全部楼层
原帖由 lpma_2000 于 2006-2-22 09:16 发表
<P>想问一下,在pml的设置中,刚开始的0。33是经验值,那么那个0。25是什么意思啊?</P>



完全匹配层(PML)是通过在FDTD区域截断边界设置一种特殊的介质层,该层介质的波阻抗与相邻介质的波阻抗完全匹配,入射波将无反射地穿过分解面而进入PML。PML介质应满足阻抗匹配条件,即对于自由空间中的PML中的电导率为σ,磁导率为σm,则σ和σm满足下列关系:

σ/ε0=σm/μ0

而在相对介电常数为εr。的介质中的PML,若要满足与自由空间同样的反射系数,其电导率应为εrσ,则磁导率可由下式求出:

σm=μ0 =μ0

由此,在计算过程中,介质中的PML的电导率是自由空间中的εr倍,磁导率将保持不变。在FDTD的迭代公式中,用εrσ代替σ,用εrε0代替ε0,就可以得到介质中的PML迭代公式。
发表于 2006-11-12 07:44 | 显示全部楼层
原帖由 yut_o 于 2006-4-25 15:26 发表
<P>能解释一下这个程序吗?3q</P>


这个程序注释已经听清楚了,如果还有什么地方不明白请具体指出来
发表于 2006-11-12 07:45 | 显示全部楼层
原帖由 koufeier 于 2006-5-13 21:48 发表
请问在哪里能找到三维计算传输线或相关的FDTD计算程序呢?万分感谢!!!



看帖子http://forum.vibunion.com/forum/thread-13240-1-1.html
发表于 2006-11-15 11:25 | 显示全部楼层
这个程序在matlab中有错误啊
发表于 2006-11-26 20:22 | 显示全部楼层
同求!!!!!!!!!!!!!!
发表于 2007-4-19 17:20 | 显示全部楼层

求助!!!!!

我是搞电磁勘探的,我也想要FDTD程序。
我的邮箱 jason3444151@sohu.com
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-12-29 05:16 , Processed in 0.063513 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表