Yosuke Mizuyama – COMSOL 博客 - //www.denkrieger.com/blogs 发布博客 Wed, 25 Sep 2024 18:43:04 +0000 en-US hourly 1 https://wordpress.org/?v=5.7 如何使用空间快速傅里叶变换(FFT)进行光学应用仿真 //www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics //www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics#comments Fri, 19 Aug 2022 07:26:45 +0000 http://cn.staging.comsol.com/blogs?p=312551 快速傅里叶变换 (FFT) 是一种有用并且强大的数值方法。COMSOL Multiphysics ® 软件最新 6.0 版本增加了与此方法有关的一项新功能:空间 FFT 特征。在这篇博客中,我们将讨论如何将这一新功能用于光学应用,并展示了一些应用案例。

术语和定义

首先,我们来明确一些术语和定义。需要区分三个术语:傅里叶变换 (FT)、离散傅里叶变换 (DFT) 和快速傅里叶变换。函数 的傅里叶变换由下式定义

\hat{u}(\xi) = \int_{-\infty}^{\infty} u(x)e^{-2\pi i \xi x} dx,

式中, 分别是物理空间和傅里叶空间中的变量。当物理空间变量为时间 时,变量 称为频率。在光学中, 被称为空间频率,通常与波长和焦距成比例(我们将在后面讨论),而 是用于描述感兴趣的光学结构附近位置的物理空间坐标。

在之前的博客:如何在 COMSOL Multiphysics 中实现傅里叶变换如何由计算解实现傅里叶变换中,我们讨论了如何在 COMSOL® 中进行傅里叶变换。我们可以使用一种数值方法,即通过基于辛普森法则的直接数值积分来进行傅里叶变换公式。在这篇博客的稍后部分,我们将其称为“通过数值积分进行的傅里叶变换”。

离散傅里叶变换是傅里叶变换的离散形式,是对一组离散的点进行运算。它在 COMSOL ® 中定义为

\hat{u}(\xi_k) = \sum_{j=0}^{N-1}u(x_j) e^{-2\pi ijk/N}, \ \ \ k=0, \cdots, N-1

快速傅里叶变换是计算 DFT 的一种有效算法。

请注意,傅里叶变换和离散傅里叶变换的定义是最通用的定义,但符号约定与 COMSOL 的波动方程符号约定 不一致,即 。当使用这些符号定义弗劳恩霍夫和菲涅耳衍射公式时,请注意不要弄错。符号不一致性不影响稳态解。

如何使用空间 FFT 特征

接下来,我们将演示如何在光学应用中使用新的 COMSOL® 空间 FFT 特征。可以通过步骤 1 和 2 分别设置和实现 FFT 特征:

  • 步骤1:准备数据集
    • 右键单击数据集 → 更多数据集 添加空间 FFT 数据集(定义傅里叶空间)
    • 选择合适的源数据集作为物理空间,然后进行变换
    • 空间分辨率 设置为手动
    • 采样分辨率 设置为适当的数字
    • 空间布局 中选择使用补零,并将 x 填充 设置为适当的数字
    • 傅里叶空间变量 中选择频率
    • 取消勾选屏蔽 DC
  • 步骤2:使用 fft() 算子绘图
    • 在绘图设置中调整 x 轴数据的空间频率比例

矩形函数示例

矩形函数是光学应用中最常用的函数之一,因为它代表了一个硬边光阑。当存在硬边光阑时,总是涉及矩形函数的傅里叶变换。矩形函数的傅里叶变换可以很容易地通过手动计算,如下所示:

{\rm rect}(x/a)=
\begin{cases}
0 & |x|>a/2 \\
1 & |x|\le a/2
\end{cases}

 

{\mathcal F}[ {\rm rect(x/a)}](f) = a\:{\rm sinc}(\pi f a),

式中, 代表傅里叶变换算子, 是一个常数, 是 sinc 函数。

让我们看看如何在 COMSOL® 中使用新的空间 FFT 特征计算此傅里叶变换。

左侧是模型构建器的屏幕截图,其中选择了 Grid 1D 节点和相应的 Settings 窗口,其中 Data、Parameter Bounds 和 Grid 部分展开。 右侧是模型构建器的屏幕截图,其中选择了 Spatial FFT 节点和相应的 Settings 窗口,其中展开了 Data 和 Transformation 部分。
矩形函数(左)及其傅里叶变换(右)的数据集设置示例。

矩形函数是定义 >函数 下的内置函数。点击创建绘图 按钮,会在结果下的数据库 节点为该函数自动创建一个新数据集。 默认情况下,范围和分辨率也是自动设置的。在进行快速傅里叶变换时,自己控制这些参数很重要。傅里叶空间分辨率由物理空间范围的倒数和物理空间数据的零填充确定。傅里叶空间范围由物理空间范围和傅里叶空间采样数决定。快速傅里叶变换结果的大小因物理空间范围和傅里叶空间采样数而异。下表是快速傅里叶变换参数表达式的汇总,包括与上图中显示的快速傅里叶变换设置对应的参数值。

参数 表达式 示例值
实际上的总范围 2
傅里叶空间采样数 16
补零 8
傅里叶空间总范围 8
傅里叶空间分辨率 1/4
傅里叶变换归一化因子 1/8

进行上述设置后,矩形函数 rect1(x) 如下图所示,其傅里叶变换的绝对值 abs(fft(rect1(x)) 由 FFT 特征计算。傅里叶空间总范围是 = 16/2 = 8,即从 -4 到 4。可以看到傅里叶空间的采样点总数为 = 32。

为什么是 ? 因为在补零中, 零被添加到物理空间数据的两侧。傅里叶空间分辨率为 8/32 = 0.25。在没有归一化的情况下,快速傅里叶变换运算结果因子为 。所以,我们需要将结果乘以 获得一个单位峰值。稍后,我们将对各种公式进行快速傅里叶变换,每个公式都有不同的乘法常数。因此,我们必须将快速傅里叶变换结果归一化。

显示矩形函数的折线图,其中 a = 1(蓝线)及其傅里叶变换的绝对值(红线)
矩形函数 = 1 及其傅里叶变换的绝对值,由快速傅里叶变换和上述设置确定。

在这个示例中,我们有意将采样数设置为较低的数字,以便可以参考前面的公式。不过,仍然可以看到傅里叶变换, 是用一个较好的近似值计算的。使用更加合适的参数,例如 = 3, = 128, = 512,我们可以得到以下理想的结果。将数值积分的傅里叶变换结果叠加以进行比较。当然,这两种方法的结果应该一致!

将矩形函数与 a = 1(蓝线)、其傅里叶变换的绝对值(红线)和数值积分的傅里叶变换(绿线)进行比较的折线图。
=1 时,由高分辨率的快速傅里叶变换确定的矩形函数的傅里叶变换绝对值和由数值积分确定的傅里叶变换绝对值的对比

在光学应用中进行傅里叶变换

现在,我们已经学习了如何为矩形函数(一维解析函数)设置和使用空间 FFT 特征。接下来,我们来看如何在一些实际光学应用示例中使用此特征。

在光学领域,将光电场的时间信号与其光谱(频率或波长)相关联的时频傅里叶变换可能更为大家所熟知。空间傅里叶变换用于从一个平面传播到另一个平面的电场的各种传播(变换)方法。在这个例子中,空间傅里叶变换将一个平面中电场的空间形状与另一个平面中的形状(称为空间频率)相关联。考虑一个入射到平面中扰动上的标量电场或矢量电场的分量,例如一个光圈或透镜,到达另一个平面,例如焦平面或像平面,如下图所示:

光学中传播方法的坐标系示意图。
光学应用中传播(变换)方法的坐标系。

让我们来表征扰动后平面内的电场 。然后,根据不同的目标,使用四种传播方法中的一种来计算了另一个平面的电场 。下表总结了四种方法。这些公式由傅里叶变换的简单相位函数符号 表示。

理论 公式(简单符号) 应用
1. 夫琅禾费衍射理论 夫琅禾费衍射条件下的标量远场——观察者距离衍射物体*很远,用于孔径、光栅和傅里叶光学等应用。
2. 菲涅耳衍射理论 菲涅耳衍射条件**下的标量近场至远场,适用于低数值孔径 (NA) 透镜系统等应用。
3. 角谱法*** 适用于任何系统(例如高数值孔径透镜系统)的严格单向标量场解决方案(不考虑反射)。
4. 部分相干理论(Schell 模型)**** 非干扰或低干扰光源,例如 LED 和太阳光,使用在在夫琅禾费或菲涅耳衍射近似下的互相干函数的 Schell 模型假设。

脚注:

夫琅禾费衍射条件
** 菲涅耳衍射条件
*** 是方向余弦
**** 是部分相干强度, 是相干强度,并且 是互相干函数

夫琅禾费衍射

夫琅禾费衍射公式用于计算满足夫琅禾费条件时,从物体衍射的远场。

以下是完整的公式:

\hat{E}
(x’,y’,L) = \frac{e^{i k L}}{i \lambda L} \iint_{-\infty}^{\infty}E(x,y,0) e^{-i 2\pi (x’ x+y’ y) / (\lambda L)}dxdy

该公式用于计算孔径、光栅的远场和傅里叶光学焦平面内的场(参考文献 1)。该物体是一个具有均匀光照的方形孔径。孔径出口平面的电场是一个二维矩形函数,远场由快速傅里叶变换计算。这会形成一种熟悉的衍射图案,类似于从网状窗帘后面观察路灯时的景象。请注意,我们需要将图中的 x 轴数据缩放为 ,因为空间频率被缩放为 。 通过数值积分使用傅里叶变换计算二维傅里叶变换需要的时间较长,但快速傅里叶变换可以非常快速地完成这项工作。

左侧为方形孔径的图像,右侧为其衍射图案。
方形孔径(左)及其衍射图案(右)。

模拟方形孔径的设置非常简单:

 

菲涅耳衍射

第二个应用,菲涅耳衍射公式,可用于计算远场以及近场干扰。这个近似值的完整公式为:

\hat{E}
(x’,y’,L) = \frac{e^{ikL}}{i\lambda L}e^{ik(x’^2+y’^2)/(2L)}\iint_{-\infty}^{\infty}E(x,y,0)e^{-ik(x^2+y^2)/(2L)} e^{-i 2\pi (x’ x +y’ y)/ (\lambda L)}dxdy

请注意,x 轴数据需要按因子 进行缩放。菲涅耳透镜模型应用了这种方法,通过波动光学,频域 接口计算透镜内部的电场。基于菲涅耳衍射公式通过数值积分进行傅里叶变换计算焦平面中的场。如下图所示,可以在该模型中使用 FFT 特征,并通过数值积分得到与傅里叶变换相同的结果。

显示菲涅耳模型焦平面中的电场模的折线图,宝蓝色线代表积分菲涅耳近似,绿线代表亥姆霍兹方程(ewfd),红线代表亥姆霍兹方程(ewbe)和代表快速傅里叶变换 菲涅耳近似的水线。
菲涅耳透镜模型焦平面中的电场模。FFT 特征用于计算菲涅耳衍射公式,并与其他方法进行比较。

A screenshot of the COMSOL Multiphysics UI showing the Line Graph settings window with the Label of FFT Fresnel Approximation. The Data, y-Axis Data, and x-Axis Data sections are all expanded.
用于菲涅耳衍射公式的 FFT 特征的后处理设置。请注意,y 轴数据是标准化的,x 轴数据是按比例缩放的。

角谱法

第三个应用,角谱法,实现起来有点麻烦,因为它需要进行两次傅里叶变换,由其完整公式可以看出:

\hat{E}(x’,y’,L) = \iint_{-\infty}^{\infty}
A \left(\frac{\alpha}{\lambda},\frac{\beta}{\lambda},0\right) e^{ikL\sqrt{1-\alpha^2-\beta^2}} e^{i2\pi (\alpha x+\beta y) /\lambda} d\frac{\alpha} {\lambda} d\frac{\beta}{\lambda}
,

式中,

A \left(\frac{\alpha} {\lambda},\frac{\beta}{\lambda}
,0\right) = \iint_{-\infty}^{\infty} E(x,y,0) e^{-i2\pi (\alpha x + \beta y)/\lambda} dxdy,

是方向余弦。

在前文提到的博客中,我们介绍了如何模拟大型光学器件;即可以使 用波动光学、频域 接口计算光学元件周围的小域,然后使用 弗劳恩霍夫或菲涅耳衍射公式,或者使用 波束包络 接口模拟整个域。然而,这两种方法仅适用于慢速(低 NA)透镜,因为快速(高 NA)透镜需要大量网格单元,而夫琅禾费和菲涅耳公式无法给出很好的近似值。波矢太陡,波束包络 接口无法对计算域进行网格划分。

模拟大型高数值孔径透镜的唯一方法是使用角谱法(ASM)。这是一种与夫琅禾费和菲涅耳衍射公式属于同一类型的数值传播方法。只要知道一个平面中的场,就可以计算另一个平面中的场。角谱法非常严格,因为它满足亥姆霍兹方程。可以结合波动光学模块使用该方法计算某个域中的场,然后使用角谱法将场传播到更远的平面。

下图中是一个高 NA 透镜 (NA=0.66) 的示例,它比 DVD 拾取透镜快得多。透镜半径为 16μm,后焦距(透镜第二面与焦平面之间的距离)为 10μm。结合使用 几何光学 接口与优化模块,对该透镜头进行了优化,使其在 0.66μm 的波长下具有衍射极限。透镜被特意设计得很小,使波动光学,频域 接口可以计算出严格的解以进行比较。我们将演示如何使用角谱法将场从该透镜的出射面传播到焦平面。

左侧是使用射线光学模块和优化模块设计的高数值孔径透镜模型。 右边是镜头的全波模拟。
使用射线光学模块和优化模块(左)设计的 NA=0.66 透镜。使用 波动光学,频域接口(右)模拟的透镜的全波模拟。注意代表透镜出射平面的线,场从该平面传播到最右边的边缘,即焦平面。

比较菲涅耳衍射公式(蓝线)、亥姆霍兹溶液(粉线)和角谱法(绿线)的高 NA 透镜光斑轮廓线图。
NA=0.66 透镜光斑轮廓模型与使用菲涅耳衍射公式计算的结果比较;由波动光学,频域 接口计算的严格解;和使用角谱法计算的结果。请注意,对于这个透镜,菲涅耳衍射公式不再准确。(为了更好的比较,显示了 11μm 而不是 10μm 处的光斑轮廓。)

为了进行两次傅里叶变换,我们需要将第一次傅里叶变换存储在数据集中。这是因为 fft() 算子只是一个后处理算子,不是可以在物理设置中使用的通用算子,如 integrate算子。目前,在当前版本的 COMSOL Multiphysics 中(在未来版本中,fft() 算子将被提升为通用算子),我们仍然需要在第一次傅里叶变换的物理场设置中通过数值积分来使用傅里叶变换,然后将 fft() 算子用于后处理中的第二次傅里叶变换。边界常微分和微分代数方程分布式常微分方程 节点的接口被定义在透镜出射平面上,通过数值积分傅里叶变换执行第一次傅里叶变换,并将结果存储为函数 ,如下图所示:

模型开发器的屏幕截图,其中选择了分布式 ODE 节点,并展开了相应的设置窗口,其中边界选择、源项、阻尼或质量系数和质量系数部分展开。
使用角谱法时,第一个傅里叶变换的 边界常微分和微分代数方程设置的屏幕截图。请注意,我们通过透镜半径 D/2 对傅里叶空间进行了归一化,进行适当的缩放。

COMSOL Multiphysics UI 的屏幕截图,显示了带有 Line Graph 1 标签的 Line Graph 设置窗口。数据、y 轴数据 和 x 轴数据 部分均已展开。
使用角谱法时,在后处理中进行第二次傅里叶变换的设置窗口屏幕截图。对于第二次傅里叶变换,注意方向余弦 y 轴数据中由归一化的 y 坐标表示,x 轴数据中的归一化因子 1/wl 来自变量的微分 。另请注意,空间频率名称 y2 是在 空间 FFT 数据集中任意选择的。

值得一提的是,第二次傅里叶变换其实就是逆傅里叶变换,但是傅里叶变换的绝对值和逆傅里叶变换到常数之间没有区别。我们已经看到,使用角谱法给出了一个与亥姆霍兹解一样准确的结果,因此可以将这种方法用于其他高 NA 透镜系统,例如大型高 NA 菲涅尔透镜。

结束语

在这篇博客中,我们了解了设置空间 FFT 特征的基础知识,以及如何在一些重要的光学应用中使用此功能的示例。在本系列的下一篇博客中,我们将讨论第四个应用,即部分相干光束计算(使用的公式与文中第三个应用使用的公式相同)。

参考文献

  1. J. W. Goodman, Introduction to Fourier Optics, 3rd ed., Roberts and Company Publishers, 2005.
  2. M. Born and E. Wolf, Principles of Optics, 7th ed., McGraw-Hill, 1968.
  3. A. C. Schell, “A technique for the determination of the radiation pattern of a partially coherent aperture,” IEEE Trans. Antennas Propag., vol. 15, no. 1, pp. 187–188, 1967.
]]>
//www.denkrieger.com/blogs/how-to-use-the-new-spatial-fft-feature-for-applications-in-optics/feed/ 3
用于毒理学分析的实用沉降仿真 App //www.denkrieger.com/blogs/a-practical-sedimentation-app-for-toxicology-analysis //www.denkrieger.com/blogs/a-practical-sedimentation-app-for-toxicology-analysis#comments Tue, 25 Jan 2022 07:20:09 +0000 http://cn.staging.comsol.com/blogs?p=307401 沉降是一种简单的物理现象,颗粒或团块由于重力或离心力在溶液中沉降。由于这种现象非常简单,因此广泛应用于毒理学、生物化学、生物医学、遗传学和制药工程等许多技术领域。在这篇博客中,我们将讨论一个关于重力如何影响试管中的沉降的数学模型,以及如何制作一个用于纳米毒理学的实用仿真 App (作为各种应用中的一个示例)。

