首页 > 其他分享 >[读书笔记]FDTD与YEE晶胞

[读书笔记]FDTD与YEE晶胞

时间:2022-09-30 17:34:32浏览次数:82  
标签:FDTD 电场 定律 mm 读书笔记 YEE 差分 ez 磁场

截图选自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,电场,定律,mm,读书笔记,YEE,差分,ez,磁场
From: https://www.cnblogs.com/zoe--wangzhe/p/16745618.html

相关文章

  • 9月份读书笔记1
    importjava.util.Scanner;importjava.util.Random;importjava.math.BigInteger;publicclasssizeyunsuan{ //出题参数 Randomr=newRandom(); Strings[]=newStr......
  • 9月份读书笔记2
    importjava.util.Scanner;importjava.util.Random;importjava.math.BigInteger;publicclasssizeyunsuan{ //出题参数 Randomr=newRandom(); Strings[]=newStr......
  • FDTD例子--圆盘+正方体结构(R尺寸因素)
    分析圆盘半径尺寸对吸收/发射光谱的影响(视频从22:00开始讲)https://www.bilibili.com/video/BV1rU4y1X7je/?spm_id_from=333.999.0.0&vd_source=5b2d259cbcabcdea8535944c2......
  • 程序员修炼之道:从小工到专家读书笔记
    注重实效的哲学   注重实效的程序员对他的职业生涯负责,并且不害怕承认无知或错误,如果你确实同意要为某个结果负责,你就应切实负起责任。当你犯错误、或者判断失误时,诚实......
  • 继承与static-阅读EmployeeTest.java代码
    尝试阅读EmployeeTest.java代码。importjava.util.*;/***ThisprogramteststheEmployeeclass.*@version1.112004-02-19*@authorCayHorstmann*/pub......
  • 《程序员修炼之道:从小工到专家》第一章读书笔记
     最近我读了《程序员修炼之道:从小工到专家》这本书的第一章:注重实效的哲学 注重实效的程序员的特征是它们处理问题、寻求解决方式时的态度、风格、哲学。 在第一个......
  • 《程序员修炼之道:从小工到专家》读书笔记1
    之所以选择这本书作为第一本书,是因为这本书描述了一些程序员编写大型项目时所应该遵循的最基本的原则和可以使用的最基本的工具。它没有描述某一种特定的语言、特定的算法,......
  • 读书笔记1
    每一程序员都有属于自己的编程风格,每个人都有自己擅长的和不擅长的,随着时间的推移会逐渐形成属于自己的编程环境。一个成功的程序员成功的一个关键是他们会对自己所做的事......
  • 第十一章读书笔记
    第十一章读书笔记11.1EXT2文件系统EXT2:Linux一直在用的默认文件系统EXT3:在EXT2之上拓展了任务日志功能EXT4:EXT4不再分配不连续的磁盘块,而是分配连续的磁盘块,称为区段......
  • 读书笔记|择一城以定财富,择一行以定发展
    题记“最近个人财政吃紧,想着病急乱投医”,看看理财区有什么好的书籍,然后就用两天时间读完了这本——《钱从哪里来》。作者:香帅,本名唐涯,知名金融学者,香帅数字金融工作室创始人......