基于方程建模 – COMSOL 博客 - //www.denkrieger.com/blogs 发布博客 Thu, 26 Sep 2024 15:31:30 +0000 en-US hourly 1 https://wordpress.org/?v=5.7 捕蚊器真的有用吗?通过粒子追踪法预测捕蚊器的性能 //www.denkrieger.com/blogs/how-well-do-mosquito-traps-work-observing-their-effectiveness-with-particle-tracing //www.denkrieger.com/blogs/how-well-do-mosquito-traps-work-observing-their-effectiveness-with-particle-tracing#comments Thu, 12 Oct 2023 06:19:42 +0000 http://cn.staging.comsol.com/blogs?p=348451 在天气晴朗、温度适宜的季节,大自然会吸引追求冒险的徒步旅行者和快乐的露营者。可是,有植被的地方也有等待寻找下一个目标的蚊子。露营者该怎么办呢?只要蚊子觉得捕蚊器比附近的血源更有吸引力,捕蚊器就有效。今天我们来看一个有趣的仿真案例,即通过基于方程建模的方法来看看捕蚊器是否能让露营者的森林小屋保持舒适无蚊,或者蚊虫是否会扼杀露营的乐趣。

吸引蚊子的物质:二氧化碳和乳酸

为什么雌性蚊子更容易被人类和动物吸引?原因有很多。首先只有雌性蚊子才会吸血,因为它们需要血液中的蛋白质来产卵。根据 新加坡国家环境局的说法,不同种类的蚊子对某些引诱剂更敏感,这也是许多商用捕蚊器会将不同的引诱剂结合使用的原因。

视觉线索(如运动)和热线索(如体温)在吸引雌蚊进入血源方面起到一定的作用,但很大一部分因素是来自气味。蚊子更倾向于被二氧化碳、乳酸(人类汗液中的一种化合物)和某些信息素等物质吸引。在捕蚊器中使用这些线索作为诱饵有助于提高捕蚊器的效果。

叶子上的蚊子近照。
叶子上的蚊子。照片由Syed Ali拍摄,来自Unsplash

有了对蚊子难以抗拒的因素的基本了解,再加上装备的基于方程建模和粒子追踪功能的仿真软件,让我们来看一个简单的捕蚊器在吸引这些小家伙方面表现如何。

模拟小屋中的捕蚊器

我们将利用 COMSOL Multiphysics® 软件的两个功能来进行基于方程的建模:一个是选择 数学 接口,另一个是解释用户添加的数学方程,以及生成数值模型时将其纳入的特征。

在制作捕蚊器模型时,需要考虑用什么数学方程来描述蚊子的飞行。一种方法就是用拉普拉斯方程来描述吸引物的浓度。本文示例中的模型求解的是速度势能的拉普拉斯方程,它被设计成与一般蚊子吸引物的浓度成正比。速度势能代表所有可能吸引蚊子的分子,包括二氧化碳和捕蚊器散发的气味。

幸福的睡眠

为了更直观地理解这个模型场景,让我们把露营者带回来,假设他住在森林中的一间小木屋里。这是一个温暖的夜晚,为了睡得舒服,他决定打开窗户。他在床头安装了一个捕蚊器,认为这应该能保证他的安全。根据制造商的说法,这种捕蚊器应该比真正的血源有超过60%吸引力,所以他选择碰碰运气。

木屋的内部模型,有两扇关闭的窗户,一扇打开的窗户和一扇绿色的门在开着的窗户对面,有一个人睡在床上,上面放着一个捕蚊器。
小木屋模型,窗户打开,一个人正在睡觉,床头的架子上放着一个捕蚊器。

啊哦!我们的露营者犯了一个错误:他在睡梦中动来动去。他梦见了第二天早上的远足美景,他不停在动,毯子也在动,导致他的躯干和腿部没有遮挡。接着,一群蚊子从打开的窗户飞进来,它们在找血。这些蚊子要么去找露营者,要么去找捕蚊器。露营者是会平安无事,还是一觉醒来浑身发痒呢?

攻击路径

为了确定蚊子的去向,我们需要在模型中添加一些方程。本例中,我们使用狄利克雷边界条件特征添加了三个边界:打开的窗户、捕蚊器和露营者裸露的皮肤。由于捕蚊器比人的皮肤更有吸引力,我们为捕蚊器和皮肤分配了不同的速度势能,来表示这种对比。

我们还将在示例中使用 COMSOL Multiphysics 的附加产品——粒子追踪模块。当然,使用该模块的用户一般不会模拟蚊子群这样夸张的场景;更典型的例子是模拟代表离子、细胞、水滴、行星或恒星等的粒子。在我们这个有趣的例子中,每个粒子都代表一只蚊子。粒子追踪模块还包括求解用户定义的粒子运动方程的功能,我们在这里用它来解释蚊子在小木屋中的运动。该模型的设置是为了计算有多少粒子在选定的时间内到达某一点——在本例中,就是到达蚊子皮肤和捕蚊器的位置。

我们来看看模拟结果:

 

蚊子进入房间时的模型。每个黑点代表一只蚊子。红线代表一只蚊子的活动轨迹。

捕蚊器与人类皮肤:蚊子更喜欢哪一种?

建立模型并求解后,我们可以绘制结果图,比较在 150 秒或 2.5 分钟内,有多少蚊子飞到了我们可怜的露营者的皮肤上,以及捕蚊器的情况。如下图所示,随着时间的推移,落在皮肤上的蚊子数量会增加,部分原因是野营者比捕蚊器更靠近打开的窗户。不过,落在诱捕器上的蚊子数量也在增加,并在给定时间的一半时超过了落在皮肤上的蚊子数量。

这张图表显示,在150秒的时间内,更多的蚊子落在了陷阱里,而不是皮肤上。
在 150 秒的时间范围内,比较落在皮肤上的蚊子数量和捕蚊器上的数量。

换句话说,他使用捕蚊器比不使用捕蚊器要好,而且(虚构的)制造商对预期性能也是诚实的。利用COMSOL软件基于方程的建模功能,我们能够求解自定义方程,分析蚊子行为与捕蚊器之间的关系,而这一切都不会造成蚊虫叮咬!

更多热门内容

]]>
//www.denkrieger.com/blogs/how-well-do-mosquito-traps-work-observing-their-effectiveness-with-particle-tracing/feed/ 3
使用 COMSOL® 进行衍生式设计以获得新灵感 //www.denkrieger.com/blogs/forming-new-ideas-with-generative-design-in-comsol //www.denkrieger.com/blogs/forming-new-ideas-with-generative-design-in-comsol#respond Tue, 02 Nov 2021 05:13:36 +0000 http://cn.staging.comsol.com/blogs?p=283671 一个新的设计是源自人还是过程?我们可以想象一个新设计的产生过程:首先设计师先有一个设想,然后拿起铅笔把他的想法变成现实。当然,今天的设计师和工程师可能不使用铅笔,也可能没有一个最终的设计想法。相反,另一些设计师则通过使用一个过程为他们提出新想法,即一种被称为“衍生式设计”的方法(参考文献1)来创新设计。衍生式设计是一个基于规则的设计过程的总称,通常由计算软件驱动,生成遵循所设规则的形式。今天,我们来讨论使用基于方程的建模过程,也就是根据用户定义的规则和数值生成一个新颖的铅笔架设计。

铅笔、流程和衍生式设计的要点

人是衍生式设计过程的核心。就像自 16 世纪开始首次在英国出现时一样,铅笔被设计成我们今天熟悉的样子,帮助牧羊人记录他们的羊群,并且在今天仍然被广泛设用。随后,无数的铅笔(以及由铅笔促成的想法)被生产出来。但是,请注意,直到 19 世纪中叶,铅笔才与橡皮擦连在一起

典型的黄色铅笔削尖点的照片。
典型黄色铅笔末端的照片,带有粉红色橡皮

嘿,你们两个应该聚在一起!第一支现代石墨铅笔在16 世纪被发明出来,而橡胶橡皮则是 18 世纪的一个发明。把橡皮附在铅笔上,还经过了几十年的时间。

事后看来,我们很容易想知道为什么没有人更早地想到在铅笔上添加橡皮。擦除工具似乎是对书写工具的一个明显的补充,但是新的想法不一定会在我们期待的时候出现。人类创造力这种难以捉摸的特性是衍生式设计为什么如此强大的原因之一:它可以帮助我们更快地发现更好的想法。

衍生式设计、拓扑优化和场景驱动设计

衍生式设计的核心是基于规则的形式生成过程。指导项目的人设定生成过程的规则,包括将形成预期结果的价值观。然后,设计过程中使用这些价值观来产生符合其规则的形式。最重要的是,设计者并不事先创造正式的过程选项,用这个过程来评估它们。相反,这个过程本身会产生多个正式的选项。用户可以自己考虑哪些选项(所有这些选项都遵循用户定义的规则)最符合项目的广泛目标。

衍生式设计过程的示意图,标有规则算法、源代码、输出和设计器
设计师在衍生式设计过程中的角色示意图,由跨学科团队在Generative Gestaltung一书中创建。图片由 Hartmut Bohnacker 提供,通过Wikimedia Commons获得许可(CC BY 3.0)。

衍生式设计方法非常适用于三维建模和其他增材制造技术,这些技术可以将材料塑造成非传统的但具有一定功能的形式。一些术语,如场景驱动设计拓扑优化,被用来描述衍生式设计方法在工程问题上的各种应用。场景驱动设计包括用户定义的边界条件和模拟值,用于确定指导生成过程的规则。各种术语可以帮助描述设计者设定用于指导生成过程规则的优先级。

陀螺几何的衍生式设计

执行拓扑优化研究后的无人机模型,模拟位移在彩虹色表中可视化
无人机设计的拓扑优化,显示了在一定载荷下的模拟位移。

在一篇关于数字工程的文章中,来自 COMSOL 的 Kristian Ejlebjærg Jensen 解释说:

“拓扑优化和衍生设计的根本区别在于,拓扑优化是由问题的物理场驱动的,而衍生式设计则更多地由设计者自己的选择和需求控制。”

下面的动画展示了如何通过拓扑优化迭代无人机结构的刚性和轻量化设计。

以无人机为例说明了拓扑优化的过程。设计者可以更改体积分数和最小长度比例。设计师对设计没有其他明确的控制,因此最终形式主要由两种载荷工况的细节决定。

如何使用仿真软件进行衍生式设计

建立在有限元分析(FEA)基础上的仿真软件,支持衍生式设计方法。COMSOL Multiphysics® 软件中的求解器可以解释方程、表达式和其他数学描述,帮助生成模型。通过调整这些输入,我们可以启动一个针对特定优先级的衍生式设计过程。

例如,指导拓扑优化的规则可以优先考虑材料的有效使用以提供结构的完整性。拓扑优化还可以帮助工程师设计用于气态光声光谱或用于吸声的微晶格结构的3D 打印声学室

虽然拓扑优化可以生成满足特定目标的设计,但其他相关优先级可能倾向于产生一个不同的结果。以下图显示的仿真散热器设计为例,这些设计是使用COMSOL Multiphysics 的一个附加产品优化模块生成的。左边的设计是通过参数优化 生成的,产生了大小和间隔均匀的散热翅片。拓扑优化应用了粒度更细和限制更少的生成过程,产生了如右图所示的复杂形式。

并排图像显示左侧的参数优化散热器和右侧的拓扑优化散热器
通过参数(左)和拓扑(右)优化生成的散热器设计。图片由 Fritz Lange 提供。

哪个设计更好?正如 Ejlebjærg Jensen 在上面的引述中所说,答案取决于“设计师的选择和需求”。也许更简单的形式热效率较低,但生产成本较低,这可能是与项目总体目标更相关的指标。即使基于规则的过程产生了新的形式,设计师仍然必须优先指导衍生式设计的过程。

基于这种考虑,我们以一个铅笔架模型为例,展示了 COMSOL® 软件如何支持衍生式设计和场景驱动的设计过程。

铅笔架的场景驱动设计

铅笔架模型的场景驱动设计展示了通过使用 COMSOL Multiphysics 强大的数学表达式功能,将基于方程的建模用于衍生式设计的一种方法。

铅笔架的几何形状包括用于构建域的 6 个参数化曲面。几何的其余部分由基于方程的建模定义,并通过拉伸映射网格进行网格化。

用立方体单元网格化的铅笔架模型
铅笔架模型的几何形状

