登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
请牛人指教一下,三维程序中均匀平面波入 ..
发帖
回复
1
2
4155
阅读
12
回复
[
已解决
]
请牛人指教一下,三维程序中均匀平面波入射时连接边界这样加入有问题吗?
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
0楼
发表于: 2008-07-14 16:33:50
里面的计算过程根据葛老师编的书上公式!(前4个式子计算E0,后面两个坐标转换,不知道这样对不对)请教牛人指导,磁场也按同样方法加入!
I;`Ko_i
ie为x方向格子数+1,je,ke分别为y、z方向
~AEqfIx*^&
left_x(i,1,k)存储左侧面ex值,其他的类似!
%GVEY
N>uA|<b,
for i=1:ie
3~cS}N T
for k=1:ke
8O"x;3I9
temp1(1)=i*sin(theta)*cos(psi)+jets*cos(theta)*sin(psi)+k*cos(psi);
}2-[Ki yv
temp1(2)=floor(temp1(1)); %左表面 电场
0ClX
temp1(3)=temp1(1)-temp1(2);
f?/|;Zo4
temp1(4)=temp1(2)+1;
H arFo
left_x(i,1,k)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
Kj~>&WU
left_x(i,1,k)=left_x(i,1,k)*(-sin(psi)*sin(alpha)+cos(theta)*cos(psi)*cos(alpha));
>P<k[vF
left_z(i,1,k)=-left_x(i,1,k)*sin(theta)*cos(alpha);
^Nd|+}
dNR7e
temp1(1)=i*sin(theta)*cos(psi)+jete*cos(theta)*sin(psi)+k*cos(psi);
X{0ax.
temp1(2)=floor(temp1(1)); %右边面 电场
}9L 40)8
temp1(3)=temp1(1)-temp1(2);
`f\5p+!<7R
temp1(4)=temp1(2)+1;
l-DGy# h+z
right_x(i,1,k)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
Hv[d<ylO
right_x(i,1,k)=right_x(i,1,k)*(-sin(psi)*sin(alpha)+cos(theta)*cos(psi)*cos(alpha));
UgF) J
right_z(i,1,k)=-right_x(i,1,k)*sin(theta)*cos(alpha);
%Nwyx;>9^K
end
:6 Hxxh
end
WHlD%u
t!J";l
for i=1:ie
g_rA_~dh
for j=1:je
s[0prm5.
temp1(1)=i*sin(theta)*cos(psi)+j*cos(theta)*sin(psi)+kets*cos(psi);
[_g#x(=
temp1(2)=floor(temp1(1)); %下边面 电场
&Iv\jhq
temp1(3)=temp1(1)-temp1(2);
"7Toc4
temp1(4)=temp1(2)+1;
fK)ZJ_?w,@
bottom_x(i,j,1)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
r~S!<9f
bottom_x(i,j,1)=bottom_x(i,j,1)*(-sin(psi)*sin(alpha)+cos(theta)*cos(psi)*cos(alpha));
ZTQ$Ol+{q
bottom_y(i,j,1)=bottom_x(i,j,1)*(cos(psi)*sin(alpha)+cos(theta)*sin(psi)*cos(alpha));
"o\6k"_c>
w,M1`RsK
temp1(1)=i*sin(theta)*cos(psi)+j*cos(theta)*sin(psi)+kete*cos(psi);
+Z 93`
temp1(2)=floor(temp1(1)); %上边面 电场
c7FfI"7HR
temp1(3)=temp1(1)-temp1(2);
NZfo`iHAN
temp1(4)=temp1(2)+1;
sf.E|]isW
top_x(i,j,1)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
OhSt6&+
top_x(i,j,1)=top_x(i,j,1)*(-sin(psi)*sin(alpha)+cos(theta)*cos(psi)*cos(alpha));
7i-W*Mb:
top_y(i,j,1)=top_x(i,j,1)*(cos(psi)*sin(alpha)+cos(theta)*sin(psi)*cos(alpha));
?c|`R1D
end
k7z(Gbzu
end
bqZ?uvc3
\j,v/C@c-
for j=1:je
M9uH&CD6U
for k=1:ke
kr/1Dsr4
temp1(1)=iets*sin(theta)*cos(psi)+j*cos(theta)*sin(psi)+k*cos(psi);
]ro1{wm!WU
temp1(2)=floor(temp1(1)); %后边面 电场
JL" 3#p}
temp1(3)=temp1(1)-temp1(2);
q3,P|&T
temp1(4)=temp1(2)+1;
"<cB73tY
back_y(1,j,k)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
Y(#d8o}}#
back_y(1,j,k)=back_y(1,j,k)*(cos(psi)*sin(alpha)+cos(theta)*sin(psi)*cos(alpha));
G/LXUhuif
back_z(1,j,k)=-back_y(1,j,k)*sin(theta)*cos(alpha);
n.Ur-ot
*@-q@5r}!
temp1(1)=iete*sin(theta)*cos(psi)+j*cos(theta)*sin(psi)+k*cos(psi);
+Op%,,Db
temp1(2)=floor(temp1(1)); ..
"}]GQt< F
*3w/`R<\
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
1楼
发表于: 2008-07-14 16:35:58
从运行结果来看,不正确,不知道是不是这一步有问题?做过这样程序的一定指教一下小弟!
共
条评分
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
2楼
发表于: 2008-07-15 13:16:09
自己顶一下!
G|PIH#
书中的计算r'的公式是不是错了?其中中间的一项中cos(theta)是不是要改为sin(theta)?又知道的嘛?自己推算的时候感觉书上的错了,有不敢冒昧!望牛人指点!
共
条评分
离线
langren2007
UID :6360
注册:
2007-12-03
登录:
2020-04-07
发帖:
194
等级:
仿真二级
3楼
发表于: 2008-07-15 17:27:04
中间一项本来就是sin(theta)
共
条评分
离线
langren2007
UID :6360
注册:
2007-12-03
登录:
2020-04-07
发帖:
194
等级:
仿真二级
4楼
发表于: 2008-07-15 17:39:25
left_x(i,1,k)=(1-temp1(3))*ein(temp1(2))+temp1(3)*ein(temp1(4));
]kplb0`
left_x(i,1,k)=left_x(i,1,k)*(-sin(psi)*sin(alpha)+cos(theta)*cos(psi)*cos(alpha));
wmcp`8w.
left_z(i,1,k)=-left_x(i,1,k)*sin(theta)*cos(alpha);
\$HB~u%dr
!{~7 )iq
貌似这里也不对,left_x(i,1,k)好像在第二步的时候值已经改变了。不应该用这个迭代吧!
共
1
条评分
wudawolf
rf币
+5
您的回复起提示作用+3~5
2008-07-15
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
5楼
发表于: 2008-07-15 22:09:02
谢了,今天一天确实找了很多毛病,不过你提的这个错误,还没发现呢!茅塞顿开了!不知该说啥了,谢谢您了!o(∩_∩)o...明天再调调试试!
共
条评分
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
6楼
发表于: 2008-07-21 10:39:44
明天就回家了,再来顶顶!
共
条评分
离线
cem-uestc
UID :9061
注册:
2008-03-07
登录:
2019-01-05
发帖:
2575
等级:
荣誉管理员
7楼
发表于: 2008-07-21 22:00:28
有空看看。
共
条评分
欢迎光临
http://www.mwtee.com/home.php?mod=space&uid=13535
离线
sannxi
UID :13088
注册:
2008-05-28
登录:
2012-10-13
发帖:
70
等级:
仿真一级
8楼
发表于: 2008-08-06 01:05:36
我曾经推导过,我想看看你的程序吧
共
条评分
离线
lizi
UID :14737
注册:
2008-07-04
登录:
2008-12-23
发帖:
46
等级:
仿真一级
9楼
发表于: 2008-08-21 11:35:22
clear
1>LquZ+Kj
clc
-rBj-4|"
%***************************************
o>h>#!e
%基本参数
6kk(FVX
%****************************************
XooAL0w
cz=2.99792456e8;
W3#L!&z_wK
murz=4.0*pi*1.0e-7;
7UiU3SUcg
epsz=1.0/(cz*cz*murz);
qIl@,8T
freq0=1.15*1.0e10; %激发源的频率
%$U+?lk}
omega0=2*pi*freq0; %入射波的角速度
~PHG5?X
lambda=cz/freq0; %激发源中心波长
c'C2V9t
psi=45*pi/180; %入射波方向在xoy平面内与x轴的夹角
TOs|f8ay
theta=45*pi/180; %入射波方向与z轴夹角
~EymD *
alpha=45*pi/180; %入射波为线性极化,alpha为极化角
ofV{SeD67
incidentstart=1; %入射波开始位置
GbhaibkO
incidentend=1000;
^[6AOz+L
source=20;
)Lq FZ~B
t=2*pi/omega0; %入射波周期
u&:jQ:[
z=(murz/epsz)^0.5; %特征阻抗
c|XnPqo;f
%***********************************************
E6uIp^E
%格子参数
.#SWfAb2h
%***********************************************
+|N"i~f>j
ie=100;
(]L=$u4
je=100;
G!uxpZ
ke=100;
+Aq}BjD#
ib=ie-1; %x方向格子大小
bk|>a=o3
jb=je-1; %y方向格子大小
.$rcTZ
kb=ke-1; %z方向格子大小
H Zc;.jJ
!q?}[E2
iet=80; %x方向总场大小
;C3](
jet=80; %y方向总场大小
zcc]5>
ket=80; %z方向总场大小
!Wk "a7
ibt=iet-1;
vKxwv YDe
jbt=iet-1;
wcO_;1_ H
kbt=ket-1;
*Zln\Sx
&e{&<ZVR
iets=(ie-iet)/2+1; %x轴方向,总场的开始位置
z]pH'c39
iete=ie-(ie-iet)/2; %x轴方向,总场的结束位置
?V+=uTCq
jets=(je-jet)/2+1; %y轴方向,总场的开始位置
NB[b[1 Ch
jete=je-(je-jet)/2; %y轴方向,总场的结束位置
%%#zO Z
kets=(ke-ket)/2+1; %z轴方向,总场的开始位置
L))(g][;
kete=ke-(ke-ket)/2; %z轴方向,总场的结束位置
k&*=:y}
L3S,*LnA
dx=lambda/100;
IcN|e4t^J+
dt=0.95*dx/(cz*2^0.5);
UCFef,VW
ca=1;
y~w$>7U.
cb=dt/epsz;
dCBJV
cp=1;
.Q7z<Q
cq=dt/murz;
3Dy.mt P
tmax=1000;
j`bOJTBE
%*******************************************
|1EM )zh6
%场的初始场强
Z+4J4Ka^!(
%*******************************************
+aMPwTF:3
ex=zeros(ib,je,ke); %ex场
ZCa?uzeo]
ey=zeros(ie,jb,ke);
Y,{X v
ez=zeros(ie,je,kb);
u+N[Cgh
hx=zeros(ie,jb,kb);
aV1(DZ83
hy=zeros(ib,je,kb);
?6|EAKJ`lK
hz=zeros(ib,jb,ke);
@jfd.? RK!
ein=zeros((incidentend-incidentstart+1),1);
;G?_^ 0
hin=zeros((incidentend-incidentstart),1);
+'l@t bP
temp=zeros(2,1); %处理一维的入射波
q~lmOT~E
temp1=zeros(4,1); %处理连接边界投影
'{EDdlX
back_y=zeros(3,je,ke); %处理后表面的连接边界,其中1为电场2为磁场3临时时储存r’以下同
)7f:hg
back_z=zeros(2,je,ke);
#'8E%4
front_y=zeros(3,je,ke);
e(b*T
front_z=zeros(2,je,ke);
cP-6O42
left_z=zeros(ie,2,ke);
Ma$b(4dB
left_x=zeros(ie,3,ke);
~<aCn-h0
right_z=zeros(ie,2,ke);
zKR_P{W>^
right_x=zeros(ie,3,ke);
z5?xmffB
top_y=zeros(ie,je,2);
$WDa}~j~^
top_x=zeros(ie,je,3);
Vki3D'.7N
bottom_y=zeros(ie,je,2);
L(iWFy1& T
bottom_x=zeros(ie,je,3);
H}d&>!\}F
3a =KgOvp
TMbj]Mso
\JX8`]|&
%***********************************************
z7 }@8F
% Movie initialization
tH$Z_(5
%***********************************************
75a3H`
tview(:,:)=ez(:,:,ke/2);
`5 bHZ
sview(:,:)=ez(:,je/2,:);
(URWicaB
0@z78h=h
subplot(2,1,1),pcolor(tview');
3]T2Zp&;
shading flat;
E0w>c'kH
caxis([-1.0 1.0]);
t6j|q nfw
colorbar;
&BP%~
axis image;
1 #_R`(C{
title(['Ez(i,j,k=50),timestep=0']);
t>^An:xT
xlabel('i coordinate');
9R!.U\sq
ylabel('j coordinate');
RszqDm
Pr" 2d\
subplot(2,1,2),pcolor(sview');
B?k75G
shading flat;
1^vN?#Kt
caxis([-1.0 1.0]);
Rgg(rF=K6
colorbar;
4Vh#Ye:`
axis image;
`CO?} rW
title(['Ez(i,j=50,k),timestep=0']);
0^4Tem@
xlabel('i coordinate');
dQt]r
ylabel('k coordinate');
) "'J]6
94Are<
rect=get(gcf,'Position');
4Xlq Ym
rect(1:2)=[0 0];
Rb?6N
M=moviein(tmax/1,gcf,rect);
4]B(2FR[8
%**********************************************
tONxV`
% 开始时间的
qWdL|8
%**********************************************
zUWu5JI
for n=1:tmax
=MA$xz3
%**********************************
((#|>W\&