luo 发表于 2005-12-19 11:50

请教校长有限差分法和FDTD程序

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

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

风花雪月 发表于 2005-12-22 08:14

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

三维的看到过,没见过一维二维的

luo 发表于 2005-12-22 17:02

三维的有就写出来嘛

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

xiongxiong 发表于 2005-12-29 11:07

请教

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

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

风花雪月 发表于 2006-1-11 10:22

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

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

clear;clc;

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

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

wl=10;
dx=lambda/wl;
dy=lambda/wl;
pi=3.14159;

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

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

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

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

for i=1E+1;
for j=1:JE+1;
dz(i,j)=0; % z方向电荷密度
ez(i,j)=0; % z方向电场
hx(i,j)=0; % x方向磁场
hy(i,j)=0; % y方向磁场
ihx(i,j)=0;%
ihy(i,j)=0;
iz(i,j)=0; % z方向求和参量,频域卷积转化为时域求和
end;
end;

for i=2E; %
for j=2:JE;

ga(i,j)=1;
end;
end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%PML参数的设置

for i=1E;
gi2(i)=1;
gi3(i)=1;
fi1(i)=0;
fi2(i)=1.0;
fi3(i)=1.0;
end

for j=1:JE;
gj2(j)=1;
gj3(j)=1;
fj1(j)=0;
fj2(j)=1;
fj3(j)=1;
end

for i=1:npml+1; %设置PML层中的参数
xnum=npml+1-i;
xn=0.33*(xnum/npml)^3;
gi2(i)=1.0/(1+xn);
gi2(IE-1-i)=1/(1+xn);
gi3(i)=(1-xn)/(1+xn);
gi3(IE-1-i)=(1-xn)/(1+xn);

xn=0.25*((xnum-0.5)/npml)^3;
fi1(i)=xn;
fi1(IE-2-i)=xn;
fi2(i)=1.0/(1+xn);
fi2(IE-2-i)=1/(1+xn);
fi3(i)=(1-xn)/(1+xn);
fi3(IE-2-i)=(1-xn)/(1+xn);

end

for i=1:npml+1;

xnum=npml+1-i;
xn=0.33*(xnum/npml)^3;
gj2(i)=1.0/(1+xn);
gj2(JE-1-i)=1/(1+xn);
gj3(i)=(1-xn)/(1+xn);
gj3(JE-1-i)=(1-xn)/(1+xn);

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

fj2(i)=1.0/(1+xn);
fj2(JE-2-i)=1/(1+xn);
fj3(i)=(1-xn)/(1+xn);
fj3(JE-2-i)=(1-xn)/(1+xn);

end

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

for t=1:T;
for i=2E; % 为了使每个电场周围都有磁场进行数组下标处理
for j=2:JE;
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));
end;
end; % 电场循环结束

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

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

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

for j=1:JE;
ez(1,j)=0;
ez(IE,j)=0;
end

for i=1E;
ez(i,1)=0;
ez(i,JE)=0;
end

for i=1E; % 为了使每个磁场周围都有电场进行数组下标处理
for j=1:JE-1;
curl_e=ez(i,j)-ez(i,j+1);
ihx(i,j)=ihx(i,j)+fi1(i)*curl_e;
hx(i,j)=fj3(j)*hx(i,j)+fj2(j)*0.5*(curl_e+ihx(i,j));
end;
end; % 磁场HX循环结束
for i=1E-1; % 为了使每个磁场周围都有电场进行数组下标处理
for j=1:JE;
curl_e=ez(i+1,j)-ez(i,j);
ihy(i,j)=ihy(i,j)+fj1(j)*curl_e;
hy(i,j)=fi3(i)*hy(i,j)+fi2(i)*0.5*(curl_e+ihy(i,j));
end;
end; % 磁场HY循环结束
end;
end;

[ 本帖最后由 风花雪月 于 2006-11-12 07:39 编辑 ]

lpma_2000 发表于 2006-2-22 09:16

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

<P>想问一下,在pml的设置中,刚开始的0。33是经验值,那么那个0。25是什么意思啊?</P>

yut_o 发表于 2006-4-25 15:26

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

<P>能解释一下这个程序吗?3q</P>

koufeier 发表于 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

kingfar 发表于 2006-11-15 11:25

这个程序在matlab中有错误啊

xiao3454 发表于 2006-11-26 20:22

同求!!!!!!!!!!!!!!

jasonjaxcao 发表于 2007-4-19 17:20

求助!!!!!

我是搞电磁勘探的,我也想要FDTD程序。
我的邮箱 jason3444151@sohu.com
页: [1] 2
查看完整版本: 请教校长有限差分法和FDTD程序