在 COMSOL Multiphysics 中模拟全息数据存储

2016年 4月 5日

大约在70年前,物理学家和电气工程师 Dennis Gabor 发明了全息术(holography)。从那时起,光学技术的形式就已经以多种不同的方式发展。在这篇博客文章(系列文章的第一部分)中,我们讨论了全息图在消费性电子产品中的特定工业应用,并演示了如何使用 COMSOL Multiphysics 在广泛的光学和数字技术领域模拟全息图。

全息术在消费性电子领域的兴起

大约在 10 年前,美国、日本和其他国家的大量研究人员和工程师致力于研发下一代光学存储设备,以取代蓝光驱动器。全息术被强烈认为是唯一的解决办法。研究人员预计,消费者对数据存储的需求将无限增长将促使开发出各种类型的全息术,以加快产品上市。尽管全息存储与固态存储器相比在商业上并不具备竞争力,但它仍然是任何光电工程师都应该充分理解的技术。

An illustration showing hologram data storage technology.

在过去几年里,随着计算机硬件的改进,仿真软件开始蓬勃发展。使用软件进行仿真使工程师能够解决设备灵敏度问题,确定在特定的体积中可以写入多少数据,并降低信噪比。传统上,这一领域的模拟是通过所谓的波束传播方法(beam propagation method,BPM)进行的。这种方法的优点是,它可以处理 1000 倍波长范围内的干涉、衍射和散射问题。而且计算成本低。但是,它不能正确计算大聚焦角度的光线。

对于这种全息存储问题,COMSOL Multiphysics 有两种不同的方法来求解麦克斯韦方程。一种方法是全波方法,可以模拟干涉和散射,但只能模拟与波长相当的仿真域。另一种方法称为波束包络法(beam envelope method),它可以计算大规模的干涉,但不能计算任意的散射。在这个系列博客中,我们将研究如何使用全波方法模拟小体积全息图,以进一步研究全息图如何通过参考波破译代码——这是全息术最令人兴奋的因素之一。

在 COMSOL Multiphysics 中模拟全息数据存储

上一篇博文中所述,在一般全息术中,物光束 是从任意物体散射的光束。在全息数据存储中,物光束是包含1比特数据的单光束或通过包含多比特数据的空间光调制器的光束。前一个系统叫做逐位全息数据存储,而后者被称为全息页面数据存储

在这些过程中,物光束穿过孔径并和参考光束产生干涉,在全息材料中产生复杂的干涉条纹图案。干涉条纹是携带信息的密码。这个过程叫做记录。物光束和参考光束的光源需要彼此相干,并且相干长度需要适当地长。为了满足这些条件,全息术的光源通常选自固态激光器,如 YAG 激光器;气体激光器,例如氦-氖激光器;以及非调制半导体激光器,例如直流偏置工作的氮化镓(GaN)和氮化镓激光二极管。

为实现相干,物光束和参考光束是由单个光束经过分束器得到。当两个光束之间的光程差被控制为远小于激光束的相干长度时,两个光束会产生干涉图样,该干涉图样是全息材料中交叉体积处激光束的驻波。

典型的商业全息材料是由某些光聚合物制成的。电场的这种不变的稳定强度调制引发了聚合,稍微改变了材料的局部折射率。折射率的变化是 \Delta n,通常小于1%。\Delta n 的值与电场强度成非线性。

全息记录引起材料折射率调制后,当参考光束照射在全息材料上时被全息记录引起的干涉条纹散射就可以形成物光束,这样就可以再现物光束,这个过程叫做检索。任何单像素光电探测器,例如用于逐位数据存储的 GaP、Si、InGaAs 或 Ge 光电二极管,以及 CMOS 或 CCD 图像传感器,都可以检测检索到的物光束。

A graphic of the optical layout for page-type holographic data storage.

一种典型的页面全息数据存储的光学布局( 我的名字的字符编码在这个图中的SLM中以二进制数据编码)

如何进行单比特全息图仿真

现在,我们来模拟一个逐位全息数据存储的示例。物光束有一个单独的开放孔径,而不是一个 SLM,因此物光束包含1个比特位的数据,用于表示“1 或 0”,或者“存在”或“不存在”。我们的计算域是一个正方形,光束的布局是这样的,物光束从顶部入射,而参考光束从左侧入射。请注意,这种 90° 配置是用于演示模拟设置的简化示例,不是非常真实的场景。

A schematic of bit-by-bit holographic data storage.
逐位全息数据存储示意图。目标是计算全息材料的一小块区域内的电磁场。