立方单元的网格(如左图所示)定义了铅笔架的几何形状。

使用基于方程建模的样式生成

系数形式偏微分方程 接口用于定义亥姆霍兹滤波器,它在边界上生成两个平滑场。(在之前的博文中了解更多关于通过这个接口进行数据过滤的信息)。然后,使用拉普拉斯方程将边界量变换为体积形式。最后,这些场被合并到一个分析表达式中,从而定义了几何形状。设计者可以改变偏微分方程的参数和/或表达式,以产生不同的形式,如下图所示的动画。

动画显示了改变三个值的效果:体积分数(空间)、控制支架角度的参数以及上下边缘的高度。

最终场可以导出一个 STL 文件,然后作为网格零件导入以供进一步分析。

COMSOL Multiphysics 中优化的铅笔架设计的并排图像,左侧显示 STL 导出渲染,右侧显示木材纹理。
以 STL 文件导出呈现的铅笔架。右侧的图像显示了通过 COMSOL® 软件内置的材料渲染特征施加的木材纹理。

在铅笔架示例中,该设计或多或少由分析给定场景驱动。但是,COMSOL Multiphysics 允许我们使用其他物理场量(例如应力、流体速度或电场)来驱动设计。这种可能性几乎是无限的。

通过衍生式设计制作的 3D 打印铅笔架的照片
生成的3D 打印版本的铅笔架设计。

下一步

点击以下按钮下载铅笔架的教学模型,开始进行衍生式设计:

拓展阅读

