You should write because writing makes you a better person.

0%

Structure and parameter:

image-20240108174153008

w = 1 μm d = 50 nm

Period initial

Mode effective index:

image-20240108174235914

Period initial : 1550/(2.751637-2.426784) = 4771.388905 nm

Simulation:

image-20240108174318261

Optimized period: 5.08 μm

Result:

120240108

背景

因为要画结构的3D示意图,发现ppt画的挺方便的。虽然可能渲染什么的高级功能差一点。

方法

建立2D图片:

可以先画好结构,然后用iside布尔运算

image-20240108151959481
2.
image-20240108151947035
3.
image-20240108152009712

用PPT的三维格式进行修改

image-20240108152333140

最后结果如下:

image-20240108152354898

问题描述:

识别插入word的公式前面有一些奇奇怪怪的空间,后面发现是占位符,想把它们删掉,从而实现公式的对齐。

image-20240108131147814

解决方法:

  1. 显示占位符

image-20240108131248181

  1. 删除列

image-20240108131334353

  1. 最后效果:

image-20240108131416647

为什么要把Lumerical画的图导入MATLAB重新画图

为了统一画图的格式,后续可以把matlab重新画的图导入AI统一进行图像的绘制和处理。

具体方法:

1. 首先把Lumerical画出的模场分布导出为TXT格式:

adfdsfewwqex20240107

2. 修改txt格式的文件的内容,添加上bulk_E_slice = [ … ]

image-20240107192215500

image-20240107192251396

3. 把txt文件重命名为power_distribution.m

image-20240107192301482

4. 运行MATLAB程序

MATLAB代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
close all;
clear;
power_distribution;
bulk_E_slice =rot90(bulk_E_slice);
length = 104;
width = 4;
x =0:size(bulk_E_slice,1)*length/size(bulk_E_slice,1);
y =0:size(bulk_E_slice,2)*width/size(bulk_E_slice,2);
y = fliplr(y);
x = x-3;
imagesc(x,y,bulk_E_slice)
xlabel("x(μm)");
ylabel("y(μm)");
colorbar;
% caxis([0,1]);
colorbar('Ticks',[0,0.5,1,1.5,2]);
set(gca,'YDir','normal')
colormap('jet');
xlim([0,40])

image-20240107192325877

5. 复制图窗,拷贝进入Adobe IIIustrator

修改完之后最后结果:

资源 120240107

器件功能:

使TE0-TE4和TM0-TM4能分开

结构:

image-20240104164502003

优化思路:

大体思路就是TE4好的话就减少宽度,TM4好的话就增加宽度(trench和gap)

优化过程log

gap = 0.3; trench = 0.3

TM4 @ 1550 nm:

image-20240104175603572

gap = 0.25; trench = 0.25

TM4:

image-20240104211808072

TE4:

image-20240104212419303

器件功能:

使TE0-TE4和TM0-TM4能分开

结构:

image-20240104164502003

优化思路:

大体思路就是TE4好的话就减少宽度,TM4好的话就增加宽度(trench和gap)

优化过程log

gap = 0.3; trench = 0.3

TM4 @ 1550 nm:

image-20240104175603572

gap = 0.25; trench = 0.25

TM4:

image-20240104211808072

TE4:

image-20240104212419303

方法

google 学术里面选择引用->BibTeX

image-20231231204002660

用BibTeX的原因是其他格式的的好像短时间下载多了ip会被ban

鼠标侧键复制

下面是x mouse button的配置

image-20231231204026045

鼠标中键导入到zotero中

image-20231231204041281最后在word里面使用

image-20231231204136679

好处:

  1. google学术抓取的一般参考文献的人名、页码等不会出错

  2. 方便快捷,适合大量参考文献的格式统一和抓取

摘要

本回答将简单简单的介绍杨宗银老师开发单纳米线计算光谱仪,此项研究在2019年在science上有报告 [1],感兴趣的可以阅读原文,此回答可以看作该文章的导读。

背景

光谱仪的目的是得到入射光在不同波上的强度,也就是得到光谱。杨老师的方法是基于光谱重构原理设计的计算光谱仪,2013年,Cao Hui老师最早在nature photonics上报道过这种方法 [2],并且后续做了一系列工作,潜在应用包括光谱相机,血氧检测等。

方法和设计原理

光谱仪的方法是基于光谱重构,具体原理可以简单介绍如下:

1. 光强可以通过材料中的电流来探测

我们高中的时候可能学过光电效应,光子会被吸收把电子从价带顶激发到导带底。光探测器的原理与此类似,也就就是一定强度的光照射在特定的半导体材料上会产生自由载流子,进而在反偏PN结中形成电流。简言之,就是光强可以通过材料中的电流来探测。

