每天一遍,防止忘记

初始建立仿真文件:
1.建立物理结构
 几何结构
 材料特性
2.定义仿真区域
 边界条件
3.设置激励源(光源)
4.设置监视器
 至少使用一个时间监视器
 分析组
 只记录需要的数据
运行与仿真:
1.运行仿真文件
 分布式并行运算
 并发式并行运算
2.参数扫描与优化
3.结果分析
 视觉化器visualize
 使用script文本程式

光源使用原则

Plane wave:平面波,周期性结构(或非周期结构,但PML阶段产生衍射时);如各类光栅、超导材料等。
Gaussian/NA source:高斯光束,非周期结构;如光栅耦合器,激光束照明,汇聚照明等。
dipole:偶极子点源,周期/非周期结构均可;如OLED/LED,Q值计算等。
TFSF:全场散射场光源,周期/非周期均可;如各类散射问题求解。
Mode Source:模式光源波导结构。如各类波导。
Import:自己设计,自定义输入。

TFSF使用的原则

FDTD region>>散射场≥mesh>光源>总场>结构

TFSF光源斜入射时对应的边界条件

1.无基底:TFSF光源+Bloch边界条件
2.有基底:TFSF光源+PML边界条件
光源斜入射 只能计算单波长,不能直接计算宽光谱结果。 想获得宽光谱结果,需扫描波长(固定角度),或扫描角度(固定波长)。

实例演示

平行入射纳米球的散射

1.建立物理结构
先打开辅助网格选项(Drawing Grid Properties),取消show grid和snap to grid选项。(此动作非必须,点选掉是为了方便观察。)

然后创建一个球体,设置半径为0.025nm。
选择金材质

:可以在setting选项中设置长度单位。

2.定义仿真区域

因为球体是金属材质,所以在Mesh settings的mesh refinement选项中选择conformal variant 1。

边界全部使用PML。
设置完毕后确定,点击左侧zoom extend按钮,使视图合适。

3.设置激励源(光源)
设置全场散射场光源(TFSF)。

编辑光源的属性

设置大小

波长设置300-600nm

4.设置监视器
观察总场、散射场以及场分布。因此在analysis中选择Optical power。

选择optical power的cross section点击insert

前面我们提到了
仿真区域为600,因此这里散射场设置为160。

然后复制一个作为总场,更小,设置为90。

设置mesh

注意各项之间的大小关系

添加一个场分布监视器

设置为YZ面
再复制修改成一个XZ面

最后插入一个时间监视器
设置为传到无穷远衰减的情况。