描绘实际沉淀实验和模拟实验的示意图。
提取的 DNA,其中的颗粒沉淀到试管底部。图片由 Isaevde 提供。通过Wikimedia Commons获得许可(CC BY-SA 4.0)。

沉降如何应用在生物化学领域

自 2020 年 3 月以来,COVID-19 大流行的传播以不同的方式影响着我们的生活。你可能在旅行或工作之前已经做过聚合酶链反应 (PCR) 测试,这是测试 COVID-19 最常用的技术之一。众所周知,Kary Mullis 和 Michael Smith 是 PCR 的发明者,并因此获得 1993 年诺贝尔奖。同样,COVID- 19 的大流行也需要 COVID-19 疫苗,希望它能够防止病毒传播。基于 mRNA 的 SARS-CoV-2 疫苗背后技术的主要贡献者 Drs.Drew Weissman 和 Katalin Karikó 被授予了 2021 年拉斯克奖,这是美国最高的生物医学研究奖。

在 COVID-19 大流行期间,我们几乎每天都会不自觉地听到和看到许多基因工程术语,例如病毒疫苗PCRmRNA 等。这些术语都由生物分子组成,或与其相关。各种各样的生物分子都可以通过离心机的沉降系数来表征。这项研究的先驱是瑞典化学家 Theodor Svedberg,他因对分散系统的研究而获得 1926 年的诺贝尔奖。他的姓的首字母现在是沉降系数的单位名称(S,svedberg),表示粒子在一定力(重力或离心力)的作用下达到终速的速度。例如,完整的真核生物核糖体的沉降系数为 80 S。

虽然COVID-19 被认为是一种自然疾病,但也存在人为疾病,例如,由工厂、汽车和其他人为排放的材料和污染源引起的各种尺寸(从纳米到微米)的颗粒(通常是金属)造成的空气污染。毒理学领域研究这些颗粒如何对人类健康造成损害。剂量学是解决体内(动物测试)和体外(基于细胞的测定)结果之间差异的关键技术之一。对颗粒剂量和浓度的更加准确的量化和预测,将有助于体外 实验更加准确。为此,使用了沉降实验和模拟。

在生物医学研究中,血液沉降被用于研究人体炎症。更快的沉降意味着更多的炎症,也是某些以产生异常蛋白质为特征的疾病的迹象,例如多发性骨髓瘤。沉淀也被用于分离白细胞、红细胞和血小板。在制药应用中,沉降法被用于从结晶后的母液中分离药物,以及从其他蛋白质材料中提纯胰岛素(“制药工业中的离心法综述”)。药物吸附和解吸的研究对制药工业也很重要。

大量非常重要的应用都使用沉降。虽然沉降或离心可以相对容易和快速地进行实验,但是使用计算机绝对更有利,因为可以一次模拟材料和条件的多种组合。此外,数学建模对于理解复杂的沉降现象(如吸附和解吸)通常是必不可少的。

重力作用下的试管沉降方程

在生物工程、基因工程、医学工程和制药应用中,超高速离心机被用于分离颗粒或分子。这主要是因为生物大分子比其他类型的颗粒“更黏”,往往需要更大的力才能沉降。想象一下含有 DNA/RNA 的生物材料有多黏:地球和太阳之间距离的 90 倍被缠绕在一起,装在一对 DNA 链里。有些商业离心机可以产生高达 70000 g (这里是指重力单位)的力。有些离心机上装有激光源,照射在水平旋转的试管上,可以实时测量浓度。

用于描述离心沉降的控制方程称为 Lamm 方程。Ole Lamm 是 Svedberg 的博士生。这个方程只是 Mason-Weaver 方程在柱坐标下的形式,接下我们将对它进行讨论。

与生物分子相比,用于毒理学研究的颗粒(通常是金属或陶瓷)更重、下沉更快。因此,在这些应用中,重力完成了这一工作。将试管垂直放置,颗粒会垂直下沉,如下图所示。

实际沉降实验的示意图和该实验的模拟.

将垂直位置转换为一维坐标 ;对于给定的管长度 和计算时间 ,可以得到以下 Mason-Weaver 方程:

\frac
{\partial c}{\partial t} – \frac{\partial}{\partial x} \left ( A \frac{\partial c} {\partial x} + Bgc \right) =0, \ (x,t) \in [0,x_2] \times [0,T]

其中, 是粒子浓度,待求解的变量 分别为粒子的扩散系数和沉降速度; 是重力加速度。

管顶部和底部的边界条件就是所谓的零通量边界条件,即

A \frac{\partial c}{\partial x}+ Bgc=0, \ \ x = 0, \ x_2

这个条件意味着边界上的总质量通量(不仅是扩散通量)为零;也就是说,下沉的颗粒在底部积累,因为它们无法排出试管。我们的主要兴趣是粒子的累积质量。为了测量,我们需要设置一个虚构的体积(一维中的段)。在上述几何图形中,区间 就是为此而准备的。请注意,计算出的累积质量因区间大小而异。

初始条件通常均匀分布,如下所示:

c = c_0, \hspace{0.5cm}\ \ t=0,

式中, 是一个常数函数。

现在,我们有了模拟沉降的所有公式。

Mason-Weaver 方程是一个容易理解和求解的方程,除了极快的沉降情况。让我们试着解释一下它的物理意义。它由两个方程组成:

  1. 扩散(第二项)
  2. 重力对流(第三项)

如果我们分别考虑每个现象,会发现对这个方程的解释其实很容易。首先,重的颗粒迅速下沉,几乎没有扩散,并积聚在试管底部。最初,颗粒是均匀分布的。随着沉降的开始,颗粒从顶部消失,底部周围的颗粒数量增加。最后,几乎所有的颗粒都聚集在底部,这意味着浓度函数变得像试管底部的δ函数。较轻的颗粒倾向于漂浮在溶液中,因为它们不受重力影响。这两种现象在现实中是同时发生的。我们用下面的动画演示了两个极端情况。

较重的颗粒(左)和较轻的颗粒(右)的空间浓度分布比较。

粒度分布颗粒沉降仿真 App

上图所示的情况比较简单。然而,在现实世界中,颗粒通常不会单独漂浮在溶液中,并且通常会根据表面电荷或颗粒可能具有的某些结合机制,形成不同尺寸的团聚体。在溶液中,不同大小的团聚体表现不同,正如我们在上面的动画中看到的那样。因此,想象整体浓度分布的样子便不再那么容易了。在 COMSOL Multiphysics® 软件用户界面使用偏微分方程 可以很轻松地模拟单个粒径的 Mason-Weaver 方程,但要模拟更实际的情况并不容易,因为必须考虑粒度分布或其他一些条件或约束。在这种情况下,制作仿真 App 可以提供更大的灵活性和更令人满意的结果。

在下面的部分,我们将演示一些(但不是全部)关键步骤,来制作一个重现 DeLoid 引用的论文结果的仿真 App。

步骤1

在模型开发器中设置几何、材料、基本物理场以及初始条件和边界条件。

图形窗口中试管的一维几何图形。
代表试管的一维几何图形(左侧为盖子,右侧为底部)。

对流-扩散方程接口中对流-扩散方程1的设置截图。
使用经典偏微分方程接口中的 稳定对流-扩散方程接口设置 Mason-Weaver 方程。

稳定对流-扩散方程接口中初始值1的设置截图。
初始条件(均匀分布)。

稳定对流-扩散方程接口中无通量1的设置截图。
边界条件(反射边界条件)。

步骤2

在 App 开发器中制作自定义 App 的用户界面。

用户界面中沉降演示 App 的屏幕截图。
自定义仿真 App 的用户界面,包括几个功能区按钮(顶部)、 参数设置窗口(左)、粒度分布曲线(右上)和 结果图形窗口(右下)。

步骤3

编写 Java® 代码。

用于计算积聚在试管底部的颗粒的总质量分数的 Java 方法的截图。
表单的一部分包括与 Java 方法关联的 导入按钮,该方法从文件加载粒度分布数据并将其存储在 二维字符串数组中。

Java 方法的屏幕截图,用于计算累积在试管底部的粒子的总质量分数。
一个用于主 for-end 循环的 Java 方法,对每个更新的粒子大小重复运行。底部的粒子质量是在每个时间步长下被计算出来的,并存储在 二维双精度浮点数组(未显示)中。在运行结束时,将粒子质量相加来计算在底部累积的总质量分数。

使用按照上述步骤制作的这个仿真 App,我们可以获得如下图所示的最终结果。本例中使用的颗粒是 CeO2,它相对较重,容易在底部快速下沉和堆积,如下图(蓝线)所示。颗粒大小显著影响质量分数。较小的颗粒倾向于通过扩散漂浮,而不会一直下沉。因此,当考虑大小分布时,质量分数达到稳定的速度更慢,低于 100%。

一个比较单粒子大小和尺寸分布的图表。
单个粒径(上图用户界面中显示的分布曲线的平均半径为 491nm)和粒径分布的比较(COMSOL Multiphysics 与参考论文的结果一致性较好)。颗粒:CeO2。试管长度:10mm。底部长度:10um。

附加说明

系数 可以通过实验得出,或者通过下面列出的流体动力学关系从材料属性中计算。

A = \frac{k_B T} {6 \pi \eta r},

 

B=\frac{2g(\rho_e-\rho_s)r^2} {9\eta},

式中, 分别是玻尔兹曼常数、温度、溶液的动态黏度和粒子的半径, 分别是粒子的有效密度和溶液的密度。

如果你想要增强这个仿真 App,可能需要修改或添加更多功能。对于制药或生物医学应用,可能需要考虑颗粒的可溶解性。在底部边界,可能需要考虑另一个解释吸附和解吸的边界条件,而不是反射边界条件。这些增量可以通过添加一个辅助方程来完成。详请参阅 Christmann、Ramteke 和 Dokoumetzidis 的文献。

下一步

单击下面的按钮,探索本文中讨论的沉降仿真 App。以此为灵感,尝试构建您自己的仿真 App,并在评论中告诉我们您的体验!

参考文献

  1. G.M. DeLoid et al., “Advanced computational modeling for in vitro nanomaterial dosimetry”, Particle and fibre toxicology, vol. 12, no. 1, pp. 1–20, 2015.
  2. K. Christmann, Introduction to Surface Physical Chemistry, Springer Science & Business Media, vol. 1., 2013.
  3. K.H. Ramteke et al., “Mathematical models of drug dissolution: a review”, Sch. Acad. J. Pharm, vol. 3, no. 5, pp. 388–396, 2014.
  4. A. Dokoumetzidis and P. Macheras, “A century of dissolution research: from Noyes and Whitney to the biopharmaceutics classification system”, International Journal of Pharmaceutics 321.1-2 (2006): 1–11.

 
Oracle and Java are registered trademarks of Oracle and/or its affiliates.

]]>
//www.denkrieger.com/blogs/a-practical-sedimentation-app-for-toxicology-analysis/feed/ 2
非近轴高斯光束的倏逝分量 //www.denkrieger.com/blogs/evanescent-component-of-the-nonparaxial-gaussian-beam //www.denkrieger.com/blogs/evanescent-component-of-the-nonparaxial-gaussian-beam#comments Tue, 12 May 2020 06:25:12 +0000 http://cn.staging.comsol.com/blogs?p=283031 高斯光束是波动光学中最常用的光源。本篇博文讨论了非近轴高斯光束背景场的倏逝分量,这是 COMSOL Multiphysics® 软件 5.5 版本中波动光学和 RF 模块的电磁波、频域 接口的一个新增功能。

近轴和非近轴高斯光束简介

高斯光束是电磁光束中的一种,它能聚焦到尽可能小的光点。当聚焦角度较小时,被称为近轴高斯光束,如果聚焦较紧,则被称为非近轴高斯光束

近轴高斯光束历史悠久,由 Kogelnik 和 Li 的近轴理论定义(近轴理论见参考文献 1,近轴公式见参考文献 2)。但是,非近轴高斯光束的理论使用起来并不那么方便(参考文献 3)。

COMSOL 软件从 5.3a 版本开始引入了非近轴高斯光束背景场。对于非近轴情况,使用该公式比使用近轴高斯光束更好。非近轴高斯光束的公式由两部分组成:

  1. 传播分量
  2. 倏逝分量

从 COMSOL 5.3a 开始包括传播分量,并且从 5.5 版本开始,该公式已经完善,即包括了倏逝分量。该分量可以计算场的一小部分,这对于高度非近轴高斯光束很重要。

角谱公式

在之前关于非近轴高斯光束的推导的文章中,我们已经讨论了基于角谱的方法,对非近轴公式做了一般的介绍。这篇博文,我们将讨论实用性更强的公式。

以沿 z 轴方向传播的全矢量场为例,根据偏振的选择,有各种不同的表示方法。至少有三篇参考文献(参考文献 3-5)提出了明显不同的数学方法,但它们的基本要点都是一样的。在这篇博文中,我们遵循 Chaumet 的表述,这是最简单和最容易理解的。对于半空间(即 )来说,遵循以下公式

E_x(x,y,z) = E_{x,0}\iint_{-\infty}^{\infty}A_x(k_x,k_y) {\rm exp}[i(k_x x +k_y y+k_z z)]dk_xdk_y,

 