下面,我们来看看全息数据存储模拟过程的每一个步骤,包括准备、记录、检索以及在 COMSOL Multiphysics 中适当设置的概述。

我们的首要任务是适当地建立激光束模型。这个过程看起来很简单,但是除了使用 COMSOL Multiphysics 外,它还需要电磁学和计算机模拟的知识。建立激光束模型时,必须考虑以下几点。

光束准直

首先,我们要使直光束均匀地通过材料传播,并且两束光束之间要有很大的空间重叠。为此,必须仔细选择束腰大小。束腰的下限由不确定性原理控制。如果我们尝试指定一个与波长相比非常窄的光束宽度,则意味着我们试图在非常小的区域内指定位置。当位置指定得当时,光的动量变得更加不确定,这相当于导致光束更多的散布并且发散。

对于给定的束腰,光的发散量由近轴高斯光束理论定量地描述,该理论通过发散角 \theta 表征光束发散。这个发散角 \tan \theta = \lambda / (\pi w_0) 与近轴高斯光束的腰部半径 w_0 有关,其中,\lambda 是波长。从这个公式可以明显看出,如果我们使光束腰部半径比波长小,光就会发散。下图的左图是束腰半径等于波长的情况。我们可以看到小束腰导致了快速发散的光束。

如果指定一个 10 倍波长的腰束半径,那么发散角是 1/(10 \pi),约为 32mrad。这个角度对我们的目的来说足够好了。下图的右图描绘了一束稍微发散但几乎准直的高斯光束。也可以用超高斯或洛伦兹光束形状来描述这种准直光束。

Side-by-side images showing beams with narrow and wide waists.
窄腰光束(左)发散,宽腰光束(右)发散可忽略不计。绘制了电场强度,并显示了 Poynting 矢量的箭头。

域大小

我们的仿真域必须足够大,以捕捉我们想要捕获的所有相关现象,但又不能太大。这可以从上面两个交叉光束的图像中看到。仿真域只需要达到能涵盖光束相交的区域即可。它不需要太大,因为我们对远离光束的场不感兴趣,并且我们知道这些场会很小。域也不能太小,因为会丢失信息。

边界条件

仿真域的边界必须达到两个目的。首先,我们必须发射入射光束;其次,光束在这些边界处不能产生反射。在 COMSOL Multiphysics 中,这两个条件都可以通过二阶散射边界条件来实现,该条件模拟了开放边界,并且可以设置入射光束。

同样重要的是,散射边界条件要放置在离光束中心线足够远的地方,以使光束仅垂直入射到边界上。和光束入射方向平行边界上的场强应该非常小,否则将导致虚假反射,正如我们之前的博文电磁波问题的边界条件中所描述的那样。

我们可以利用束腰信息来选择与光束相比足够宽的仿真域,使得电场强度在边界处下降六个数量级,如下图所示。

Side-by-side images showing how spurious reflections depend on domain width relative to beam width and scattering boundary conditions.
如果域宽度相对于光束宽度足够大,就不会有虚假反射()。如果散射边界条件太靠近()光束中心线,就会出现可观察到的虚假反射。

网格要求

这个问题解决了光束沿不同方向传播的问题,并计算了折射率已知的材料中的散射和干涉图样。因为我们知道波长和折射率,所以我们可以使用这些信息来设置网格单元大小。网格必须足够密,以解析传播电磁波的变化。由奈奎斯特准则,我们知道每个波长至少需要两个采样点,但这将使我们的精确度非常低。一个好的经验法则是从网格单元大小为 (\lambda/n)/8 开始,或者在折射率最大值为 n 的材料中每个波长包含八个单元开始。

当然,我们始终需要进行网格收敛性研究。对于这类问题,单元大小为 (\lambda/n)/16 通常就足够了。还应注意,网格单元越小(精度越高),模型需要的时间和计算资源就越多。有关如何预测模型大小的详细讨论,请阅读我们关于求解模型所需的内存的博客文章。

考虑到所有这些因素,我们将模拟一束真空波长为 1um、束腰轮廓为 \exp(-y^6/w^6) 的激光束,它是一个六阶超高斯光束。我们将求解平面外电场,这意味着我们将求解一个标量亥姆霍兹方程。

模拟记录步骤

前面我们已经对波束和仿真域进行了适当的设置,接着就可以进行记录模拟了。下图显示了记录过程的结果。物光束和参考光束形成 45° 倾斜的干涉条纹图样,干涉图样的周期为 0.524um。这个 45° 的干涉条纹是在全息材料中记录的单个1的密码。

