分类目录归档:科研笔记

Rsoft 入门

科研向的光学仿真通常使用以Lumerical和COMSOL,分别基于 时域有限差分 (Finite-difference time-domain method, FDTD) 和 有限单元法( Finite Element Method,FEM)。

对于计算周期性结构的散射场,采用 严格耦合波分析法(Rigorous Coupled Wave Analysis, RCWA) 更具优势,是一种结合了 传输矩阵法(Transfer Matrix Method, TMM) 和 平面波展开发(Plane Wave Expansion Method, PWEM) 的半解析方法。 也被称为 傅里叶模式法(Fourier Modal Method, FMM) 。

Rsoft中diffractMOD采用了RCWA算法,所以又开了一个新坑,学习Rsoft。

在Youtube上发现了 CYBERNET SYSTEMS TAIWAN 思渤科技 的相关视频,并向B站搬运了其中两个播放列表,分别是 基础教学,和 Hologram AR Design(包括diffractMOD + MOST 这两个模块的教学)。

除了商业的软件,还有一些基于MATLAB 编写的程序,用于RCWA的计算。

注意点

Rsoft总体的使用并不难,在Symbol Table Editor中输入参数,在CAD绘制图形。注意点是材料参数的选取,和仿真的设置。所用的版本为8.0.2.1。

材料参数

在Material Editor 采用了解析的方式,通过拟合Drude-Lorentzian-Debye Resonance 描述材料性质,但是十分繁琐。
可以采用从已有文本文件中导入,需要遵循Standard RSoft File Format,详见Appendix B:File Formats。

示例:这一段包含两列数据,分别表示 实部和虚部 ,自变量范围为0~1,共11个点。

/rn,a,b/nx0/ls1
 11 0 1 0 OUTPUT_REAL_IMAG
 0.00 0.000
 0.01 0.001
 0.04 0.008
 0.09 0.027
 0.16 0.064
 0.25 0.125
 0.36 0.216
 0.49 0.343
 0.64 0.512
 0.89 0.729
 1.00 1.000

仿真设置

Rsoft仿真设置在Perform Simulation中,通过Output options选择输出观察的物理量。通过prefix修改文件名,可以在同一个CAD模型下,进行不同仿真。

参考:

  1. Wikipedia/Rigorous coupled-wave analysis
  2. EMpy Electromagnetic Python
  3. zhaonat/Python Rigorous-Coupled-Wave-Analysis PACKAGE

Matlab 从字符串中提取数字

今天学到了一个从字符串中提取数字的方法

对于字符串中数字出现格式相对固定的,可以使用’sscanf’函数, 功能为Read formatted data from string 。

我从文本文件中读取到文件名字符串,

str='R_topAu_hspacer=0.1[um],period=0.3[um].txt'
A = sscanf(str, 'R_topAu_hspacer=%f[um],period=%f[um].txt');

就可以提取出其中的0.1和0.3

参考:Matlab – sscanf从字符串读取格式化数据

LiveLink™ for MATLAB®(COMSOL Multiphysics)

由于需要经常变换结构参数,进行电磁仿真,通常使用comsol内的sweep功能进行波长扫描,手动输入结构参数十分繁琐,所以开发使用LiveLink™ for MATLAB的功能,实现自动化仿真。

最好的参考依旧是官方手册, 基于Client-Server架构,使用 MATLAB Client和Comsol Server。。

基本的连接操作如下:

  • 打开 COMSOL x.x with MATLAB,其中x.x为版本号
    (首次打开填入用户名和密码,密码输入时不显示)
  • comsol server 命令行窗口和 MATLAB 桌面软件被打开
  • 在MATLAB 命令行中使用mphload(‘xxx.mph’)加载文件夹下已有的mph文件
  • 同时也可以使用Comsol desktop中COMSOL Multiphysics Server>Connect to Server,再Import Application from Server

参考:

LiveLink™ for MATLAB® User’s Guide

2019年数学建模

2019年,华为杯第16届中国研究生数学建模竞赛在9月18日开始,组队参加这次比赛,得益于队友的支持,建模体验远好于本科时参与过的两次。

本科时国赛和两位交通学院的女生组队,建模程序文章全部我一人包圆,文章质量当然也是极差,没有获奖是意料之中。当年寒假,又和本学院的两位大神组队,参加美赛。那两位大佬国赛时和一名理学院的学弟组队,斩获国家二等奖。但是美赛的实际情况缺十分糟糕,四天三夜只得个安慰奖而已。并且报名、缴费等杂事也是我一人完成。这次体验,不免觉得这两个人在合伙搞我。

2019年和两位师兄报名了研究生数学建模,体验较好,合作愉快,结果另说。