E_y(x,y,z) = E_{y,0}\iint_{-\infty}^{\infty}A_y(k_x,k_y) {\rm exp}[i(k_x x +k_y y+k_z z)]dk_xdk_y,

 

E_z(x,y,z) = -\iint_{-\infty}^{\infty}\left [ \frac{k_x}{k_z} E_{x,0}A_x(k_x,k_y) + \frac{k_y}{k_z} E_{y,0}A_y(k_x,k_y) \right ] {\rm exp}[i(k_x x +k_y y+k_z z)]dk_xdk_y,

 
其中, 和  称为角谱函数,偏振由  和  确定。

通过手算很容易确认,这个场自动满足亥姆霍兹方程和麦克斯韦方程(高斯定律)。另外,很容易看到,这个公式可以对角谱函数采取任意的可积分函数。

前一篇文章我们提到,这个公式表示平面波以不同角度传播,形成高斯光束的三维图。z轴是主要的传播方向,因此平面波的传播角度由横向平面上的投影  表征,即 xy 平面,用   和  表示。对所有的平面波求和意味对  和  积分。

对于高斯光束,通常在焦平面中选择角谱函数并假定为高斯分布,即

A_i(k_x,k_y) = \frac{w_0^2}{2\pi}{\rm exp}[-w_0^2(k_x^2+k_y^2)], \ i = x,y

这个角谱函数意味着许多波处于接近零的角度,即 z 轴,并且随着角度的增加,高角度的贡献逐渐减小。我们可以看到,在 ,对每个  和  积分的大部分贡献来自  到 。这个解称为传播分量。(这是从 5.3a 版开始添加的内容。)

在数学上,麦克斯韦方程接受另一个解:积分范围从  到  和从  到  也有贡献。该解称为倏逝分量。这是从 5.5 版本开始添加的特征。在这种情况下,例如,在  ,遵循 ,所以 。将这个值代入上述公式,我们可以得到因子 ,表示场在远离焦点的传播就会迅速衰减;即 。因此,与传播分量相比,它只是一小部分。去掉这个分量仍然是非近轴高斯光束的一个很好的近似值,但随着聚焦角变高,它变得不可忽略。

在 COMSOL Multiphysics® 中模拟非近轴高斯光束

在物理场节点中,可以看到用于定义非旁轴高斯光束背景场的设置。有几点我们必须注意。

没有完美的横向模式

首先,众所周知,除了二维平面以外,在焦平面附近的非近轴高斯光束基本上没有完美的横向模式。这是因为纵向分量中总是有一些小量。从这个事实来看,场偏振的定义已不再明确。

我们来看下面的截图。这是一个二维平面内非近轴高斯光束沿x轴传播的设置的例子。即使选择高斯光束的振幅为(0,1,0),也会存在 x 分量电场。无论您的设置如何,COMSOL Multiphysics 都会尝试求解麦克斯韦方程,并输出必要的纵向分量(如果有的话)。

混叠

上述公式包含积分。在 COMSOL Multiphysics 中实现这些公式时,所有这些数学运算都必须进行数字化和数值处理。如果采样数量不够大,则会出现称为混叠的采样问题,在该问题中会出现伪影。波矢数最大横波数 的设置与这个问题有关。如果 自动 不起作用,我们可能需要调整一下这两个数。

波矢数 定义了我们想用多少个不同的角度来传播平面波,而不是连续的无限多的角度。在下面的设置中,选择了 51 个角度而不是无限大的数字。这对于二维来说足够大了,但在三维情况下要小心,因为它会停止运行仿真,在 三维中总波数是波矢数的平方

最大横波数定义了允许有多少虚拟纵波数。例如,如果选择 2*ewfd.k0 作为横波数,如下面的截图所示,会得到 。在这种情况下,它是二维的,所以横波数是 ,纵向波数是 。这个设置意味着允许  从 0 到  范围内而外传播分量 。倏逝分量基本上很小。所以,在大多数情况下 2*ewfd.k0 是足够的。

用于在 2D 模型中实现渐逝波的设置窗口。
二维模型的 倏逝波设置的屏幕截图。

下面是对带传播分量的近轴平面波展开(PWE pro)、带倏逝分量(PWE eva)的平面波展开和束腰半径为 的带传播分量和倏逝分量的高度非近轴平面波扩展(PWE pro+eva)的比较。第一个表面绘图是场模,对于 PWE eva 和 PWE pro+eva,只显示了正半空间,因为它是在半空间定义的。线条图是场的 x-y- 剖面。这些图表明,近轴和非近轴高斯光束之间的差异发生在横向焦平面附近。

使用不同方法计算的电场模的模拟结果。
通过不同方法计算的电场模数的比较:近轴近似、平面波展开(传播分量)、平面波展开(逝分量)和平面波展开(传播和倏逝分量)。

使用不同方法计算时沿 x 轴的电场图。
使用不同方法计算时沿 y 轴的电场图。

通过不同方法计算的 x 轴和 y 轴电场的比较:近轴近似、平面波展开(传播分量)、平面波展开(倏逝分量)和平面波展开(传播和倏逝分量)。

最后的表面图是亥姆霍兹方程的误差(请参阅上一篇文章了解误差的定义)。这些图深刻地表达了对亥姆霍兹方程的解的严谨性的改进。

并排图像比较了通过不同方法计算的符合亥姆霍兹标准的解决方案的误差幅度。
通过不同方法计算的亥姆霍兹兼容解的误差幅度比较:近轴近似、平面波展开(传播分量)、平面波展开(倏逝分量)和平面波展开(传播和倏逝分量)。

结束语

通过添加倏逝分量,非近轴高斯光束背景场特征就成为包含麦克斯韦方程所有可能的严格解的完整公式。从上面的剖面图中可以看出,近轴高斯光束公式完全适用于非近轴区域。但是,如果我们查看误差图,很明显它不满足高度非近轴域中的亥姆霍兹方程。这就是为什么我们需要非近轴高斯光束的严格公式。

参考文献

  1. H. Kogelnik and T. Li, “Laser beams and resonators”, Applied Optics, vol. 5, no. 10, pp. 1550–1567, 1966.
  2. “Gaussian beam”, Wikipediahttps://en.wikipedia.org/wiki/Gaussian_beam.
  3. P.C. Chaumet, “Fully vectorial highly nonparaxial beam close to the waist”, JOSA A, vol. 23, no. 12, pp. 3197–3202, 2006.
  4. R. Martinez-Herrero, P.M. Mejias, and A. Carnicer, “Evanescent field of vectorial highly non-paraxial beams”, Optics Express, vol. 16, no. 5, pp. 2845–2858, 2008.
  5. P. Varga and P. Török, “The Gaussian wave solution of Maxwell’s equations and the validity of scalar wave approximation”, Optics Communications, vol. 152, no. 1–3, pp. 108–118, 1998.
]]>
//www.denkrieger.com/blogs/evanescent-component-of-the-nonparaxial-gaussian-beam/feed/ 6
如何使用波动光学模块模拟透镜 //www.denkrieger.com/blogs/how-to-perform-lens-simulations-using-the-wave-optics-module //www.denkrieger.com/blogs/how-to-perform-lens-simulations-using-the-wave-optics-module#comments Wed, 19 Feb 2020 03:18:57 +0000 http://cn.staging.comsol.com/blogs?p=295391 在波动光学中模拟透镜通常很困难,因为需要大量的网格单元。在这篇博文中,我们将演示如何使用 COMSOL Multiphysics® 软件的附加模块——波动光学模块基于麦克斯韦方程进行透镜仿真。

光学仿真方法简介

光学仿真有两种主要的方法:

  1. 射线追踪
  2. 波动光学

如果要模拟衍射效应(即使只是简单地聚焦光束,也会引入衍射),需要用到波动光学。在波动光学中,我们考虑两种方法:全波麦克斯韦法和波束传播法(BPM)。每种方法都有一定的局限性,概述如下:

方法 理论精确度 衍射 反射 计算工作量
射线追踪 近似
波动光学:全波麦克斯韦法(传统上) 严格
波动光学:波束传播法(弗劳恩霍夫、菲涅耳等) 近似 中等

射线追踪是一种近似值,其中波长与物体大小相比可以忽略不计。因此,它不处理衍射问题。全波麦克斯韦求解器实际上是求解麦克斯韦方程组,所以它是严格的,理论上没有模型近似。波束传播法通常在公式中包含各种近似,例如弗劳恩霍夫近似(即傅里叶变换)和菲涅耳衍射公式。

全波麦克斯韦求解器看起来是最好的方法。然而,在光学仿真中,“传统的”麦克斯韦求解器存在一个问题,即它需要精细网格和大量内存来求解:

  • 光学元件
  • 由表面反射引起的干涉图案

在传统的麦克斯韦求解器中,计算域内的所有点在运行仿真时都有贡献。因此,我们需要在整个域内设置一个网格,网格单元需要解析波长。然而,如果想要模拟大型物体(例如标准光学镜头)时,就会出现问题。波束传播法不存在这个问题,因为场解通过使用特定的传播定律从一个平面传播(或跳跃)到另一个平面,因此我们不需要在平面之间设置网格。

使用波束包络接口模拟透镜

与传统的麦克斯韦求解器相比, COMSOL® 软件中的波束包络 接口没有这个困难,因为接口内置的公式中已经考虑了快速振荡部分。如果解的包络变化缓慢,就可以使用这个接口。在实践中,这样的案例还有很多。使用这种方法,我们不需要大量的网格单元。因此,如果我们总是模拟均质域并求解具有缓慢变化的包络,就可以使用这个接口。但是,还有其他情况存在。

我们经常想要求解包含非均质域的光学系统。面临的问题是材料界面的反射,例如透镜表面。那么,反射如何产生问题呢?反射也是麦克斯韦方程组的解。因此,如果存在某些材料界面,麦克斯韦求解器会尝试找到包括反射的解。如果发生任何反射,它们可能会严重干扰入射光束,最终形成具有一半波长的驻波。这使原来的问题变得更困难。我们需要解析半波长,这意味着需要更多的网格单元!这会降低 波束包络 接口的作用,如下图所示。

在 COMSOL Multiphysics 中使用光束包络界面的特写镜头模拟图像。
使用 波束包络 接口的透镜仿真特写。透镜(中心部分)有干涉,需要更细的网格。

为了避免表面反射,我们可以考虑使用抗反射涂层,就像在现实中大多数情况下每个光学元件都有抗反射涂层一样。我们来看一个使用 匹配 边界条件的 高斯光束 特征,模拟在自由空气空间中传播的高斯光束的示例。

显示网格和高斯光束模拟结果的顶部和底部图像。
顶部:仿真中使用的网格。沿传播方向(从左到右)只需要一个网格单元。底部:使用波束包络 接口的高斯光束仿真,单向公式。不插入空气以外的材料。

在上面的模拟中,我们将焦点放在左边界,因此光束向右边界扩展。除左边界外,所有其他边界均设置为无激励的 匹配 边界条件接下来,在域的右侧添加一个玻璃。我们期望在域的左侧有反射,而在右侧没有反射,所以必须增加左侧的网格,但可以保留右侧的单个网格。(请注意,通过使用双向公式,我们仍然可以仅使用一个网格单元准确捕获反射。我们对此处的反射不感兴趣,因此只需使用单向公式就可以了。)

带有光束包络界面的高斯光束模拟图像。
使用波束包络接口单向公式模拟的高斯光束。将玻璃插入域的右侧。上图是网格。需要大量的网格单元来解析干涉图案的半波长,而在域的右侧只需要一个网格。

如预期的那样,我们在域的左侧得到了反射,因此我们需要在那里设置大量网格单元。这会损害 波束包络 接口的优势。现在,让我们在玻璃表面添加抗反射涂层。最简单的单色光抗反射涂层是四分之一波长抗反射涂层(参见 Hecht 的光学 )。四分之一抗反射涂层是一种薄膜,其折射率为 , 其中 是每种涂层夹层材料的指数,厚度为 ,其中 是真空波长。有了这些设置,反射率在 处变为零。现在让我们来看看如何在仿真中包含抗反射涂层。

将玻璃插入到域中的高斯光束模拟图像。
使用 波束包络 接口,单向公式的高斯光束仿真。将玻璃插入域的右侧。在玻璃表面涂上四分之一 抗反射涂层。上图是网格。所有材料域只需要一个网格。

由于存在抗反射涂层,不再有任何反射,这为使用该接口带来了最有利的条件。对于分别代表空气、抗反射涂层和玻璃的每个域,我们在传播方向上只需要一个网格单元。

自 COMSOL Multiphysics 5.4 版本开始增加的过渡 边界条件,可以模拟这种厚度为零的四分之一抗反射涂层。我们需要做的就是指定涂层的折射率和厚度,分别是 ,如下图所示。

A screenshot of the Transition boundary condition settings.
过渡边界条件的设置。

使用过渡边界条件的高斯光束模拟图像。
使用 波束包络接口,单向公式的高斯光束仿真。将玻璃插入域的右侧。在玻璃表面应用 过渡 边界条件。上图是网格。所有域只需要一个网格,因为没有反射。

现在我们可以看到过渡 边界条件的用处了,尤其是当存在许多材料界面时,可以避免在每个表面上形成真正的薄膜涂层。

使用了这个边界条件后,包含很多干涉的透镜仿真的第一张图就变得非常干净了,如下图所示。

在 COMSOL 软件中进行透镜模拟,无反射引起干扰。
使用 波束包络接口、单向公式和 过渡边界条件的透镜仿真。没有引起干扰的反射,因此网格更粗。

结束语

传统的全波麦克斯韦求解器在用于光学仿真时需要大量网格单元。同时使用COMSOL 软件的波束包络 接口、单向公式和过渡 边界条件可以在某些条件下解决这个问题。我们可以将这种方法用于包含光学器件的大型光学系统,甚至用于多光学系统耦合。这类应用包括透镜系统、波导、外部光学系统、光纤耦合、激光二极管堆叠和激光束传输系统。

与环境空气耦合的波导模拟图像。
模拟与环境空气耦合的波导。

后续步骤

单击下面的按钮,了解波动光学模块如何让您的透镜仿真变得更简单:

]]>
//www.denkrieger.com/blogs/how-to-perform-lens-simulations-using-the-wave-optics-module/feed/ 2
通过仿真理解经典灰体辐射理论 //www.denkrieger.com/blogs/understanding-classical-gray-body-radiation-theory //www.denkrieger.com/blogs/understanding-classical-gray-body-radiation-theory#respond Thu, 01 Nov 2018 08:00:07 +0000 http://cn.staging.comsol.com/blogs?p=292151 虽然热辐射效应早就被应用在第一个人造光源中,但直到量子力学的发现,这种效应才被完全理解。如今,这已经是一个众所周知的物理学概念了。在这篇博文中,我们将讨论灰体的表面对表面辐射理论,了解如何在 COMSOL Multiphysics® 软件中实现,以及该理论的有趣用途。

经典热辐射理论

烛光是第一个人造光源,之后过了很久,煤气灯才出现,然后到 19 世纪,人类发明了第一盏电白炽灯。140 年后,白炽灯正在被 LED 取代。

蜡烛、煤气灯和白炽灯全都应用了热辐射理论,即在没有导热介质存在的情况下唯一的热传递现象。如果没有这一特殊物理特性,人类将无法在地球上生活:因为太阳能通过辐射穿过真空进入地球。

白炽灯泡的照片。
一个白炽灯泡。

物理学中最有趣的故事之一是马克斯·普朗克发现了黑体辐射的光谱分布公式,现在称为普朗克分布。黑体 是一个理想化的物理体,它能吸收 所有 入射电磁辐射,同样也能发出最大热辐射。

