登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
Dennis M. Sullivan中code改寫成matlab
发帖
回复
1300
阅读
6
回复
[
资料共享
]
Dennis M. Sullivan中code改寫成matlab
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
0楼
发表于: 2015-11-23 23:25:40
目前正在學習,雖然說c++跟matlab沒差多少,但對新手還是有很多幫助的。也順便放上來請大家幫忙看看有沒有錯或是如何修正比較好
Jx ;"a\KD
FD1D1.1.C
zf;[nz
16> >4U:Y
clear
y>cmKE
clc
6 r-n6#=
KE=200;
$J0~2TV<
ddx = .01; % Cells size
<%#y^_
dt =ddx/6e8; % Time steps
L9YwOSb.
kc = KE/2; % source
8W<)c
t0 = 40.0;
xjbyI_D
spread = 12;
cxJK>%84
T = 0;
#M9D" <pn}
% Initialize
"%f5ltut3
for k=1:KE
2"Uk}Yz|
ex(k) = 0.;
*=If1qZs
hy(k) = 0.;
tD0>(41K
end
Q|H cg|
1 l*(8!_
h=plot(ex);
NUnc"@
ylim(2*[-1,1]);
]3y5b9DuW
nsteps = 1;
|%cO"d^ri
while nsteps>0
gsR9M%mv
n=0;
nIDsCu=A
for n=1:nsteps
#|_UA}Y
T=T+1;
g*c\'~f;
for k=2:KE
]GRq
ex(k)=ex(k)+0.5*(hy(k-1)-hy(k));
<w2NJ~M^
end
t-x"(
pulse=exp(-0.5*(power((t0-T)/spread,2)));
\lakT_x
ex(kc)=pulse;
@[kM1:G-F{
for k=1:KE-1
R6$F<;nw
hy(k)=hy(k)+0.5*(ex(k)-ex(k+1));
_5S$mc8K0
&n ..
;I))gY-n
H!>oLui
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
1
条评分
,
rf币
+2
amy_wang
rf币
+2
希望大家一起交流学习,顶一下!
2015-11-24
离线
amy_wang
微信号:18010874378欢迎加入!
UID :115421
注册:
2015-03-18
登录:
2025-09-30
发帖:
3618
等级:
值班管理员
1楼
发表于: 2015-11-24 09:39:48
希望大家一起交流学习,顶一下!
共
条评分
离线
weclon0726
wusuowei
UID :115468
注册:
2015-03-25
登录:
2020-07-13
发帖:
522
等级:
积极交流四级
2楼
发表于: 2015-11-24 11:12:49
什么程序,没看明白~
共
条评分
今日的恶果源自昨日的恶因
今日的痛苦,寂寞,与孤独
明日会以幸福,快乐报答之
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
3楼
发表于: 2015-11-24 13:41:00
回 weclon0726 的帖子
那本書中1.1.c的程序
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
4楼
发表于: 2015-11-28 13:50:37
4}j}8y2)H
clear
i?9Lf
clc
{+}Lc$O#C
KE=200;
:g_ +{4
ddx = .01; % Cells size
$%t
dt =ddx/6e8; % Time steps
W0hLh<Go
kc = KE/2; % source
qILr+zH
t0 = 40.0;
VlvDodV
spread = 12;
mAKi%)
T = 0;
tJ3s#q6
ex_low_m2=0
2V 'Tt3
ex_low_m1=0
(avaTUMOqy
ex_high_m2=0
JOk`emle
ex_high_m1=0;
/2I("x]
% Initialize
#y%Ao\~kG
for k=1:KE
(>23[;.0
ex(k) = 0.;
),|bP`V
hy(k) = 0.;
L}nc'smvM
end
4f5$^uN$qA
qxh\umm+2
h=plot(ex);
w"J(sVy4
ylim(2*[-1,1]);
hw2Hn
nsteps = 1;
4 -W?u51"
while nsteps>0
euK!JZ
n=0;
)qe o`4+y
for n=1:nsteps
Sj+#yct -
T=T+1;
E>v~B;@
for k=2:KE-1
PX'%)5:q;i
ex(k)=ex(k)+0.5*(hy(k-1)-hy(k));
dno*Usx5d0
end
UI'eD)WR
pulse=exp(-0.5*(power((t0-T)/spread,2)));
so?1lG
ex(kc)=pulse;
k5M(Ve
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
D1 z3E;:
ex(1) = ex_low_m2;
Dr609(zg^
ex_low_m2 = ex_low_m1;
<u\G&cd_tA
ex_low_m1 = ex(2);
CPG %*E*
ex(KE) = ex_high_m2;
(re D
ex_high_m2 = ex_high_m1;
zvWQ&?&o2
ex_high_m1 = ex(KE-1);
Oylw,*%
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
5E8PbV-l
for k=1:KE-1
^&%?Q_]
hy(k)=hy(k)+0.5*(ex(k)-ex(k+1));
>6j`ZWab>
end
>LSA?dy!?
set(h,'ydata',ex);
!j@ 8:j0WY
drawnow;
^,gKA\Wli
end
*']RYu?X
d=XhOC$
end
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
5楼
发表于: 2015-12-17 16:50:15
1.3.m
0M"E6z)9
clear
wJ}8y4O!N
clc
Kh> ^;`h
KE=200;
s`{O-
kstart = 100;
G2rvi=8=
kc = KE/2; % source
1JM~Ls%Z
t0 = 40.0;
K;Ktx>Z/
spread = 13;
bm^ou#]|
T = 0;
>9DgsA`'
ex_low_m2=0;
%$08*bAtB7
ex_low_m1=0;
@ 9uwcM1F
ex_high_m1=0;
& 3gni4@@
ex_high_m2=0;
f%af.cR*
sbVeB%k
epsilon=5;
I4$a#;
% Initialize
t|//oEY
ex(1:KE) = 0.;
_LK(j;6K}
hy(1:KE) = 0.;
0y(d|;':
cb(1:KE) = .5;
4 ClW*l
% Dieletric start
`is6\RH
cb(kstart:KE) = .5/epsilon
k$zDofdfp
CA3.fu3(p
h=plot(ex);
84k;d;
ylim([-1.3,1.3]);
.R1)i-^
nsteps = 1;
'ySWf,Q^
while nsteps>0
k~H-:@
n=0;
Cpr}*A
for n=1:nsteps
Gr_I/+<
T=T+1;
k3Y>QN|q8
ex(2:KE)=ex(2:KE)+cb(2:KE).*(hy(1:KE-1)-hy(2:KE));
r8qee$^M
pulse=exp(-0.5*((t0-T)/spread)^2);
X'5te0v`3
ex(20)=ex(20)+pulse;
</eh^<_~
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
w/R^Vwq
ex(1) = ex_low_m2;
l4; LV7Ji
ex_low_m2 = ex_low_m1;
Z^sO`C
ex_low_m1 = ex(2);
3 . @W.GG8
ex(KE) = ex_high_m2;
q>Y_I<;'g
ex_high_m2 = ex_high_m1;
vUW !
ex_high_m1 = ex(KE-1);
:%Bo)0a9
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
OIN]u{S
hy(1:KE-1)=hy(1:KE-1)+0.5*(ex(1:KE-1)-ex(2:KE));
I++!F,pB
set(h,'ydata',ex);
p7z#4 GW
drawnow;
niFjsTA.Z
end
/];F4AO5
sbRg=k&Ns
end
共
条评分
离线
j0958322080
UID :118959
注册:
2015-11-21
登录:
2016-03-10
发帖:
23
等级:
仿真新人
6楼
发表于: 2016-02-02 11:20:36
clear
4pF%G
clc
"3Ec0U \s
KE=200;
0evG
kstart=100;
Nz2}Ma 2
ddx = .01; % Cells size
ZM<1;!i
dt =ddx/6e8; % Time steps
@%RDw*L(
kc = KE/2; % source
\&SP7~-eq
t0 = 40.0;
?L|@{RS{|
spread = 12;
}UX >O
T = 0;
!Qn:PSk
ex_low_m2=0
K~[/n<ks
ex_low_m1=0
iE$0-Qe[3
ex_high_m2=0
ym-212wl
ex_high_m1=0;
!j\yt
epsilon=4;
w2 CgEJ%
freq_in=1100*1e6
I 5
% Initialize
<;=X7l+
ex(1:KE) = 0.;
U,)+wZJ
hy(1:KE) = 0.;
z]tvy).
cb(1:KE) = .5;
HgbJsv$
% Dieletric start
zVp|%&
cb(kstart:KE) = .5/epsilon
.NZ_dz$c
:I1bGa&I
h=plot(ex);
w)hJ0k
ylim(2*[-1,1]);
$.v5G>-)3
nsteps = 1;
o6'`W2P
while nsteps>0
No j6Ina
n=0;
tk ~7>S
for n=1:nsteps
N@*v'MEko%
T=T+1;
V<+d o|@F
ex(2:KE-1)=ex(2:KE-1)+cb(2:KE-1).*(hy(1:KE-2)-hy(2:KE-1));
T?Gi;ld7
pulse = sin(2*pi*freq_in*dt*T);
&7}-Xvc
ex(2)=ex(2)+pulse;
<TDgv%eg0
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
;5oY)1
ex(1) = ex_low_m2;
+i{&"o4}
ex_low_m2 = ex_low_m1;
89~) nV)
ex_low_m1 = ex(2);
BoFJ8Ukq|
ex(KE) = ex_high_m2;
aY6]NpT
ex_high_m2 = ex_high_m1;
F7a\Luae
ex_high_m1 = ex(KE-1);
yh} V u
%%%%%%%%%%%%%%%%%%%%%%absorbing condition%%%%%%%%%%%%%%%%%%%
*S*;rLH9c
hy(1:KE-1)=hy(1:KE-1)+0.5*(ex(1:KE-1)-ex(2:KE));
1Hzj-u&N/
set(h,'ydata',ex);
Rg+V;C C~
drawnow;
}(ot IqE
end
&EZ28k"x
P oC*>R8
end
共
条评分
发帖
回复