当前位置: 首页 > news >正文

计算电磁学:FDFD算法总结

FDFD(Finite Difference Frequency Domain)在Yee格子上使用有限差分求解频域Maxwell方程组。本文通过FDFP差分方程组的推导来阐述FDFP的原理。

注1:限于研究水平,分析难免不当,欢迎批评指正。

注2:文章内容会不定期更新。

0、预修

0.1 Fourier变换及其逆变换

对于函数f\left ( t \right ),如果在整个实数域\mathbb{R}上绝对可积,即满足\int_{-\infty }^{+\infty }\left |f\left ( t \right ) \right |dt < \infty,则存在Fourier变换F\left ( \omega \right )=\int_{-\infty }^{+\infty }f\left ( t \right )e^{-j\omega t}dt,对应的Fourier逆变换为f\left ( t\right )=\frac{1}{2\pi }\int_{-\infty }^{+\infty }F\left ( \omega \right )e^{j\omega t}d\omega

一、数学模型

对于微分形式的Maxwell方程组,有

\left\{\begin{matrix} \nabla \cdot \mathbf{D}=\rho\\ \nabla\cdot \mathbf{B}=0\\ \nabla\times \mathbf{H}=\boldsymbol{J}+\frac{\partial \boldsymbol{D}}{\partial t}\\ \nabla\times \mathbf{E}=-\frac{\partial \boldsymbol{B}}{\partial t}-\boldsymbol{M} \end{matrix}\right.

依据Fourier逆变换,可得复数形式的Maxwell方程组,

\left\{\begin{matrix} \nabla \cdot \mathbf{D}=\rho\\ \nabla\cdot \mathbf{B}=0\\ \nabla\times \mathbf{H}=\boldsymbol{J}+j\omega\boldsymbol{D}\\ \nabla\times \mathbf{E}=-j\omega\boldsymbol{B}-\boldsymbol{M} \end{matrix}\right.

对于各向异性介质,则有

\left\{\begin{matrix} \nabla \cdot \mathbf{D}=\rho\\ \nabla\cdot \mathbf{B}=0\\ \nabla\times \mathbf{H}=\boldsymbol{J}+j\omega\boldsymbol{\epsilon}\cdot \boldsymbol{E}\\ \nabla\times \mathbf{E}=-j\omega\boldsymbol{\mu}\cdot \boldsymbol{H}-\boldsymbol{M} \end{matrix}\right.\Rightarrow \left\{\begin{matrix} \boldsymbol{\mu}^{-1}\nabla^{2} \boldsymbol{E}+\omega ^{2}\boldsymbol{\epsilon}\cdot\boldsymbol{E}=\nabla\times \boldsymbol{\mu}^{-1}\cdot \nabla\times\boldsymbol{E}+\boldsymbol{\mu}^{-1}\nabla\nabla\cdot \boldsymbol{E}+j\omega\boldsymbol{J}+\nabla\times\boldsymbol{\mu}^{-1}\cdot \boldsymbol{M}\\ \boldsymbol{\epsilon}^{-1}\nabla^{2} \boldsymbol{H}+\omega ^{2}\boldsymbol{\mu}\cdot\boldsymbol{H}=\nabla\times \boldsymbol{\epsilon}^{-1}\cdot \nabla\times\boldsymbol{H}+\boldsymbol{\epsilon}^{-1}\nabla\nabla\cdot \boldsymbol{H}+j\omega\boldsymbol{M}-\nabla\times\boldsymbol{\epsilon}^{-1}\cdot \boldsymbol{J}\end{matrix}\right.

不考虑电流密度\boldsymbol{J}与磁流密度\boldsymbol{M},在均匀各向同性介质中,有

\left\{\begin{matrix}\nabla\times \mathbf{H}=j\omega \epsilon \boldsymbol{E} \\ \nabla\times\mathbf{E}=-j\omega \mu \boldsymbol{H} \end{matrix}\right.\Rightarrow \left\{\begin{matrix} \nabla^{2}\boldsymbol{H}+\omega ^{2}\epsilon\mu\boldsymbol{H}=0\\ \nabla^{2}\boldsymbol{E}+\omega ^{2}\epsilon\mu\boldsymbol{E}=\frac{\nabla\rho }{\epsilon}\end{matrix}\right.

在笛卡尔直角坐标系下,有

\left\{\begin{matrix} \frac{\partial H_{z}}{\partial y}-\frac{\partial H_{y}}{\partial z}=j\omega \epsilon E_{x}\\ \frac{\partial H_{x}}{\partial z}-\frac{\partial H_{z}}{\partial x}=j\omega \epsilon E_{y}\\ \frac{\partial H_{y}}{\partial x}-\frac{\partial H_{x}}{\partial y}=j\omega \epsilon E_{z}\end{matrix}\right.            \left\{\begin{matrix} \frac{\partial E_{z}}{\partial y}-\frac{\partial E_{y}}{\partial z}=-j\omega \mu H_{x}\\ \frac{\partial E_{x}}{\partial z}-\frac{\partial E_{z}}{\partial x}=-j\omega \mu H_{y}\\ \frac{\partial E_{y}}{\partial x}-\frac{\partial E_{x}}{\partial y}=-j\omega \mu H_{z}\end{matrix}\right.

二、数值模型:控制方程的空间离散

FDFD算法也采用Yee格子在空间上进行离散。在Yee格子中,电场分量放置到Yee单元各棱的中间,方向平行于各棱;磁场分量放置到Yee单元各面中心,方向平行于各面法线。

Yee Cell

\left\{\begin{matrix} \frac{H_{z}\left (i+\frac{1}{2},j+\frac{1}{2},k \right )-H_{z}\left (i+\frac{1}{2},j-\frac{1}{2},k \right )}{\Delta y}-\frac{H_{y}\left (i+\frac{1}{2},j,k+\frac{1}{2} \right )-H_{y}\left (i+\frac{1}{2},j,k-\frac{1}{2} \right )}{\Delta z}=j\omega \epsilon E_{x}\left ( i+\frac{1}{2},j,k \right )\\ \frac{H_{x}\left (i,j+\frac{1}{2},k+\frac{1}{2} \right )-H_{x}\left (i,j+\frac{1}{2},k-\frac{1}{2} \right )}{\Delta z}-\frac{H_{z}\left (i+\frac{1}{2},j+\frac{1}{2},k \right )-H_{z}\left (i-\frac{1}{2},j+\frac{1}{2},k \right )}{\Delta x}=j\omega \epsilon E_{y}\left ( i,j+\frac{1}{2},k \right )\\ \frac{H_{y}\left (i+\frac{1}{2},j,k+\frac{1}{2} \right )-H_{y}\left (i-\frac{1}{2},j,k+\frac{1}{2} \right )}{\Delta x}-\frac{H_{x}\left (i,j+\frac{1}{2},k+\frac{1}{2} \right )-H_{x}\left (i,j-\frac{1}{2},k+\frac{1}{2} \right )}{\Delta y}=j\omega \epsilon E_{z}\left ( i,j,k+\frac{1}{2} \right ) \end{matrix}\right.

\left\{\begin{matrix} \frac{E_{z}\left (i,j+1,k+\frac{1}{2} \right )-E_{z}\left (i,j,k+\frac{1}{2} \right )}{\Delta y}-\frac{E_{y}\left (i,j+\frac{1}{2},k+1 \right )-E_{y}\left (i,j+\frac{1}{2},k \right )}{\Delta z}=-j\omega \mu H_{x}\left ( i,j+\frac{1}{2},k+\frac{1}{2} \right )\\ \frac{E_{x}\left (i+\frac{1}{2},j,k+1 \right )-E_{x}\left (i+\frac{1}{2},j,k \right )}{\Delta z}-\frac{E_{z}\left (i+1,j,k+\frac{1}{2}\right )-E_{z}\left (i,j,k+\frac{1}{2} \right )}{\Delta x}=-j\omega \mu H_{y}\left ( i+\frac{1}{2},j,k+\frac{1}{2} \right )\\ \frac{E_{y}\left (i+1,j+\frac{1}{2},k \right )-E_{y}\left (i,j+\frac{1}{2},k \right )}{\Delta x}-\frac{E_{x}\left (i+\frac{1}{2},j+1,k\right )-E_{x}\left (i+\frac{1}{2},j,k \right )}{\Delta y}=-j\omega \mu H_{z}\left ( i+\frac{1}{2},j+\frac{1}{2},k \right )\end{matrix}\right.

n_{x}n_{y}n_{z}分别表示xyz方向上的Yee格子数目,考虑将上述差分方程组写成矩阵方程组\boldsymbol{A}\boldsymbol{X}形式,则有,

n=kn_{x}n_{y}+jn_{x}+i

A\left ( 6n,6n+4-6n_{x}n_{y} \right )=-\frac{1}{\Delta z}A\left ( 6n,6n+5-6n_{x} \right )=\frac{1}{\Delta y}A\left ( 6n,6n \right )=j\omega \epsilonA\left ( 6n,6n+1 \right )=0A\left ( 6n,6n+2 \right )=0A\left ( 6n,6n+3 \right )=0A\left ( 6n,6n+4 \right )=\frac{1}{\Delta z}A\left ( 6n,6n+5 \right )=-\frac{1}{\Delta y}

A\left ( 6n+1,6n+3-6n_{x}n_{y} \right )=\frac{1}{\Delta z}A\left ( 6n+1,6n-1\right )=-\frac{1}{\Delta x}A\left ( 6n+1,6n \right )=0A\left ( 6n+1,6n+1 \right )=j\omega \epsilonA\left ( 6n+1,6n+2 \right )=0A\left ( 6n+1,6n+3 \right )=-\frac{1}{\Delta z}A\left ( 6n+1,6n+5 \right )=\frac{1}{\Delta x}

A\left ( 6n+2,6n+3-6n_{x} \right )=-\frac{1}{\Delta y}A\left ( 6n+2,6n-2 \right )=\frac{1}{\Delta x}A\left ( 6n+2,6n \right )=0A\left ( 6n+2,6n+1 \right )=0A\left ( 6n+2,6n+2 \right )=j\omega \epsilonA\left ( 6n+2,6n+3 \right )=\frac{1}{\Delta y}A\left ( 6n+2,6n+4 \right )=-\frac{1}{\Delta x}

A\left ( 6n+3,6n \right )=0A\left ( 6n+3,6n+1 \right )=\frac{1}{\Delta z}A\left ( 6n+3,6n+2 \right )=\frac{1}{\Delta y}A\left ( 6n+3,6n+3 \right )=j\omega \muA\left ( 6n+3,6n+4\right )=0A\left ( 6n+3,6n+5\right )=0A\left ( 6n+3,6n+1+6n_{x} \right )=\frac{1}{\Delta y}A\left ( 6n+3,6n+1+6n_{x}n_{y} \right )=-\frac{1}{\Delta z}

A\left ( 6n+4,6n\right )=-\frac{1}{\Delta z}A\left ( 6n+4,6n+2 \right )=\frac{1}{\Delta x}A\left ( 6n+4,6n+3 \right )=0A\left ( 6n+4,6n+4 \right )=j\omega \muA\left ( 6n+4,6n+5 \right )=0A\left ( 6n+4,6n+8 \right )=-\frac{1}{\Delta x}A\left ( 6n+4,6n+6n_{x}n_{y}\right )=\frac{1}{\Delta z}

A\left ( 6n+5,6n \right )=\frac{1}{\Delta y}A\left ( 6n+5,6n+2\right )=-\frac{1}{\Delta x}A\left ( 6n+5,6n+3 \right )=0A\left ( 6n+5,6n+4 \right )=0A\left ( 6n+5,6n+5 \right )=j\omega \muA\left ( 6n+5,6n+8\right )=\frac{1}{\Delta x}A\left ( 6n+5,6n+6n_{y} \right )=-\frac{1}{\Delta y}

\boldsymbol{X}\left ( 6n \right )=E_{x}\left ( i+\frac{1}{2},j,k \right )

\boldsymbol{X}\left ( 6n+1 \right )=E_{y}\left ( i,j+\frac{1}{2},k \right )

\boldsymbol{X}\left ( 6n+2 \right )=E_{z}\left ( i,j,k+\frac{1}{2} \right )

\boldsymbol{X}\left ( 6n+3 \right )= H_{x}\left ( i,j+\frac{1}{2},k+\frac{1}{2} \right )

\boldsymbol{X}\left ( 6n+4 \right )= H_{y}\left ( i+\frac{1}{2},j,k+\frac{1}{2} \right )

\boldsymbol{X}\left ( 6n+5 \right )= H_{z}\left ( i,j+\frac{1}{2},k+\frac{1}{2} \right )

三、数值模型:边界条件的空间离散

参考资料

  • 王长清. 现代计算电磁学基础. 2005.
  • 王元明. 数学物理方程与特殊函数. 
  • 陆庆乐. 复变函数.
  • 张元林. 积分变换.
  • 老大中. 变分法基础.

网络资料

计算电磁学:FDTD算法总结icon-default.png?t=N7T8https://blog.csdn.net/qq_26221775/article/details/136264673?spm=1001.2014.3001.5501

相关文章:

  • sklearn监督学习--k近邻算法
  • 什么是安全左移如何实现安全左移
  • 工地升降机AI人数识别系统
  • 键盘盲打是练出来的
  • Steam致富:玩免费游戏Banana获得可交易道具
  • 15:00面试,15:08就出来了,问的问题有点变态。。。
  • 数据仓库实验四:聚类分析实验
  • springboot项目中图片上传之后需要重启工程才能看到图片?
  • 给大家分享一套非常棒的python机器学习课程
  • Docker快速搭建Oracle服务
  • 57. UE5 RPG 处理AI敌人转向以及拾取物品的问题
  • 面向对象-----继承
  • 如何使用Matlab进行三角剖分(自定义函数实现delaunayTriangulation 使用Bowyer-Watson 算法)
  • 【Vue3进阶】- Vite 配置
  • C++质数的那些事(判断指数、区间筛质数、互质等等)
  • Angular6错误 Service: No provider for Renderer2
  • Angularjs之国际化
  • ES学习笔记(12)--Symbol
  • gf框架之分页模块(五) - 自定义分页
  • Java 内存分配及垃圾回收机制初探
  • Laravel5.4 Queues队列学习
  • mysql中InnoDB引擎中页的概念
  • Python_OOP
  • SpingCloudBus整合RabbitMQ
  • Spring Cloud中负载均衡器概览
  • SQL 难点解决:记录的引用
  • tab.js分享及浏览器兼容性问题汇总
  • Vue--数据传输
  • 从零到一:用Phaser.js写意地开发小游戏(Chapter 3 - 加载游戏资源)
  • 等保2.0 | 几维安全发布等保检测、等保加固专版 加速企业等保合规
  • 一天一个设计模式之JS实现——适配器模式
  • ​什么是bug?bug的源头在哪里?
  • ​一些不规范的GTID使用场景
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • ## 基础知识
  • ( 10 )MySQL中的外键
  • (1) caustics\
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (pytorch进阶之路)扩散概率模型
  • (STM32笔记)九、RCC时钟树与时钟 第二部分
  • (ZT)一个美国文科博士的YardLife
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (接口自动化)Python3操作MySQL数据库
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (每日一问)设计模式:设计模式的原则与分类——如何提升代码质量?
  • (三分钟了解debug)SLAM研究方向-Debug总结
  • (算法)前K大的和
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)基于IDEA的JAVA基础1
  • (游戏设计草稿) 《外卖员模拟器》 (3D 科幻 角色扮演 开放世界 AI VR)
  • (转)http协议
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net dataexcel winform控件 更新 日志
  • .net 程序 换成 java,NET程序员如何转行为J2EE之java基础上(9)