黑体理论的发现打开了量子力学的大门。通过普朗克的工作,现在我们知道了能从处于平衡状态的、温度为 T 的黑体中能获得多少能量,这被称为 斯蒂芬-玻尔兹曼定律:

I = n^2\sigma T^4 \hspace{1cm}(W/m^2),

其中, 是斯蒂芬-玻尔兹曼常数,n 是介质的折射率。

现在我们考虑更贴近实际的物体——灰体。灰体是不完美的黑体,即部分 吸收入射电磁辐射的物理体。相同温度下灰体的热辐射与黑体的热辐射之比称为灰体的发射率

黑体的发射率是均一的,而灰体的发射率大于 0,小于 1。发射率是辐射表面的几何形状、物理属性和波长的函数。那么对于一些特定结构,如何确定其发射率呢?

为简单起见,本节我们将以漫反射灰体表面为例来说明,不考虑辐射的光谱依赖性。以下理论基于 Gouffé 的论文(参考文献 1),该论文概述了经典的灰体辐射理论。该理论中的数学知识你可能在中学或高中时学过,但物理概念要复杂一些。Gouffé 的论文发表后被许多研究人员引用(参考文献 7)过。在这篇博文中,我们将尝试对原始论文中缺少的内容进行补充研究,以便提供完整的解释。

首先,定义我们需要用到的术语和约定。当我们在这篇博文中提到 反射率吸收率 时,我们必须区分是“材料”量还“表观”量,避免在学习热辐射时产生混淆。由于灰体表面通常具有某些(微小)结构,因此从远场观察到的“表观”量与原材料量不同。例如,粗糙表面的表观反射率总是低于其材料反射率。

我们的目标是根据给定的材料反射率和结构的几何形状计算表观发射率。本文中,我们将通过在“材料”量的符号中附加“_0” 来与“表观”量相区分。如果没有此符号,就可以理解为我们讨论的是一般的量。术语的命名如下:

  • 材料反射率,
  • 材料吸收率,
  • 材料发射率,
  • 表观反射率,
  • 表观吸收率,
  • 表观发射率,
  • 腔体内部面积,
  • 开放面积,
  • 视角,
  • 角系数(归一化立体角),
  • 角系数(面积比),

根据能量守恒定律,对于不透明材料的反射率 和吸收率 ,存在以下关系:

1= \rho+\alpha

基尔霍夫定律指出,材料的发射率 在热力学平衡时等于吸收率 ,即

\varepsilon = \alpha.

从上面的两个关系,我们可以从反射率得到发射率,即,

\varepsilon = 1-\rho.

考虑一个单一的表面结构,如下图所示。这可以是任何结构,本篇博文中,我们使用了一个球形腔体。在腔体顶部有一个面积为 (半径为 的圆)的开口,开口与腔体底部的距离为 。假设材料反射率 在腔体内表面上是均匀的,并且反射服从朗伯定律,即,反射的强度是 ,其中 是视角,如下图所示。我们想要计算一束入射的单位能量光有多少表面反射。

用于计算视反射率的表面结构图。
用于计算表观反射率的表面结构。

作为一阶近似,腔底部的反射为:

\rho_0F,

其中, 称为角系数。

请注意,在 Gouffé 的论文中,假设角系数在腔体表面上是均匀的。在 COMSOL®软件中,它是位置的函数,这始终是正确的。(因此,我们需要积分来计算发射率。)

这里,角系数是从第一反射点到开口的归一化立体角。立体角 通过下列公式计算:

\Omega = \int_0^\theta \int_0^{2\pi}\sin \theta ^\prime \cos \theta ^\prime d\theta ^\prime d\varphi ^\prime=\pi \sin^2\theta

请注意,半球的总立体角为 ,而不是 ,这是由于朗伯因子为

角系数 的结果为

F=\sin^2 \theta.

对于这个近似值,表观反射率是

\rho^{(1)}=\rho_0 F,

由此推导出表观发射率为

\varepsilon^{(1)}= 1-\rho_0 F.

粗略来说,开口越小,腔体越接近于黑体,这是由于角系数的原因。

接下来,我们对近似值进行改进。在计算过第一次反射之后,其余部分被腔体材料吸收或进一步反射。材料吸收 根据能量守恒为 。剩余能量为后续反射:

1-\rho_0F-\alpha_0= \rho_0(1-F)

现在,再次假设进一步的反射以 均匀 的方式发生,在第二次反射时从腔体中出来的反射应该是上述量再次乘以材料反射率和另一个角系数,这个角系数由面积比 定义, 是空腔的面积,包括开口面积 。第二次反射的表观反射率为

\rho_0^2(1-F)G

与一阶近似类似,二阶近似的表观发射率为:

\varepsilon^{(2)}=1-\rho_0F-\rho_0^2(1-F)G

对于这个近似值,带附加项的表观发射率应该更加准确。

最后,我们可以通过计算以下收敛无穷级数来考虑所有反射:

\varepsilon^{(\infty)}=1-\rho_0F-\rho_0^2(1-F)G-\rho_0^3(1-F)G(1-G)-\rho_0^4(1-F)G(1-G)^2-\cdots =\frac{(1-\rho_0)( 1+\rho_0(G-F) ) }{1-\rho_0(1-G)}.

对于球体,可以证明 ,这可以将结果简化为

\varepsilon^{(\infty)}=\frac{1-\rho_0 } {1-\rho_0(1-G)}

根据几何参数 ,我们可以重写 。在几何上很容易证明 ,由此 可以改写为

F=\sin^2 \theta = \frac{R^2} {R^2+L^2}= \frac{1}{1+\left (\frac LR \right )^2}

开口处的面积 ,可以通过下式计算

A=\int_\varphi^{\pi/2} 2\pi r^2 \cos \varphi ^\prime \ d\varphi ^\prime = 2\pi r^2 (1-\sin \varphi)

其中, 是球体的半径, 是过球心的平面的角度,该平面与开口周长平行。

从几何学来看,存在关系 ,可以得到和 and 。通过使用这些关系,开口面积 可以改写为

A=2\pi r(2r-L)

由于球体总面积为 ,, 角系数 可以写为

G=\frac A S = \frac{2\pi r(2r-L)}{4\pi r^2} = \frac{1} {1+\left( \frac L R \right )^2},

这证明了

请注意,在 COMSOL® 软件中,我们没有角系数 , 只有一个纯几何量的角系数

COMSOL Multiphysics® 仿真与理论比较

到目前为止,我们已经学习了经典的灰体理论。现在,我们使用表面对表面辐射传热 接口来计算最终目标,即由带开口的球壳组成的灰体的表观发射率。然后,我们可以将计算得出的开口尺寸对发射率的依赖性与近似公式进行比较。

在查看主要结果之前,让我们检查一件事。在 COMSOL Multiphysics 中,我们可以使用 radopu radopd 算子计算角系数值(对应于上述理论中的 ,但其是位置的函数)。使用这些运算对象得到的量是纯几何的,所以使用这个算子不需要运行研究。如果您更改了几何图形,可以在使用算子之前更新解。

在这个模型中,只有一个辐射面,因为该模型是一个开放的腔体。因此,COMSOL Multiphysics 只能计算腔体表面 本身 的角系数。我们将其称为自身角系数。到目前为止,我们讨论的角系数,是指从腔体表面上的一点观察腔外部的系数,可以称为 环境角系数。我们可以通过从整体中减去自身角系数来计算角系数,即 1-intop1(comp1.ht.radopu(1,0))/intop1(1)

就像我们前面讲过的,角系数通常取决于位置,COMSOL® 软件中的角系数也是如此。为了计算腔体表面上所有点的贡献,我们需要将角系数对位置做积分。 intop1 算子是定义在腔体表面上的积分算子。下图将计算结果与经典角系数理论进行对比,吻合度非常好。

将经典灰体理论与模拟结果进行比较的图。
经典理论与使用 COMSOL Multiphysics 中的 radopu 算子计算的环境角系数的比较。

现在,让我们继续进行设置。要计算表面对表面辐射,需要添加表面对表面辐射 物理场接口,为球体的内表面添加一个漫反射表面 节点,然后再添加一个表面对表面辐射传热 多场耦合节点(见下文)。COMSOL Multiphysics 将对每个网格节点执行表面积分来计算角系数,使用封闭表达式的轴对称几何除外。为简单起见,我们不包括环境辐射,即 温度 边界条件设置为球壳的外边界 = 2500 deg K。材料发射率设置为 0.5,以便更容易地看到差异。

COMSOL Multiphysics 中漫反射曲面设置的屏幕截图。
漫反射表面节点的设置。

下图显示了针对各种开口半径计算得出的环境角系数、辐射度和温度。根据 Gouffé 的论文,将几何纵横比定义为 ,用作扫掠参数, 是开口的半径, 是空腔高度。

环境视图因子、光能传递和温度与L/R的数值模拟结果。
计算出的角系数、辐射度和温度与 的比较.

这些结果定性地表明,开口尺寸越小,腔体发出的热辐射越多,表面温度越高。

为了计算辐射度的表观发射率,我们现在可以使用斯蒂芬-玻尔兹曼定律。黑体在温度 下的辐射度是 。将计算的辐射度除以这个数字,我们可以得到灰体球腔的表观辐射率,即 intop1(ht.J)/intop1(1)/(sigma_const*T0^4)。现在,我们将结果与我们迄今为止讨论的各种理论进行比较。

COMSOL多物理视发射率结果与理论的比较图。
球形腔体表观发射率的各种理论近似值与COMSOL Multiphysics 计算结果之间的比较。

青色线表示一阶近似值,它低估了反射,造成更高发射率,这个结果是不准确的。二阶近似值明显提高了准确率,但还不够准确。无限阶近似绘图(橙色线)给出了更好的结果,但仍与 COMSOL Multiphysics 的结果不太接近。

Gouffé 论文的最后一部分提到了导致这种差异的原因。正如一些读者可能已经注意到,上图中每个几何形状的表面温度都不同,尽管外部的边界温度相同,为 2500 K。这称为辐射冷却。我们还没有包括这种效应,它发生在任何具有有限热导率的真实材料上。辐射冷却效应会改变外壳温度的内表面温度,具体取决于开口面积。因此,需要对温度进行补偿,以计算所有开口区域在相同温度下的发射率。

由于斯蒂芬-玻尔兹曼定律,修正系数为温度比的四次方;即,(maxop1(T))^4/T0^4,其中 maxop1 是定义在腔体表面上的算子,用于寻找表面上的最大值。最后,通过这一修正,红色曲线是最准确的理论预测,这与 COMSOL Multiphysics 的结果(蓝线)非常吻合。

使用 COMSOL® 软件设计高效白炽灯

白炽灯的光源是由一个扭曲的钨丝制成的。在 0.467 微米波长下,钨的材料发射率在 2500K 时为 0.462(参考文献2)。过去,研究人员提出,如果我们在钨丝表面制造一些微结构,就可以设计出更高效的白炽灯。这是真的。正如我们刚刚了解到的,如果我们有一个带有非常小的开口的空腔,我们可以将其称为黑体灯丝,则表观发射率可以接近 1。此外,研究(参考文献3-48-9) 还提出,如果最大腔体尺寸约为 0.78um 的一半,那么任何波长大于 0.78um 的红外光都可能由于波导的截止效应而被抑制。那么,可以显着提高可见光的效率。

这种影响可能不仅仅是发射率的提高,因为低于钨熔化温度的辐射主要由红外光组成的会浪费在加热上。如果我们真的能切断红外线,那就太棒了。

一种高效白炽灯泡的想法,如照片上方的插图所示。
我们带有红外抑制黑体灯丝的梦想白炽灯。图片来自 Wikimedia Commons 公共领域。

遗憾的是,由于种种原因,这盏“梦灯”无法成为现实。

首先,表面不可能都是孔。要制作角系数低的孔,意味着开口面积小于孔尺寸,表面不能密集地填充开口,即开口之间的表面需要有一个更平坦的区域,从而辐射红外线。或者,我们可以制作深孔以降低环境角系数,然后让每个孔尽可能地靠近相邻的孔。然而,更深的孔使得制造变得更加困难。

此外,带孔的表面的表面能似乎高于平坦表面的表面能。因此,带孔的表面倾向于在低于整体熔化温度的温度下熔化。

第三,在双绞线灯丝上打孔非常困难,因为它是三维结构。在扁平带状灯丝上打孔更容易,因为它是二维的,但扁平灯丝在电气上并不方便,因为它们需要比绞线灯丝更多的电流才能达到相同的温度,而不是扭曲的线状灯丝(更高的电压和更低的电流对我们目前的基础设施来说更方便)。

结束语

虽然灰体辐射理论是在很早以前提出的,但该理论已经非常完善了。解析角系数公式有很多来源(参考文献5;请注意,它也被称为“配置因子”)。这个理论已经被实验证明,并且适用于许多现实世界的应用,但它似乎太难理解了。在这篇博文中,我们学习了一个最简单示例的理论,并通过 COMSOL Multiphysics 仿真得到了非常成功的基准测试结果。COMSOL 软件内置的表面对表面辐射传热 接口是一种可靠的工具,可以使复杂的辐射计算变得更容易。

通过制作特殊的角系数,我们可以设计出更有趣的白炽灯。如果我们在扁平带状灯丝上制作微小的周期性凹槽,将绘得到一个“定向”白炽灯。通常,灯丝向所有方向发射光,但这种特殊的灯丝只照亮某个方向(参考文献6)。我们可以通过仿真探索灰体辐射理论的更多想法和更多应用。

下一步

单击下面按钮,进入 COMSOL® 案例库,您可以下载相关的 MPH 文件,尝试自己动手模拟灰体模型。

参考文献

  1. A. Gouffé, “Corrections d’ouverture des corps-noirs artificiels compte tenu des diffusions multiples internes (Corrections of emissivity for the artificial black-body considering multiple internal diffusions)” (in French), Revue d’Optique, t. 24, no. 1–3, 1945.
  2. C.J. Smithells, Tungsten, Chapman & Hall, Ltd., 1926.
  3. J.F. Waymouth, Proceedings of LS-5, 1989.
  4. J.F. Waymouth, J. Illum. Engng. Inst. Jpn., 74, 12, pp. 800–805, 1990.
  5. J.R. Howell, “A Catalog of Radiation Heat Transfer Configuration Factors“, University of Texas at Austin.
  6. W.Z. Black, “Radiative heat transfer characteristics of specially prepared V-groove cavities”, PhD Thesis to Purdue University, 1968.
  7. Precision Measurement and Calibration, Radiometry and Photometry (Vol. 7), U.S. Department of Commerce, National Bureau of Standards.
  8. M. Sugimoto, T. Fujioka, T. Inoue, H. Fukushima, Y. Mizuyama, S. Ukegawa, T. Matsushima, and M. Toho, “The Infrared Suppression in the Incandescent Light from a Surface with Submicron Holes”, Journal of Light & Visual Environment, Vol. 18, No. 2 (1994).
  9. T. Kondo, S. Hasegawa, T. Yanagishita, N. Kimura, T. Toyonaga, and H. Masuda, “Control of thermal radiation in metal hole array structures formed by anisotropic anodic etching of Al”, Optics Express Vol. 26 No. 21 (2018).
]]>
//www.denkrieger.com/blogs/understanding-classical-gray-body-radiation-theory/feed/ 0
模拟波动光学的非近轴高斯光束公式 //www.denkrieger.com/blogs/the-nonparaxial-gaussian-beam-formula-for-simulating-wave-optics //www.denkrieger.com/blogs/the-nonparaxial-gaussian-beam-formula-for-simulating-wave-optics#comments Tue, 26 Jun 2018 01:40:20 +0000 http://cn.staging.comsol.com/blogs?p=204661 在之前的博客文章中,我们讨论了近轴高斯光束公式。今天,我们将讨论更精确的高斯光束公式,COMSOL® 软件从5.3a 版本开始提供此公式。这种基于平面波展开的公式可以比传统的近轴公式更精确地处理非近轴高斯光束。

