登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
请教一维平面波加入的问题?
发帖
回复
1
2
3041
阅读
16
回复
[
求助
]
请教一维平面波加入的问题?
离线
linzchey
UID :22707
注册:
2008-12-07
登录:
2011-10-17
发帖:
76
等级:
仿真二级
0楼
发表于: 2009-05-31 16:04:52
在加入一维入射波时,总场边界上任意点投影到一维波入射方向k上的垂足到源点的距离为d,
a]%>7yr4
OLh QS_D
在离散化后,为什么是
0%OV3`
O<}KrmUC~
d = dx*cos(phi)*cos(phi) + dy*sin(phi)*sin(phi) ,其中phi为一维波入射角。
QBwgI>zfS"
>SSRwYIN
我十分不明白为什么是这样?
cd-;?/
W:TF8Onw
参看了Allen Taflove 的computational electromagnetic:FDTD书中的公式, chapter 5, P197.
,EuJ0]2
.`5BgX7W
d = k dot r_comp, 则d至多也就是: d = dx*cos(phi)+ dy*sin(phi)
dZi?Z
bPhb d
IHaNg K2
mq!_/3
k,M%"FLQ
=3R5m>6!/
QmRE<i
G&f~A;'7k
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
条评分
离线
linzchey
UID :22707
注册:
2008-12-07
登录:
2011-10-17
发帖:
76
等级:
仿真二级
1楼
发表于: 2009-05-31 20:37:51
自己顶一个,以免沉了。
共
条评分
离线
wq_463
UID :20925
注册:
2008-11-06
登录:
2021-04-22
发帖:
227
等级:
仿真三级
2楼
发表于: 2009-06-01 09:59:51
不知道你一开始的公式从哪理看来的,allen taflove书的公式没问题啊,这个就是矢量相乘的运算啊,应该不难理解
共
1
条评分
gwzhao
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-06-01
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
3楼
发表于: 2009-06-01 10:00:41
回 2楼(wq_463) 的帖子
入射波搞定了没你
共
条评分
逆流而上
离线
wq_463
UID :20925
注册:
2008-11-06
登录:
2021-04-22
发帖:
227
等级:
仿真三级
4楼
发表于: 2009-06-01 10:41:43
回 3楼(gwzhao) 的帖子
~~汗,没有,我检查了程序,确实发现了加减号有错误,可是改了以后,还是不行,我把入射波延z轴引入,把有泄漏的角点手动计算一下跟程序运行的值是一样的,现在一团浆糊
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
5楼
发表于: 2009-06-01 10:47:40
回 4楼(wq_463) 的帖子
手动计算的和程序运行的一样?什么意思啊,是理论上就该这个值?
共
条评分
逆流而上
离线
wq_463
UID :20925
注册:
2008-11-06
登录:
2021-04-22
发帖:
227
等级:
仿真三级
6楼
发表于: 2009-06-01 11:03:38
我的入射波是延z轴入射,在计算j=je_min=30左侧xz面的ex时,这个连接边界上(90,30,90)与(90,30,30)这两个点是有泄漏,ex场分量计算时根据程序这两个点投影到一维入射波来计算,我把这两个点投影到一维入射波手动计算的值与程序运行的值是相符的,但是我自己也糊涂,这么算到底验证了什么,所以是一塌糊涂,感觉自己还是没搞清
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
7楼
发表于: 2009-06-01 13:00:37
回 6楼(wq_463) 的帖子
晕,你理论没跟上啊。
共
条评分
逆流而上
离线
linzchey
UID :22707
注册:
2008-12-07
登录:
2011-10-17
发帖:
76
等级:
仿真二级
8楼
发表于: 2009-06-01 15:06:17
我是从别人的程序看来的。下面是平面波高斯正弦源的成员函数设置:
hoO8s#0ED
6S2D\Bt,_
int CFDTD_2D_TM::Init_plWave_GaussSin(double E0, double omega, double t0, double tw,
{O]Cj~}
double PHI, int nxa, int nxb, int nya, int nyb)
.?<,J
{
[wjA8d.
double phase = 0.0;
kZ[E493bV
s0E:hn:
double eps_r = Mat[0][0];
,-vbR&
double mu_r = Mat[0][1];
hJkIFyQ{j
double sigma = 0.0;
+'N?`l6<
e#0R9+"Ba
//the incidence angle of the plane wave
L/F!Y%=;[
phi = PHI; //入射角
B7fURL Rqr
,+oQ 5c(f
//the size of the total field zone
b_|`jHes
l_x = nxb - nxa + 1; //x方向总场的长度
Wepa;
l_y = nyb - nya + 1; //y方向总场的长度
`(q+@ #)
cos_phi = cos(phi);
z$QYl*F1
sin_phi = sin(phi);
*<i { Mb Q
TC<_I0jCh
l_1D = (int) (l_x*abs(cos_phi) + l_y*abs(sin_phi)) + 10 + 2*n_PML; //一维入射波计算的网格数
tOn/r@Fd^E
//l_1D = nx;
"/(J*)%{
f}Mc2PQ-
d = dx*cos_phi*cos_phi + dy*sin_phi*sin_phi; //这就是我的问题所在?
ss-{l+Z5
"/S-+Ufn
fdtd_1D.Init(l_1D, n_PML, dt, d, eps_r, mu_r, sigma);
;xN4L
bvUjH5.7
fdtd_1D.Init_PML_Param();
dK#:io[Nz
H CZ#7Z
fdtd_1D.Init_GaussSin(E0, omega, phase, t0, tw);
T5=3 jPQ
X) owj7U;
fdtd_1D.Get_Data(Ez_1D,Hy_1D);
,*+F*:o(m
y['$^T?oP
n_TS_xa = nxa;
q#xoM1
n_TS_xb = nxb;
`&LPqb
n_TS_ya = nya;
^$FHI_
n_TS_yb = nyb;
ol^OvG:TQ
Y#=0C*FS
jel_plane_wave = 1;
H]H*Ouu["e
O8wR#(/
:Z- =1b~
if (Init_TS_Param())
N41)?-7F
{
[W,Ej
// memory allocation problems
P bj &l0C
return 1;
mcP]k8?C
}
N8@Fj!Zi
kOfbO'O9
return 0;
,gVA^]eDh
}
}G]6Rip3
K63OjR>H
>OgA3)X
2TXrVaM
(OLj E]9;
i/6(~v
[o<Rgq4
//////////////////////////////////////////////////////////////////////////////////////
共
条评分
离线
linzchey
UID :22707
注册:
2008-12-07
登录:
2011-10-17
发帖:
76
等级:
仿真二级
9楼
发表于: 2009-06-01 15:13:02
回 2楼(wq_463) 的帖子
按照allen书上的公式:
}xk85*V
_/;vsQB
d = k dot r_comp
ve49m%NQ
7y5`YJ}!
= (i_comp - i_0)*cos(phi) + (j_comp - j_0)*sin(phi)
J/mLmSx
$nUhM|It
可是在我上面贴出的部分代码中为何d = dx*cos_phi*cos_phi + dy*sin_phi*sin_phi;
7?9QlUO
-y|>#`T/
这让我很迷惑,也不知道怎么推导?
共
条评分
发帖
回复