24小时热门版块排行榜    

查看: 5393  |  回复: 11

zuzero

铁虫 (小有名气)

[交流] [交流]分享Matlab写的PML吸收边界条件。代码很精简 已有11人参与

%% 2-D FDTD PML吸收边界条件,点源辐射验证
% TE
clc;
clear;
fs = 20;
ft = 1.5;
% 边界的下标,垂直于x轴的
% 网格
Nsign = [1 -1];
diagSign = diag(Nsign);
Nx = 250;
Ny = 250;
% 吸收层厚度
Na = 20;
bxREx = 1 : Nx;
bxiREy = 2 : Nx;
byREy = 1 : Ny;
byiREx = 2 : Ny;
bxRH = 1 : Nx;
byRH = 1 : Ny;
% 场量
Hzx = zeros(Nx, Ny);
Hzy = zeros(Nx, Ny);
Ex = zeros(Nx, Ny + 1);
Ey = zeros(Nx + 1, Ny);
sigmamx = Hzx;
sigmamy = Hzy;
sigmax = Ey;
sigmay = Ex;
% 设定参数
% 最大电导率
sigmaMax = 0.2;
% 线性变化
sigma = sigmaMax * (Na : -1 : 1) / Na;
sigmam = sigmaMax * (2 * Na - 1 : -2 : 1) / 2 / Na;
sigmax([1 : Na, end : -1 : end - Na + 1], = repmat([sigma, sigma]', 1, Ny);
sigmamx([1 : Na, end : -1 : end - Na + 1], = repmat([sigmam, sigmam]', 1, Ny);
sigmay(:, [1 : Na, end : -1 : end - Na + 1]) = repmat([sigma, sigma], Nx, 1);
sigmamy(:, [1 : Na, end : -1 : end - Na + 1]) = repmat([sigmam, sigmam], Nx, 1);
% 计算系数
f1Ex = exp(-sigmay(bxREx, byiREx));
f1Ey = exp(-sigmax(bxiREy, byREy));
f2Ex = zeros(size(Ex));
f2Ey = zeros(size(Ey));
f2Ex(sigmay == 0) = 1 / ft;
f2Ey(sigmax == 0) = 1 / ft;
f2Ex(sigmay ~= 0) = (1 - exp(-sigmay(sigmay ~= 0))) ./ sigmay(sigmay ~= 0) / ft;
f2Ey(sigmax ~= 0) = (1 - exp(-sigmax(sigmax ~= 0))) ./ sigmax(sigmax ~= 0) / ft;
f2Ex = f2Ex(bxREx, byiREx);
f2Ey = f2Ey(bxiREy, byREy);

f1Hzx = exp(-sigmamx);
f1Hzy = exp(-sigmamy);
f2Hzx = zeros(size(Hzx));
f2Hzy = zeros(size(Hzy));
f2Hzx(sigmamx == 0) = 1 / ft;
f2Hzy(sigmamy == 0) = 1 / ft;
f2Hzx(sigmamx ~= 0) = (1 - exp(-sigmamx(sigmamx ~= 0))) ./ sigmamx(sigmamx ~= 0) / ft;
f2Hzy(sigmamy ~= 0) = (1 - exp(-sigmamy(sigmamy ~= 0))) ./ sigmamy(sigmamy ~= 0) / ft;
% 中心位置
centerX = floor((1 + Nx) / 2);
centerY = floor((1 + Ny) / 2);
% 迭代
for nn = 1 : 500
%     激励
    Hzx(centerX, centerY) = Hzx(centerX, centerY) + sin(2 * pi * nn / ft / fs);
    Hzy(centerX, centerY) = Hzy(centerX, centerY) + sin(2 * pi * nn / ft / fs);
%     更新E
    Ex(bxREx, byiREx) = f1Ex .* Ex(bxREx, byiREx) + f2Ex .* (Hzx(bxREx, byiREx) - Hzx(bxREx, byiREx - 1) + Hzy(bxREx, byiREx) - Hzy(bxREx, byiREx - 1));
    Ey(bxiREy, byREy) = f1Ey .* Ey(bxiREy, byREy) - f2Ey .* (Hzx(bxiREy, byREy) - Hzx(bxiREy - 1, byREy) + Hzy(bxiREy, byREy) - Hzy(bxiREy - 1, byREy));
%     更新H
    Hzx = f1Hzx .* Hzx - f2Hzx .* (Ey(bxRH + 1, - Ey(bxRH, );
    Hzy = f1Hzy .* Hzy + f2Hzy .* (Ex(:, byRH + 1) - Ex(:, byRH));
end
% 显示
figure('color', 'white');
imagesc(Hzx + Hzy);
colorbar;
axis image;



希望能对大家有所帮助。
下面是计算结果
回复此楼
欢迎来我的个人主页,方便学术交流与合作:jijinzu.buaa.edu.cn
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

alence

木虫 (著名写手)


小木虫(金币+0.5):给个红包,谢谢回帖
nice
要是三维的就更好了
知足常乐
2楼2011-08-22 19:56:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

天涯的兔子

木虫 (小有名气)

谢楼主分享
走狗的路,让猫们说去吧!!!
3楼2011-08-23 08:35:30
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
4楼2011-11-25 10:50:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cbyhoo

新虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
送鲜花一朵
非常感谢,呵呵,多向楼主请教啊
5楼2012-05-12 13:56:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kevin123581

金虫 (正式写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
送鲜花一朵
感谢啊  我做的PML完全没有吸收效果。。。头疼
6楼2012-05-24 18:18:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

maidou520

禁虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
送红花一朵
本帖内容被屏蔽

7楼2013-12-17 16:36:36
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xttzhb

金虫 (小有名气)

马克

[ 发自小木虫客户端 ]
8楼2013-12-22 23:39:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hfhhfh44

银虫 (初入文坛)


小木虫: 金币+0.5, 给个红包,谢谢回帖
LZ   我就试了试咋一点反应都没呢
9楼2013-12-29 16:50:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

helmhlotz

金虫 (著名写手)


小木虫: 金币+0.5, 给个红包,谢谢回帖
引用回帖:
7楼: Originally posted by maidou520 at 2013-12-17 16:36:36
弱弱的问一句,程序中的笑脸是什么什么意思?

: )如果中间没有空格的话,刚好和网页的表情代码一样
10楼2014-02-20 09:39:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zuzero 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 小木虫上这么多卖论文的,真有人买论文么?感觉没必要啊 +11 Tide man 2026-08-10 12/600 2026-08-15 02:12 by home3163
[考博] 售SCI文章,我:8O.5.5.1O.54,科目全,可十急 +4 k0dTPqJtl0jt 2026-08-14 4/200 2026-08-15 01:40 by 4wMiSEwB6436
[教师之家] 售SCI一区T0P文章,我:8O.55.1.O.5.4,科目齐全,可+急 +4 7lpolszZVXgi 2026-08-14 4/200 2026-08-15 01:08 by 4wMiSEwB6436
[考研] 售SCI一区T0P文章,我:8.O55.1.O.54,科目全,可十急 +3 HFw0lei2R37i 2026-08-14 7/350 2026-08-15 00:40 by 4wMiSEwB6436
[基金申请] 咱们一起用铁证分析2026国家社科基金中标与否 +7 启萌科技 2026-08-12 22/1100 2026-08-14 23:45 by Noways
[基金申请] 是这周出结果还是下周出结果? +4 yuleib84 2026-08-11 4/200 2026-08-14 23:05 by lfy8008
[教师之家] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 HFw0lei2R37i 2026-08-14 5/250 2026-08-14 22:32 by 4wMiSEwB6436
[基金申请] 欢迎发来filecode的Mz6后的代码验证其规律 +23 医学老男孩 2026-08-13 49/2450 2026-08-14 20:02 by zhaifei
[基金申请] 有时候,自然基金真的不能太认真 (我的申报经验) +6 majunge000 2026-08-11 8/400 2026-08-14 14:44 by 医学老男孩
[基金申请] 应该是93bebmhtak前后十一个字符比较关键 +23 Lanmanbaby 2026-08-09 37/1850 2026-08-14 13:40 by Equinoxhua
[基金申请] 我的国基提前知道中了,可是同事的操作让我实在接受不了,怎么会有这样的人 +10 家与远方 2026-08-10 15/750 2026-08-14 02:08 by 绵羊哥哥
[基金申请] 静等基金结果 +8 gjjjzhong 2026-08-10 21/1050 2026-08-13 17:56 by 且听虎啸
[基金申请] 综述论文作为代表作会不会影响评审专家的印象分? +11 yufeiwaner 2026-08-09 13/650 2026-08-12 08:17 by yufeiwaner
[基金申请] 什么时候出结果,有咨询渠道??? +3 Tide man 2026-08-11 3/150 2026-08-11 17:54 by kudofaye
[基金申请] 确定了,国自然21号放榜 +6 布布和一二 2026-08-10 7/350 2026-08-10 19:15 by 2000zf36392
[基金申请] 据悉今年马上要出结果了 +7 瞬息宇宙 2026-08-10 8/400 2026-08-10 12:42 by Vivilian
[基金申请] 2026国自然放榜时间 +9 布布和一二 2026-08-08 9/450 2026-08-10 11:22 by xxxx2020
[基金申请] 面上项目filecode邪修 +5 西山十月 2026-08-09 7/350 2026-08-10 07:32 by 仁砚薪传
[基金申请] fileCode有新解读? +10 Tide man 2026-08-08 18/900 2026-08-09 12:55 by 仁砚薪传
[基金申请] 关于filecode,很负责任的告诉大家 +6 爱看书的可乐 2026-08-08 7/350 2026-08-08 22:13 by a_niu
信息提示
请填处理意见