高斯光束的近轴性

众所周知的高斯光束公式仅适用于近轴高斯光束。近轴意味着光束主要沿光轴传播。有几篇论文从量化的角度讨论了近轴性(见参考文献 1)。

大体来说,如果束腰尺寸接近波长,则光束以更大的角度传播到焦点。因此,近轴假设行不通,公式不再准确。为了缓解这个问题,并提供一个更通用、更精确的高斯光束公式,我们引入了一个非近轴高斯光束公式。在用户界面中,这个公式称为平面波展开

该方法基于平面波的角谱参考文献 2),有时也称为角谱法参考文献 3)。

平面波的角谱

我们简要回顾一下二维中的近轴高斯光束公式(为了获得更好的视觉效果和理解)。

我们先采用假设时谐场的麦克斯韦方程组,从中得到以下亥姆霍兹方程,用于波长为 的偏振选择为面外的电场:

\left ( \frac

{\partial^2}{\partial x^2} +\frac{\partial^2} {\partial y^2}

+ k^2 \right ) E_z = 0,

其中 .
平面波的角谱基于以下这个简单事实:满足上述亥姆霍兹方程的任意场 可表示为以下平面波展开:

E_z(x,y) = \int_

{k_x^2+k_y^2=k^2}

A(k_y)e^

{i(k_x x +k_y y)}

dk_y,

其中  是任意函数。

对于实数 和 ,积分路径是一个半径为 的圆。(对于复数 和 ,积分域延伸到复平面。)函数 称为角谱函数。我们可以通过直接替换证明 满足亥姆霍兹方程。

既然我们知道这个公式总能给出亥姆霍兹方程的精确解,那么我们试着直观地理解它。根据约束,我们可以设置 ,并将上面的公式重写为:

E_z(x,y) = \int_{-\pi/2}^

{\pi/2} A(\varphi)e^{ik(x \cos \varphi +y \sin \varphi)}d \varphi.

上述公式的含义是,它将波构造为向不同方向传播的许多波组成的和或积分,所有波都具有相同的波数,如下图所示。

平面波角谱的图示。
平面波角谱的可视化效果。

回到的表示形式,当实际上使用此公式解决问题时,您要做的就是找到角谱函数 以满足边界条件。 通过假设横向场的轮廓(垂直于传播方向,即光轴)也是高斯形状(请参见Ref. 4),可以推导,其中是频谱宽度 。

通过更多的数学操作,我们得到了光谱宽度和束腰半径之间的关系。 例如,对于慢速高斯光束,其角谱很窄。 另一方面,平面波是极端情况,其中角谱函数是增量函数。 对于快速的高斯光束,角谱较宽,反之亦然。

这是非近轴高斯光束基础理论的简要概括。为了回顾到目前为止我们所展示的内容,我们使用极坐标再次重写公式  :

E_z(r,\theta) = \int_{-\pi/2}^{\pi/2}

A(\varphi) e^

{ikr \cos (\theta-\varphi)}

d \varphi.

这是 Born 和 Wolf(参考文献 2)在他们的书中使用的表述。

三维公式较为复杂,由于发生偏振,看起来有所不同,但基本思想与上述参考文献中的相同。根据你是否考虑倏逝波,它也可能有所不同。波动光学模块 RF 模块中使用的平面波展开方法虽然基于角谱理论,但适用于数值计算。

平面波展开:设置和结果

我们将新特征平面波展开 与之前的特征近轴近似 进行比较。包含这两种方法的设置 窗口如下所示。

COMSOL Multiphysics 中“电磁波,频域”设置的屏幕截图。
平面波展开特征设置。

使用新特征情况下,如果自动 设置无法给出令人满意的近似值,有两个选项可以选择:

  1. 波矢数
  2. 最大横波数

第一个选项决定离散化级别的数量,具体取决于你想要表示高斯光束的精细程度。平面波越多,越精细。第二个选项与前一个方程中的积分界限有关;即 。根据高斯光束的速度,对于可能的最小光斑尺寸,积分界限可以是最大值 ,对于较慢的光束,积分界限可以更浅。你需要更多有角度的平面波和更大的横波数来表示更快(更集中)的光束。

以下结果比较了光斑半径为  的两个公式,该半径为非近轴性。与上一篇博客文章一样,仿真是用散射场 公式完成的,并且域由完美匹配层(PML)包围。这样,散射场表示精确亥姆霍兹解的误差。

下面的左图显示了新特征,右图显示了近轴近似。顶部图像显示了计算的高斯光束背景场的模 ewfd.Ebz,底部图像显示散射场模  ewfd.relEz,它表示精确亥姆霍兹解的误差。显然,在非近轴方法中,亥姆霍兹解的误差大大减小。
显示计算的高斯光束背景场的模和散射场模的波动光学仿真结果。
平面波角谱与近轴公式的比较。

结束语

我们讨论了用新的平面波展开方案近似非近轴高斯光束的理论和结果。这个公式非常精确,但在假设条件下仍然是近似值。首先,我们假设焦平面中的场形状。其次,我们假设倏逝场为零。如果关注快速高斯光束聚焦区附近的某些纳米结构的场耦合,你可能需要计算倏逝场

后续操作

单击下面的按钮,了解更多关于 COMSOL® 软件中用于大规模光学问题建模的公式和特征:

注:此功能也可以在 RF 模块中找到。

参考文献

  1. P. Vaveliuk, “Limits of the paraxial approximation in laser beams”, Optics Letters, vol. 32, no. 8, 2007.
  2. M. Born and E. Wolf, Principles of Optics, ed. 7, Cambridge University Press, 1999.
  3. J. W. Goodman, Fourier Optics.
  4. G. P. Agrawal and M. Lax, “Free-space wave propagation beyond the paraxial approximation”, Phys. Rev. a. 27, pp. 1693–1695, 1983.
]]>
//www.denkrieger.com/blogs/the-nonparaxial-gaussian-beam-formula-for-simulating-wave-optics/feed/ 13
如何使用波束包络法进行波动光学模拟 //www.denkrieger.com/blogs/how-to-use-the-beam-envelopes-method-for-wave-optics-simulations //www.denkrieger.com/blogs/how-to-use-the-beam-envelopes-method-for-wave-optics-simulations#comments Mon, 08 Jan 2018 07:02:02 +0000 http://cn.staging.comsol.com/blogs?p=256451 在波动光学领域,很难用严格求解麦克斯韦方程的方法来模拟大型光学系统。这是因为在系统中出现的波需要通过足够精细的网格来分辨。COMSOL Multiphysics 软件中的波束包络法是解决这个问题的一种选择。在这篇博文中,我们讨论了如何使用 COMSOL 软件中的电磁波,波束包络 接口并处理一些限制。

比较求解大型光学模型的不同方法

在电磁仿真中,波长总是需要通过网格来解析以找到麦克斯韦方程的精确解。这一要求使得模拟比波长大的模型非常困难。对于光学简谐波问题,有几种方法可以处理大型模型。这些方法包括所谓的衍射公式,如夫琅禾费(Fraunhofer)、菲涅耳-基尔霍夫(Fresnel-Kirchhoff)和 瑞利-索末菲(Rayleigh-Sommerfeld)衍射公式,以及波束传播方法(beam propagation method ,BPM),如近轴 BPM 方法和角谱方法(参考资料1).

这些方法中大多数都使用亥姆霍兹方程的某些近似,并可以处理大型模型,因为它们是基于从一个平面中的已知场求解另一个平面中的场的传播方法。所以我们不必对整个域进行网格剖分,只需要为所需的平面使用二维(2D)网格即可。与这些方法相比,COMSOL Multiphysics 中的电磁波,波束包络 接口(文中简称“波束包络”接口) 在一个域中可以精确的求解亥姆霍兹方程。它可以处理大型模型,即如果满足一定的限制,可以大大放宽网格需求。

A lens is simulated with the beam envelopes method.
使用波束包络法模拟波长为1um的光经过透镜的聚焦效果。

下面,我们来讨论波束包络 接口的更多细节。

波束包络的背景理论

我们来看看波束包络 接口背后的计算理论。如果将这个接口添加到模型中,单击 物理场接口 节点并将相位明细类型 变更为用户定义,我们将在方程 中看到以下内容:

(\nabla-i \nabla \phi_1) \times \mu^{-1}_r (( \nabla-i \nabla \phi_1) \times{\bf E1}) -k_0^2 \left (\epsilon_r -\frac{j \sigma}{\omega \epsilon_0} \right ) {\bf E1}

其中, 是求解的因变量,称为包络函数

在场的相量表示中,对应于振幅,代表相,即

{\bf E}={\bf E1}\exp(-i \phi_1).

第一个方程是波束包络 接口的控制方程,可以通过将第二个电场方程代入亥姆霍兹方程来导出。如果我们知道 ,唯一未知的是 ,那么我们可以就求解 。为了解决这个问题,相 需要提前 给出。

对于第二个方程,我们先假设一种形式,可以将快速振荡部分(即相位)从场中分解出来。如果假设成立,那么包络 是“缓慢变化的”,所以我们不需要解析波长。相反,我们只需要求解包络的缓慢波动。这个过程使得我们在个人电脑上模拟大尺度波动光学问题成为可能。

这时,您可能就会问:“什么时候我们需要求解包络而不是场本身?透镜模拟就是一个例子。有时候你可能需要的是强度,而不是复杂的电场。实际上,强度由包络模的平方给出。在这种情况下,只要得到包络函数就足够了。

如果相函数未知会发生什么?

从光束包络法背后的数学原理又引入了更多的问题:

  • 如果相并不准确地 知道,怎么办?
  • 这种情况下,我们可以用束包络 接口吗?
  • 结果正确吗?

要回答这些问题,我们需要多了解一点数学知识。

1D 示例

让我们举一个最简单的测试案例:一个平面波,,其中 ,波长 =1um,它在 20um 长的矩形域中传播。(出于演示的目的,我们有意使用了一个较短的域。)

面外波从左边界进入,并无反射地穿过右边界。这可以在波束包络中 通过添加匹配 边界条件实现,其中左侧有激励,右侧无激励,同时在顶部和底部添加一个理想磁导体 的边界条件(意味着我们不关心 y 方向)。

正确的相明细设置如下图所示。

A screenshot of the COMSOL Multiphysics GUI showing the Wave Vectors settings.

我们知道 ,其中相位函数 是或者波矢量是  已知的。把相位函数代入第二个方程,我们反过来得到 ,常数方程。

求解一个常数方程需要多少个网格元素?只有一个!(见此前关于高频建模的博文。)

以下结果显示了包络函数 的电场模 , ewbe.normE,等于 。在这里,我们可以看到,如果我们给定精确的相位函数,常数1,我们使用任意的网格数量均可以得到正确的包络函数,正如预期的那样。出于确认目的, 的相位 arg(E1z),也在下图中进行了绘制。同样在意料之中,相位值为 0。

Three results of the envelope function, electric field norm, and phase of the envelope function for the correct phase function.
正确相位函数 k 的电场 z 分量(红色)、电场范数(蓝色)和包络函数的相位(绿色) 0x,针对不同的网格大小计算。

现在,让我们看看如果我们预先定义的相位函数有点偏离会发生什么——比如说, 而不是精确的 。我们得到了什么样的结果?让我们来看看:

Three results of the envelope function, electric field norm, and phase of the envelope function for the incorrect phase function.
当相函数为错误的 0.95k0x 时,不同的网格数量下计算得到的电场 z 分量(红色)、电场模(蓝色)和包络函数的相位(绿色)

我们在这里看到的包络函数就是所谓的拍频。很明显,所有结果都取决于网格大小。为了理解发生了什么,我们需要一支铅笔、一张纸和耐心。

我们知道答案是 ,但我们在 COMSOL 软件中“有意”给出了一个不正确的估计。在第二个方程中代入错误的相位函数,我们得到 。这导致 ,不再是常数 1。这是一个波长为 =20um 的波,称为拍频波长

让我们看看上面六个网格时的结果图。我们得到正是期望的(红线),即 。绘图中自动取了实部,。较低分辨率的图仍显示包络函数的近似解。这是有限元模拟的预期结果:更粗糙的网格给出更近似的结果。

这表明,如果我们对相位函数做出错误的猜测,我们将得到错误的包络函数。因为猜错了,包络函数加了一个拍的相位(绿线),就是

那电场模 呢?看上面图中的蓝线。看起来 COMSOL Multiphysics 得到了正确的ewbe.normE,仍然为常数 1。让我们计算一下:在第二个方程中代入错误的相位函数和错误的包络函数,我们得到 ,这是正确的结果!

如果我们考虑 的模,我们得到一个正确的解,常数1。这就是我们想要的。请注意,我们可能无法显示 ,因为计算域可能太大,但我们可以通过粗糙的网格来分析和显示 的模。

这并不是投机取巧。相反,我们看到,如果相位函数不正确,包络函数也将不正确,因为它变成复杂的拍频。然而,电场的模仍然是正确的。因此,为了获得正确的电场,正确计算包络函数是很重要的。以上情节清楚地表明。六网格情况给出了完全正确的电场范数,因为它完整解决了包络函数。其他网格根据网格大小给出包络函数的近似解。包括电场模。这是一个普遍的结论,适用于任意情况。

无论我们在 COMSOL Multiphysics 中使用什么相位函数,只要我们正确求解第一个方程,且相位函数在域上是连续的我们可以得到正确的 ,。当一个域中有多种材料时,相位函数的连续性对解的精度也很关键。我们可能会在未来的博客文章中讨论这个问题,但在之前的文章中也提到过关于高频建模的博文。

2D 示例

到目前为止,我们已经讨论了一个标量波数。更一般地,相位函数由波矢量指定。当波矢没有猜对时,就会产生向量值的后果。假设我们有与第一个例子相同的平面波,但是我们对相位做了错误的猜测,即, 而不是 。在这种情况下,波数是正确的,但波矢量是错误的。这一次,拍频发生在 2D。

让我们从执行与 1D 示例相同的计算开始。我们有 包络函数现在被计算为 ,它是一种向 方向传播的倾斜波, 波数, 波长。

下图显示了不同的最大网格尺寸下, 入射角 θ=15° 时在 3.8637um x 29.348um 的域上的结果。使用了与前面 1D 例子相同的边界条件。唯一不同的是左边界的入射波是 。(注意我们要给出对应的错误边界条件,因为我们的相位假设是错误的。)

在最细网格(最右边)的结果中,我们可以确认 就像我们在上面的计算中分析的那样计算被计算 为常数1。这些结果与 1D 的例子一致。

Different results of the electric field norm and envelope function for the incorrect phase function.
错误相位函数的电场模(顶部)和包络函数(底部),针对不同的网格大小进行计算。颜色范围表示从 -1 到 1 的值。

使用波束包络接口模拟透镜

我们的最终目标是用波束包络接口模拟一束电磁波通过毫米量级光学透镜的结果。如何才能做到这一点?我们已经讨论了如何正确计算的方案。下面的例子是对曲率半径为 500um、折射率为 1.5 (焦距约为 1 毫米)的平凸透镜上入射光束的模拟。

在这里,我们使用 ,这一点都不准确。在透镜之前的区域中,存在反射,这产生了干涉。在镜头里,有多次反射。在透镜之后,相位是球形的,因此光束聚焦成一个点。所以这个相位函数和镜头周围发生的情况相差甚远。

