截图选自Understanding the Finite-Difference Time-Domain Metho  作者是John B. Schneider

有限差分时域(FDTD)方法使用有限差分作为麦克斯韦方程组(特别是安培定律和法拉第定律)的近似。

麦克斯韦方程组乃是由四个方程共同组成的:

  • 高斯定律:该定律描述电场与空间中电荷分布的关系。电场线开始于正电荷,终止于负电荷(或无穷远)。计算穿过某给定闭曲面的电场线数量,即其电通量,可以得知包含在这闭曲面内的总电荷。更详细地说,这定律描述穿过任意闭曲面的电通量与这闭曲面内的电荷之间的关系。
  • 高斯磁定律:该定律表明,磁单极子实际上并不存在。所以,没有孤立磁荷,磁场线没有初始点,也没有终止点。磁场线会形成循环或延伸至无穷远。换句话说,进入任何区域的磁场线,必需从那区域离开。以术语来说,通过任意闭曲面的磁通量等于零,或者,磁场是一个无源场
  • 法拉第感应定律:该定律描述时变磁场怎样感应出电场。电磁感应是制造许多发电机的理论基础。例如,一块旋转的条形磁铁会产生时变磁场,这又接下来会生成电场,使得邻近的闭合电路因而感应出电流。
  • 麦克斯韦-安培定律:该定律阐明,磁场可以用两种方法生成:一种是靠传导电流(原本的安培定律),另一种是靠时变电场,或称位移电流(麦克斯韦修正项)。


考虑函数f (x)围绕点x0展开的Taylor级数展开式,其偏移量为±δ/2:

两式相减可得

整理一下可以变成

 左边为关于位移的导数右边为中心差分与高阶无穷小,近似等于中心差分(在极限下,当δ趋于零时,近似就变得精确)


由Kane Yee在1966年首次提出的FDTD算法采用了二阶中心差异。该算法可总结如下:

1.用有限差分代替安培定律和法拉第定律中的所有导数

2.求解得到的差分方程,得到“更新方程”,用(已知的)过去的场来表示(未知的)未来的场。

3.在未来的一个时间步中评估磁场与

4.在未来的一个时间步中评估磁场与

5.重复循环

在一维FDTD中法拉第定律可以写作:

变为标量形式为:根据电场的空间导数给出了磁场的时间导数。

安培定律可以写作:

变为标量形式为:根据磁场的空间导数给出了电场的时间导数。

再用有限的差值替换上式中的导数以做到离散化

m表示空间步,q表示时间步

如下图所示,第一个方程将用于及时推进磁场,而第二个方程将用于推进电场。一种方法,其中一个场是先进的,然后是另一个场,然后重复这个过程,被称为跳蛙法。

更新磁场后

上图更新主要涉及两个差分等式:

整理可得代表过去半个时刻的两个相邻位置电场以及过去一个时刻的磁场推导出未来半个时刻的磁场

整理可得代表过去半个时刻的两个相邻位置磁场以及过去一个时刻的电场推导出未来半个时刻的电场

转换成代码就是两句赋值语句(imp0代表自由空间的特征阻抗):

下面为简要代码:

1 /* Bare-bones 1D FDTD simulation with a hard source. */
2
3 #include <stdio.h>
4 #include <math.h>
5
6 #define SIZE 200
7
8 int main()
9 {
10 double ez[SIZE] = {0.}, hy[SIZE] = {0.}, imp0 = 377.0;
11 int qTime, maxTime = 250, mm;
12
13 /* do time stepping */
14 for (qTime = 0; qTime < maxTime; qTime++) {
15
16 /* update magnetic field */
17 for (mm = 0; mm < SIZE - 1; mm++)
18 hy[mm] = hy[mm] + (ez[mm + 1] - ez[mm]) / imp0;
19
20 /* update electric field */
21 for (mm = 1; mm < SIZE; mm++)
22 ez[mm] = ez[mm] + (hy[mm] - hy[mm - 1]) * imp0;
23
24 /* hardwire a source node */
25 ez[0] = exp(-(qTime - 30.) * (qTime - 30.) / 100.);
26
27 printf("%g\n", ez[50]);
28 } /* end of time-stepping */
29
30 return 0;
31 }