选择D题,“汽车行驶工况构建”,主要是对数据的处理与挖掘。使用了主成分分析(Principal Component Analysis,PCA)和K均值聚类(k-means clustering)的方法,也算花了两天时间学习了一下这些数据科学种的常用方法。时间安排的也非常好,不熬夜佛西建模,迅速的讨论建模,早早写完稿子交上。算是在平日科研中的一种调剂,换换思维方式。


2019-11-11,在双十一这一天出了成绩,又是成功参与奖,依旧是最菜的。

转载:Zotero 使用笔记

Zotero 使用笔记

Zotero 是一个免费的文献管理工具。关于 Zotero 的使用推荐阳志平老师的博客:

本文主要介绍几个比较有用的插件和自己平时的操作流程。

插件

主要功能包括,文件重命名,导出 PDF 文件到指定目录,与云存储配合实现扩平台阅读。

Better Bib(La)Tex(link)(已过时,zotero 支持 clipboard 导入,看 tips5 )

Zotero 本身不支持 Bibtex 格式导入文章条目。该插件弥补了这一不足。
使用时,将 Bibtex 信息复制到 clipboard 中,然后选择 import from clipboard 即可。
zotero-import-from-bibtex

Markdown Here(link

使用 markdown 编写文章笔记,然后用 ctrl+alt+m 组合键将文本变为 html。该插件需要自行编译 xpi 插件包

Google Scholar Citation(link

查找文章的引用数,将引用信息填入 extra 字段中。
P.S. 最新版本的插件可能会不工作,可以使用老版本的插件(例如 v1.8.4)。如果一次更新太多会被 Google 认为是 Robot,限制访问。

工作流

[预备] 同步到 webDAV 上(使用 digital ocean 的私服搭建

  1. 文件导入(一般是 connector 或 bibtex);
  2. 批量下载 (chrono download),并创建索引(Create Bibliography from Item);
  3. 更新 scholar citation(Google Scholar Citation);
  4. 使用 Zotfile 发送到共享文件夹 (Google Drive),使用 IPad 浏览(PDF Expert)并记录笔记然后再用 Zotfile [Get from Tablet] 同步回 Zotero;
  5. 在条目中创建 notes ,使用 markdown 语法做笔记(markdown here)。

另外,阳的博客(6)中使用的 chrome 插件已经过时,更新为 Chrono Download Manager

Tips

  1. 递归显示 collection 中所有项目信息 (Hidden Perferences)
    希望实现的功能是,点击一个 collection 可以显示 sub-collection 的项目。Zotero 默认情况是不显示的。这个问题之前有人在 Zotero 社区问过
    解决方法是通过修改 Hidden Preference 文件中的 extensions.zotero.recursiveCollections 字段,将其修改为 true 即可。
    Zotero 的配置文件包括一般可用文件和隐藏文件。隐藏文件的修改可以进入 Advanced (Panel),选择 open:config 进行修改(当前 Zotero 版本是 4.0.29.15)。
  2. 显示 collection 目录下文件个数 (tips_and_tricks)
    To see how many items you have, click an item in the middle pane and Select All (Command-A on macOS or Control-A on Windows/Linux). A count of selected items will appear in the right-hand pane.
  3. 批量展开与折叠项目信息
    To determine total items, including child attachments and notes, click an item and press the + (plus) key to expand all parent items before using Select All. You can press – (minus) afterward to collapse all items.
  4. 查看一个条目在哪些目录(tips_and_tricks
    To see all the collections an item is in, select the item and then hold down the “Option” key (Mac OS X), “Control” key (Windows), or “Alt” key (Linux). This will highlight all collections that contain the selected item.
  5. 从粘贴板导入条目How does the Import from Clipboard feature work?
    Import from Clipboard allows you to import items from the raw code of any supported format (RIS, BibTeX, CSL JSON, etc.). Many websites post the bibliographic data for items in their raw form. To add these items to your Zotero library, select and copy the code from the site, then import through the option in File menu in Zotero, or by the keyboard shortcut (Windows/Linux: Ctrl-Alt-Shift-I / Mac: Cmd-Option-Shift-I).

TODO List

关于插件:

  • voyant-export 可以对储存在Zotero里的文字信息进行进一步分析,生成云图或者其它数据可视化图像。

原文链接:

https://leungf.github.io/2017/10/13/zotero-notes/

Matlab 相关操作小结(1)

之前使用matlab进行仿真的解析计算。最近在处理实验数据,也使用到了matlab,对于一些常见的操作进行一下小结。


1. 拟合

  • 使用cftool工具箱

工具箱操作相对便捷,首先导入数据,打开工具箱,选择需要拟合的X和Y(或Z)的数据,选择拟合类型,可以实时的看到拟合的结果。

  • 使用fit命令

fit命令 可以用于拟合函数需要注意的是,fit命令返回的fitobject对象。
可以用 Fit Postprocessing 拟合后处理函数,从对象中提取需要的内容。
feval(fitobject)可以得到拟合后的数值,plot(fitobject)可以绘制拟合前后的图像。

2. 批量读取.csv文件

dir命令可以列出文件夹内容
dir(*.csv)可以列出当前文件夹所有.csv文件,然后我的做法是再再当前文件夹下保存为.mat文件,以供后续使用。

csvread('filename',r,c) 可以用来读取.csv文件,r,c,分别用于开始从表中读取数据的偏移量。

文件路径
当前路径下 (mat和m文件在一起): load ***.mat;
在下一级路径下:load .\下一级路径的文件名\***.mat;
在上一级路径下:load ..\***.mat;
在平行文件夹内: load ..\平行的文件夹\***.mat;

3. 常用函数

  • size
    主要用来获得矩阵的各个维数的大小,或者指定维数的大小。

  • length
    用来获得一维数组的长度或者多维数组中最大的维数

  • array(array==0)=[]
    删除0值

  • max 、min
    最值

  • mean 、norm
    算数平均值,平方和开根号


最后,最重要的仍然是勤于搜索和翻阅手册。

欢迎点击 Mathworks官方的 在线文档

高斯光束

最近仿真需要用到高斯光束,学习了一下高斯光束的设置和相关理论。

在一定频率下,Maxwell方程并不独立完全独立,只有法拉第定律和安培定律(加位移电流)的两个方程独立。求解电场或磁场可以得到Helmholtz方程,是一定频率下电磁波的基本方程。其解是电场代表电磁波场强在空间中的分布,每种可能的形式成为一种波模。

基本的解有平面波、球面波和高斯光束。高斯光束在束腰可以看作平面波,而在远离束腰的地方可以看作球面波,是连接平面波和球面波的一种过渡的形式。

高斯光束的方程为:
$ \frac{E(r,z,t)}{E_0}=\frac{w_0}{w(z)}exp[-(\frac{r}{w(z)})^2]exp[i(\omega t-\Phi _T-\Phi _L)]$

高斯光束的基本参数有:
– Beam radius : $w(z)=w_0\sqrt{1+(\frac{z}{z_R})^2}$,代表z点处光斑半径
– Radius of curvature of phase front : $R(z)=z[1+(\frac{z_R}{z})^2]$,代表等相位面
– Transverse phase : $\Phi T(r,z)=\frac{kr^2}{2R(z)}$
– longitudinal phase : $\Phi _L(z)=k_z-arctan(\frac{z}{z_R})$
– Rayleigh Length : $ z_R=\frac{\pi w_0^2}{\lambda }$,也称为高斯光束的共焦参数
– Divergence angle : $\Theta =2\theta =2\times \lim
{z \to \infty } arctan(\frac{w(z)}{z})\simeq \frac{\lambda _0}{\pi nw_0}$,代表远场发散角

参考:
1. Understanding the Paraxial Gaussian Beam Formula
2. Gaussian beam – wikipedia
3. Gaussian beam – Youtube

苏州纳米所综合培训

2018年12月6日-8日,参加了苏州纳米所综合培训。

官方网络资料:新用户培训资料下载

周四(6日)
下午14:00高铁从上海出发,转苏州地铁2号线,到达苏纳所,去纳米加工平台B618找柏燕,缴费报名,600元。

周五(7日)
上午9:00,在纳米加工平台B616综合培训,就是念PPT,和下载的资料一样。
上午10:30,参观净化室,共4层。
下午13:30,理论考试,机考,当场出分。
下午15:00,净化室清洗间理论培训,看了三个视频,包括基本常识、有机、无机。根据理论考试通过人数,安排清洗间操作考核。

周六(8日)
下午13:30,清洗间操作考核。考试用水代替实际溶液,无大错(器皿选择、防护穿戴、废液稀释、废液分类),比较容易。

理论考试的我的错题(加粗为正确答案)

  • 下面哪个不是乙醇的禁配物:A强氧化剂 B酸类 C碱金属 D碱类
  • 下面哪个对硝酸描述不对:A易挥发 B见光分解 C与水混溶 D透明或胶状液体
  • 在超净104实验室有一个消防栓:错误
  • 以下关于工艺预约时间描述正确的有哪几项:A晚上的工艺需要在5点之前预约 B晚上的工艺可以和白天一样随时预约 C周末的工艺需要在星期五下午4点预约 D 周末工艺可以在周六早上9点之前预约 E中午12:00-13:30的工艺,在11:50之前预约即可