A simulation of the beat wavelength inside a lens.
的结果图。插图显示了镜头内最细的拍波长。

从图中可以看出,镜头中出现了明显的波动(见插图)。

注意:从 5.5 版本开始过渡在透镜表面引入边界条件,以模拟抗反射涂层,从而消除由于反射而产生的拍频。(看到这个上一篇博文。还要注意,即使有抗反射涂层,网格细化也是必要的,因为它只适用于垂直入射。镜头边缘周围的场可能有一些跳动。

实际上,最好的拍波长是 在镜头前。为了证明这一点,我们可以执行与前面示例相同的计算。最小的拍波长是由于入射光束和反射光束之间的干涉,但是我们可以忽略这一点,因为它对前向传播没有贡献。我们可以看到,网格没有解决镜头前的波动,但我们暂时忽略这一点。

在折射率 n= 1.5 的透镜中,反向光束的波长为 ,前向光束的波长为 。这个我们也可以用和前面例子一样的方法证明。同样,我们忽略了反向光束。在结果图中,可以看到前向光束的拍频波长为 。反向光束只是一小部分(大约 4%n=入射光束的 1.5 倍,因此不可见)。下图显示了用 10 个网格元素解析透镜内拍频的情况。

A mesh for the beat wavelength inside a lens, created with COMSOL Multiphysics.
透镜内的拍波长。网格使用 10 个网格来解析拍频。

除了透镜中传播光束的拍频之外,后续空气域中的拍频相当大,因此我们可以在这里使用粗糙网格。这可能不适用于更快的透镜,它们具有更快的二次相位,并且可以具有非常短的拍频波长。在这个例子中,我们必须仅在透镜域中使用更精细的网格来解决最快的跳动。

计算出的电场模显示在这篇博文的顶部。为了验证这个结果,我们可以使用频域 接口,然后使用菲涅耳衍射公式计算焦点处的场。电场模的结果非常一致。

A 1D plot comparing the Beam Envelopes interface and the Fresnel diffraction formula.
比较波束包络接口和菲涅耳衍射公式。该网格使用 10 个网格来解决透镜内的拍频。

下面的比较显示了网格大小的相关性。我们的使用 ,等于 得到了很好的结果。这使得更容易对透镜域进行网格划分。

A 1D plot showing the mesh size dependence on the field norm.
网格大小取决于焦点处的电场模。

从 COMSOL 软件的 5.3a 版本开始菲涅耳透镜教程模型包括使用波束包络 接口。菲涅耳透镜通常非常薄(波长级)。即使在透镜内部或在表面不连续处及其周围存在衍射,透镜部分周围的细网格也不会显著影响网格元素的总数。

结束语

在这篇博文中,我们讨论了波束包络 接口的背景知识,以及我们如何能获得波动光学问题的精确解。即使我们得到拍频,拍频波长也可以比波长长得多,这使得模拟大型光学系统成为可能。

虽然通过检查网格大小来解决拍品问题看起来很繁琐,但这并不仅是波束包络 接口需要的工作。当我们使用有限元方法时,我们总是需要检查精确计算的解与网格大小的相关性。

后续步骤

自己尝试:点击下面的按钮下载毫米波范围焦距透镜的模型文件。

参考资料

  1. J. Goodman, Fourier Optics, Roberts and Company Publishers, 2005.
]]>
//www.denkrieger.com/blogs/how-to-use-the-beam-envelopes-method-for-wave-optics-simulations/feed/ 2
如何利用多物理场射线追踪分析激光腔的稳定性 //www.denkrieger.com/blogs/how-to-analyze-laser-cavity-stability-with-multiphysics-ray-tracing //www.denkrieger.com/blogs/how-to-analyze-laser-cavity-stability-with-multiphysics-ray-tracing#comments Thu, 15 Jun 2017 02:21:31 +0000 http://cn.staging.comsol.com/blogs?p=236941 激光是现代科学中最有用的发明之一,但它使用起来并不容易。仅当腔镜完全对准时,激光器才能工作。即使激光发射了一段时间,它也可能突然停止。在今天的博客文章中,我们将讨论如何使用 COMSOL Multiphysics® 软件中的射线追踪功能来预测激光稳定性。

激光仿真导论

Albert Einstein(爱因斯坦)于 1916 年发现了受激发射。但这种激光大约是在 1957 年,由三位美国科学家 C.H. Townes,A.L. Schawlow 或 G. Gould 中的一个发明的。(关于谁首先发现了激光理论,有一场专利之争,而关于是谁提出这个想法也仍然有争议。)1960 年,Theodore Maiman 制造了第一台激光器。

激光在许多应用中都非常有用,例如切割、穿孔、熔化、烧蚀、无线电通信,测量和光谱学等。1960 年代,A.G. Fox,T.Li 和 H. Kogelnik 通过基于光学近轴理论的计算场分布,提出了高斯光束和预测激光稳定性的方法,在激光研究方面取得了进一步的进展。即使在六十年后的今天,这些理论仍然是处理和设计激光器的基础。

在这些理论中,Kogelnik 的激光稳定性理论对激光工程特别有用。该理论包括两个部分:

  1. 近轴光学理论可预测激光腔中产生的高斯光束
  2. 几何光学理论可预测激光束何时在腔中保持稳定

由于热透镜效应,激光打开或泵浦后可能会停止工作。激光晶体被另一个光源或多个光源泵浦会引起粒子数反转。该过程中,由于泵浦光的剩余能量产生不期望的热量,这些剩余能量不用于诱发受激发射。不期望的热量导致不期望的折射率变化,并导致晶体表面膨胀。

Kogelnik 的理论涵盖了包括柱状透镜在内的所有激光腔,通过抛物线拟合晶体中的温度分布来近似热透镜效应。

掺钛蓝宝石飞秒激光器的照片。
一种掺钛蓝宝石飞秒激光器。来自 Ar 激光器的绿色激光用于泵浦 Ti:蓝宝石晶体,发出橙色的眩光,以进行粒子数反转。)激光晶体是一个圆棒,但是有一个倾斜的切口,称为布鲁斯特切口(Brewster cut)。泵浦光束以布鲁斯特角(Brewster angle)进入晶体表面,以避免不期望的菲涅耳反射(Fresnel reflections)。图片来自 Hankwang 自己的作品。通过Wikimedia CommonsCC BY-SA 3.0下获得许可。

分析激光稳定性的方法

Kogelnik 理论的稳定性思想非常简单:如果经过一定数量的往返行程后,在激光腔镜之间来回反弹的光线没有从腔中逸出,则激光束是稳定的。该理论通过使用基于近轴光学而不是真实射线追踪的 ABCD 矩阵理论,更加简洁和有条理。

在这个理论中,热透镜被建模为具有一定焦距的薄透镜。通过利用抛物线拟合的激光晶体中的温度分布来计算焦距。因此,ABCD 矩阵理论和抛物线拟合方法很容易执行,并能产生理想的结果。我们只需要知道光学元件的距离、所涉及透镜的焦距以及反射镜的曲率半径即可。

所有折叠镜均由具有等效焦距的透镜代替,并且使用近似焦距表示热透镜效应,而不是给定的泵浦功率(以瓦特为单位)。光学器件不能倾斜,光学布局可以直线地展平为一维。

这种方法太简单了,因此无法处理更复杂、更实用的激光腔。如果要以3D的形式查看结果或在稳定性分析中添加棱镜,该怎么办?如果要通过折叠镜折叠激光束或倾斜其中一个光学元件怎么办?给定泵浦功率,而不是近似的焦距,该怎么办?另外,为什么不进行任何限制或近似的光线跟踪和热分析?

在不考虑热透镜效应的情况下执行激光器稳定性分析几乎是无用的,因为每个激光器都会被泵浦。因此,我们需要进行与稳定性分析相对应的热分析,它不能与射线追踪分开分析。通过在 COMSOL Multiphysics 中耦合传热几何光学 接口,我们可以获得所需的所有工具。

在 COMSOL Multiphysics® 中分析具有共焦腔的激光器

下面,我们来看一个简单的激光腔示例模型,并简要概述 ABCD 矩阵方法的工作原理以及它与 COMSOL Multiphysics 仿真结果的一致性。本节补充了 Kogelnik 自己的一篇研究论文的一部分(参考资料1)。在 ABCD 矩阵方法中,遵循 Hecht 表示法(参考文献2),光线可以由一个 2×1 阶列向量中的光线角度 θ 和光线位置 y 表征为

\left [
\begin{array}{c}
\theta \\
y
\end{array}
\right ]

所有的光学过程,包括传播、折射、反射、聚焦和散焦,都由称为射线传输矩阵的 2×2 矩阵表示。

例如,通过距离 L 的传播由一个 2×2 矩阵表示

\left [
\begin{array}{cc}
1 & 0 \\
L & 1
\end{array}
\right ]

在空气中一个曲率半径为 R 的镜子上的反射可以表示为

\left [
\begin{array}{cc}
-1 & -2/R \\
0 & 1
\end{array}
\right ]

示例激光腔中具有一对相同的反射镜,其曲率半径为 R= 0.1m,腔体长度 L=R/2=0.05m。该腔体如下图所示,称为“共焦腔”。

在示例激光腔中进行射线跟踪的 COMSOL 图
几次反弹后,在 COMSOL Multiphysics 中对共焦腔进行射线跟踪。

θ0= 0.1rad 和 ÿ0=0.01m 设置为初始射线角度和位置。(对于 ABCD 矩阵方法,x 的位置不重要,将初始光线设置为 x=0m,即在左镜的中心。)由 ABCD 矩阵方法可知,沿腔体长度传播的射线位置和下一个角可以由下式计算

\left [
\begin{array}{c}
\theta_1 \\
y_1
\end{array}
\right ]
=
\left [
\begin{array}{cc}
1 & 0 \\
0.05 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{c}
0.1 \\
0
\end{array}
\right ]
=
\left [
\begin{array}{c}
0.1 \\
0.005
\end{array}
\right ].

这是右反射镜上的光线角度和位置(在反射之前)。反射后,下一个射线角度和位置仍在右反射镜上,但朝向左。它们可以由下式计算

\left [
\begin{array}{c}
\theta_2 \\
y_2
\end{array}
\right ]
=
\left [
\begin{array}{cc}
-1 & +20 \\
0 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{c}
0.1 \\
0.005
\end{array}
\right ]
=
\left [
\begin{array}{c}
0 \\
0.005
\end{array}
\right ].

然后,沿腔体长度的另一次传播使光线返回到原来的左镜,可由下式计算

\left [
\begin{array}{c}
\theta_3 \\
y_3
\end{array}
\right ]
=
\left [
\begin{array}{cc}
1 & 0 \\
-0.05 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{c}
0 \\
0.005
\end{array}
\right ]
=
\left [
\begin{array}{c}
0 \\
0.005
\end{array}
\right ].

最后,经左镜反射后的一次往返的结束,由下式计算

\left [
\begin{array}{c}
\theta_4 \\
y_4
\end{array}
\right ]
=
\left [
\begin{array}{cc}
-1 & -20 \\
0 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{c}
0 \\
0.005
\end{array}
\right ]
=
\left [
\begin{array}{c}
-0.1 \\
0.005
\end{array}
\right ],

该值可以在上图中得到确认。

这种方法的优点在于,我们仅需进行矩阵运算来了解射线的行为。我们可以计算出一个矩阵 M,它表示射线的传播和反射序列为

M=
\left [
\begin{array}{cc}
-1 & -20 \\
0 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{cc}
1 & 0 \\
-0.05 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{cc}
-1 & +20 \\
0 & 1 \\
\end{array}
\right ]
\left [
\begin{array}{cc}
1 & 0 \\
0.05 & 1 \\
\end{array}
\right ]
=
\left [
\begin{array}{cc}
-1 & -20 \\
0.05 & 0 \\
\end{array}
\right ],

其结果与先前的结果相同:

\left [
\begin{array}{c}
\theta_4 \\
y_4
\end{array}
\right ] =
\left [
\begin{array}{cc}
-1 & -20 \\
0.05 & 0 \\
\end{array}
\right ]
\left [
\begin{array}{c}
0.1 \\
0
\end{array}
\right ]
=
\left [
\begin{array}{c}
-0.1 \\
0.005
\end{array}
\right ].

 

该传递矩阵 M 具有 M3I 的性质。即,经过三个往返之后,它变成单位矩阵。实际上,这可以通过 Sylvester’s theorem (西尔维斯特惯性定理)进行分析证明,而无需计算矩阵乘积:

\left [
\begin{array}{cc}
A & B \\
C & D \\
\end{array}
\right ]^n
=
\frac{1}{\sin \Theta}
\left [
\begin{array}{cc}
A \sin n\Theta – \sin(n-1)\Theta & B \sin n\Theta \\
C \sin n\Theta & D \sin n\Theta – \sin(n-1) \Theta
\end{array}
\right ],

其中,

ñ=3 代入上面的公式中的 M 矩阵中,得到 M3=I。我们可以通过下图中的射线追踪来确认这一点,其中光线路径是由往返次数着色的。

三个往返后的射线的射线跟踪结果
与前一个图相同的共焦腔的射线追踪结果表明,光线在往返 3 次后返回到了初始位置。

在这种情况下,可以说该腔体是稳定的,这意味着该腔体内部的射线不会从中逸出。上面的公式可以得出这样一个普遍的结果:当矩阵的迹为 时,由矩阵表示的序列是稳定的。

在本示例中,矩阵的迹被计算为 。因此,它是稳定的。

如下图所示,还可以通过绘制单位波矢量的 y 分量来查看结果。该图显示,射线方向会定期改变,但不会增长,并且在 3 次往返之后会返回相同的值。大体上,±0.15rad 是射线进入腔体内的上下边界,下图证明了这种情况。

定期更改的射线方向的 COMSOL 图。
单位波矢量的 y 分量。射线的方向以有限的最小和最大值为边界,这意味着射线不会偏离到腔镜之外。

更改激光器的腔体长度

下面我们来讨论另一个例子。选择腔体长度为 m。该腔体距离共焦腔有点远。这种有意调整的空腔长度可确保  。因此,在经过 20 次往返之后,传递矩阵变成了单位矩阵,并且获得了初始射线角度和位置。这时,传输矩阵为

\left [
\begin{array}{cc}
-1.215 & -6.2574 \\
0.026393 & -0.68713 \\
\end{array}
\right ]

该传输矩阵的 20 次乘积为 M20=I。我们可以通过下图中的射线追踪来确认这一点。红色箭头确实指向原镜的中心并指向原方向。

在 COMSOL Multiphysics 中为两个反射镜之间二十次往返后的光线绘制的光线跟踪图。
经 20 次往返之后,具有相同反射镜且腔体长度稍长的激光腔的射线追踪结果。

二十次往返后射线的单位波矢量 y 分量的 COMSOL 图。
单位波矢量的 y 分量。

通常,曲率半径为 R1 的右反射镜,半径为 R2 的左反射镜和一个行程的腔长 L 的传输矩阵可写为

M^1 = \left [
\begin{array}{cc}
\left( -1+\frac{2L}{R_1} \right) \left( -1+\frac{2L}{R_2} \right) – \frac{2L}{R_2}
&
\frac{2}{R_1} \! \! \left( -1+\frac{2L}{R_2} \right) – \frac{2}{R_2}
\\
\left( -1+\frac{2L}{R_1} \right)(-L)+L
&
-\frac{2L}{R_1}+1
\\
\end{array}
\right ].

经过一些简单的运算,由矩阵的迹得出的稳定条件表示为

0 \le \left (1-\frac

{L}{R_1} \right)\left (1-\frac{L} {R_2} \right) \le 1.

