登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
求助各位大侠:有关一维自由空间中连接边 ..
发帖
回复
1379
阅读
0
回复
[
求助
]
求助各位大侠:有关一维自由空间中连接边界处引入入射波问题
离线
朱光宇
UID :21885
注册:
2008-11-23
登录:
2014-10-29
发帖:
33
等级:
仿真新人
0楼
发表于: 2009-12-16 22:06:50
我想在一维自由空间连接边界处沿+Z方向引入入射波,空间范围为(-1000:1000),连接边界设在Z=-100处,仿真结果入射波确实在Z=-100处产生了,但入射波沿正反方向传播,调了很久都调不出来,程序在下面,用fortran写的,请各位大侠帮帮忙,帮我看看问题出在哪?先谢谢了!
&qI5*aQ8T
.HyiPx3^
7/OOq=z
. ;@)5"
u/:Sf*;?
,l?76g
module variant
Lp]C![\>U
a3 _0F@I
parameter(za=-1000) !计算的空间范围
#/v_h6$
parameter(zb=1000)
a5~C:EU0
FivaCNA
integer i,t !循环变量:空间循环,时间循环
AA& dZjz
4a \+o]
real Ex(za:zb) !定义场量
e"H+sM26-
real Hy(za:zb)
?QIQ,?.
real Ein(-1000:1000)
I8%'Z>E(
real Hin(-1000:999)
!zJ67-G
real EBin(4)
; o@`l$O
real dt,dz,pi,n,f !时间步长,空间步长,圆周率,总的时间步,信号频率
H=BR -
real c,e0,u0,ur !光速,介电常数,磁导率,相对磁导率
j83Y'VJJC
real er(za:zb) !相对介电常数
,G/X"t ~
real t0 ,spread
fu "z%h]
real dzt !中间变量
.6/p4OR|
BMj&*p8R
real Ex1(za:za+1) !处理吸收边界
"u]Fl+c
real Ex2(zb-1:zb)
z`:^e1vG
7<Js'\Z
end module
<fxjj
(X7yNIPfA
program main
Pk]9.e1_
d\Z4?@T<5
use variant
! tPK"k
implicit none
[3NV #
`V_/Cz_}D
call ini()
@dKf]&h%%
3Co>3d_
do t=0,n
NGQIoKC
]{U*+K%,J
call source()
g(r'Y#U
call caculate_H()
dZYJ(7%
call conection_H ()
b`Ek;nYek
call caculate_er()
n$0)gKN7
call caculate_E()
.MPOUo/e
call conection_E ()
8=Y|B5
call mur()
1'pQ,
call putout2()
]G&\L~P
end do
K:50?r_-6
~4` ec
call putout()
ZU@jtqq
XBt0Ez
end
;S27m]Q?
*ik)>c_
VzM@DM]= ~
subroutine ini() !初始化变量的值
"lzg@=$|)
$/#)
use variant
M_ cb(=ey
implicit none
m/B9)JzY
|wn LxI
c=3.0e8
95&sFT C
dz=0.0012
jtpN o~O
n=1200
cW/~4.v$
f=2.45e9
IX3yNTW"L
pi=3.1415926
,ZW.P`
e0=8.854e-12
Z:gsguX
u0=pi*4.0e-7
P3FpU<OBwp
er=1
s"F,=]HQ!G
t0=40
;ypO'
spread=12
!m5\w>
ur=1
yXl.Gq>]{
|Qq'_4:
dzt=c/dz !由COURANT稳定条件确定时间步
8-6{MJ?F
dt=1.0/sqrt(dzt*dzt)
2qR@:^
/!8:/7r+W
Ex=0 !初始场值为0
F qyJ*W\1
Hy=0
dsoRPX']=
Ex1=0 !MUR边界储存变量初始为0
kZEy
Ex2=0
JkEQ@x
#^w 1!xXD
Ein=0
(P]^5D
Hin=0
0vNM#@
EBin=0
1L9 <1
end
@,$HqJ
]>!_OCe&
subroutine caculate_er() !计算时变的相对介电常数
^w}Ib']X
o|.me G
use variant
L| qY
implicit none
d-&dA_?
1@@]h!>k:
do i=20,zb
n{* [Y
er(i)=1
~2;y4%K
end do
p)]^>-L
?&^l8gE
end
6UP3Ij
LYKm2C*d
subroutine conection_E () !E连接边界
{lw ec"{
I`lH6hHp
use variant
*Y>'v%
implicit none
w5R9\<3L
u-cC}DP
.qP zd(<T7
Ex(-100)=Ex(-100)+dt/dz/e0*Hin(-101)
3CL:VwoW
2a}_|#*
end
TK1MmL
Nq1RAM
subroutine conection_H () !H连接边界
O4 URr
7cSvAX0Z.
use variant
:{i mRa-
implicit none
}z@hx@N/
IiU|@f~k
Hy(-101)=Hy(-101)+dt/dz/e0*Ein(-100)
~.SU$
Pl ,M>IQ
end
t/c^hTT
tjL#?j
7P(:!ce4-
subroutine caculate_E() !电场递推
aMD?^
+o5rR|)M+
use variant
9$t@Gmn
implicit none
cZi&L p
_J`M>W)8
do i=za+1,zb-1
D^4V"rq
Ex(i)=Ex(i)-dt/dz/(e0*er(i))*(Hy(i)-Hy(i-1))
UcIR0BYa
end do
<m\TZQBD
v8=MO:>{R
end
'?[msX"aqa
n6dg
U_04QwhK7
subroutine caculate_H() !磁场递推
P=g+6-1
*tqeq y-X
use variant
XiUsaoQm3
implicit none
{GY$J<5=
'/@VG_9L]
do i=za+1,zb-1
w%"q=V
Hy(i)=Hy(i)-dt/dz/(u0*ur)*(Ex(i+1)-Ex(i))
+<#-52br\
end do
}:Akpm
end
hTqJDP"&F
iE{ SqX
|MGw$
subroutine source() !入射波源
V!4E(sX
,s<d"]<
use variant
.- o,_eg1f
implicit none
?/ g(Y
do i=-1000,999
R2gax;
Hin(i)=Hin(i)-dt*(Ein(i+1)-Ein(i))/(dz*u0)
cwM0Z6
end do
6Vo}Uaq4
do i=-999,999
06r cW `
Ein(i)=Ein(i)+dt*(Hin(i-1)-Hin(i))/(dz*e0)
oWT0WS
end do
w}0PtzOe
/$Jh5Bv
Ein(-120)= 1*sin(2*pi*f*real(t)*dt)
w-m2N-"='
Q0A1N[
Ein(-1000)=EBin(4)
Y"U&3e,
EBin(4)=EBin(3)
{643Dz<e
EBin(3)=Ein(-999)
B$n\m854
Ein(1000)=EBin(2)
hy rJu{p
EBin(2)=EBin(1)
Ro69woU
EBin(1)=Ein(999)
o!N@W
{M5IJt"{4b
end
F.6SX (x
Z7/lFS'~N
subroutine mur()
QUO?q+
P^r8JhDJ
use variant
6y5~Kh6
implicit none
EJsb{$u
Sx7xb]3XI"
Ex(za)=Ex1(za+1)+(c*dt-dz)/(c*dt+dz)*(Ex(za+1)-Ex1(za)) !入射波吸收边界条件(一阶MUR)
_t7A'`Dh]
Ex(zb)=Ex2(zb-1)+(c*dt-dz)/(c*dt+dz)*(Ex(zb-1)-Ex2(zb))
(n G
2I5@zm ea
Ex1(za+1)=Ex(za+1)
A1@a:P=
Ex1(za)=Ex(za)
B;$5*3D+
Ex2(zb-1)=Ex(zb-1)
[\y>Gv%
Ex2(zb)=Ex(zb)
k3w#^ "i
$$w 1%#F=
end
U bXz`i
mNzZ/*n:
G%{jU'2
subroutine putout() !输出
$MR4jnTT
%r!-*p<i|
use variant
Ea1>]V
&nbs ..
xae7#d0
[VHt#JuN,
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
发帖
回复