PML(Perfect Match Layer)介绍 - 实践

news/2025/10/3 13:38:43/文章来源:https://www.cnblogs.com/yxysuanfa/p/19124562

文章目录

    • 一、什么是 Perfectly Matched Layer(PML)?
      • 定义:
      • 特点:
    • 二、PML 的基本原理(以电磁波为例)
    • 三、PML 的常见变体
    • 四、学习教程推荐
      • 中文资源:
      • 英文资源(更系统):
    • 五、开源实现推荐
      • 1. **Meep (MIT Electromagnetic Equation Propagation)**
      • 2. **MEEP / MPB(配套应用)**
      • 3. **Angora (FDTD with PML for seismic/elastic waves)**
      • 4. **S4 (Stanford Stratified Structure Solver)**
      • 5. **FEniCS + PML(用于 FEM)**
      • 6. **gprMax(探地雷达仿真,含 PML)**
    • 六、使用建议
    • 七、常见误区

“Perfect Match Layer”(完美匹配层)通常是指在计算电磁学、声学、地震学等波动问题中用于吸收边界、模拟无限域的一种数值技术。更准确和广泛使用的术语是Perfectly Matched Layer(PML,完美匹配层),由 J.-P. Bérenger 于 1994 年首次提出,用于时域有限差分法(FDTD)中吸收电磁波,避免边界反射。

对 PML 的详细介绍、原理、教程资源和开源实现推荐:就是下面


一、什么是 Perfectly Matched Layer(PML)?

定义:

PML 是一种人工构造的吸收边界层,放置在计算区域的边界上,用于无反射地吸收出射波,从而模拟无限大空间中的波动传播。其核心思想是:通过在边界区域引入复坐标伸缩(complex coordinate stretching),使得波在该区域内指数衰减而不产生反射。

特点:

  • 对任意入射角和频率的波都几乎无反射(“完美匹配”)。
  • 适用于电磁波、弹性波、声波等多种波动方程。
  • 可与 FDTD、FEM、FDFD、伪谱法等多种数值方法结合。

二、PML 的基本原理(以电磁波为例)

在 Maxwell 方程中引入 PML,通常经过以下方式:

  1. 坐标拉伸:将空间坐标从实数扩展到复数域:
    [
    x \rightarrow x + \frac{i}{\omega} \sigma_x(x)
    ]
    其中 (\sigma_x(x)) 是吸收系数(通常在 PML 区域内从 0 增加到最大值)。

  2. 场分裂或辅助微分方程(ADE)形式:原始 Maxwell 方程被改写为包含损耗项的形式,使得波在 PML 区域内衰减。

  3. 无反射条件“阻抗匹配”的,因此不会产生反射。就是:由于 PML 与相邻介质在数学上


三、PML 的常见变体

  • Bérenger PML(原始分裂场形式)
  • Uniaxial PML (UPML):基于各向异性介质建模,适用于 FDTD。
  • Convolutional PML (CPML):适用于低频或长时模拟,吸收效果更好。
  • Stretched Coordinate PML (SC-PML):基于复坐标变换,易于推广到其他方程(如弹性波、薛定谔方程等)。

四、学习教程推荐

中文资源:

  1. 《计算电磁学》(王秉中 著)— 国内经典教材,含 PML 详细推导。
  2. 知乎/博客文章
    • 搜索 “FDTD PML 原理”、“完美匹配层 推导” 等关键词,有较多工程师分享。
  3. Bilibili 视频
    • 搜索 “FDTD PML 教程”,部分高校课程有讲解。

英文资源(更系统):

  1. Allen Taflove & Susan Hagness,Computational Electrodynamics: The Finite-Difference Time-Domain Method
    FDTD 领域的圣经。就是→ 第 7 章详细讲解 PML,
  2. MIT OpenCourseWare
    • Course:Electromagnetic Energy: From Motors to Lasers(含 PML 内容)
  3. PML 原始论文
    • Bérenger, J.-P. (1994). “A perfectly matched layer for the absorption of electromagnetic waves.”Journal of Computational Physics, 114(2), 185–200.
  4. 在线教程
    • Meep Documentation - PML(含图示和代码示例)
    • RP Photonics Encyclopedia - Perfectly Matched Layer

五、开源构建推荐

1. Meep (MIT Electromagnetic Equation Propagation)

2. MEEP / MPB(配套设备)

  • 用于光子晶体、波导等仿真,PML 用于边界吸收。

3. Angora (FDTD with PML for seismic/elastic waves)

4. S4 (Stanford Stratified Structure Solver)

  • 基于 RCWA,但边界处理也涉及类似 PML 思想。

5. FEniCS + PML(用于 FEM)

6. gprMax(探地雷达仿真,含 PML)

  • GitHub: https://github.com/gprMax/gprMax
  • 使用 Python 编写输入文件,底层 C/OpenMP 实现 FDTD + PML。

六、使用建议


七、常见误区

  • ❌ PML 不是“完美”的:在离散网格、非均匀介质或掠射角入射时仍可能有小反射。
  • ❌ PML 厚度不是越厚越好:通常 8–20 个网格点足够,过厚浪费计算资源。
  • ✅ 吸收系数 (\sigma) 应平滑增加(如多项式或余弦分布),避免阶梯突变引起反射。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/925956.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手机自助网站建设企业门户是什么

接着这一问题衍生出来的问题 arcgis的MapServer服务查询出来的结果geometry坐标点带*的问题-CSDN博客 个人感觉像是server版本的问题,具体不清楚,pg数据库里面的shape点集合坐标点的精度是8,但是server服务查出来的默认都十几位。所以存在一…

揭阳装修网站建设数字资产交易网站建设