该稳定性公式可进一步扩展到在腔中包含透镜的情况。在腔体内引入透镜会使传递矩阵变得复杂,在这里不再写出,但是稳定性标准仍然很简单。添加焦距为 f 的镜头,将稳定条件修改为

0 \le \left (1-\frac{L_2}{f} \frac{L_0}{R_1} \right) \left (1\frac{L_1}{f} -\frac{L_0}{R_2}
\right) \le 1,

其中,L0=L1+L2LL2/fL1L2 分别是从镜头到左、右镜的距离。在前一个腔中添加一个焦距为 f= 50mm 的聚焦透镜,其稳定性标准数为 0.10978,这可以预测该腔是稳定的。

在之前的腔中添加了薄透镜的射线追踪结果
在之前的腔中添加了薄透镜的射线追踪结果。

光束在两个反射镜之间移动且透镜在中间的情况下,单位波矢量的 y 分量的 COMSOL 图。
单位波矢量的 y 分量。

到目前为止,我们已经通过 ABCD 方法与 COMSOL Multiphysics 中的射线追踪功能研究了一些基本的激光腔稳定性分析。两种方法的稳定性结果吻合良好。

模拟焦距变化的激光器

现在,我们来看最后一个示例。在本示例中,对上一个示例中的焦距进行了参数化和更改,并在著名的稳定性图表中绘制了腔稳定性的变化。在 Kogelnik 的理论中,通过使用由 g1= 1 –L2/fL0/R1g2= 1 –L1/fL0/R2 定义的一组新变量,将之前的稳定性条件公式改写为

0 \le g_1 g_2 \le 1

在下面著名的稳定性图中,以 g1g2 分别作为水平轴和垂直轴,将稳定区域绘制为阴影线区域。如果由原腔体参数 R1R2L0 导出的 g1g2 在阴影区域内,则根据Kogelnik的理论,激光腔是稳定的。对于前面的示例,我们为两个反射镜设置了相同的曲率半径。因此 R1=R2,因此 L1=L2=L0/2 对称,这导致 g1=g2。这在稳定性图中表示为一个 45 度线。当腔体参数改变时,g1g2 的值沿通过第一象限和第三象限的线改变。

接下来,我们来看看它是如何可视化的。将镜的曲率固定为 0.1m,腔长固定为0.084357 m,同时将透镜的焦距从 15mm 更改为 40mm(以 5mm 为增量)。下图显示了 Kogelnik 对带有透镜的特定激光腔的理论结果。对于f=25、30、35 和 40mm,激光是稳定的,g1g2 分别为 0.67091,0.43100,0.29200 和 0.20545。

这些值被绘制在阴影区域,而焦距为 15 和 20mm 会使该激光器不稳定,因为它们的 gg2 值超过 1.0,分别为 1.1299 和 2.1593。下图绘制了该激光腔的理论预测值。图的侧面为每个焦距的光线追踪结果,显示出与理论的完美匹配。在 COMSOL 计算中,一旦光线离开腔体,内置停止条件就会终止计算。实际计算时间 T 与预设计算时间 T0(在这种情况下为 50ns)之比,T/T0 表示腔稳定性,如果 Ť0 选择适当。除 1.0 以外的任何稳定性指数值可能都无济于事,因为我们知道,当激光不稳定时,它会很快关闭。换句话说,激光稳定性的变化几乎是数字化的,即 1(打开)或 0(关闭)。

与COMSOL Multiphysics 射线追踪结果相比,Kogelnik 的稳定性理论的示意图。
比较 Kogelnik 的稳定性理论和 COMSOL Multiphysics 带有薄透镜的共焦腔的射线追踪结果。

最后一个示例显示在考虑热透镜效应的情况下,射线追踪可以进行激光腔稳定性分析,因为该示例是 Kogelnik 的热透镜激光腔模型。按照 Kogelnik 的理论,由泵浦激光加热的激光晶体被具有一定焦距的薄透镜所代替。一旦知道了晶体内部的温度分布,就可以通过 n=n0+(TT0dn/dT 求出一阶近似值,其中 nn0 是有泵浦和无泵浦的折射率分布,ŤT0 是有和没有泵浦时的温度分布;dN/dT 是随温度变化的折射率变化。

如果晶体是棒状,则泵浦的激光晶体的折射率在中心附近的分布近似为抛物线形状,即 nr=n0(1-2 2/2),其中 r 是极坐标系中的径向距离,其z轴沿着泵浦光轴。将计算出的折射率分布拟合到该抛物线以获得拟合参数 a。一旦该参数被计算出,即代表热透镜效应的焦距可以近似表示为 f〜a2/(4nL),其中 L 是晶体长度(参考文献3)。热透镜效应还包括表面膨胀,这会引起折射角的变化,我们可以一种类似的方式对此进行分析。

结语

使用 COMSOL Multiphysics,我们无需进行拟合。我们只需使用传热固体力学 接口进行热和力学模拟,以了解新的折射率分布和表面膨胀,然后简单地使用射线光学接口进行射线追踪,以了解在热透镜效应下激光腔的稳定性。在即将发表的博客文章中,我们将进一步讨论 COMSOL Multiphysics 的射线追踪功能。在即将发表的这篇博客中,我们将会看到一个完整的对 Ti:蓝宝石激光腔的分析模型,该模型带有双泵浦布鲁斯特切口晶体和一对色散补偿棱镜。敬请关注!

Ti:蓝宝石激光腔稳定性分析模型的屏幕截图。
Ti:蓝宝石激光腔的稳定性分析模型,用于求解温度、力学位移以及射线位置和角度。

参考文献

  1.  H. Kogelnik and T. Li, Applied Optics, Vol. 5, No. 10 (1966)
  2. E. Hecht, Optics, Addison Wesley
  3. W. Koechner, Solid-State Laser Engineering, Springer

其他资源

]]>
//www.denkrieger.com/blogs/how-to-analyze-laser-cavity-stability-with-multiphysics-ray-tracing/feed/ 4
射线追踪算法的选择对解有什么影响? //www.denkrieger.com/blogs/how-does-the-choice-of-ray-tracing-algorithm-affect-the-solution //www.denkrieger.com/blogs/how-does-the-choice-of-ray-tracing-algorithm-affect-the-solution#respond Tue, 13 Jun 2017 07:35:53 +0000 http://cn.staging.comsol.com/blogs?p=320541 射线追踪是高频光学仿真的有效工具。COMSOL Multiphysics® 软件的射线光学模块使用了一种具有多物理场能力的波前方法进行射线追踪。在这篇博客中,我们将探讨 COMSOL Multiphysics 中的射线追踪算法与标准几何光学教科书中描述的传统射线追踪算法的不同之处,并提出一系列的实践建议,来帮助你获取最佳的仿真结果。

序列的、非序列的和精确的射线追踪算法

射线追踪算法可分为序列法非序列法。在射线光学模块中使用的射线追踪方法可以被归类为非序列波前法。

无论所使用的算法的细节如何,通过一个光学系统的射线追踪基本上是在两个交替的步骤中进行的。

  1. 给定一个初始位置和射线方向,无论是在物体上的某一点还是在光学系统中的某一表面,射线追踪算法确定射线将在哪里碰到下一个表面,并将射线追踪到该点。
  2. 接着,该算法继续通过在光线碰到表面的地方,施加边界条件(如反射或折射)来调整光线方向。这样就能改变反射或折射光线的方向,为其在后续介质中的追踪做准备。

即使在有大量表面的复杂系统中,整个射线追踪过程通常也可以分解为这两个步骤的连续迭代,如下图所示。

射线追踪的示意图

在一些关于几何光学的标准文献中描述了几种序列射线追踪算法(例如,见参考文献123)。所谓序列射线追踪,是指光线遇到的光线或镜子的序列被指定为射线追踪算法的输入;换句话说,你知道光线将首先通过透镜 1,然后是透镜 2,以此类推,但你不知道光线将在哪里通过每个透镜表面,或反射和折射光线的角度是什么。

在非序列的射线追踪方法中,光线遇到透镜和镜子的序列并没有事先指定。相反,如果指定了光源,该方法将自动确定光线和系统中的光学元件之间的相互作用。

一些重要的序列射线追踪算法利用了旁轴近似法,并假定光线与光轴之间的角度很小。相比之下,某些序列和非序列射线追踪方法可以归类为精确方法(123),因为在预测光线与透镜表面的交点时,会考虑到透镜的形状,而不使用旁轴近似。因此,光线与弧形透镜的实际表面相交,而不是顶点平面。

在精确的分析性射线追踪方法中,光线与透镜或镜子表面的交点是通过求解一个代数方程来计算的。例如,如果透镜的表面是球形的,那么给定光线的初始位置和方向,它与透镜表面的交点可以通过求解一个二次方程精确计算出来。对于更复杂的非球形表面,光线与表面的交点的方程可能没有一个封闭的分析解,可能需要一个数值方法。

在下面的讨论中,我们将把 COMSOL® 软件中使用的方法与上面描述的精确射线追踪方法进行比较。我们将忽略较简单的旁轴光学方法,因为 COMSOL Multiphysics 中的射线追踪总是使用斯奈尔定律(Snell’s law)的完整实现,而从不使用小角度近似。

均质材料与渐变折射率材料的比较

许多传统的射线追踪方法要求每种材料都是均匀的;也就是说,折射率在每种介质中的梯度为零,只在边界处不连续地变化。如上所述,基于代数求解与下一个透镜的交点的方法,只适用于非梯度介质。这是因为渐变折射率介质中的光线可能是弯曲的,所以光线的初始位置和方向不足以确定它将在哪里与表面相交。

真实世界中的光学系统可能会因为设计或多物理效应而拥有具有渐变折射率或不均匀的元件。设计中的渐变折射率分布的例子包括 Luneburg 透镜、麦克斯韦的鱼眼透镜和通过电泳制造的 GRIN 透镜。在非均匀温度分布的环境下的透镜,由于材料特性取决于温度和应变,会不经意间出现渐变的折射率。这些是波前法擅长的一些最重要的情况。

下图显示了异质介质中射线路径的一个例子。在图片中,热学色表显示了建模域的温度,浅色对应于较高的温度。折射率的变化与温度的变化成正比,因此在温度梯度最大的地方,射线路径变得更加明显弯曲。沿着射线路径的颜色显示了射线的瞬时群速度幅度,最大的幅度显示为红色,最低的幅度为蓝色和紫色。出于演示的目的,这个模拟被夸大了,从概念上描述了激光系统中泵浦激光晶体的情况。

COMSOL 模型中一条射线沿着弯曲的路径通过加热的材料
一条射线沿着弯曲的路径(夸张的)穿过加热的材料。

波前射线追踪法

COMSOL Multiphysics 中的射线追踪方法对瞬间射线位置 q 和波矢量 k 分量的一组耦合一阶常微分方程(ODE)进行数值求解。

\frac{ \partial
{\mathbf q} }{ \partial t} = \frac{ \partial \omega( {\mathbf k} )}{\partial {\mathbf k} }
\frac{ \partial {\mathbf k} }{\partial t} = -\frac{ \partial \omega( {\mathbf k} )}{\partial {\mathbf q}
}

其中,角频率 ω 取代了通常由哈密顿算符 H 占据的位置(参考文献4)。

当折射率是均匀的,上面的哈密顿公式被简化为说明光的恒定速度和射线方向的表达式,如下所示:

\frac{ \partial{\mathbf q}}{\partial t} = \frac{ \partial (c|{\mathbf k}|/n)}{\partial {\mathbf k} } = \frac{c {\mathbf k} }{n|{\mathbf k}|}
\frac{ \partial {\mathbf k} }{\partial t}=0

当界面上的折射率不连续时,COMSOL Multiphysics 利用斯涅尔定律(Snell’s law)数值计算折射光线的方向。这个公式使 COMSOL® 软件不仅可以计算同质折射率的特殊情况,而且可以计算更多的一般情况,如激光工程中的热透镜(包括直线和弯曲的光线)。请注意,这是一种时间步法,结果显示了传播过程中不同时间段的射线。

表面的离散化和几何形函数的阶次

举一个几何形状的例子,考虑一个旋转对称的非球面透镜表面凹陷,由以下分析表达式描述:

(1)

z(r) = \frac{cr^2}{1+\sqrt{1-(1+k)c^2r^2}}A_1r^2+A_2r^4 \cdots

这里, 分别是透镜表面凹陷、曲率、圆锥常数和偶次多项式的系数;,其中 xy 是横跨光轴的两个方向。

在 COMSOL Multiphysics 中,透镜和镜子的形状可以作为解析函数或完整的三维 CAD 模型输入。分析给定的形状被输入为参数曲线或曲面,并由高阶非均匀有理样条(NURBS)近似。在下一步骤中,曲面(或曲线)用有限元网格进行近似,用多项式进一步近似形状。

在用户界面上,这些多项式的最大阶数由模型组件的设置窗口中的几何形函数阶次 决定。这些近似的精度可以通过细化网格和/或增加几何形函数阶次来提高。然后,射线与各个网格单元相互作用,用于预测交汇点和应用斯涅尔定律。

在大多数情况下,几何形函数阶次的默认选项 Automatic 是使用二次多项式来近似曲面,但有时也会使用线性形函数阶次来避免创建倒置的网格单元。对于大多数应用来说,用户可以将阶数提高到七阶(Septic)多项式。

COMSOL Multiphysics中几何形函数阶次设置的截图。
几何形函数阶次的设置窗口

现在我们来考虑一个非球面透镜,它的形状在前面已经描述过了。为了更容易看到离散化,这里的透镜使用了非常粗的网格。在下面的图中,线性化的网格单元用灰线表示,而曲面的数值表示则用黑色的轮廓表示。

左图是默认(自动,即大部分为二次元)设置下的射线追踪结果,右图是使用线性几何形函数阶次的情况。射线的颜色代表波矢量的 Y 分量(垂直轴)。可以通过寻找颜色变化的位置来了解射线被折射的位置。在任何几何形函数阶次的选择中,表面形状不能再由上述非球面公式来写;也就是说,它是一个片状连续多项式的集合,其阶次由几何形函数阶次 的设置来决定。

两种不同几何形函数阶次的非球面透镜表面模型。
一个非球面透镜表面和它的近似表面形状使用二次(左)和线性(右)几何形函数阶次。

射线和有限元网格

COMSOL Multiphysics 中的射线追踪算法使用有限元网格在表面反射和折射射线的原因有几个。如前所述,强调了 COMSOL® 软件作为多物理场仿真工具的优势,因为它使追踪射线通过渐变折射率介质成为可能,在这种介质中,折射率分布是由另一个物理界面计算的场的函数。另一种情况是,当透镜表面由于热膨胀或由于透镜上的其他外力而变形时,可能无法得到透镜表面的解析表达。总之,几乎所有与光学系统耦合的物理学都是用有限元方法建模的,所以耦合是通过有限元网格进行的。

由于射线追踪算法使用有限元网格,在 COMSOL Multiphysics 中进行射线追踪的最低要求是所有反射或折射射线的边界必须有一个边界网格。边界网格单元用于计算表面属性,如法线方向和主曲率半径,这在射线反射或折射时是需要的。边界网格还为网格搜索算法提供信息,预测射线到达边界的瞬间,使沿射线路径计算的数量,如强度和相位,得到更准确的计算。

在某些情况下,射线传播的域也应该有一个域级的有限元网格。例如,包含渐变折射率介质的域必须始终被网格化。如果折射率与温度有关,那么为了计算射线在介质中的瞬时位置的折射率,有必要从温度场查询一个值。温度可以使用网格单元中定义的有限元基函数在射线的准确位置上进行插值。然后,这个温度值可以被替换成与温度有关的折射率表达式。