Graphics comparing the computed electric field and intensity for the one-bit data recording.
计算出的用于记录单个数据的电场和强度。

当电场强度高于某个阈值时,全息材料的折射率将被调制。因为光敏聚合物想要发生聚合反应要求入射光强高于某个阈值。现在,用 g(x,y) 来表示这个高光强区域的分布,这个分布函数会对原始折射率 n_1 进行调制。这意味着最终的折射率 n(x,y) 可以写成n(x,y) = n_1(x,y) + \Delta n g(x,y)。调制深度 \Delta n 取决于材料的光化学特性。

调制函数形状还取决于材料和工艺。新折射率是原有折射率基础上有小幅偏差的周期性矩形函数。下图表示了记录后的新折射率分布。在这个模拟示例中,我们使用了 n_1=1.35\Delta n =0.01。调制函数 g可以用一个逻辑表达式来表示,((ewfd.normE)/maxop1(ewfd.normE))>thereshold,其中, maxop1 算子用于计算域内的最大值,并对电场模进行归一化。阈值是聚合物的给定阈值。

A contour map showing the electric field intensity for the binary recording.
用二进制记录的电场强度等值线图,在阈值处被切断并被二进制化。

A cross-sectional plot of the modulated index for the holography simulation.
调制得到的折射率的横截面图。

模拟检索步骤

接下来,我们来模拟检索过程,包括:

  • 关闭物光束
  • 仅入射参考光束

在这些设置改变之后,我们得到最终的结果,如下面的两幅图所示。参考光束被干涉条纹衍射/散射,并产生新光束,该新光束恢复物光束的相位和振幅信息,可能会相差一个常数。请注意,检索到的物光束是不对称的,因为参考光束略有发散。

Side-by-side plots of the computed electric field and intensity for the retrieval of the object beam carrying one-bit data.
对检索包含一位数据的对象光束的计算电场和强度。

自动设置 COMSOL Multiphysics

到目前为止,我们已经一步一步地完成了模拟过程,但是我们还可以一次完成这种顺序模拟。在 COMSOL Multiphysics 中,求解器设置有一个有用的功能:我们只需单击计算 按钮,就可以在一个研究序列中执行两个步骤,即记录和检索过程。方法是修改研究步骤的模型配置,我们可以在每个研究步骤选择相关复选框。

为了进行记录,我们将超高斯光束(参考光束 SBC)的入射场放在左边缘,将散射边界条件、超高斯光束(物光束 SBC)的入射场放在顶部边缘。对于其余的边界(开放 SBC),散射边界条件没有入射。

A screenshot showing the settings for Study 1 and Step 1 of the recording process.
记录过程的研究1和步骤1设置

A screen capture showing how to add the Wave Equation, Electric 2 node for index modulation in COMSOL Multiphysics.
为折射率调制添加 波动方程,电 2节点。

为了设置调制折射率,我们再增加一个波动方程,电 节点,其中先前的结果指定了新的用户定义的折射率。在这里,我们使用了 withsol() 算子,它允许用户应用前面的解计算任意表达式。在本例中,新的折射率由下式给出 n1+dn*withsol('sol2',((ewfd.norme/maxop1(ewfd.norme))^2>threshold)-0.5),其中 'sol2' 是步骤1 (记录过程)的解,阈值为 0.4。

An image of the settings for Study 1 and Step 2 for the retrieval process of the holography simulation.
检索过程中研究 1 和步骤 2 的设置。

在检索过程中,我们通过禁用 对象 SBC 来关闭对象光束。要切换到已调制的折射率,禁用原始波动方程,电1节点,并且确保波动方程,电2节点打开。最后,开放 SBC 被一个新的散射边界条件所取代,该条件对顶部、底部和右侧边界没有入射(开放 SBC2)。

结束语

今天,我们讨论了如何确定电磁束设置,这可能是一个非常复杂的问题。然后,我们演示了一个简单的全息数据存储模拟,称为 逐位全息图。我们还学习了如何在 COMSOL Multiphysics 中实现几个步骤,一次运行一系列模拟步骤。请继续关注全息术系列的下一部分内容,我们将在其中模拟一个更有趣、更复杂和更逼真的多位全息图系统,称为全息页面数据存储。

拓展阅读

博客分类


评论 (0)

正在加载...
浏览 COMSOL 博客