说明: 《火球——UML大战需求分析》是我撰写的一本关于需求分析及UML方面的书,我将会在CSDN上为大家分享前面几章的内容,总字数在几万以上,图片有数十张。欢迎你按文章的序号顺序阅读,谢谢!本书已经在各大网…

利用STM32CubeMX创建新的工程,使用vscode进行编码和调试

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

网站开发网站维护这行业怎么样wordpress 获取相关文章

来源:AI中国大脑的进化进程持续已久,从5亿年前的蠕虫大脑到现如今各种现代结构。例如,人类的大脑可以完成各种各样的活动,其中许多活动都是毫不费力的。例如,分辨一个视觉场景中是否包含动物或建筑物对我们来说是微不足…

龙岗爱联网站建设app下载app开发公司

第一步 进入百度地图开发平台 百度地图开放平台 | 百度地图API SDK | 地图开发 第二步注册 获取AK秘钥,点击【创建应用】进入AK申请页面,填写应用名称,务必选择AK类型为“浏览器端”,JS API只支持浏览器端AK进行请求与访问 下面…

四川宜宾建设局官方网站曼朗策划网站建设

1.概述 在12.0的系统rom产品定制化开发中,在一些产品核心开发中,第三方app需要开启系统通知权限,然后可以在app中,监听系统所有通知,来做个通知中心的功能,所以需要授权 获取系统通知的权限,然后来顺利的监听系统通知。来做系统通知的功能,首选分析下相关授权通知的功…

DevEco Studio模拟器的采用

DevEco Studio模拟器的采用pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", …

微信网站模版wordpress主题加授权方式

自从电动汽车GB/T32960标准颁布,要求所有电动汽车必须上传数据开始,各车厂就开始花费大量的人力物力,用于数据的上传与存储。同时随着智能化、网联化的趋势,不断丰富上传数据的内容与数量。数据已成为车厂的重要资产,但…

公司网站建设一般多少钱网站通内容管理系统

SPSSAU共提供两种文本聚类方式,分别是按词聚类和按行聚类。按词聚类是指将需要分析的关键词进行聚类分析,并且进行可视化展示,即针对关键词进行聚类,此处关键词可以自由选择。按行聚类分析是指针对以‘行’为单位进行聚类分析&…

怎么用wordpress修改网站源码网站建设违约合同

本期复刻效果: 感觉出的聚类分析树状图绘制工具也不少了,未来可能会统一整理为一个工具包?(任重道远,道阻且长): 代码讲解 0 数据设置 写了比较多的注释应该比较易懂: clc; clear; close all% 样品起名s…

实用指南:基于I.MX6ULL的Linux C多线程物联网网关+STM32+Qt上位机+Linux C++多线程服务器(含web)的多种无线通信系统的智慧农场

实用指南:基于I.MX6ULL的Linux C多线程物联网网关+STM32+Qt上位机+Linux C++多线程服务器(含web)的多种无线通信系统的智慧农场2025-10-03 13:21 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !imp…

网站建设制作与运营wordpress模板制作软件

使用Proteus仿真软件设计一个开机登录程序,单片机选用ATmegga48. 基础要求: 1.程序启动后在LCD1602液晶屏上提示用户通过独立按键输入密码(6位)。 2.密码输入错误则在屏幕上提示密码错误,密码输入正确则在屏幕上提示密 码正确后等待约3秒后进入主界面,在屏幕中央显示HelloWorld…

康桥网站建设html做一个登录注册页面

看到的实用资料记录网址: 1、技术学习网站: http://www.ixpub.net/forum.php 2、禅道项目管理软件(ZenTaoPMS)是一款国产的,基于LGPL协议,开源免费的项目管理软件,它集产品管理、项目管理、测试管理于一体,…

英雄联盟视频网站源码免费稳定的云服务器

专栏主页:计算机专业基础知识总结(适用于期末复习考研刷题求职面试)系列文章https://blog.csdn.net/seeker1994/category_12585732.html 题目描述 要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句。不能用循…

pthread_create详解:打开多线程编程的大门 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

做模具行业的网站wordpress怎么找模板

Tags : jstack日志发表时间:2019-03-17 23:53:19在分析线上问题时常使用到jstack 命令将当时Java应用程序的线程堆栈dump出来。面对jstack 日志,我们如何查看?首先要清楚线程的状态线程的状态有:new、runnable、running、waiting、…

唐山制作网站软件Wordpress点金

项目结构创建&提交到码云 数据库初始化 保持docker数据库一直打开 docker update redis --restartalways 连不上了,发现配置文件错了 换了一个配置文件。 快速开发 使用开源的脚手架 人人开源 (gitee.com) 使用renren-fast作为后台开发,使用…

南京网站设计 联络南京乐识广州建站平台哪家好

文章目录 递归与树的深度优先搜索:探索它们之间的关系递归的基本概念树的深度优先搜索递归与树的深度优先搜索的关系反转链表合并两个有序链表 总结 递归与树的深度优先搜索:探索它们之间的关系 递归是一种强大而优雅的编程技术,它允许我们通过将问题分…

网站地图怎么做html百度助手安卓版下载

场景 按规定尽可能减少开放到外网的端口,所以需要将多个服务部署到一个ip一个端口上。 方案 使用ng实现请求转发。根据http请求中的host与ng配置文件中的server_name匹配,转发到对应的机器上。 在docker上部署三个容器,每个容器中启动一个…

手机端网站开发书籍校园网站的建设作用

一、选择行 1. 简单的SELECT 语句 SELECT 字段名1 [AS] 字段名1 解释 FROM table; 2. 处理NULL NVL函数可把NULL转换成其它类型的符号 编程技巧: NVL函数在多条件模糊查询的时候比较有用 NVL函数可返回多种数据类型: 返回日期 NVL(start_date,2002-02-01) 返回字符串 NVL(title…