模型设置结束,保存文件(切记保存文件不能包含中文路径
运行前,先检查一下资源状况(resource选项下)
然后进行材料检查(点击fit and plot,拟合效果不是特别好)

调整参数

最后检查运行内存需求。

运行

运行后可以发现采样点有些过少,导致精度不够。

在monitors的global properties中设置,值越大,曲线越平滑。
监视器中也有frequency points这一选项。
为什么两个frequency point不设置一样的呢?这个值的大小对应输出结果的精度,精度越高,仿真运行需要的内存和时间就会越长。为了增加散场、总场的精度,我们将总点数设置较大,可以平滑曲线,而电场监视器设置过多的点虽然可以提高精度,但实际显示结果差别不大,所以,为了优化效果,建议减小点数。
这是监视器设置为5的结果

这是监视器设置为500的结果

反正我是没看出来什么明显的变化,其实时长变化也不大(电脑性能还是比较强)
据说可以在仿真设置中把精度提高来使球更清晰(*一次性加到了6,点数加到500

==或许……吧……==也可能是软件本身显示分辨率的限制,反正仿真时间翻倍了。
500点散场

500点远场

此外,所有仿真默认是在真空中进行的。(背景折射率)
如果希望更改,在添加的仿真设置中找到background index中修改。1为真空中,其他的折射率需要自己输入,如20°时,水的折射率为1.33。

对监视器精度参数影响的尝试

现在已知的由global 中frequency points;监视器的frequency points;添加的mesh数值;仿真设置中的mesh等级。
全局100,监视器10,mesh3,mesh等级5全局50,监视器5,mesh3,mesh等级5
mesh降到4.5,运行时间大幅减短,更粗超。

结论:监视器的精度主要取决于mesh的数值,相对于其他参数而言更为敏感,同样,它对内存影响也最大。

核壳结构

制作一个金包银的结构
1.建立物理结构
银球核,设置为半径20纳米,银材质
壳为金,厚度设置为5纳米,因此外层半径25纳米,金材质。

此时结构并未做完,实际结构为外金,内银。是需要用银代替金球的内部。因此,银的 mesh order 优先级 需要比金的大。(金默认为2,银就要设置为1.)

为了方便观察结构,再将金的alpha值调低。这样透明度就变高。


2.定义仿真区域
老套路,设置大小

都是金属材质,所以选从formal variant1,mesh等级适当调大以提高精度。

3.设置激励源(光源)

4.设置监视器
添加散射场和总场。

和前一个实例设置相同套路。

添加mesh,在金上添加一个4nm网格,银上添加2nm网格。

添加电场监视器

同理添加XZ方向的,添加方法同上,上个例子中也已经介绍。
添加时间监视器(非必须),可以检查脉冲衰减情况。

检查材料
先对银进行检查

效果不是很好,调节参数

然后检查金的
弹出的对话框点击保存即可。

Yes

同样调整参数,进行拟合

检查结束,点击右下角close,选择保存。
看一下运行内存需求。

看来要用点时间了。

散场结果

总场结果

两电场监视器
YZ平面

XZ平面

个人对mesh网格的浅薄理解

个人理解,求证了学长,但大多数还都是我所认为是这样。
根据上面核壳结构中连续添加了几层mesh突然就想进一步了解一下mesh。
这是我用3dmax做的一个效果,在我看来模型的分段网格就很像mesh网格。

外黄色网格是正方体进行4分段形成的;红色网格是内部正方体进行8分段形成的。
这与前面金包银,金进行4nm细分,银进行2nm细分很类似。(mesh是以长度为单位,因此数值越小,对应的单位长度划分越细)
类比可以看出越细(密)的网格会将物体(构造)划分更为精细,这样结果就更加准确(土豆人和人的区别——网格的多少,当然也要技术,不然面再多也没用)
那么外粗(稀疏)内细(密)最终仿真的过程是如何的呢?我们看一下尺子。

外面的粗网格就相当于大刻度(cm)细网格就相当于小刻度(mm),仿真必然会以某一单位长度来作为仿真的最小跨度。因此,有细(密)网格罩住的地方,就依照细网格进行划分仿真,而粗网格(疏)部分最小跨度只有这些就会按照比较大的跨度进行仿真。显而易见,越细分,电脑仿真占用资源越多,这也是不建议划分过细、没有必要不要细分的原因。

周期性结构

全场散射场光源本质上还是一个平面波,因此是适用周期性结构的。
1.建立物理结构
这次在components-photonic crystals中选择一个已有的结构。

选择这样的周期性结构

这里面设计的是圆柱体,我们希望它是球,想要更改,就要编辑这个组中的脚本
将这里的circle(圆柱体)改为sphere(球体),这样z就没有用了,将33行注释掉

点击确认,可以看到变成了球体

可以看到nx、ny,这两个表示物体个数时11×11的;ax、ay表示相邻两个球球心之间的距离。下面半径设置为50nm,设置材料为金。

2.定义仿真区域

mesh选项适当调高。
依旧是金属材质,所以选那个1的。
在边界条件上,因为是周期分布的,所以XY方向选择Periodic。
Periodic仅模拟一个单位单元来计算整个系统的响应。
这样就建好了一个结构

3.设置激励源(光源)
修改大小,波长设置为300-600nm。
4.设置监视器
添加散射场和总场,同上,这次散射场为180nm,总场120nm。
添加mesh为3nm,180nm跨度。
添加时间监视器100nm;100nm;100nm
拟合一下材料

最后检查内存就可以仿真了。
运行结果:
散场

总场

YZ面电场

XZ面电场

我额外对阵列进行了一次仿真。这次仿真区域包含9个球体。

仿真区域加大,意味着仿真内存和时长会加长。没错,在其他没改的情况下仿真需求内存高达3.8G!!!吃了个晚饭才仿真完。
然而
上图是我最终的仿真结构,在最开始,为了保持各场之间的大小关系不变,我只是按倍数放大了各个区域,然后……报错了
Warning! The simulation that created the data in the monitors and sources below diverged, and the data is likely invalid. Please see the Diverging simulation page for help on solving this problem.
问题出在了各个 激励源、监视器大小 上,虽然等比例放大了,举个例子:450nm的仿真区域和400nm的光源,放大两倍后变成了900nm和800nm之间的间隔由50nm变成了100nm,而这100nm之间 存在仿真的结构
这样就违反了我们之前的约定:结构大于了一些东西,至少光源小于了结构!!!

因此要时刻注意光源使用原则
好了,找到了问题所在,我改成了上面的结构,适当减小了mesh等一系列仿真精度的要求。
YZ面

XZ面

好像……没什么差别
突然想起来教程里好像说这个球间距有点大,可能相互之间作用不到……尤其在观察散场和总场的sigama的走势,趋势完全相同。

我又继续向下走了一步,既然距离远了,那就把距离调近。

球心间距离120nm。
这次有变化了!!!
散场

总场

YZ面

XZ面

距离更近后,相互影响的效果更加明显,算是和单一球体效果有些不同了。

斜入射案例(有、无基底)

此处对教程有些疑惑,建议不要看下面的内容,待搞清楚后我会重新编辑此处。因为教程中没给出仿真结果,而自己仿真过程中出现了仿真时间过长,参数变化等问题。
以第一个纳米球的文件作为基础。
对光源入射角进行修改。
修改的内容都是什么意思呢?链接

注意:当光源斜入射的时候,只能计算单波长,不能直接计算宽光谱的结果。
想要获得宽谱结果,需要扫描波长(固定角度),或扫描角度(固定波长)
因此,在刚才设定好45°角度的情况下,光源还要改成单波长。

然后扫描波长

编辑在同栏第四个图标,不是左侧工具栏!!
添加扫描,起始和终止,波长从300-600nm。注意绿色的框中,是选择你要扫描的量,是光源波长,在下来中object-光源名称-frequency start/stop,下面的E也同理。红框中是点数,10就表示它会计算10次。

斜入射设置边界条件为bloch

FDTD solutions——TFSF(全场散射场)光源及斜入射相关推荐

  1. FDTD Solutions-平面波和全场散射场TFSF光源的区别

    平面波一般适用于周期结构:特殊情况也可以近似应用于散射粒子等非周期情况. 全场散射场TFSF本身也是平面波,即全场区域内光源本身就是平面波,而散射场是减去光源直射部分(包括基底反射)后的散射场.TFS ...

  2. FDTD Solutions 批量建立任意角度的监测器实现纳米粒子散射相位函数的监测(Part1-方法1)

    FDTD Solutions 批量建立任意角度的监测器实现纳米粒子散射相位函数的监测(Part1-方法1) 前言 一.以监测纳米粒子散射相函数为例(监测角度0-180°范围内,某一传播距离位置处的光强 ...

  3. FDTD solutions

    FDTD solutions(运行前期设置) 参数设置 在开始边学边搭建这个项目之前,先将项目涉及到的参数以及我所需要的输出结果罗列出来: (input) Materials:SiO2 nanopar ...

  4. FDTD Solutions v2.2 1CD+ASAP

    ASAP v8.0-ISO 1CD(光学分析设计软件合集完全版,包括用户手册.使用实例,解密完全) ASAP 正版光源库 1CD ASAP v8.0 中文入门指南 ReflectorCAD 1.5 1 ...

  5. Lumerical FDTD Solutions中圆形监视器和分析组的设计

    Lumerical FDTD Solutions中内置的监视器只有点(零维).线(一维).矩形(二维).长方体(三维)等基本形状,但在一些特殊的仿真中,实验者可能想要其他形状的监视器,例如圆形.球形. ...

  6. FDTD Solutions仿真区出现绿条纹的原因、解决方案,及后遗症

    原因与解决方案:知乎上的大佬指出是因为FDTD与显卡驱动不兼容的问题,笔记本是独显但很低端(鲁大师测出来的:Nvidia GeForce 940MX (2GB/联想)),用鲁大师没有搜索到可用的显卡驱 ...

  7. FDTD Solutions时域有限差分法仿真学习相关操作(二)——圆偏振光和椭圆偏振光光源

    本主题讨论相位约定并描述两种实现圆形(和椭圆形)偏振光源的技术. 参考链接 求解器:FDTD.varFDTD 相位约定 FDTD 解决方案中用于正向传播平面波的符号约定是 e − i ω t + i ...

  8. FDTD Solutions自学整理笔记入门教程(3):监视器Monitors

    FDTD自学整理笔记入门教程之监视器(转载+改动) 3.监视器Monitors:(这个编辑器真的不方便,文字+图片的操作真是太麻烦了,为了方便就简单截图上传)

  9. 监视器的功能,光源分类,TFSF光源斜入射的实例(有/无边界)

    FDTD监视器的功能(注意:结构组和分析组不能位于光源的灰区) 主要有这几个监视器 折射率监视器 在FDTD区域建好后,这个监视器主要是查看当前建好的模型是否符合预期,此监视器不需要Run,放好位置后 ...

最新文章

  1. 华为鸿蒙os再见了安卓,再见了安卓!华为鸿蒙OS 2.0正式登场,开机只需19秒
  2. [转]Velocity脚本摘要
  3. IA-32 Architecture: the function of segment regitster(CS DS SS ES)
  4. 10-2-DBUtils工具
  5. 蓝桥杯 ADV-73 算法提高 数组输出
  6. 『力荐汇总』这些 VS Code 快捷键太好用,忍不住录了这34张gif动图
  7. 自创本派高考理数试题集现在发布
  8. 555定时器回差电压计算公式_555定时器及其应用
  9. 如何实现一个HTML5 RPG游戏引擎——第五章,实现人物和人物特效
  10. NLP中的绿色Finetune方法
  11. paip.提高用户体验----c++图片按钮方法总结
  12. 一款HP的本本大家帮忙看一下
  13. Dempster证据理论python复现
  14. python执行bat文件_利用python执行.bat文件
  15. GNSS/INS组合导航(九):三维简化的INS/GPS组合导航系统
  16. 如何使用阿里云国际版控制台使用海外云服务器-Unirech
  17. 3D真人手办,做一个迷你版的自己
  18. HNOI2008玩具装箱(T_OY)bzoj1010
  19. Nginx学习实践总结
  20. Token和Session有什么区别,面试官满意的答案

热门文章

  1. 一份价值百万的大数据分析报告如何炼成?
  2. 李德毅:未来交通——自动驾驶与智能网联
  3. 护照港澳通回乡证多功能证件识别阅读器MEPR100接口函数的定义
  4. Mybatis学习笔记(下)
  5. Vistual Studio Code中Markdown使用数学公式
  6. 计算机文档排版考试,Word和WPS通用的文档排版技巧
  7. 微信小程序---全局/本地存储
  8. 手机端h5唤起苹果地图
  9. 使用Axure完成交互式UI设计
  10. 2021小透明的年度总结