登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
请教高手Sullivan书中几个入门问题
发帖
回复
1634
阅读
6
回复
[
求助
]
请教高手Sullivan书中几个入门问题
离线
snipers2004
impossible is nothing !
UID :17681
注册:
2008-09-11
登录:
2023-04-24
发帖:
1802
等级:
七级仿真大师
0楼
发表于: 2009-02-13 18:35:49
本人为初学fdtd的一菜鸟,最近在看Sullivan的那本书,里面有很多问题不太明白,希望各位高手能够抽时间指点指点。
?&WYjTU]H
^Yr0@pE
1、书中在提至设置PML层的参数时,分别取:
1rw0sAuGy
fi1(i) = xn=.33*pow(i/npml,3.0)
50jOA#l[
gi2(i) = 1.0/(1.0+xn) = fi2(i)
JGiKBm;
gi3(i) = (1.0-xn)/(1.0+xn) = fi3(i)
+y[@T6_
-O:_!\uA
但书后的程序是这样编写的:
J?)RfK|!
for (i=0; i<= npml; i++)
+]>+a<x*%
{
< V\Y@Ei+
xnum = npml -i;
Q_*_?yf
xd = npml;
wYeB)1.
xxn = xnum/xd;
lJykyyCY+
xn = .33*pow(xxn,3.0);
MFJE6ei
gi2
= 1.0/(1.0+xn);
'f8(#n=6qP
gi2[IE-1-i] = 1.0/(1.0+xn);
Y izE5[*
gi3
= (1.0 -xn)/(1.0+xn);
0?7XtC P<
gi3[IE-1-i] = (1.0-xn)/(1.0+xn);
q^8EOAvnZ
xxn = (xnum-.5)/xd;
CR4rDh8z a
xn = .25*pow(xxn,3.0);
7>o.0
fi1
= xn;
1`f_P$&Z_J
fi1[IE-2-i] = xn;
"re-@Baw
fi2
= 1.0/(1.0 +xn);
3HG;!D~m;
fi2[IE-2-i] = 1.0/(1.0+xn);
_\5~>g_
fi3
= (1.0 -xn)/(1.0+xn);
-9P2`XQ^
fi3[IE-2-i] = (1.0-xn)/(1.0+xn);
0m[dP
}
NW$H"}+o
fi PIAT}
这样的话 fi1(i) = xn=.25*pow(i/npml,3.0) 似乎与书中的描述不符。不知道大家对此是如何理解?
{ PlK@#UN
另外,这种PML层的设置方法好像与BERENGER完全匹配层的设置不太一样,不知道它的吸收效果如何,可以直接用这种方法来进行FDTD仿真模拟吗?
[{[N( g&d
?{o/I\\
2、第三章书后的程序说明从0到npml个网格设置pml层。在设置总场边界时,又取ia=ja=7,似乎是说从0开始向内推7个网格为总场边界。但葛老那本书上曾提到过:为保证计算精度,吸收边界需离开连接边界10个网格以上,连接边界与目标的最近距离至少需要3至5个网格。所以不知按书后程序这样设置吸收边界及总场边界是否合理?
vY6W|<s
[}nK"4T"Ri
3、由于要考虑色散误差的影响及入射脉冲的要求,网格尺寸分别要满足:dx≤c/(N*f
max
) (f ..
~CRSL1?
t$&Qv)
未注册仅能浏览
部分内容
,查看
全部内容及附件
请先
登录
或
注册
共
1
条评分
gwzhao
rf币
+5
看的很细啊
2009-02-13
离线
leesaint
UID :13580
注册:
2008-06-08
登录:
2016-02-11
发帖:
72
等级:
仿真一级
1楼
发表于: 2009-02-13 20:20:47
我也看得稀里糊涂的
共
条评分
离线
snipers2004
impossible is nothing !
UID :17681
注册:
2008-09-11
登录:
2023-04-24
发帖:
1802
等级:
七级仿真大师
2楼
发表于: 2009-02-13 20:27:52
同感,而且里面还有不少代码错误,看起来更费劲.
共
条评分
离线
funnyhaha
UID :16429
注册:
2008-08-05
登录:
2015-03-17
发帖:
173
等级:
积极交流四级
3楼
发表于: 2009-02-14 02:20:48
Sullivan出那本书的时候,开源的FDTD代码很有现。他的书就显得很珍贵。因为侧重不同,它对FDTD原理的阐述很有限。遗憾的是书里的代码里也有很多的错误。但很多是显而易见的。
8kKRx
n C\(+K1%
如果没有记错。你的第一个问题,Sullian没有讲述如何安几何数列设定PML的参数。我在这个问题上野花了些时间。后来就干脆跳过了。
+<vqkc
9}IVNZc
第二个问题,没有一个固定PML要多少层。PML的层数是有计算精度的要求决定的。10层,只是一个经验值。
mJU>f-l
OD>u$tI9
第三个问题。Sullivan些的代码,是为了展示用的。没有过多强调参数的物理意义。只要参数满足稳定条件,就好。没有强调计算精度。
共
1
条评分
gwzhao
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-02-14
离线
snipers2004
impossible is nothing !
UID :17681
注册:
2008-09-11
登录:
2023-04-24
发帖:
1802
等级:
七级仿真大师
4楼
发表于: 2009-02-14 09:38:23
非常感谢楼上那位兄弟。但对于问题二我还有一个疑问:如果PML层设置为10层,而总场边界只有七层的话,那总场不是设置到PML层里面去了?
共
条评分
离线
funnyhaha
UID :16429
注册:
2008-08-05
登录:
2015-03-17
发帖:
173
等级:
积极交流四级
5楼
发表于: 2009-02-14 22:42:02
是的。如果PML层为10层,PEC边界往里数十层后,才开始是总场。
共
1
条评分
gwzhao
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-02-14
离线
snipers2004
impossible is nothing !
UID :17681
注册:
2008-09-11
登录:
2023-04-24
发帖:
1802
等级:
七级仿真大师
6楼
发表于: 2009-02-16 09:14:20
这样也可以?
共
条评分
发帖
回复