登 录
註 冊
论坛
微波仿真网
注册
登录论坛可查看更多信息
微波仿真论坛
>
时域有限差分法 FDTD
>
3d-UPML程序,大家都来看看顺便给我解答一下疑 ..
发帖
回复
1
2
3
4
5936
阅读
31
回复
[
求助
]
3d-UPML程序,大家都来看看顺便给我解答一下疑问(有些疑问解决的地方我给出了注释)
离线
herolee
学海一粒沙
UID :18107
注册:
2008-09-25
登录:
2016-01-21
发帖:
46
等级:
仿真一级
10楼
发表于: 2009-07-16 17:00:17
最近也写了个3d-pml程序,可就是不吸收,学习下
共
条评分
离线
zxx87
UID :36205
注册:
2009-06-28
登录:
2012-06-09
发帖:
11
等级:
仿真新人
11楼
发表于: 2009-07-17 22:27:32
我看到这个帖子太晚了,我最近在弄这个东西,所以有一些感触,写在这里就是想和各位探讨一下,大家不要见笑
38(Cj~u=3
1、有关于PEC Wall部分,只要把电导率设为无穷大代入系数计算公式就行了
zQsu~8PX
2、关于为什么要分中心和边界,楼主只要好好分析一下Yee网格就知道了,因为Yee网格中的元素有的处在元胞的面得中心点上,而有的则处在棱边上,而PML介质的参数是连续变化的,所以他们所处位置的参数是不同的。
共
1
条评分
gwzhao
技术分
+1
积极参与讨论+技术分 论坛感谢您的参与
2009-07-23
离线
wq_463
UID :20925
注册:
2008-11-06
登录:
2021-04-22
发帖:
227
等级:
仿真三级
12楼
发表于: 2009-07-18 09:55:29
楼上分析的有道理,确实是如此
共
条评分
离线
gwzhao
方恨少
UID :17098
注册:
2008-08-24
登录:
2019-01-09
发帖:
1374
等级:
荣誉管理员
13楼
发表于: 2009-07-23 15:21:01
回 11楼(zxx87) 的帖子
不晚不晚。
共
条评分
逆流而上
离线
aron
UID :28320
注册:
2009-03-25
登录:
2012-10-10
发帖:
62
等级:
仿真一级
14楼
发表于: 2009-07-28 21:49:30
楼主 能否把程序发给我一份 万分感谢 邮箱
32171237@163.com
qq307817254
共
条评分
离线
rift
UID :6229
注册:
2007-11-27
登录:
2025-08-14
发帖:
92
等级:
仿真三级
15楼
发表于: 2009-09-12 17:23:42
回 楼主(wq_463) 的帖子
挨个解释吧
|Z2_1( ku
I/^Lr_\
ndelay=3*tau;%这个延迟我个人认为是电磁波在场中传播达到时谐状态所要的时间
.WG@"2z|
不是,看后面的源,就知道了,这是高斯脉冲公式中的t0
wp*;F#: G
s 6hj[^O
ex=zeros(ie_tot,jh_tot,kh_tot); %这个地方电场量的初始赋值,X方向比y,z方向多一个(这个地方我还不是很理解)后面的一次类推。
Mu:*(P/
随便找一本fdtd的书,翻到有yee原胞的那一页,例如葛老的书,第二版13页,可以很清晰的看到各场的排列位置,这个程序比较严格,是按照多少个元胞(格子)来的,这样处于边缘的场值自然多一个,恰好边缘处的电场都是切向(也不能说恰好,yee这样设置网格也是为了满足场连续条件来的),从而可以设定边缘为pec(即电场值恒为0)。这样就好理解为什么有的场多一个了吧
G0*$&G0nb
C t SAo\F
1.C5,C6为什么要跟C1,C2,C3,C4分开定义呢,同样的还有D的参数 是不是C5ex,C6ex,D1hz,D2hz,D3hy,D4hy含有X方向的参数呢?
t9P` nfY
2.还有为什么X1,X2两次定义的不一样呢
$k!@e M/R
Uc9Uj
这俩问题一块说,还是看yee元胞,你不是前面说的很清楚了吗? “%x方向我们只考虑跟x有关的系数,把迭代公式的系数中含有x的系数挑出:c5ex,c6ex d5hx,d6hx,c3ey,c4ey,c1ez,c2ez,d1hz,d2hz,d3hy,d4hy。根据Taflove书中Yee网格的形式,从X方向看去ex,hy,hz是在一个平面的上,而ey,ez,hx与ex,hy,hz相差半个网格。所以这样可以分网格中心和网格边界2部分来定义。同样Y和Z方向是一样考虑的 ”
iwmXgsRa9}
就是差半个网格的原因,所以分开设置,不是看是c还是d,而是看是那个场值的系数。对于sigma和ki的定义,taflove书上这样写的,sigma=sigmamax*(x/d)^m, x是到pml内边界的距离x=x0*delta,这个程序中把(x/d)^m做了一次中心差分转换变为(((x0+0.5)*delta)^(m)-((x0-0.5)*delta)^m+1)/(delta*d^m*(m+1)),可能落下一个括号什么的,自己看吧,不懂就自己翻翻微分变差分,同样x0+0.5专程x0+1和x0的公式,自己推吧
>Xb]n_`
(4c<0<"$
先这些,有事出去一趟
共
条评分
离线
rift
UID :6229
注册:
2007-11-27
登录:
2025-08-14
发帖:
92
等级:
仿真三级
16楼
发表于: 2009-09-12 22:23:37
09年1月的帖子,我是搜kmax收出来的,想看看kmax的取值为什么是1,看来楼主应该是弄明白了,我多此一举了
;eN ^'/4A
" !~o
再
翻了翻论坛发现有人解释过这个问题了,我的解释还挺乱
共
条评分
离线
ninily
UID :40600
注册:
2009-09-01
登录:
2011-04-14
发帖:
93
等级:
仿真三级
17楼
发表于: 2009-09-13 08:10:25
不错
8.i4QaU
学习下
共
条评分
离线
yangjun3302
UID :37159
注册:
2009-07-12
登录:
2024-05-04
发帖:
295
等级:
仿真三级
18楼
发表于: 2009-09-21 19:25:46
回 楼主(wq_463) 的帖子
sigma=sigfactor*(x1^(orderbc+1)-x2^(orderbc+1)); 这为什么要写成相减的形式?看不懂?
共
条评分
离线
yangjun3302
UID :37159
注册:
2009-07-12
登录:
2024-05-04
发帖:
295
等级:
仿真三级
19楼
发表于: 2009-09-22 13:27:25
回 11楼(zxx87) 的帖子
想问下楼主,我把空间步长改了以后就出现了发散,不知道为啥?楼主试过吗?
共
条评分
发帖
回复