当射线在吸收性介质中传播时,也需要一个域级网格。介质中的沉积射线功率是用定义在网格单元上的分片不连续函数来离散的,所以网格是必要的,以便将每条射线对总热源的贡献限制在一个有限的范围。

网格分辨率如何影响解

到目前为止,我们已经了解到,COMSOL® 软件中的射线追踪是一种近似的解,它将每个表面视为基于有限元网格的分片连续多项式。因此,解的精度取决于网格的分辨率。更高的几何形函数阶次和更细的网格可以减少离散误差。在上图的右图中,一些射线通过了相同的边界单元,这就虚假地导致了相同的波矢量(颜色相同的线)。这是一种近似误差,当几何形函数阶次较低且网格非常粗时,我们可以明显看到这种误差。

下面的图显示了在前面的例子中,被同一个透镜第一次折射后的折射光线的单位波矢量的Y分量。横轴代表Y轴上的初始射线位置。当几何形函数阶次为线性时,由未充分解析的网格引入的误差是最显著的。

二次几何形函数阶次和线性形函数阶次的y分量图。
用不同的网格单元大小(用不同颜色表示)绘制的二次几何形函数阶次(左)和线性形函数阶次(右)的单位波矢量的Y分量图。

网格细化对点状图的影响

我们已经看到,网格细化程度会影响到射线轨迹的精度,所以它也会影响到点阵图的精度,这一点应该不奇怪。如果初始射线位置和方向的分布是对称和有规律的,那么精确的射线追踪方法的结果通常显示出近乎完美的对称性和连续性。非球面透镜的光斑图总是围绕着光轴对称的,而且射线畸变总是平滑和连续的。对于基于有限元的波前方法,只有当网格继承了原始透镜几何的对称性时,其结果才是对称的。

即使对于具有对称的射线位置和方向初始分布的对称光学系统,如果网格不对称,COMSOL Multiphysics 中的射线追踪结果也会给你带来轻微的不对称结果。但随着网格的细化,这些偏离对称性的情况会逐渐减少,因为对称面两侧较小的网格单元会向相同的表面表示法靠拢。这只是网格离散性误差的另一种表现形式。通过使用结构化的网格可以提高解的对称性。然而,需要注意的是,对称的解并不一定意味着解更准确。

下图显示了最大网格元大小对光斑图的影响,以及一个平凸透镜的RMS光斑半径图。这个聚焦透镜被设计为有一个衍射限制的光斑。可以看到,随着网格尺寸的下降,RMS 光斑半径是如何收敛到某一数值的,和预期的那样。让我们再仔细看看。最粗的网格的光斑比衍射极限大。它也是非常不对称的,交点分布在一个非常大的区域。这种网格大小对于其他物理学问题,如热和力学问题,看起来并不是特别糟糕。然而,对于使用默认的自动几何形函数阶次的射线追踪,这个网格太粗了,无法产生准确的点阵图。只有最后两种尺寸的网格可以产生一个集中的、对称的光斑。

二次和三次形函数阶次光斑图的比较
取决于最大的网格大小的二次和三次几何形函数阶次在焦点处的光斑图的比较。红色圆圈显示了波长为0.66um 的透镜的衍射极限尺寸。

使用COMSOL Multiphysics 绘制的 RMS 光斑半径的对数图。
与衍射极限尺寸相比,二次和三次几何形函数阶次的 RMS 光斑半径作为最大网格大小的函数的双对数图。

解释 COMSOL Multiphysics®中射线追踪法产生的解数据

现在让我们来看看解数据的格式与上述传统(稳态)分析射线追踪算法的格式有什么不同。

下面是一个例子,它比较了 COMSOL Multiphysics 中得到的随时间变化的解和前面例子中同一聚焦透镜的标准序列光线追踪平面到平面方法的典型输出。一个平凸透镜将光线聚焦到一个光点。在我们熟悉的传统平面对平面方法的结果中,所有的光线都被引向端面。另一方面,在 COMSOL Multiphysics 中,每条射线都被绘制到了指定时间步长的射线所处的位置。所以,一般来说,射线不会铺设在同一平面上。

这就是为什么 COMSOL Multiphysics 中的射线轨迹结果几乎总是显示一些曲率。这个曲率不过是几何光学体系中的波前。在这个例子中,波前是由透镜引入到射线的二次相位函数所弯曲的。为了将所有的射线引向端面,要使用较久的求解时间,以便所有的射线都有足够的时间到达端面并停止传播。

COMSOL 多物理中的时间相关和平面到平面射线追踪示例。
COMSOL Multiphysics® 中随时间变化的射线追踪的仿真结果(左)和标准序列的平面到平面的射线追踪(右)。

虽然看到原始波面很方便,但我们需要确保我们模拟的所有射线都已经通过了我们想要计算数量的平面。下面的连续点阵图说明了上述例子在不同求解时间的点阵图。在 COMSOL Multiphysics 中,点图是用 Poincaré Map 绘图类型生成的。由于波前是收敛的,外侧射线先到达平面,内侧射线后到达。因此,平面内的计算可能因我们选择的时间不同而不同。

不同解决时间的五点图。
在不同的求解时间产生的点状图。

为了确保我们计算我们感兴趣的平面内的所有射线,COMSOL Multiphysics 配备了称为 attimemin attimemax 的算子。例如,下面的表达式给出了 x = 0.1 m 的 yz 平面内的 RMS 光斑半径。

sqrt( gop.gopaveop1( attimemin(0,0.4[ns],(qx-0.1[m])^2, qy^2+qz^2) ) )

gop.gopaveop1() 算子取括号中的表达式在所有射线上的平均值。这个算子的参数为

attimemin(0,0.4[ns],(qx-0.1[m])^2, qy^2+qz^2)

调用 attimemin 算子,它需要四个参数。

attimemin 的前两个参数定义了我们要计算表达式的最小值的时间段的开始和结束。我们必须确保射线穿过平面的时间是在这个范围内。第三个参数是要最小化的表达式。在检测到射线的这个第三个参数的最小值时,将返回第四个参数的值。 attimemin 算子使用了存储的求解时间之间的插值,所以有可能准确地得到每条射线与平面的交点,即使这个交点与存储在求解中的时间步长不一致。

换句话说,前面的表达式可能是这样的。

“计算所有射线在 0 到 0.4ns 之间的径向坐标值的平均值的平方根,对于这个时间,射线与平面 x = 0.1 的距离达到最小。”

下一个例子显示了当射线在边界处发生反射或折射时,以离散的时间步长存储的解是如何影响轨迹图的。我们通常不会事先知道每条射线与每个表面相互作用的确切时间或光路长度,所以这些相交时间通常不会与存储的解的时间完全吻合。因此, COMSOL Multiphysics 射线追踪结果显示,在界面或反射壁附近的轨迹有一些小的不完整,如下图所示,射线似乎在离边界不远的地方改变了方向,而不是正好在边界上。然而,对于这种随时间变化的射线追踪方法来说,这是预料之中的事情,并不影响其准确性。即使射线在结果中看起来没有撞到界面或壁,COMSOL® 软件也会为每条射线计算出准确的交互时间,通常使用二阶泰勒法从先前存储的求解算=时间推算出射线位置。

墙壁反射光线的 COMSOL 模型。
射线在反射壁处的反射。在图中,并非所有的射线都被定格在壁上,但所有的射线轨迹都被准确计算出来。

结语

在这篇博客中,我们讨论了 COMSOL Multiphysics 中用于射线光学模拟的独特的随时间变化和基于网格的方法。还介绍了在射线追踪结果中可能会遇到哪些类型的异常,特别是当时间步较大、网格较粗的时候。与其他物理界面一样,细化网格或提高时间分辨率可以清除这些看起来不正常的行为,并产生精确、收敛的解。

更多资源

在 COMSOL 博客上了解更多关于 COMSOL Multiphysics 的射线光学和射线追踪功能。

参考文献

  1. R.R. Shannon, The Art and Science of Optical Design, Cambridge, 1997.
  2. D.C. O’Shea, Elements of Modern Optical Design, Wiley, 1985.
  3. R. Ditteon, Modern Geometrical Optics, Wiley, 1998.
  4. L.D. Landau and E.M. Lifshitz, The Classical Theory of Fields, 4th ed., Butterworth-Heinemann, Oxford, 1975.
]]>
//www.denkrieger.com/blogs/how-does-the-choice-of-ray-tracing-algorithm-affect-the-solution/feed/ 0
如何由计算解实现傅里叶变换 //www.denkrieger.com/blogs/how-to-implement-the-fourier-transformation-from-computed-solutions //www.denkrieger.com/blogs/how-to-implement-the-fourier-transformation-from-computed-solutions#respond Mon, 27 Feb 2017 05:43:17 +0000 http://cn.staging.comsol.com/blogs?p=237351 之前我们学习了如何在 COMSOL Multiphysics® 软件中计算 Fraunhofer 衍射模型中矩形孔径的傅里叶变换。在该案例中,孔径是作为一个解析函数给出的。如果用于傅里叶变换的源数据是计算得到的解,那么变换过程会有所不同。在本篇博客文章中,我们将学习如何由菲涅尔透镜(Fresnel lens)电磁模拟的计算解实现傅里叶变换。

用傅里叶光学进行傅里叶变换

在仿真中实现傅里叶变换可用于傅里叶光学、信号处理(用于频率模式提取)以及通过图像处理进行降噪和滤波等。在傅里叶光学中,菲涅尔近似是计算衍射孔径附近场的近似方法之一。假设衍射孔位于 平面,在 平面,距离衍射孔径 处的衍射电场可由下式计算

E(u,v,f) = \frac{-1}
{i\lambda f}
e^{i2\pi f /\lambda} e^{-i\pi(u^2+v^2)/(\lambda f)} \iint_{\infty}^
{\infty}
E(x,y,0)e^{-i \pi(x^2+y^2)/(\lambda f)}e^
{i2 \pi (xu+yv)/(\lambda f)}
dxdy,

其中, 是波长, 分别代表 平面和 平面的电场。(有关更多详细信息,请参阅参考文献1

在该近似公式中,通过对入射场乘以二次相位函数 进行傅里叶变换来计算衍射场。

相位函数的符号约定必须遵循电场的时间相关性的符号约定。在 COMSOL Multiphysics 中,电磁场的时间相关性具有以下形式:。因此,二次相位函数的符号为负。

菲涅尔透镜

现在,我们来看一个菲涅尔透镜的例子。除了其弯曲表面外,菲涅尔透镜是一种规则的平凸透镜,它沿透镜高度在每 倍数处都向平边折叠,其中 m 是整数,n 是透镜材料的折射率。这就是 m 阶菲涅尔透镜。

表面沿光传播方向移动此特定高度只会改变光的 相位(粗略地说,在傍轴近似下)。因此,折叠透镜基本上会在远场再现相同的波前,并表现得像原始的未折叠透镜一样。其主要的区别在于衍射效应:普通透镜基本上不显示任何衍射(如果没有通过硬光阑产生的渐晕现象),而菲涅尔透镜由于表面不连续和内部反射,在主光斑周围总是会显示出小的衍射图样。

当菲涅尔透镜被数字化设计时,透镜表面由离散层组成,使其外观呈阶梯状,这被称为多级菲涅尔透镜。由于阶梯具有平坦的部分,因此除了高阶衍射之外,多级菲涅尔透镜的典型衍射图案通常还包括零阶背景。

菲涅耳透镜的照片。
波士顿的一座灯塔中的菲涅尔透镜。图像由 Manfred Schmidt 提供-自己的作品。通过Wikimedia CommonsCC BY-SA 4.0下获得许可。

为什么我们要以菲涅尔透镜为例?其原因与在灯塔运行中使用菲涅尔透镜的原因类似。菲涅尔透镜被折叠成 的高度,它非常薄,与传统折射透镜的大、重、厚相比,菲涅尔透镜的重量和体积更小,这有利于灯塔的光学系统。同样,我们也可以根据使用目的来控制菲涅尔透镜元件的数量,从而更轻松地在 COMSOL Multiphysics 和附加的波动光学模块中进行模拟。

在 COMSOL Multiphysics® 中模拟聚焦菲涅尔透镜

下图描述了我们试图模拟的光学设置,以演示如何对通过波动光学,频域 接口求解的解实现傅里叶变换。

图示聚焦菲涅耳透镜模型的光学布局的图。
聚焦的 16 级菲涅尔透镜模型。

这是一个一阶菲涅尔透镜,其表面被数字化为 16 级。一束平面波 打到入射平面上,在出口平面 处,该场被菲涅尔透镜衍射为 。该过程可以通过 波动光学,频域 接口进行建模和仿真。然后,我们通过在菲涅尔近似下应用傅里叶变换计算焦平面  处的场

下图是我们计算的结果,电场分量分布在域中(顶部)和与出口平面相对应的边界处(底部)。请注意,几何图形在垂直轴上没有按比例绘制。我们可以从中心和锯齿间的每个气隙清楚地看到正弯曲的波前。注意,来自透镜表面的反射会造成域场结果中的一些小干扰和边界场结果中的波纹。这是因为这里没有建里抗反射涂层的模型。

菲涅耳透镜中电场分量的 COMSOL Multiphysics 计算。
菲涅尔透镜和周围空气域中计算出的电场分量(垂直轴未按比例绘制)。

计算出的电场分量图。
在出口平面上计算出的电场分量。

通过计算解实现傅里叶变换

继续进行傅里叶变换。在前面的解析函数示例中,我们准备了两个数据集:一个用于源空间,另一个用于傅里叶空间。在数据集的设置窗口中定义的参数名称是在源平面的空间坐标 和在图像平面中的空间坐标

在今天的这个示例中,我们已经使用计算解在计算的数据集 Study 1/Solution 1(sol1){dset1} 中 创建了源空间。我们需要做的就是创建一个包含傅里叶空间参数的一维数据集 Grid1D {grid1},即焦平面中的空间坐标 。然后,将其与源数据集相关联,如下图所示。我们在出口平面上定义一个积分算子 intop1

屏幕截图显示了 COMSOL Multiphysics 中的转换数据集。
变换数据集的设置。

屏幕截图显示了 COMSOL Multiphysics中的 Integration 1 设置。

屏幕截图显示了 COMSOL 软件中的图片窗口
在出口平面上定义的运算符 intop1(垂直轴未按比例绘制)。

最后,我们在一维绘图中定义傅里叶变换,如下图所示。这里重要的是要指定我们之前为变换创建的数据集,并让 COMSOL Multiphysics 知道是使用 dest 算子的目标变量。

COMSOL Multiphysics 中的傅里叶变换设置的屏幕截图。
COMSOL 软件中一维绘图中傅里叶变换的设置。

下图显示了最终的结果。这是聚焦光束通过多级菲涅尔透镜焦平面的典型图形(请参阅参考文献2),中心处存在一阶衍射的主光斑以及一个由零阶(非衍射)和高阶衍射引起的较弱的背景。

电场规范的COMSOL Multiphysics图
聚焦光束通过 16 级菲涅尔透镜的电场模图。

结语

在本篇博客文章中,我们学习了如何对计算解实现傅里叶变换。该功能对于 COMSOL Multiphysics 中的远距离传播计算非常有用,并将电磁仿真扩展到了傅里叶光学。

后续操作

单击下面的按钮,下载菲涅尔透镜示例的模型文件。

了解有关波动光学模拟的更多信息

参考文献

  • J.W. Goodman, Introduction to Fourier Optics, The McGraw-Hill Company, Inc.
  • D. C. O’Shea, Diffractive Optics, SPIE Press.
]]>
//www.denkrieger.com/blogs/how-to-implement-the-fourier-transformation-from-computed-solutions/feed/ 0