2. 光强可以叠加

比如说,波长为λ1λ_1,强度为a1a_1的光产生的电流为c1c_1,波长为λ2λ_2,强度为a2a_2的光子产生的电流为c2c_2,那么当这两束光同时入射时,产生的电流为 c1+c2c_1 + c_2

当连续光入射时,探测到的电流为:

λ1λ2F(λ)R1(λ)dλ=I1\int_{\lambda 1}^{\lambda 2} F(\lambda) R_1(\lambda) d \lambda=I_1

其中F(λ)F(\lambda)是入射光谱,R1(λ)R_1(\lambda)可以理解为特定光探测器的光电转换系数。

3. 假如我们制造了2个光探测器

比如说,波长为λ1λ_1,强度为a1a_1的光产生的电流为c1c_1,波长为λ2λ2,强度为a2a_2的光同时入射时,产生的电流在探测器1上为 I1I_1,在探测器2上为I2I_2,那么我们可以得到如下方程组:

r1(λ1)a1+r1(λ2)a2=I1r2(λ1)a1+r2(λ2)a2=I2r_1(\lambda_1)*a_1 + r_1(\lambda_2)*a_2 = I_1\\ r_2(\lambda_1)*a_1 + r_2(\lambda_2)*a_2 = I_2

我们知道这是一个二元一次方程组,在已知r1(λi),Iir_1(\lambda_i),I_i的情况,可以轻松算出a1,a2a_1,a_2

3. 假如我们制造了100个光探测器

假如我们制造了100个光探测器,并且提前测得了每个光探测器在不同波长的光电转换系数Ri(λ)Ri(λ)。可以得到:

λ1λ2F(λ)R1(λ)dλ=I1λ1λ2F(λ)R2(λ)dλ=I2λ1λ2F(λ)Rn(λ)dλ=In\begin{gathered} \int_{\lambda 1}^{\lambda 2} F(\lambda) R_1(\lambda) d \lambda=I_1 \\ \int_{\lambda 1}^{\lambda 2} F(\lambda) R_2(\lambda) d \lambda=I_2 \\ \vdots \\ \int_{\lambda 1}^{\lambda 2} F(\lambda) R_n(\lambda) d \lambda=I_n \end{gathered}

那么我们把他们同样离散化后(就是光谱划分为λ1,λ2,...λn\lambda_1, \lambda_2,...\lambda_n),可以得到一个n元方程组,在已知Ri(λ)R_i(\lambda),并且测得IiI_i的情况下,

通过矩阵求逆/最小误差等等方法可以求出来光谱信号(如MATLAB CVX toolbox)。

4.假如我们把这100个光探测器做在一根纳米线上

image-20231229120606633假如我们把这100个光探测器做在一根纳米线上,并且每过一段长度放一个电极来检测电流。那么我们就得到了一个超小型的片上计算光谱仪。

个人评价

因为我本身不做这个领域,只能分享一些道听途说的事情,有错漏可以指出,有什么写的不太清楚,或者想进一步了解的地方也可以评论区提问。

和大部分科研工作相比,这项工作确实挺有意思的,但依然有很多问题需要解决。

  1. 由于矩阵的病态性,不能确定入射光谱一定能被计算出来
  2. 由于光探测器需要用激光器提前标定,因此在工业生产中成本较高。
  3. 可能这个光谱系统可能不是非常稳定。

总之,在快到2024年的今天,这个坑里面可以继续灌的水不多了,大家入坑请谨慎。

参考文献

  1. Zongyin Yang et al., Single-nanowire spectrometers. Science365,1017-1020(2019). DOI:10.1126/science.aax8814
  2. Redding, B., Liew, S., Sarma, R. et al. Compact spectrometer based on a disordered photonic chip. Nature Photon 7, 746–751 (2013). https://doi.org/10.1038/nphoton.2013.190

硬件需求

Nvidia CUDA driver version 450.80.02 or later (Linux), version 452.39 or later (windows)

仿真需求

需要设置为express模式:

img

目前限制

  1. 边界条件仅支持PML
  2. frequency dependent mode source profiles are not supported.
  3. time monitors 会限制仿真速度

其他

  1. For multiple jobs it is recommended to run them in series rather than in parallel.

脚本实现

1
2
3
4
5
setnamed("FDTD", "express mode", true);
setresource("FDTD","GPU", true);
setresource("FDTD", 3, "GPU Device", "Auto");
setresource("FDTD", "GPU", false);
setresource("FDTD", "CPU", true); //< equivalent to previous line

参考文献

  1. https://optics.ansys.com/hc/en-us/articles/17518942465811-FDTD-GPU-Solver-Information