参考文献

  1. K. Wong, “Optimize or Generate?,” Digital Engineering, 2021, https://www.digitalengineering247.com/article/optimize-or-generate/
  2. ]]> //www.denkrieger.com/blogs/forming-new-ideas-with-generative-design-in-comsol/feed/ 0 为什么高尔夫球有凹痕? //www.denkrieger.com/blogs/why-do-golf-balls-have-dimples //www.denkrieger.com/blogs/why-do-golf-balls-have-dimples#comments Fri, 01 Oct 2021 06:25:39 +0000 http://cn.staging.comsol.com/blogs?p=280971 众所周知,高尔夫球的凹痕对它的空气动力学特性非常重要,因为它们会产生能够减少球阻力的湍流。然而,这听起来是不是违反直觉?一般来说,光滑的物体比粗糙的物体更遵循空气动力学原理。在今天的博客中,我们将深入探讨这个看起来有明显悖论的问题,并学习如何在 COMSOL Multiphysics® 软件中模拟高尔夫球的轨迹,最终找到击球的最佳角度。继续阅读,了解如何获得一杆进洞的机会……

    从观察到数学模型

    小时候,我偶尔会在下雨天和家人一起在附近的高尔夫球场散步,那是唯一没有高尔夫球手敢打球的时候。我们经常玩的游戏是寻找一些不幸的球手丢失的球,找到球最多的人将获胜。无数个阴雨天后,我们收集的高尔夫球越来越多!虽然我们不知道如何打高尔夫球,但是都认为球凹痕的存在是有原因的,可能是为了美观或者让球在空中飞得更快。

    一堆白色、带凹痕的高尔夫球的照片,标签模糊
    有没有想过为什么高尔夫球有凹痕?

    很多年过去了,现在 是那个在高尔夫球场丢球的不幸的高尔夫球手了(我想生活已经轮回了)。然而,现在我有机会通过工程师的视角再看一遍那些熟悉的球:为什么它们有凹痕?我可以使用 COMSOL Multiphysics 模拟高尔夫球吗?我可以优化我的击球方式以减少丢球,并有可能打出标准杆吗?上一篇篇博客已经帮助我改进了我的高尔夫挥杆方式,但我需要更多可以帮助我的信息,所以我找到了我的教科书……

    对阻力危机的观察

    历史上,科学家们研究了许多不同形状周围的流动。例如,涡街是由圆柱体绕流产生的。虽然球体不会产生这种大的交替流动结构,但流动特性也可以与雷诺数联系起来。对于一个直径为 的球体,在密度为 , 动力黏性为 , 速度为 的流体中,雷诺数 Re 由下式定义:

    (1)

    Re = \dfrac{\rho \cdot d \cdot U}{\mu}

    低雷诺数的流动被称为层流,黏性力占主导地位。反之,如果雷诺数很大,流动则是湍流,惯性力占主导地位。与其比较阻力的绝对值 ,即物体对流动的阻力,较为常规的做法是定义无量纲阻力系数

    (2)

    C_D = \dfrac{D}{\frac{1}{2}\rho U^2 A}

    其中, 是球的横截面积。

    Gustave Eiffel 和 Ludwig Prandtl 几乎同时观察到,根据流态的不同,球体的阻力系数不是恒定的,甚至在很小的雷诺数范围内也有显著的差异。这种阻力系数的突然下降通常被称为 阻力危机,在其他类型的球(如足球和橄榄球)中也可以观察到这一点。唯一的区别是阻力危机发生的位置,如下图所示。

    比较光滑球(以红线显示)和带有凹痕的高尔夫球(以蓝色显示)的阻力系数分布的线图
    一个光滑的球和一个高尔夫球的阻力系数分布比较。高尔夫球的凹痕已将阻力危机转向较低的雷诺数值,但与光滑的球相比,其下降幅度较小。另请注意,仅在有限的雷诺值范围内,高尔夫球的阻力系数较小。

    已知球手击出的高尔夫球的典型速度约为 260 公里/小时(160 英里/小时),考虑一个官方高尔夫球设计 42.67 毫米),可以得到一个典型的雷诺数 。从上图可以看出,高尔夫球的阻力系数落在雷诺数的理想范围内,其阻力系数大约是光滑球阻力系数的一半。这就解释了高尔夫球上有凹痕的原因。对于特定的雷诺数范围,高尔夫球受到的阻力较低。因此,球可以运动的更远。

    你可能对这个答案不满意。我们观察到,有凹痕的高尔夫球具有较低的阻力,但我们还没有解释 为什么 阻力危机发生在较低的速度下。要理解这种现象,我们必须仔细观察球体周围的流动。

    产生阻力危机的原因

    首先,我们复习一下物体的阻力,它有两个来源:

    1. 由物体周围的压力分布产生的压差阻力,也称为 型阻
    2. 沿边界的剪切应力产生的黏性阻力

    对于钝体,例如光滑的球,压差阻力在所研究的雷诺数范围内最为明显。因此,球体周围的压力分布将决定其总阻力。

    在不涉及湍流理论的情况下,首先在球体的前部形成层流边界层(流动在几乎不交换质量或动量的不同层中被分离)。从这个角度来看,有两种分离,具体取决于流动的类型:

    1. 如果流动是充分的层流(低雷诺数),边界层将没有时间过渡到湍流边界层,就会由于不利的压力梯度在大约 82° 的角度处分离,并在球体后面产生大的尾流。
    2. 如果流动是充分的湍流,边界层将有时间在临界 的82°之前过渡到湍流边界层。在这种情况下,流动能更好地混合,使边界层顶部的动量交换成为可能。这样,边界层底部将获得能量,从而增加壁面附近的速度梯度,并将流动分离延迟到大约 120°的角度。这看起来更像是流动 “黏”在表面上。

    高尔夫球和光滑球体后面的湍流尾流的比较。雷诺数约为 1e5

    堆叠示意图比较顶部有凹坑的高尔夫球和底部的光滑球,小尾流和大尾流以蓝色和橙色显示,湍流和层流分离标记
    由湍流边界层分离产生的带凹痕的高尔夫球(上部)的湍流尾流和由层流边界层分离产生的光滑球(底部)的湍流尾流比较。请注意,高尔夫球的分离点位于更远处的下游,尾流也更小。

    大量能量在湍流尾流中损失,从而使压力显著下降。因此,作为球体的主要阻力,压差阻力主要受尾流区域大小的影响。根据这些信息,理解阻力系数图更容易了。对于高尔夫球来说:

    • 由于凹痕诱导产生小涡流,雷诺数较低时发生层流边界层到湍流边界层的过渡,从而会产生较小的尾流,以及较小的阻力。
    • 与光滑球相比,带凹痕的高尔夫球的阻力危机并不深。对于相似的尾流大小,粗糙的表面使来自前方球体的黏性阻力变得不可忽略。

    高尔夫球的空气动力仿真

    现在,我们第一次明白了为什么高尔夫球会有凹痕,因为阻力更低,球可以走得更远。为了知道球可以走多远,我们首先需要计算它的轨迹。作用在球上的力和初始条件如下图所示,忽略浮力的影响,因为球几乎比相应体积的空气重 1000 倍。

    示意图显示了一个高尔夫球被射向空中,并标注了初始条件和力
    初始条件和作用在高尔夫球上的力。

    之前的文章中我们用 7 号铁杆以 145 公里/小时(90 英里/小时)的轴速击打球,并从最终结果中获知以下初始条件:

    • 初始球速:187 公里/小时(116 英里/小时)
    • 初始转速:6113 转/分
    • 初始发射角度:17.4°

    使用牛顿第二运动定律对一个质量为 ,加速度为 和重力为  的球进行分析:

    (3)

    m \overrightarrow{a} = \overrightarrow{D} + \overrightarrow{L} + \overrightarrow{F_g}

    重新排列方程2,计算阻力模:

    (4)

    D=\dfrac{1}{2}\rho C_D AU^2

    同样,用取决于球的旋转速度 的升力系数 来定义因马格努斯效应而产生的升力

    (5)

    L=\dfrac{1}{2}\rho C_L AU^2

    Bearman 和 Harvey 在 1976 年对升力系数与高尔夫球旋转速率的相关性进行了广泛的研究(参考文献 1)。他们还观察到阻力系数也应该取决于旋转(第一幅图的曲线对于特定的旋转速率是有效的)。为了更普遍的描述,引入了一个无量纲自旋因子, 即圆周速度与流速之比 :

    (6)

    S = \dfrac{\omega d}{2U}

    虽然说这个结果通过研究老式高尔夫球获得的,而且现在的曲线可能有所不同,但 Bearman 和 Harvey 的结果适用于现有文献中最大范围内的雷诺数和自旋因子。因此,本博客中获得的结果不应该看作是现代高尔夫球的真实值。通过结合使用 COMSOL 模型和曲线拟合 App 教学案例中对参考文献1 中图 9 使用曲线数字化仪 App 获得的数据进行三次多项式曲线拟合获得下图所示曲线:

    绘制高尔夫球旋转系数的蓝色阻力系数和绿色升力系数的折线图
    以自旋因子计算的阻力和升力系数分布。

    光滑球的阻力系数取自标准阻力相关性(见第一幅图),升力系数近似等于旋转高尔夫球的升力系数(实际上更小)。

    最后,由于摩擦会减慢旋转速度,因此可以使用指数衰减对旋转速率进行建模,如 Smits 和 Smith 提出的(参考文献2)。

    (7)

    \omega = \omega _0 e^{-\frac{cU} {d}t}

    式中, 是一个实验常数。

    考虑到阻力与球的运动方向相反,升力与球的运动方向垂直,我们通过在 x 轴和 y 轴上的投影得到以下方程组:

    (8)

    \left\{\begin{array}{@{}l@{}}
    \ddot{x} = -\dfrac{\rho AU}{2m} \left( C_D \dot{x} + C_L \dot{y}\right)\\
    \\
    \ddot{y} = \dfrac{\rho AU}{2m} \left( C_L \dot{x} – C_D \dot{y} \right) -g
    \end{array}\right.

    其中,.

    该方程组由一组常微分方程 (ODE) 组成,由于所有变量之间的依赖关系,它可能看起来很复杂。然而,使用 COMSOL Multiphysics 来实现和求解实际上很简单。

    在 COMSOL Multiphysics® 中建立高尔夫球模型

    实现这个问题的最简单的方法是在一个 0 维组件中使用 事件 接口,它既能使用全局方程节点求解 方程8,又可以在球落地时()停止计算。

    COMSOL Multiphysics 中变量设置窗口的屏幕截图,其中列出了高尔夫球模型的表达式
    设置研究使用的变量。

    第一步是设置研究使用的不同变量。在软件中,它们是通过不同的函数和全局参数来计算的。特别的, smooth 参数决定了被发射球的类型:

    • 带凹痕的高尔夫球 ( smooth=0)
    • 光滑的球 ( smooth=1)

    变量 xt yt 是位置的时间导数,由事件接口计算。

    高尔夫球轨迹模型的全局方程设置窗口的屏幕截图,其中列出了 x 和 y 方程。
    求解球的位置的全局方程组。

    第二步是使用相应的初始条件建立方程8的方程组。由于已经定义了所有参数和变量,因此这一步很简单。

    COMSOL Multiphysics 中离散状态接口的设置窗口的屏幕截图
    离散状态接口用于定义球是否已经落地。

    上一篇博客一样,添加一个最适合开/关条件的离散状态 变量,代表球的整体状态:它要么已经着陆,要么没有。刚开始,认为球没有落地,所以 landed=0

    指标状态设置窗口的屏幕截图

    添加到高尔夫球轨迹模型树时的隐式事件界面设置窗口的屏幕截图
    指示器状态接口可以简单看作当前高度。一旦球落地,离散状态就会打开。

    只有当球接触地面时,离散状态才会更新。我们不知道这个事件什么时候会发生,但可以用数学方法来翻译它(高度变成负数)。这正是隐式事件节点目的:当指示器状态(此处为当前高度)满足特定条件时,事件就被触发。

    左侧高尔夫球模型树和右侧停止条件设置窗口的屏幕截图,其中展开了停止表达式、停止事件和停止输出部分
    求解器序列被修改以添加停止条件。

    最后一步是创建研究 节点。可以使用参数研究 依此计算高尔夫球和光滑球,瞬态研究可以用于求解球的轨迹。当事件被激活时,需要修改瞬态研究中的求解器序列,以停止计算。

    仿真结果

    现在,一切都设置好了,让我们开始研究吧!

     

    高尔夫球和被 7 号铁杆击中的光滑球的轨迹的实时动画。与光滑球相比,有凹痕高尔夫球受到的阻力要小得多(颜色图例显示了阻力系数)。请注意,球在轨迹的顶部受到阻力危机,因此速度(或雷诺数)变低。

    请注意,人们可能会发现,如果忽略阻力或升力,轨迹的形状不是抛物线。球首先几乎直线上升,然后在达到最大高度后突然下降。从结果可以看出,与光滑的球相比,带凹痕的高尔夫球前进了 25%(30 米或 33 码)。换句话说,现在离草地更近了,并且不需要额外的力!

    这个解释来自这样一个事实:在整个飞行过程中,对抗球运动的阻力对于高尔夫球来说非常小(原因在开头已经提到)。当球达到其最大高度时,与高度成正比的势能也达到最大值。这种能量转移是在损失动能的情况下进行的;所以球走得更慢。因此,雷诺数减少(或等效地,自旋因子增加),阻力因此增加。

    绝对运球距离 150m(165 码)远大于普通球员的典型高尔夫击球距离(128 m 或 140 码),但处于职业高尔夫球员典型击球距离的下限。考虑到阻力和升力数据并非源自现代高尔夫球,该结果是合理的。

    寻找最佳发射角度

    凹痕对高尔夫球的影响现在应该很清楚了:它们使球飞得更远。然而,实际上,这并没有说明我应该如何 击球。假设杆身速度和攻角恒定,我应该给球一个什么发射角度,才能使运球距离最佳?第一种方法是运行参数研究甚至是优化研究,来找到该值。下图显示了在给定攻角和旋转速率下,由发射角度决定的运球距离。

    绘制高尔夫球轨迹模型参数研究结果的折线图
    使用 7 号铁杆在 -4.3° 的攻角和 6113转/分的初始旋转下进行的参数研究的结果。最佳发射角度似乎应该在 20° 左右。

    从上图中可以看出,最佳攻角似乎在 20° 左右。然而,职业高尔夫球手(理论上,他们应该平均接近最佳角度)平均以 16° 的角度射击。出了什么问题?这是因为我们关于恒定旋转速率的假设是错误的:以更大的发射角度击球意味着击球时杆面需要“更加水平”。就像网球中的球被“切割”一样,由于摩擦力变大,高尔夫球旋转得更快,但速度变慢。

    显示高尔夫球杆和球的并排图像,左侧使用小型动态杆面倾角,右侧使用大型动态杆面,还标有发射角度和攻角
    在恒定攻角下,两个动态杆面倾角的比较。角度是基于水平线测量的。当动态杆面倾角增加时,发射角增加。由于动态杆面倾角和攻角(通常称为“旋转倾角”)之间的角度变大,球会旋转得更快。

    找到发射角度、旋转速率和球速之间的关系并不直接,而且实验或模拟结果并不重要。那么,既然我们已经建立了一个高尔夫球模型,就对它进行参数化吧!

    线图显示参数化高尔夫球模型的绿色旋转速率和蓝色球速度
    教学案例模型的参数化结果。使用三次样条对这些点进行插值以获得更平滑的曲线。正如预期的那样,较大的发射角会增加旋转速率,而速度则会减小。

    我们必须谨慎对待结果,并应该进行更详细的研究,包括网格收敛研究,与其他轴的曲线比较等。尽管如此,此结果仍然与现相当一致。

    绘制高尔夫球的运球距离取决于发射角度的线图,该角度在 14 度左右达到峰值然后下降
    7 号球杆的运球距离,取决于非恒定旋转的 -4.3° 攻角的发射角度。曲线已转移到较低的发射角度值,以更好地表征真实情景。

    现在,我们可以使用正确的自旋和速度值再次运行参数研究。请注意,曲线已向左移动。换句话说,似乎减小发射角度(即动态杆面倾角)有助于减少自旋,并为球提供更高的平移动能。与预期一样,该曲线并没有以 16° 为中心。然而,为了获得这个结果,人们提出了许多假设(例如阻力和升力的分布,以及自旋速率的相关性),这些假设对最终结果有很大影响。关于现代高尔夫球和球撞击分析的数据越多,越有助于获得更准确的结果。

    结论

    在这篇博客中,我们回答了一个看似简单的,与特定雷诺数范围内球体湍流边界层的行为有关的高尔夫球凹痕的问题。同时对工程中的一个经典过程进行了介绍。对普通物体的观察使我们对复杂的物理现象有了更深入的理解,反之我们也能够使用 COMSOL Multiphysics 对其进行建模和验证。最后,我们找到了一个最佳的发射角度,并提取了对真实击球有用的信息。

    很多高尔夫球观众可能也问过和我一样的问题。要记住的教训是,请尽量降低动态倾角,同时保持相同的攻角,以降低旋转速度。虽然仿真结果看似简单,但我不确定如何在球道上做到这一点。所以,如果要打好高尔夫球,需要请教专业的高尔夫教练,而不是模拟工程师!

    动手尝试

    单击下面的按钮,访问文中的模型文件,尝试自己动手 COMSOL Multiphysics 中计算高尔夫球的轨迹。

    参考文献

    1. P. Bearman and J.K. Harvey, “Golf ball aerodynamics”, Aeronautical Quarterly, vol. 27, no., pp. 112–122, 1976.
    2. A.J. Smits and D.R. Smith, “A new aerodynamic model of a golf ball in flight”, Science and Golf II, Taylor & Francis, pp. 433–442, 2002.
    ]]>
    //www.denkrieger.com/blogs/why-do-golf-balls-have-dimples/feed/ 2
    使用 COMSOL Multiphysics® 进行微磁仿真 //www.denkrieger.com/blogs/micromagnetic-simulation-with-comsol-multiphysics //www.denkrieger.com/blogs/micromagnetic-simulation-with-comsol-multiphysics#comments Fri, 24 Sep 2021 02:13:56 +0000 http://cn.staging.comsol.com/blogs?p=280491 磁体中的磁矩动力学可以通过微磁模型描述,即朗道-栗弗席兹-吉尔伯特方程(Landu–Lifshitz–Gilbert equations,LLG)。我们使用 COMSOL Multiphysics® 软件中的“物理场开发器”开发了一个定制的“微磁模块”,可用于在 COMSOL® 软件框架内进行微磁建模。这个定制的微磁模块可以直接与其他附加模块耦合进行多物理场微磁仿真,例如磁-偶极耦合、磁-弹耦合、磁-热耦合等。微磁模块软件包以及用户指南可以在文末提供的网址中下载,欢迎试用。

    磁振子学和微磁学导论

    磁振子学 是自旋电子学或磁学的子分支领域(参考文献1),类似的还有声子学和光子学。磁振子学更侧重于研究由磁性体系的元激发,即自旋波(或量子极限中的磁振子)携带的能量和信息传输。自旋波可以携带能量、线性动量、角动量,因此可以用来编码信息。由于具有极小的阻尼和无焦耳热等特性(参考文献2),钇铁石榴石 YIG (Y3Fe5O12) 等磁绝缘体是操控自旋波的理想材料。此外,自旋波还可以与磁结构相互作用(参考文献3),例如磁畴壁、磁涡旋和磁斯格明子等,从而为磁存储器的设计和操控提供了一条新途径。这使得磁振子技术有望成为下一代信息技术的候选者。

    在这篇博文中,我们将演示如何在 COMSOL Multiphysics 中使用“微磁模块”对自旋波动力学进行数值微磁仿真。

    微磁模型简介

    磁性材料中磁矩的动力学由 LLG 方程控制。微磁模型的核心是将一个或多个晶胞中的所有磁矩视为一个半经典的宏自旋,用单位向量 定义表示为

    \Bigg\{\frac{\textbf{M}(\textbf{r},t)=M_s\textbf{m}(\textbf{r},t)}{\big|\textbf{m}(\textbf{r},t)\big|=1},

    其中, 是总磁化强度的时空分布函数, 是材料的饱和磁化强度。

    该单位磁矩向量的时间演化遵循 LLG 方程(参考文献 4

    \dot{\textbf{m}}(\textbf{r},t)=-\gamma \textbf{m}(\textbf{r},t) \times \textbf{H}_{\rm{eff}} + \alpha\textbf{m}(\textbf{r},t) \times \dot{\textbf{m}}(\textbf{r},t),

    其中,点表示时间导数, 是旋磁比, 是吉尔伯特阻尼系数, 是施加在局域磁矩上的有效场,可以被定义为

    \textbf{H}_{\rm{eff}}=-\frac{1}{\mu_0M_s}\frac{\delta E}{\delta \textbf{m}}

    其中, 为真空磁导率, 为磁系统的自由能,包括所有可能的相互作用。

    假设一种最简单的情况:在沿 z 方向施加的静态磁场中的一个宏自旋。有效场很简单,可以表示为 。从宏自旋稍微偏离平衡 z 方向的初始状态开始,宏自旋矢量根据 LLG 方程按右手定则围绕有效场进动。在吉尔伯特阻尼(以 表示)作用下,系统的动能最终消散,宏自旋驰豫到其能量最小值,即与有效场平行。这种进动的动力学与铁磁共振 (FMR) 相关,其进动角频率与外加场的强度呈线性关系。

     

    当引入非局域相互作用时会出现自旋波,例如,在连续极限中采用以下形式的短程交换相互作用 ,其中 为交换刚度系数。存在交换相互作用的情况下,单个宏自旋的进动模式可以传输到相邻的宏自旋,导致角动量流的传播,即自旋波。

     

    电磁波和弹性波以及自旋波都可以通过纳米结构设计进行空间上的限制或调控。此外,自旋波还可以通过磁结构(磁矩在空间中的非均匀分布)来调控,例如磁畴壁,即具有相反磁化强度的两个磁畴之间的过渡区域。理论和实验都表明,磁畴壁可以作为自旋波的传导通道,用于设计可重构的自旋波电路。

     

    微磁仿真不仅可以帮助解释实验结果,也有很多成功的例子表明,该方法可以预测新现象,并通过实验进行验证。

    通过物理场开发器开发微磁模块

    市场上有两种主流的开源微磁仿真软件:面向对象的微磁框架(OOMMF)和支持GPU 加速的 Mumax3

    但是,我们更喜欢使用 COMSOL Multiphysics 进行微磁仿真。原因有两个:

    1. COMSOL Multiphysics 基于有限元方法,而不是 OOMMF 和 Mumax3使用的有限差分方法。在对复杂的几何形状和结构进行建模时,有限元方法更加强大。
    2. 微磁模块可以直接与 COMSOL Multiphysics 中丰富的物理模块一起使用。例如,通过与 AC/DC 模块(电流和电磁场)或 RF 模块(微波)耦合,我们可以模拟磁性材料中的偶极相互作用;将微磁模块与结构力学模块相耦合,可以对磁弹性效应进行建模;而传热模块可用于对磁体中的热效应进行建模。在软件框架内,用户定制物理场和 COMSOL 附加产品之间的多物理场耦合相当简单明了。

    对 COMSOL Multiphysics 的微磁模块感兴趣的用户可以将编译后的模块文件 Micromagnetics Module.jar 安装到本地 COMSOL 归档文件夹中,之后在选择物理场时就会出现一个新的物理场接口 Micromagnetics (mm)。

    COMSOL Multiphysics 中“选择物理场”窗口的屏幕截图,其中“微磁模块”突出显示并显示在节点“我的物理场”接口下。

    微磁模块 (V1.33) 的用户界面如下图所示。

    微磁模块的 Landu-Lifshitz-Gilbert 方程设置窗口的屏幕截图,其中展开了方程、基本属性、自旋转移扭矩、Dzyaloshinskii-Moriya 相互作用和有限温度部分

    微磁模块(V1.33)具有其他开源微磁仿真软件所具有的几乎所有功能,包括但不限于:

    • 基本的 Landau-Lifshitz-Gilbert 动力学方程,包括交换相互作用和单轴各向异性
    • 具有适配边界条件的 Dzyaloshinskii-Moriya 相互作用(体类型和界面类型)
    • 自旋转移矩(包括场项和力矩项)
    • 可输入任意形式的有效场和自旋力矩(可以同时是时间和空间的函数)
    • 有限温度效应(可通过自定义随机种子引入随机性)
    • 钉扎边界条件和周期性边界条件
    • 能够在一个区域内求解多个独立的 LLG 方程(例如可用来模拟具有多个子晶格的人工反铁磁体)
    • 多物理场耦合能力,包括磁-偶极耦合、磁-弹耦合、磁-电耦合、磁-热耦合等

    基于微磁模块,我们展示了许多有趣的自旋波物理并提出了各种自旋波器件,例如自旋波二极管(参考文献5)、自旋波光纤(参考文献6)、自旋波偏振片和波片(参考文献7-8)以及存算一体化的磁逻辑门(参考文献9)等。

    与微磁模块的多物理场耦合

    如上所述,COMSOL Multiphysics 的一项优势是附加模块之间的多物理场耦合能力。自旋波可以被磁场、晶格形变、温度梯度等操控。将自旋波与其他激发(如电磁波和弹性波)耦合,获得的系统可以结合两者的优点,产生丰富的物理现象,促进信息的产生和传输。下面,我们将演示基于微磁模块可以完成哪些多物理场耦合。

    腔磁振子学(Cavity magnonics)参考文献 10)是磁振子学和腔量子电动力学 (CQED) 的交叉学科,后者的应用之一是通过操控光子-物质相互作用来实现量子信息处理。腔磁振子学的典型构型是内部放置磁体的微波腔。磁体中的磁矩进动模式与微波腔中的驻波模式或行波模式耦合。这样的系统为研究自旋流的操控和磁矩的非线性动力学提供了一个新的选择(参考文献 11-12)。腔磁系统可以通过耦合微磁模块和射频模块来模拟。对于静磁模拟,并不需要考虑电磁波本身的动力学行为,因此将微磁模块和 AC/DC 模块(磁场)相互耦合就足够了。

     

    自旋力学(spin mechanics)包括磁矩和晶格形变之间的相互作用。在具有磁弹耦合(或磁致伸缩)的材料中,磁化强度(自旋波)在空间和时间上的变化对晶格产生等效力,而晶格形变(弹性波)对磁化强度产生等效场。例如,如下面的动画所示,面内磁化的碟状薄膜被磁场激发,进动的磁化引起磁性薄膜及其衬底的弹性形变,从而辐射弹性波。自旋力学问题可以通过耦合微磁模块和固体力学模块来模拟。

     

    电流自适应磁结构

    在金属磁体中,自旋极化电流对局域磁矩施加自旋转移矩,使得磁结构能够被电流驱动。由于各向异性磁阻 (AMR)的存在,磁性薄膜内的电导率取决于局域磁化强度和电流方向的相对取向,因此可以使用微磁模块和 AC/DC 模块对电流、自旋转移矩和磁结构之间的相互作用进行建模。

    如下面的动画所示,施加在两个电极上的电压通过自旋转移矩改变磁结构的空间分布(上图),进一步改变局域电导率和电流密度分布(下图)。在电流的持续作用下,磁结构最终演化至稳定的构型,使得两个电极之间的电导增加。有研究表明这种正反馈行为可用于类脑计算(参考文献13)。

     

    如何获取微磁模块

    您可以通过以下方式免费下载微磁模块文件:

    1. 复旦大学肖江教授课题组网站
    2. COMSOL 模型交流区

    下载的压缩文件包括模块安装文件,以及带有安装说明和示例的用户指南。我们非常欢迎和感谢用户的任何建议、报告和交流。更多功能将在未来版本中及时更新。

    致谢

    作者对复旦大学肖江教授的指导和复旦大学微纳电子器件与量子计算机研究院的支持表示感谢。

    关于作者

    余伟超本科毕业于同济大学物理科学与工程学院应用物理学专业,获理学学士学位,后赴复旦大学物理学系理论物理专业直接攻读博士研究生,获理学博士学位,曾任复旦大学物理学系博士后研究员、日本东北大学金属材料研究所助理教授,现任复旦大学微纳电子器件与量子计算机研究院青年研究员。余伟超博士的研究兴趣包括自旋电子学和磁学基本现象的理论研究、磁结构和自旋波的动力学、以及磁系统与其他多物理系统之间的耦合,如微波腔自旋电子学(磁子和光子之间的耦合)和自旋力学(自旋波和弹性波之间的耦合)等。他提出并设计了新型自旋电子器件和基于磁性体系的非常规计算概念,例如基于磁系统的存算一体逻辑门和具备自主学习功能的类脑计算架构。他还开发了基于有限元方法的微磁仿真模块,具有与其他多物理场系统双向耦合的能力,有助于基础磁学的研究和新型自旋电子器件的设计。

    参考文献

    1. A. Barman et al., The 2021 Magnonics Roadmap, J. Phys.: Condens. Matter, vol. 33, no. 413001, 2021.
    2. A. V. Chumak et al., Magnon Spintronics, Nature Physics, vol. 11, no. 453, 2015.
    3. H. Yu, J. Xiao, and H. Schultheiss, Magnetic Texture Based Magnonics, Physics Reports, vol. 905, no. 1, 2021.
    4. V. G. Bar’yakhtar and B. A. Ivanov, The Landau-Lifshitz Equation: 80 Years of History, Advances, and Prospects, Low Temperature Physics, vol. 41, no. 663, 2015.
    5. J. Lan, W. Yu, R. Wu, and J. Xiao, Spin-Wave Diode, Phys. Rev. X, vol. 5, no. 041049, 2015.
    6. W. Yu, J. Lan, R. Wu, and J. Xiao, Magnetic Snell’s Law and Spin-Wave Fiber with Dzyaloshinskii-Moriya Interaction, Phys. Rev. B, vol. 94, no. 140410, 2016.
    7. J. Lan, W. Yu, and J. Xiao, Antiferromagnetic Domain Wall as Spin Wave Polarizer and Retarder, Nature Communications, vol. 8, no. 178, 2017.
    8. W. Yu, J. Lan, and J. Xiao, Polarization-Selective Spin Wave Driven Domain-Wall Motion in Antiferromagnets, Phys. Rev. B, vol. 98, no. 144422, 2018.
    9. W. Yu, J. Lan, and J. Xiao, Magnetic Logic Gate Based on Polarized Spin Waves, Phys. Rev. Applied, vol. 13, no. 024055, 2020.
    10. B. Z. Rameshti, S. V. Kusminskiy, J. A. Haigh, K. Usami, D. Lachance-Quirion, Y. Nakamura, C.-M. Hu, H. X. Tang, G. E. W. Bauer, and Y. M. Blanter, Cavity Magnonics, ArXiv:2106.09312 [Cond-Mat], 2021.
    11. W. Yu, J. Wang, H. Y. Yuan, and J. Xiao, Prediction of Attractive Level Crossing via a Dissipative Mode, Phys. Rev. Lett., vol. 123, no. 227201, 2019.
    12. W. Yu, T. Yu, and G. E. W. Bauer, Circulating Cavity Magnon Polaritons, Phys. Rev. B, vol. 102, no. 064416, 2020.
    13. W. Yu, J. Xiao, and G. E. W. Bauer, A Hopfield Neural Network in Magnetic Films with Natural Learning, ArXiv:2101.03016 [Cond-Mat], 2021.
    ]]>
    //www.denkrieger.com/blogs/micromagnetic-simulation-with-comsol-multiphysics/feed/ 104
    如何使用 COMSOL® 模拟代谢反应网络 //www.denkrieger.com/blogs/how-to-model-metabolic-reaction-networks-with-comsol //www.denkrieger.com/blogs/how-to-model-metabolic-reaction-networks-with-comsol#respond Wed, 04 Aug 2021 05:40:45 +0000 http://cn.staging.comsol.com/blogs?p=283601 你有没有思考过,冰淇淋、布丁和糖果外表鲜艳的黄色是如何制作的?维生素 B2 可以作为食品添加剂,为这些产品染色。在工业上,维生素 B2 主要是通过生物技术工艺生产的。我们日常生活中的许多产品都包含通过这种工艺生产的成分,包括生物乙醇(燃料)、柠檬酸(一种清洁剂)和维生素 C(一种食品添加剂)。我们通过包含各种生化反应的微生物的新陈代谢作用来生产出这些化合物。今天这篇博文,让我们看看如何通过仿真理解代谢途径的动力学机制。

    A photograph of hard candies in a vivid yellow color on a white surface.
    一些糖果通过添加食品添加剂维生素 B2 获得鲜艳的黄色。图片由 Evan-Amos 提供—。通过Wikimedia Commons 获得许可(CC BY-SA 3.0)。

    代谢反应网络简介

    为了理解和优化生物技术过程和所涉及的微生物,系统生物学和代谢工程领域使用数学模型来研究这个系统。这些模型通常基于这样的假设:微生物细胞及其内部的耦合生化反应可以被看作是完美的混合系统。通常使用理想釜式反应器来研究这种系统。术语代谢反应网络 描述了具有多种耦合反应的生物化学反应系统。

    COMSOL Multiphysics® 软件的附加产品——化学反应工程模块中,反应工程接口提供了对理想釜式反应器建模的预定义功能。除了基于质量作用定律的化学动力学建模的预定义功能外,研究人员和工程师还可以利用基于方程建模的强大功能来定义自己的动力学表达式。完成定义后,具有化学、动力学和热力学的理想釜式反应的模型就可以自动生成具有物质传输和反应的全空间相关模型。

    在这篇博文中,我们将使用反应工程 接口和基于方程的建模功能来建立酵母糖酵解代谢途径的模型,该代谢途径是活细胞的核心反应。这个模型可以帮助我们理解 Wolf 等在实验中观察到的波动的动力学及其含义(参考文献 1)。

    酵母菌的细胞内动力学建模

    糖酵解代谢途径是几乎所有生物体内的中心反应序列。这条途径将单糖,如葡萄糖,转化为代谢中间产物。在这个转换过程中,储存在糖中的能量被释放出来,并形成能量载体分子 ATP(三磷酸腺苷)和 NADH(还原型烟酰胺腺嘌呤二核苷)。这些高能量分子为细胞内的其他过程提供能量。此外,糖酵解产生的代谢中间产物被用于其他代谢途径,例如,合成细胞材料的结构单元,如脂肪酸或氨基酸。

    考虑到这一点,很明显,糖酵解代谢途径与其他代谢途径相互关联,形成一个庞大的代谢反应网络。复杂的反应方案会产生非线性的系统动力学。

    众所周知,在某些条件下,酵母的糖酵解代谢途径的代谢化合物的浓度会发生波动。这些波动可以在酵母细胞内和细胞间传播。研究人员 Wolf 等人对这种现象进行了调查,开发了一个酵母细胞中的糖酵解代谢途径的最小模型。该模型包括以下过程的集总反应。

    • 糖酵解途径
    • 甘油的生产
    • 发酵成乙醇
    • 细胞间的乙醛交换
    • 氰化物捕集乙醛

    这个最小模型反映了实验观察到的波动的本质。让我们看看这个模型是什么样的,以及做了哪些假设。

    下面是所研究的代谢途径的基本反应方案,包括通量,如下所示。

    厌氧糖酵解途径的基本反应图解,框内标有酶反应的缩写
    厌氧糖酵解途径的基本反应方案。酶反应的缩写用方框标出。方案和缩写改编自 Wolf 等人。(参考文献 1)。

    在所考虑的条件下,呼吸作用是不存在的,因此在反应方案中被忽略了。因此,乙醇是这里糖酵解的主要最终产品。葡萄糖通过细胞外通量()运输到细胞内。乙醇和甘油的浓度在模型中是固定的,因为假设细胞内和细胞外大池之间达到平衡。考虑的次要的通量是:

    • 细胞内外培养基乙醛之间的交换通量()
    • 甘油形成通量()
    • 氰化物引起的乙醛细胞外降解()

    除了葡萄糖、乙醛和乙醇之外,细胞膜被认为对其他代谢物是不可渗透的。

    此外,衍生的九变量代谢物模型如下所示。

    显示九变量代谢物浓度模型的方案
    九变量代谢物浓度模型的方案。方案和缩写改编自 Wolf 等人。(参考文献 1)。

    在九变量模型中,大多数反应被假定为不可逆的。第一基础反应方案中所示的 GAPDH 和 PGK 的酶反应被合并为一个可逆反应 (),在九变模型方案中显示。

    基于质量作用定律的速率表达式被用来描述所有酶反应。对于 HK-PFK 反应 (),考虑了调节特性。这意味着反应被 ATP () 所抑制。细胞内的腺嘌呤核苷酸 () 和 ATP (),以及烟酰胺腺嘌呤二核苷酸 NAD+ () 和 NADH (),被假设为常数。

    在细胞内外完全混合溶液的假设下,Wolf等人(参考文献 1)使用微分代数方程(DAE)系统来描述该模型。关于初始条件、速率常数等更详细的信息可以在 Wolf 等人的论文中找到(参考文献 1)。

    在 COMSOL Multiphysics 中,反应工程 接口是为上述系统创建模型的合适工具。只需输入最后一个反应方案中所述的反应,并主要使用预定义的质量作用定律动力学定义动力学,就可以轻松创建模型。这遵循了“所见即所得”的原则。

    模型树中反应工程界面的屏幕截图,右侧是反应方案,蓝色箭头指向相关方程
    只需在反应工程接口中输入反应方案的反应,就可以快速定义模型的核心。

    作为模型中手动定义的特殊速率表达式的示例, HK-PFK 反应(反应 1)的速率表达式如下所示:

    (1)

    v_1=k_1S_1A_3f(A_3)

    (2)

    f(A_3)=\bigg\lbrack1+\biggl(\frac{A_3}{K_i}\biggr)^n\bigg\rbrack^{-1}

     

    这里,ATP 对酶反应的抑制 () 由  描述。我们将在下面看到如何在 COMSOL® 软件中实现这个过程。

    最后,对于 COMSOL Multiphysics 模型,我们使用了完全混合间歇式反应器的预定义功能。乍一看,这似乎与反应方案及其通过细胞膜的通量是相反的。直观地说,我们想到了连续搅拌釜式反应器(CSTR)。然而,由于我们无法控制上述模型中的流出量,因此一个带有额外手动定义的通量来源的间歇式反应器模型  是合适的。

    接下来,让我们看看模型的构建过程是如何在 COMSOL® 软件中完成的。

    使用反应工程接口模拟代谢物动力学

    为了定义上述模型并计算瞬态代谢物浓度,我们可以使用反应工程 接口创建一个零维模型,并在 COMSOL Multiphysics 中使用瞬态研究。

    模型向导中,我们可以为空间维度选择 0D

    COMSOL Multiphysics 中模型向导的屏幕截图,其中为空间维度选择了 OD
    要为理想的间歇式反应器创建 COMSOL Multiphysics 模型,请为空间维度选择 0D。

    选择物理场步骤中,选择化学物质传递分支下的反应工程 接口:

    模型向导的选择物理场步骤的屏幕截图,其中选择了反应工程接口

    在选择物理场步骤中选择反应工程接口。

    模型向导 的最后一步,为研究类型选择瞬态

    选择了瞬态的模型向导的选择研究步骤的屏幕截图
    选择瞬态研究。

    完成这些操作后,我们可以使用反应工程 接口下默认的间歇式反应器、定容的反应器类型。对于 ,下面将介绍如何用 “额外源 “来修改。

    接下来,我们可以使用反应工程 选项卡下的 反应 功能来定义模型中考虑的每个反应。在反应公式 部分的公式 字段中,我们输入所考虑反应的化学计量。例如,为了定义不可逆反应的化学计量,我们可以使用 => 作为反应箭头。

    如果需要一个用户定义的反应速率表达式,而不是典型的质量作用定律,我们在反应速率 部分选择 用户定义,然后输入相应的表达式。在这里,参数以及用户定义变量和内置变量都可以用来定义反应速率的表达式。通过使用反应 功能,COMSOL® 软件自动为参与定义反应的代谢物创建物种 节点。这意味着代谢物的平衡方程是自动生成的。

    例如,为了定义方程1,我们使用反应工程 接口的内置浓度变量 re.c_S1 和 re.c_A3,分别用于代谢物  和 ,k1 是参数 节点中的定义参数,f_A3 是方程2变量 节点中定义的变量。

    模型构建器的屏幕截图,其中突出显示了“反应工程”选项卡顶部工具栏中的“反应”按钮
    使用工具栏中反应工程选项卡中的反应功能来定义模型的所有相关反应。化学计量在反应公式部分的公式输入字段中定义。在反应速率部分,我们可以选择用户定义来定义单个速率表达式。

    接下来,使用 额外源 功能为代谢物平衡方程  添加源术语 。J0 是在参数节点中定义的参数

    模型构建器的屏幕截图,其中突出显示了全局工具栏上的附加源按钮
    引入在工具栏的全局部分中找到的额外源,将源项 J0 添加到代谢物的平衡方程中

    为了建立由于氰化物 () 引起的乙醛的细胞外降解模型,我们在模型中引入了反应 10。在反应的产物侧,设置了一个随机系数 为 0,因为当我们想通过反应特征来定义一个反应时,需要说明一个产物。这完美地将速率表达式定义为与产物浓度无关。

    模型开发器的屏幕截图,其中反应特征设置窗口打开并用于定义化学计量系数
    通过反应特征,反应 10 的产物侧的随机系数 为 0,用于定义 。假设一个质量作用定律的动力学表达式,这就给出了一个与产物浓度无关的速率表达式,并再现了反应方案。

    最后,通过应用 反应工程 接口的上述特征定义模型后,我们可以求解具有瞬态研究的模型。

    以蓝线和绿线显示振荡代谢物浓度的二维图,这是如何模拟代谢反应网络的示例
    求解时间依赖模型会产生 ATP 的有波动的代谢物浓度()和 NADH ()。

    上述仿真结果图再现了 Wolf 等人参考文献 1)论文中图4 的结果。它们都得出代谢物浓度也有相同的波动。

    总结性思考

    在这篇博文中,我们展示了如何使用化学反应工程模块的反应工程 接口对微分方程和代数方程描述的代谢途径进行建模。对用户友好的图形界面中的预定义功能加速了这类任务的模型构建过程。此外,通过使用 COMSOL Multiphysics 基于方程的建模功能,我们可以创建独立的用户定义模型。此外,还可以通过这种方式对更复杂的反应系统进行建模和分析。

    下一步

    单击下面的按钮尝试模拟本文讨论的模型:

    拓展阅读

    想阅读更多关于反应动力学建模的信息吗?请阅读这些博客文章:

    参考文献

    1. Wolf et al., “Transduction of Intracellular and Intercellular Dynamics in Yeast Glycolytic Oscillations”, Biophys. J., vol. 78, pp. 1145–1153, 2000, (https://www.sciencedirect.com/science/article/pii/S0006349500766720).

     

    ]]>
    //www.denkrieger.com/blogs/how-to-model-metabolic-reaction-networks-with-comsol/feed/ 0
    将自适应网格细化与数据过滤相结合 //www.denkrieger.com/blogs/combining-adaptive-mesh-refinement-with-data-filtering //www.denkrieger.com/blogs/combining-adaptive-mesh-refinement-with-data-filtering#respond Fri, 19 Mar 2021 05:38:25 +0000 http://cn.staging.comsol.com/blogs?p=279811 在处理随空间变化的导入数据时,我们经常面临的挑战是:确定需要什么级别的网格细化才能准确解析输入数据,以及它将如何影响我们的多物理场问题的解决方案。对于这种情况,我们可以使用 COMSOL® 软件的“自适应网格细化”功能,根据模型结果细化网格。事实证明,我们还可以使用自适应网格细化功能,根据输入数据进行细化。下面,让我们了解更多详细内容!

    模拟非均匀热负荷

    考虑下面显示的问题,一块材料从上方加热,具有来自外部数据文件的空间变化热负荷,并且具有一些独特但非常不均匀的结构。

    施加在一块材料上的非均匀热负荷示意图,以红色和黑色箭头显示,显示为灰色方块
    从外部数据文件中读取的非均匀外加热负荷的视图。

    在 COMSOL Multiphysics® 软件中,我们可以简单地使用自适应网格细化来解决问题。COMSOL® 软件会根据用户的指定自动细化网格多次,从而提供更准确的问题解决方案。下面绘制了该算法的几次迭代。

    非均匀热负荷模型的 6 个网格图,从左上角的均匀网格开始,网格越来越细
    结果显示了使用自适应网格细化时的网格(顶视图)。从均匀的网格开始,COMSOL 软件会调整单元大小,以准确解决由于空间变化所施加的热负荷而导致的解中的变化。这再现了所施加载荷的空间变化,但需要多次迭代才能使这种结构变得明显。

    我们可以观察到的是自适应网格细化算法从默认网格开始,它不知道施加的热载荷的形状。只有在多次迭代之后,算法才真正开始很好地识别负载的分布,并且这些初始迭代存在一些计算开销。

    如果有更好的方法呢?如果我们可以告诉软件我们想要从一个已经适应实验数据形状的网格开始呢?当然,我们仍然希望执行自适应网格细化,但我们希望从更合理的初始网格开始这个细化过程。

    事实证明,通过仅对导入的数据实施亥姆霍兹滤波器(Helmholtz filter)并在其上调整网格就可以了,这很容易做到。我们已经在之前的博文中介绍了亥姆霍兹滤波器的概念和实现以及一些好处。现在让我们看看它的另一种功能。

    实现自适应网格细化和数据过滤

    我们可以在模型的顶面上实现一个亥姆霍兹滤波器方程,过滤器半径很小(认为这个半径类似于输入数据的空间分辨率)并在非常粗糙的网格上求解它,就在表面。亥姆霍兹滤波器方程本身是线性的,因此可以在任何网格上求解,自适应网格算法将能够识别该网格需要细化的位置。我们只需要对求解器和网格设置进行一些小的调整。

    具有方形几何形状和应用于其顶面的自适应网格的模型
    用于启动自适应网格细化的网格仅应用于零件的顶面。

    静止 步骤中,我们求解亥姆霍兹滤波器,只需要进行一项更改。必须修改用于自适应几何实体 选择,以便仅在定义过滤器的区域(在这种情况下,只是单个边界)上执行自适应。您还可以选择增加最大适应数并尝试适应方法,尤其是常规修改重建网格选项。

    自适应网格细化的设置窗口的屏幕截图,其中扩展了自适应和误差估计以及自适应部分的几何实体选择
    定义边界自适应网格细化的设置。

    所有其他设置都可以保留默认值。求解时,我们将获得一系列网格,这些网格仅根据边界上的过滤器解决方案进行调整,如下所示。解算器中可能会出现一些消息,表明体积内没有网格,但这是需要的:我们只想调整表面上的网格,而不是对体积进行任何重新划分网格。

    4 个框显示了使用自适应网格细化算法为非均匀加热模型生成的前 4 个网格的序列
    自适应网格细化算法生成的前四个网格的序列。这些仅存在于顶部边界上。

    使用自适应网格解决问题

    接下来,我们要在用于解决传热问题的体积网格定义中使用一个适配的表面网格。我们需要做的就是添加另一个用户定义 类型的网格,并在其中添加一个参考 特征,紧跟在网格序列中始终存在的全局尺寸 特征之后。之后,我们添加了一个 Free Tetrahedral 特征,就有了一个完整的网格,它可以被用来解决传热问题。

    用于设置体积网格的参考设置窗口的屏幕截图,参考网格设置为 Level 2 Adapted Mesh
    根据先前自适应细化边界网格之一的结果构建新的体积网格。

    事实上,从这个网格开始,我们甚至可以执行额外的网格细化。优点是我们已经开始使用非常适合所施加载荷的网格。因此,对于这个问题,我们不需要对热解进行非常多的自适应网格细化。

    仿真结果显示了实施自适应网格细化和数据过滤后非均匀热负荷问题的温度
    从基于输入数据细化的网格开始,我们不需要多次细化网格来获得对模型解决方案的信心。

    我们可以在这里看到,在这种情况下有明显的计算优势。任何时候你正在读入空间变化相当大的实验数据时,研究这种技术都是值得的,因为它可以节省大量的计算工作。另一方面,如果数据相对平滑,没有急剧的过渡,那么就没有必要研究这种技术了。

    还值得一提的是,在这种情况下,我们专注于二维平面,因此我们也可以使用将热分布视为图像文件的方法,并将该图像转换为一组曲线,可以在任何二维工作平面。但是,该方法仅适用于二维平面,而此处介绍的方法也适用于曲面甚至体积。

    动手尝试

    单击下面的按钮,访问与本文中讨论的模型示例相关联的文件:

    ]]>
    //www.denkrieger.com/blogs/combining-adaptive-mesh-refinement-with-data-filtering/feed/ 0
    使用数据过滤提高模型性能 //www.denkrieger.com/blogs/using-data-filtering-to-improve-model-performance //www.denkrieger.com/blogs/using-data-filtering-to-improve-model-performance#respond Wed, 17 Mar 2021 06:03:41 +0000 http://cn.staging.comsol.com/blogs?p=281371 您是否曾经遇到过想要使用一些试验数据作为载荷或边界条件的情况?如果这些数据随空间或时间变化,并且是有噪声的,那么你可能需要非常精细的网格,或者求解器可能需要非常短的时间步进。实际上,我们通常不希望或不需要这样做。一种可能的解决方案是对输入数据进行过滤以使其更加平滑。接下来,让我们了解更多详细操作。

    用基于方程的建模方法过滤噪声数据

    首先,我们假设一些样本输入数据,如下图所示。现在,我们先不考虑数据代表什么,并假设横轴可以代表空间或时间。我们可以观察到,该数据有明显的噪声,以及明显的趋势。在模型中使用这些数据之前,我们想减少这些噪声。

    具有三个明显峰值和许多小曲线的简单折线图,显示了具有显着噪声的输入数据样本
    具有明显噪声的数据样本。

    在这里,我们可以使用一个所谓的亥姆霍兹滤波器(Helmholtz filter)。这种类型的滤波器是最近被提出并被证明在拓扑优化领域非常有用。其实这个功能是 COMSOL 优化模块的内置功能,但也可以手动实现,以下就是我们将演示的内容。

    亥姆霍兹滤波器可以方便地求解偏微分控制方程:

    \nabla \cdot \left( – R^2 \nabla u \right) + u = D

    式中, 是输入数据, 是过滤后的数据。

    方程中有一个参数 ,我们将其称为过滤器半径。

    除了控制方程外,我们还需要边界条件。因为我们将从齐次诺依曼条件(homogeneous Neumann condition)入手,即边界处的场梯度为零。为了求解该方程以及这个边界条件,我们将在一维组件中系数形式偏微分方程 接口中使用基于方程的建模方法。

    首先,我们将试验数据读入插值 表格特征,如下面的屏幕截图所示。需要注意的是,外推 设置为常数。我们很快就会看到,由于亥姆霍兹滤波器中的边界条件,我们需要一些我们关注的空间或时间范围之外的数据作为缓冲区。

    模型开发器树的屏幕截图,其中插值设置打开以设置外插方法和带有示例数据图形的函数图窗口
    读入试验数据并设置 外推方法。

    接下来,我们将 一维组件 引入我们的模型并将 单位制 设置为

    然后,在 几何 创建一个线段间隔 特征,如下面的屏幕截图所示。需要注意的是,在我们关注的数据范围两端的附加区域。

    COMSOL Multiphysics 中“间隔设置”窗口的屏幕截图,其中“间隔”部分已展开并在表格中显示坐标列表
    定义应用过滤器的域。

    现在,针对单个未知数 u,我们将系数形式偏微分方程 接口引入到组件中,如下面的屏幕截图所示。我们将保持离散化为默认的二次拉格朗日。然后,保持所有数据无量纲。

    系数形式 PDE 功能设置的屏幕截图,其中展开了域选择、单位和因变量部分

    系数形式偏微分方程 特征的设置中,定义如下所示的设置。扩散系数 设置为全局参数 FilterSize 的平方,吸收系数 为1。源是我们的试验数据,而所有其他项均设置为零。

    默认的边界条件 零通量 是所需的 齐次诺依曼 条件,我们将在计算域的两端将过滤后数据的导数固定为零。这为过滤器引入了末端效应,这就是我们向几何和数据引入额外填充区域的原因。

    我们也可以使用狄利克雷边界条件,将在边界处固定 u 的值。我们还需要手动将网格大小设置为小于试验数据的分辨率。

    扩散系数和吸收系数部分展开的系数形式 PDE 设置窗口的屏幕截图
    使用基于方程的建模来定义亥姆霍兹滤波器方程。

    对模型数据使用亥姆霍兹滤波器方程

    现在,我们可以求解不同过滤尺寸的过滤器并比较结果。正如我们在下面看到的,非常小的过滤器尺寸几乎没有影响。过大的过滤器尺寸会导致过于平滑,随着过滤器半径变大,过滤后的数据接近原始数据的平均值。

    认识到亥姆霍兹滤波器的这个关键特性很重要:只要使用齐次诺伊曼边界条件,它就能实现能量守恒。这意味着原始数据和过滤后的数据在整个计算域上的积分将是相同的。

    请注意,在两端没有缓冲区的子域上,这并不完全正确。还需要注意的是,狄利克雷 边界条件不能实现能量守恒,因此应谨慎使用。

    显示过滤数据的三个示例的线图,蓝线表示半径为 0.01,红线表示半径为 1,黑线表示半径为 100
    使用不同过滤半径的过滤数据示例。

    现在我们已经过滤了数据,接下来看看如何在模型中使用它们。假设一个二维轴对称材料的瞬态加热,过滤后的数据将代表暴露表面上施加的热负荷。由于我们的热模型将位于模型的不同组件中,因此需要引入一种方法将我们的数据从一维组件移动到时间维度,以便在二维轴对称组件中使用。这可以通过广义拉伸算子 来实现。在这里,我们将 t 的表达式定义为一个目标。这项功能会将来自一维组件的数据映射或拉伸到时间轴上,并使其在整个模型中均可用。

    常规拉伸操作符的设置窗口的屏幕截图,其中展开了源选择部分
    屏幕截图显示了广义拉伸算子的设置。

    在二维轴对称组件的热模型中,我们可以施加一个热源,如下面的屏幕截图所示,其中热负荷为 comp1.genext1(u)[W/m^2]。请注意,我们为此添加了单位,因为 u 是无量纲的。

    热通量功能设置的屏幕截图,其中展开了边界选择、材料类型和热通量部分
    组件1 中定义的过滤数据调用到组件2 中的热模型。

    我们可以将研究分为两个步骤。第一个步骤是一个 稳态 步骤,求解过滤方程;第二步是一个瞬态 步骤,求解热问题。我们将求解更严格的相对容差 1e-4,并以求解器采用的所有时间步进输出结果,如COMSOL 知识库的列表中所述

    顺便说一句,还需要注意的是,如果数据在没有噪声的情况下具有明显、剧烈的幅度变化,则应改事件接口告知求解器

    求解不同的过滤半径值,并绘制域内峰值温度随时间的变化图,我们可以看到过滤对传热问题求解的影响。在这种情况下,随着时间的推移,对峰值温度的影响很小。

    绘制带有数据过滤的热模型结果的折线图已应用于输入数据

    绘制热模型结果的图表,红线表示较大的过滤器半径,较粗的灰线表示较小的过滤器半径,部分图形峰值在单独的窗口中展开
    热模型结果,使用了不同的过滤方式来求解瞬态热载荷。

    这里最大的差异在于求解时间。求解没有过滤的模型总共需要大约 700 个自适应时间步进,而以中等滤波器尺寸求解模型需要大约 130 个时间步进,求解时间减少了五倍以上!

    结论性思考

    在今天的博文中,我们展示了如何使用附加组件和方程对输入模型的数据使用亥姆霍兹过滤器进行过滤。我们不仅可以对 1D 数据执行此操作,还可以对 2D 或 3D 数据执行此操作,并且可以对任意几何形状和任意密度的输入数据进行处理。特别是在 2D 和 3D 中,该方法将优于大多数其他过滤技术,因为它利用了有限元基函数的局部紧凑支撑性,并允许非均匀空间网格离散化。这就得到了可以高效求解的稀疏线性矩阵。

    数据经过空间过滤的任意表面的四个视图,包括红蓝颜色表中的两个图和两个网格图像,一个粗糙的和一个精细的
    通过亥姆霍兹过滤器在任意表面上进行空间过滤。过滤后的数据用较粗的网格就可以很好地描述。

    上图中的示例很好地说明了 2D 平滑处理,即在一个任意表面上未过滤和过滤后的场分布。请注意,对数据进行过滤将允许使用此数据的模型在相对较粗的网格上求解,这为我们带来了额外的计算优势。事实证明,我们甚至可以使用这个亥姆霍兹过滤器来设计一个可以很好地满足不同的输入数据的网格,这将在今后继续讨论,欢迎继续关注我们的博客文章!

    自己尝试

    与点击下方按钮,可以下载与这些方法相关的文件,尝试自己动手建模:

    ]]>
    //www.denkrieger.com/blogs/using-data-filtering-to-improve-model-performance/feed/ 0
    将全局方程引入全耦合目标搜索法 //www.denkrieger.com/blogs/using-global-equations-to-introduce-fully-coupled-goal-seeking //www.denkrieger.com/blogs/using-global-equations-to-introduce-fully-coupled-goal-seeking#comments Wed, 20 Jan 2021 01:43:24 +0000 http://cn.staging.comsol.com/blogs?p=246051 今天,我们将在 COMSOL Multiphysics® 软件的模型中引入一个目标搜索方程,该方程与全耦合方法结合使用可以求解非线性问题。在计算上,尽管这种方法比我们之前介绍的分离式求解方法成本更高,但其在鲁棒性方面却具有一些独特的优势,并能够突显 COMSOL® 软件的一个核心优势。

    背景

    正如之前的博客文章(在将目标搜索的方法引入分离式求解器)中所讨论的那样,我们可以使用一个额外的全局方程扩展多物理场模型,在该方程中,我们能够定义如何更新模型的输入来实现特定的输出。这种方法通过分离式求解的方法,依次解决问题(所有各种物理场问题)的一部分,然后通过全局方程来更新输入。

    尽管这种方法在计算上非常有效,但是由于使用了分离式求解器,它依赖于临时更新方程,因此使用该方程需要对问题的底层物理知识有所了解。

    这篇博文中,我们将介绍另一种替代方法。在该方法中,我们基于一个使软件计算符号导数的方程来更新输入。这种方法可能更加鲁棒和通用,但确实会带来计算成本。下面,我们先来看一下如何实现此方法,再说明其优缺点。

    这里,我们仍以之前使用的同一示例模型来说明。即将两个电极施加到一个带有夹层的介质上的焦耳热问题。材料的电导率和热导率随温度呈非线性变化。我们模型的目标是调整顶部电极和接地电极之间的电势差,以使夹层的电流损耗为3瓦。

    将全耦合求解器引入目标搜索

    就像在我们之前的博客文章介绍的一样,这可以通过全局方程 来实现,尽管这一次,我们在物理场的影响范围内添加了一个额外的全局方程。但是,对于前一种方法,此额外方程在单独的分离式求解器迭代中使用临时缩放来更新施加的电势。在这篇文章介绍的方法中,当与受影响的物理场同时求解时,我们将使用一个对雅可比矩阵有贡献项的方程。

    A screenshot of the Global Equations settings within the Electric Currents interface node.
    在物理场接口内引入全局方程。

    下面,我们修改之前的示例并进行演示。我们仍然需要为施加的电势引入一个全局方程 V_applied,但是现在我们需要一个满足电势方程且同时求解的方程。为此,我们在电流 物理场中添加了 全局方程 特征。注意,我们输入的残差方程在解点必须等于零。我们输入的方程是:

    intop(ec.Qrh)/ 3 [W] – 1

    其中,intop() 是一个在夹层中定义的积分算子。稍后我们将看到该方程的无量纲化的一些优势。方程重新排列后等效于:

    intop(ec.Qrh)= 3 [W]

    这可以理解为:计算 V_applied 的值以使夹层中的损耗等于 3 瓦。我们还可以写出该残差方程表示的内容:

    r\left( V,T,V_{applied}\right) = \left (\frac{1}{3W}\int\sigma(T)\nabla V \cdot \nabla V d\Omega-1 \right)

    在计算雅可比贡献时,对于模型中的所有未知数,我们采用其符号导数。通过检查,我们可以看到:

    \frac{\partial r}{\partial V_{applied}} = 0

    而关于电势的其他两个导数 ,以及温度场 ,将为非零。这意味着全局方程在 Jacobian 对角线处引入零,但在相应行中引入了许多非零项。这影响了我们必须在非线性迭代中使用的线性系统求解器的类型。

    这些附加项才是真正有趣和有用的贡献。这些项告诉非线性求解器如何更新 V_applied,以使我们的全局方程等于零。也就是说,软件会自动找出 V_applied(全局方程)要更新的内容。(回想一下以前的方法,我们必须根据一些物理知识来构建自己的更新方程。)

    引入非零梯度

    但是,这些附加项会产生计算成本。它们确实要求我们同时求解全局方程和电势方程,并且由于它们同时引入了非对角项和对角线为零,因此它们要求全耦合方法在求解电势场和全局方程时,使用直接线性求解器。此外,以上所示的导数在初始条件下必须为非零,否则雅可比行的整个行将为零。在这种情况下,这有点不太容易实现,因为在指定的初始值处电势必须存在非零梯度。

    有两种方法可以在电势中引入非零梯度。最简单的方法是在电流物理场中指定一个空间变化的初始条件,如下面的屏幕快照所示。这很容易做到,至少在这种情况下,但是可能并不总是有效,因为我们确实引入了非物理的初始值。

    A screenshot of the Initial Values Settings window within the Electric Currents physics interface.
    将初始值引入电流物理场将导致电势场的非零梯度。

    一个更好的方法是引入一个全局方程 变量 V_applied 来求解方程:

    V_applied / 1 [V] – 1

    该方程简单地设置 V_applied 等于 1[V],然后软件将求解方程组并计算一致的电势场。请注意,这就是为什么使用无量纲的残差方程会有所帮助的原因。如下面的屏幕快照所示。

    A screenshot of the settings for introducing an additional global equation for goal seeking.
    引入一个额外的全局方程以查找初始值。

    调整全局方程的求解器设置

    一旦我们求解了这个固定值 V_applied,并切换回使用原始的全局方程,就可以将该问题的解用作初始值。在 COMSOL 软件中,这可以通过修改研究步骤的模型配置 复选框,然后在两个研究步骤 中启用/禁用两个不同的全局方程来实现。也就是说,在第一个研究步骤中,我们只需指定 V_applied,然后在第二个步骤中求解 V_applied,以使夹层中存在所需的损耗,如下面的屏幕快照所示。

    A screenshot of the Stationary study settings with the option selected to modify the model configuration for the study step.
    修改第一步研究的模型配置,其中求解初始值的全局方程。在第二步中,应用相反的设置。

    第二步确实需要调整默认求解器设置。我们有两种选择:

    1. 对整个问题使用全耦合的方法,并使用直接求解器。这对求解器设置的更改要求最少,但是使用直接求解器求解大型方程组将需要大量内存。
    2. 使用分离式求解器,但将全局方程和电势方程合并为一个步骤,使用自动牛顿法和直接求解器将其求解为收敛。仍然可以使用迭代求解器以分离的方式求解温度解。此方法需要对设置进行更多更改,但需要的内存较少。请注意,这种分离会导致项被忽略(如果它们根本存在),有时可能会对收敛产生负面影响。这些设置的更改如下面的屏幕快照所示。

    A screenshot of the Segregated Step Settings window with the General and Method and Termination sections expanded.
    全局方程和电势必须同时使用直接求解器求解。

    建议从第一种方法开始,如果内存要求太高,则尝试第二种方法。请注意,对于三维模型,直接求解器的内存需求随着问题的大小而迅速增加,这是主要的限制。

    结束语

    今天我们介绍的是一种可用于解决 GUI 中搜索目标问题而无需依靠任何编程的方法。在之前的文章中我们还讨论了解决此类问题的其他方法:

    1. 使用优化模块
    2. 使用参数化扫描并手动识别近似目标值
    3. 用附加的更新方程增强分离的求解器

    尽管需要更高的内存,但今天介绍的全耦合目标搜索法的显著优点是它可以快速而稳定地收敛。注意,该技术也可以在时域中使用,只要可以在每个时间步上满足全局方程即可。

    这种强大而快速的收敛是雅可比矩阵内附加项的结果,并突显了 COMSOL Multiphysics 在解决高度非线性耦合的多物理场问题上的另一项技术优势。这项技术以及前面讨论的技术,对于分析师而言,都是一种很有用的工具。

    自己尝试

    ]]>
    //www.denkrieger.com/blogs/using-global-equations-to-introduce-fully-coupled-goal-seeking/feed/ 4
    将目标搜索的方法引入分离式求解器 //www.denkrieger.com/blogs/introducing-goal-seeking-into-the-segregated-solver //www.denkrieger.com/blogs/introducing-goal-seeking-into-the-segregated-solver#respond Tue, 19 Jan 2021 03:05:12 +0000 http://cn.staging.comsol.com/blogs?p=245881 分离式求解方法是 COMSOL Multiphysics® 软件的核心技术之一,它可以快速求解非线性多物理场(和单物理场)问题得到收敛解。你是否知道?我们还可以通过引入一个额外的全局方程来扩充这个求解方法,其中,全局方程能用于调整模型输入来实现所需的输出。今天,我们详细介绍如何使用这个方法。

    加速求解器收敛速度

    当遇到多物理场问题时,我们经常会通过求解非线性方程组的方法来处理。但这个方程组往往非常大,这意味着我们需要大量的时间和计算资源才能求解。

    分离式求解器是一种加速求解器收敛的方法。该求解器通过使用一个完整的大型方程组或方程矩阵,并将其分解(或分离)为几个较小的矩阵的方法来处理。通常,这些矩阵中的每一个子矩阵都对应一个物理场。在求解过程中,软件将以分离步骤的方式来求解这些子矩阵之一。当逐步求解完所有的子矩阵后,求解器将检查收敛性,并根据需要进行迭代,直到实现收敛为止。

    这种方法可以处理各种各样的问题,对于具有较高计算要求的三维模型尤为有效,并且在这些情况下,几乎始终是默认的方法。

    A line graph plotting a sweep over a range of input values, with annotations for the Desired Model Output and Estimated Desired Operating Point.
    图1 输入值范围内的扫描可用于预测模型响应并估算所需的工作点。

    通常,在求解模型时,存在这样一种情况,即我们不想改变几何图形,但又确实想根据我们设想的一个目标去更改某些其他模型输入。也就是说,我们希望模型产生一个特定的输出。

    例如,我们可能想要获得所需的温度、热载荷、流速或任何其他派生值。从形式上来讲,这是一个优化问题,我们可以使用 COMSOL 软件的优化模块轻松解决。但是,对于只想改变单个模型输入的情况,使用优化模块可能会有些过头。我们在这里将介绍几种其他方法来调整输入以获得所需的输出。

    获得这种模型输入的最简单方法是通过参数化扫描。也就是说,通过指定要更改的输入,提供要扫描的值范围,然后就能绘制输出与输入的结果图。从这个结果图中,我们可以直观看到并选择我们想要达到的目标点(图1)。

    这是一种非常传统的方法,但是代价有些高。通常,响应曲线是非线性的,尽管通常它是单调的,我们常常需要在感兴趣的范围内求解两个以上的值,并且求解时间将随所求解值的数量而定。(请注意:这里我们可以使用“集群扫描或“批处理扫描功能,但是这两个功能都需要大量的硬件资源,并且本文将假设我们有一些硬件条件的限制。)

    使用全局方程的目标搜索方法

    今天,让我们看看解决这个问题的另一种非常有效的方法:即将一个目标搜索方程引入分离式求解器中。我们可以使用以下方法非常简单地完成此操作:

    • 使用全局常微分和微分代数方程 接口
    • 仔细构建方程
    • 对求解器设置做一些调整

    下面,让我们来看一个典型的的示例。

    一个典型的焦耳热问题的示意图,两个电极之间的材料中包含杂质,且带有标记的部件。
    焦耳热问题示意图,其中两个电极之间包含材料。所有材料特性都是温度的函数。

    以上图所示的焦耳热问题为例:施加了两个电极的一个介质中包含另一个具有不同电导率的介质,这种情况在组织消融模型中可能会出现,您可以查看这篇生物组织射频消融技术的仿真研究博客文章,了解相关案例应用。由于我们将在材料属性中考虑温度非线性,因此这种模型实际上可以产生一些非常复杂的结果,例如,在电热耦合分析中经常会陷入一些误区。

    全局方程式设置窗口,在展开的全局方程式部分中显示了附加的全局方程式。
    如何将额外的全局方程引入模型。

    下面,我们来看具体的操作。假设我们想调整上述模型图中上部电极(红色区域)相对于另一个接地电极(蓝色区域)的电势,使包含在其中的介质电势为 3 瓦。施加在电极上的电势是变量 V_applied,我们将通过在模型中添加全局方程 来控制该变量,如上面的屏幕截图所示。我们输入的方程非常简单:

    V_applied-nojac(sqrt(3 [W] / intop(ec.Qrh))* V_applied)

    该方程将会在每次分离迭代中求解并更新 V_applied。所施加的电势根据使用积分算子计算出的损耗进行缩放。我们知道,至少在集总模型中,因为损耗与电势差的平方成正比,所以使用平方根。nojac() 算子中的所有内容都不会影响雅可比行列式,并且其中的项基于上一个分离步骤中的值,如果是第一步,则基于初始值。请注意,初始值 V_applied 必须为非零,并且适当的初始值将使得收敛更快。

    隔离求解器的“设置”窗口的屏幕快照,其中“常规”,“方法和终止”部分已展开以实现全局方程式。
    计算出电势之后用全局方程求解的分离式解器设置。

    在分离式求解器设置中使用分离步骤计算电流之后,我们需要确保分离步骤已经求解,因为更新后的表达式是基于所计算的电损耗得出的。另外,我们还希望确保在计算电流之前或在求解全局方程之后计算温度场,因为当材料电导率与温度呈非线性时,这会影响损耗计算。

    “下限设置”窗口的屏幕快照,用于在隔离的求解器中实现下限。
    分离式求解器中的上限和下限特征。

    分离式求解器还为要求解的变量提供上限和下限选项。也就是说,如果任何迭代将计算出大于或小于指定值 V_applied,则求解程序将仅使用极限值代替。就下限而言,这特别有用,因为我们永远不希望施加的电势变为零,因为初始值为零不可能进行进一步的更新。如果我们知道存在一些无法设置电势的值,则上限也很有帮助。

    当我们使用分离方法求解此模型时,我们可能还希望监控 V_applied 以查看其在每次迭代中如何进行更新。我们可以通过实时监测仿真结果和下面屏幕截图中所示的设置来实现这个目的。分离式求解器还包括一个容差因子,该因子 乘以 稳态求解器 功能中定义的默认公差 0.001。使该数字小于默认值 1 将加强求解器的收敛标准。另外,还需注意,如果收敛非常慢,那么可以增加分离式求解器的迭代次数。

    屏幕截图显示了分离的求解器设置的屏幕截图,其中包括“常规”和“求解时结果”部分,以显示如何在每次迭代时绘制探针。
    如何在每个分离迭代中绘制探针以及设置容差因子。

    对于我们这里讨论的问题,收敛非常快。分离式求解器的收敛图和探针图如下所示。当然,我们永远不能保证非线性问题的收敛性(您可以查看 COMSOL 知识库中的这篇介绍:提高非线性稳态模型的收敛性),并且额外引进全局方程的更新通常会减慢收敛性。但是在很多情况下,我们可以放心地使用此技术,尤其是选择了一个合理的初始值时。应该注意的是,根据物理场和我们需要控制的值,可能需要不同形式的更新方程。在这种情况下,我们使用比例的平方根,但我们也可以在迭代之间使用线性或指数缩放。我们还可以将这种方法视为比例控制器或定点迭代方案。

    并排线图在左侧显示分离的求解器收敛,而在右侧显示全局方程的探测。
    分离式求解器的收敛性,以及添加全局方程的探针图。

    这种方法的最大优点是,我们仅使用了一个解,即使用计算效率高的分离方法,即可达到设计点。与不使用全局方程相比,这个解可能需要进行更多的迭代,但是快速获得所需解的优势几乎总是超过成本。另外,如果我们想在时域求解,那么可以在不修改的情况下使用此方法,只要可以在每个时间步上满足全局方程即可。

    当然,在某些情况下,这种方法可能会失败。这时,我们可以采用另一种方法,即完全耦合的方法而不是分离的方法,这个方法我们将在下一篇博客文章里介绍,敬请关注!

    动手尝试

    我们可通过以下按钮使用与该示例有关的模型文件:

    ]]>
    //www.denkrieger.com/blogs/introducing-goal-seeking-into-the-segregated-solver/feed/ 0
    基于方程的时间空间离散建模 //www.denkrieger.com/blogs/equation-based-modeling-with-a-space-time-discretization //www.denkrieger.com/blogs/equation-based-modeling-with-a-space-time-discretization#respond Thu, 24 Sep 2020 06:19:31 +0000 http://cn.staging.comsol.com/blogs?p=244311 COMSOL Multiphysics® 软件的核心优势之一是可以修改计算模型中的几乎所有表达式。我们必须谨慎使用这项功能,但是可以借助它实现其他很强大的功能。在这篇博客中,我们将以一个带有平移的二维(2D)热模型为例,先将某些材料属性设置为零,然后发现此问题变为类似于求解一维(1D)瞬态模型;最后思考这项功能是如何简便、快速地实现一些类型的优化问题。

    将 2 个空间维度变为 1 个空间维度和 1 个时间维度

    A schematic showing a 2D stationary thermal model that is analogous to a 1D transient model, which illustrates a space-time discretization problem.
    类似于 1D 瞬态模型的 2D 稳态热模型示意图。

    考虑一个非常简单的矩形 2D 传热模型。 在没有体积热但有对流项的情况下,我们将求解温度的稳态(时间不变)传热控制方程,其表达式如下:

    \rho C_p \mathbf{u} \nabla T + \nabla \cdot \mathbf{k} \nabla T = 0

    这里, 是材料密度; 是比热; 是热导率,用下面的对角矩阵形式表示:

    \mathbf{k}= \begin{bmatrix}k_{xx} & 0\\
    0 & k_{yy}\end{bmatrix}

    通过扩展所有项,可以更详细地写出控制方程:

    \rho C_p \left( u_x \frac{\partial T}
    {\partial x}+ u_y \frac{\partial T}{\partial y}\right) + \frac{\partial}{\partial x}\left(k_{xx} \frac{\partial T}{\partial x}\right)+ \frac{\partial}{\partial y} \left(k_{yy} \frac{\partial T}{\partial y}\right)= 0

    现在,我们来做一件有意思的事情。假定速度矢量完全沿着 +y 方向上,因此 。将对角导热系数张量的 y 分量设置为零,,以上等式简化为:

    \rho C_p u_y \frac{\partial T}{\partial y} + \frac{\partial}{\partial x}\left(k_{xx} \frac{\partial T}{\partial x}\right) = 0

    将导热系数张量的一项设置为零可能不常见,但这带来了一个好处:当我们写出 1D 瞬态传热控制方程时,没有体积加热或对流项,这一点就显而易见了:

    \rho C_p \frac{\partial T}{\partial t} + \frac{\partial}{\partial x}\left(k_{xx} \frac{\partial T}{\partial x}\right) = 0

    请注意,以上两个方程中的第一项看起来几乎相同,如果我们正确选择速度项,那么上述两个方程将相同。现在,我们看到了一些非常有趣的现象:我们的 2D 稳态模型似乎与 1D 瞬态模型相同。

    实际上,这些方程是相同的,但是当我们通过数值求解时,需要注意一些事情。首先,在 2D 域的底部边界应用固定温度条件类似于瞬态 1D 情况的初始条件。其次,对于这样的 2D 模型,具有映射的网格(与 y 轴对齐)是有意义的,并且可以将y方向上的单元数量视为固定的时间步。这与时域模型大不相同,后者默认情况下使用自适应时间步进。而 2D 模型还将(默认情况下)包含数值稳定项,这将使二者的计算结果略有不同,除非其中一个模型达到了较高的网格划分和容差细化水平。

    那么,下一个问题是:我们该怎么使用这项功能?为了了解它的功能,让我们来看一个经典的 1D 传热模型,其中一块材料被加热,如下图所示。尽管该模型看起来很简单,但是工程上关注的许多问题都可以简化到这种经典情况。当从左侧表面加热材料时,整个材料逐渐变热但不均匀。同时,左侧还存在辐射冷却和一些自由对流,近似为恒定的传热系数。

    An illustration showing how transient heating problem can be reduced to a 1D model.
    可以将材料板的 2D 瞬态加热模型降低为 1D 模型。

    在 COMSOL Multiphysics 中,可以通过设置 2D 矩形域并使用固体和流体传热 物理场接口来解决这个问题。在这个接口中,我们可以将平移运动 子特征应用于固体 特征,对底部边界应用 温度 边界条件,左侧应用 热通量表面对环境辐射 特征来模拟对流冷却和辐射冷却,以及添加热通量 条件施加热负荷。在时间轴上具有均匀热负荷的一个模拟结果如下所示。

    2D simulation results for the transient heating in a 1D material slab model, as well as the mesh.
    代表 1D 平板瞬态加热的 2D 稳态模型的模拟结果和网格。

    现在,假设我们要优化此加热过程。让我们尝试跟随时间来改变施加的热负荷,以使整个平板的温度在模拟结束时尽可能地接近目标温度,并设置约束使峰值温度永远不会超过设定值。通过 1D 平板的 2D 模型,我们发现这个优化问题非常容易设置。下面,让我们看看如何实现吧!

    定义优化问题

    COMSOL 软件定义 节点下的拓扑优化 分支中的密度模型特征用于定义变量控制的时间热通量。这个特征在边界上定义了一个场,该场被限制在 0 到 1 之间,表示没有加热和最大加热。该场的离散化是线性的,这意味着在每个单元上热负荷随时间可以线性变化,并且热负荷可以在 ÿ 方向的网格大小确定的时间跨度上变化。这并不理想——这意味着热负荷的变化与我们的时间步一样快。相反,我们希望热负荷随时间的变化慢于离散化。因此,我们需要采取下一步骤,那就是引入亥姆霍兹过滤器(Helmholtz filter)。这在拓扑优化领域中是很常见的作法,并且可以在设置节点的过滤 部分实现。过滤半径 需要稍大于网格尺寸,并表示一个平滑的时间。该过滤后的控制变量场的名称为 dtopo1.theta,并乘以入射热通量。

    A screenshot of the Topology Optimization Density Model feature Settings window.
    拓扑优化密度模型特征的屏幕快照,它沿板的受热面定义,并在代表时间的整个轴上定义。

    下面屏幕快照中显示了我们的目标表达式,它是一个在顶部边界(代表最终时间)的积分探针积分 的表达式基于计算出的解 T 和想要达到的温度 T_target。通过定义一个目标,即该边界上计算出的温度与目标温度之间平方差的积分,我们得到一个微分函数,当最终温度尽可能接近目标时,该函数具有最小值。我们定义的目标名称是 comp1.obj,我们将从优化 研究步骤中引用该目标。

    A screenshot of the Settings window for the Objective Probe feature in COMSOL Multiphysics.
    在顶部边界定义的目标探针特征的屏幕快照,定义了我们要最小化的目标表达式。

    我们在优化 接口中定义了一个约束,即:

    comp1.constr < 1

    如上面的屏幕快照所示,该表达式 comp1.constr 是通过一个全局变量探针 定义的。该表达式首先取以下平均值:

    \left( \left( \frac{T}{T_{max}}\right)^{p_{exp}} \right)

    在加热边界上,取 一根。这是P 范数。如 接近无穷大时,此约束将强制温度不沿着加热边界升高到最高温度以上。现在,由于数值原因, 不能是无穷大即不能完全满足此约束,但是如果  足够大,则约束可以近似满足。如果  设置过大,则我们将引入一个极度非线性的约束函数,它会减慢收敛速度,并且还会出现一些可能的数值溢出问题,因此可以将此值视为模型中的调整参数。

    A screenshot of the Global Variable Probe settings for the probe used to define the constraint expression.
    屏幕截图显示了定义约束表达式的探针。

    作为优化模块的一部分,我们使用研究分支中的优化研究步骤引入变量、约束和控制参数。目标和约束可以是全局变量,例如上面提到的探针。下面我们来看看这种情况如何设置。

    A screenshot of the Settings window for the Optimization study step.
    “研究”分支中的“优化”研究步骤的屏幕快照,定义了优化求解器类型、目标、设计变量和约束。

    上面的屏幕截图显示了研究 分支中的优化 研究步骤。在此特征下,我们定义了优化求解器、目标函数、设计变量和约束。在设置的顶部,我们看到使用了 SNOPT 求解器。该求解器期望目标函数和约束相对于设计变量是可区分的。在优化容差模型最大计算次数 支配 求解器将采取多少次迭代尝试找到最优值。接下来的三个部分定义了目标函数控制变量和参数 以及约束

    定义了目标函数、设计变量和约束后,现在只需求解模型即可。

    A graph plotting the results for design variable, filtered design variable, and temperature.
    沿时间轴绘制的设计变量,过滤设计变量和温度图。

    A plot comparing the temperature to the target temperature of the material slab at the final time in the simulation.
    最终时间的温度(蓝色)与目标温度(黑色)比较,表明温度场在 1D 域中非常接近目标温度。

    这个包括导热系数的非线性材料模型,需要约一分钟的时间优化得到上图所示的解决方案。该解决方案绘制了板加热边随时间变化的温度,还有过滤后的变量和未过滤的设计变量,以及板横截面的最终温度。我们观察到的特别有趣的现象是:优化求解器找到的解决方案为,在刚开始的时候为加热峰值,然后热载荷逐渐减小,以不超过峰值温度的限制,当整个板的温度场趋于最佳,热载荷逐渐趋于零,最后在短时间内增加了加热量,以抵消环境冷却。

    这时,我们可能会问自己这种方法的优点是什么?实际上,我们也可以单纯地在时域中解决整个优化问题。那么我们使用这种方法获得了什么呢?答案是:速度和简便性。

    通过重新设计为时间空间函数,我们解决了稳态优化问题,该问题比求解瞬态优化问题要快。我们还可以使用内置的拓扑优化功能,包括亥姆霍兹过滤器,可以很容易地设置随时间任意的、受约束的、平滑的强制函数。那么,除了一些概念上的复杂性之外,这种方法的缺点是会占用更多的内存。通过同时求解空间和时间,系统矩阵与时间轴的网格成比例地变大,并且该网格必须在仿真之前固定。但是,对于这种 2D 模型,即使具有非常精细的网格,内存要求也并不太高。

    具有两个空间维度的模型的内存需求确实会变大,但并不是很大。下面的链接提供了一个类似的二维模型优化,其第三维度代表时间维度的案例,这个案例包括电流和传热耦合计算焦耳热,时间优化,并使用了和刚才介绍的相同的技巧,祝您建模愉快!

    动手尝试

    尝试使用时空模型优化随时间变化的热负荷。单击下面的按钮访问模型文件。(注意:您需要使用有效的软件许可证登录到 COMSOL Access 帐户才能下载 MPH 文件。)

    ]]>
    //www.denkrieger.com/blogs/equation-based-modeling-with-a-space-time-discretization/feed/ 0