[读书笔记]FDTD与YEE晶胞的更多相关文章

  1. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

  2. 读书笔记--SQL必知必会18--视图

    读书笔记--SQL必知必会18--视图 18.1 视图 视图是虚拟的表,只包含使用时动态检索数据的查询. 也就是说作为视图,它不包含任何列和数据,包含的是一个查询. 18.1.1 为什么使用视图 重用 ...

  3. 《C#本质论》读书笔记(18)多线程处理

    .NET Framework 4.0 看(本质论第3版) .NET Framework 4.5 看(本质论第4版) .NET 4.0为多线程引入了两组新API:TPL(Task Parallel Li ...

  4. C#温故知新:《C#图解教程》读书笔记系列

    一.此书到底何方神圣? 本书是广受赞誉C#图解教程的最新版本.作者在本书中创造了一种全新的可视化叙述方式,以图文并茂的形式.朴实简洁的文字,并辅之以大量表格和代码示例,全面.直观地阐述了C#语言的各种 ...

  5. C#刨根究底:《你必须知道的.NET》读书笔记系列

    一.此书到底何方神圣? <你必须知道的.NET>来自于微软MVP—王涛(网名:AnyTao,博客园大牛之一,其博客地址为:http://anytao.cnblogs.com/)的最新技术心 ...

  6. Web高级征程:《大型网站技术架构》读书笔记系列

    一.此书到底何方神圣? <大型网站技术架构:核心原理与案例分析>通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计 ...

  7. LOMA280保险原理读书笔记

    LOMA是国际金融保险管理学院(Life Office Management Association)的英文简称.国际金融保险管理学院是一个保险和金融服务机构的国际组织,它的创建目的是为了促进信息交流 ...

  8. 《3D Math Primer for Graphics and Game Development》读书笔记2

    <3D Math Primer for Graphics and Game Development>读书笔记2 上一篇得到了"矩阵等价于变换后的基向量"这一结论. 本篇 ...

  9. 《3D Math Primer for Graphics and Game Development》读书笔记1

    <3D Math Primer for Graphics and Game Development>读书笔记1 本文是<3D Math Primer for Graphics and ...

  10. 《More Effective C#》读书笔记

    <More Effective C#>这本书,大概是四年前看完的,但只整理了一部分读书笔记,后面有时间的话,会陆续补充的. More Effective C# :使用泛型 More Eff ...

随机推荐

  1. openwrt通过gre回源

    创建  ip tunnel add GRE网卡名 mode gre local 本地LAN IP remote SERVER LAN IP ttl 255  ip link set GRE网卡名 up ...

  2. 浅谈JS输出中的“+”作用问题

    背景(问题) web前端考试有这么一道题目(为了阅读方便和应文章的景,小编将题目进行了微调) <input type="number" value="1" ...

  3. JS回文检查(FreeCodeCamp项目)

    需求 如果传入的字符串是回文字符串,则返回 true. 否则返回 false 回文 palindrome,指在忽略标点符号.大小写和空格的前提下,正着读和反着读一模一样. 注意:检查回文时,你需要先去 ...

  4. linux 使用tc做限速

    #!/bin/bash#针对不同的ip进行限速 #清空原有规则tc qdisc del dev em3 root #创建根序列tc qdisc add dev em3 root handle 1: h ...

  5. MYSQL5.7索引异常引发的锁超时处理记录

    原始sql: update a set a.x=x where a.xid in (select b.xid from b inner join c on b.xxx = c.xxx) and a.x ...

  6. C语言-链表流星雨(EsayX)

    刷B站看到的,做个玩玩.IDE:Visual Studio 2022.依赖EsayX图形库 1-效果 2-程序 /* 链表流星雨单文件版本 依赖EsayX图形库 */ #include <std ...

  7. P1062 [NOIP2006 普及组] 数列 题解

    目录 题目 思路 code 题目 P1062 [NOIP2006 普及组] 数列https://www.luogu.com.cn/problem/P1062 思路 先把 N 转换成 2 进制,再把这个 ...

  8. Mysql数据库基础第二章:(七)子查询

    Mysql数据库基础系列 软件下载地址 提取码:7v7u 数据下载地址 提取码:e6p9 mysql数据库基础第一章:(一)数据库基本概念 mysql数据库基础第一章:(二)mysql环境搭建 mys ...

  9. vue 3 打印 print-js

    1.安装 npm install print-js --save 2.引用 import print from 'print-js' 3.编写打印函数 const enterDialog = asyn ...

  10. Codensity T408 视频转码器

    Codensity T408 视频转码器   微信: orihard2014