资讯动态

COMSOL中飞秒激光烧蚀的双温方程与热力耦合相互作用研究

发布时间:2026/10/24 4:38:35 来源:尧图企业网站定制
做飞秒激光烧蚀仿真的人估计都有过这样的体验文献里双温方程写得清清楚楚热力耦合的应力云图也漂亮得不行但自己一上手就发现两个模型放在同一个仿真平台里怎么都不“对话”。这篇东西就是想把“COMSOL模拟下的飞秒激光烧蚀双温方程与热力耦合模型的相互作用关系研究”这件事讲透——不仅讲双温方程怎么搭、热力耦合怎么接更要讲清楚这两个物理场之间到底谁影响谁、怎么影响、影响的程度如何量化以及实操中会遇到哪些坑。适合谁看正在做激光微纳加工仿真、飞秒激光与物质相互作用课题的同学或者想从单温传统热传导过渡到双温模型、却不知道该怎么把应力场加进去的从业者。阅读门槛不高但需要你手头有一份能跑瞬态多物理场仿真的软件基础。我先从物理图像说起再往下走建模、耦合、参数影响和排错整个过程按我实际做过的路径来。1. 双温方程与热力耦合的物理图景1.1 为什么飞秒激光需要“双温”飞秒激光的脉冲宽度通常在几十到几百飞秒一个飞秒是1e-15秒。这个时间尺度短到什么程度它比金属中电子-声子电子-晶格能量交换的弛豫时间还要短一到两个数量级。激光把能量先交给自由电子电子温度瞬间飙升到几千甚至上万开尔文而晶格还没来得及升温或者只升了一点点。传统傅里叶热传导假设电子和晶格始终处于热平衡这在纳秒、皮秒激光下勉强能用到了飞秒尺度就完全失效了。所以双温模型把材料内部的热状态拆成两个温度场电子温度Te和晶格温度Tl两个温度各有自己的热容、热导率中间用一个耦合系数G把能量交换串起来。物理图像可以打个比方电子像骑着电动车的外卖员光子是单子先把热“外卖”接到手里晶格是后厨的大师傅接收电子递过来的能量才能把锅烧热。飞秒激光的麻烦在于外卖员跑得飞快后厨还没反应过来整个厨房的温度分布已经乱了。这个非平衡状态直接决定了烧蚀区的能量沉积形态。电子热导率通常远大于晶格热导率电子会先把能量横向扩散到激光光斑之外再慢慢交给晶格。所以双温模型算出来的晶格温度场并不是简单的激光能量高斯分布而是能量在电子系统内部先“匀”了一遍之后的结果。这也是为什么直接拿经典热传导模型算飞秒烧蚀往往会高估中心温度、低估热影响区半径。1.2 热力耦合模型在这里到底管什么温度场算完之后材料内部会产生热膨胀而热膨胀在周围材料的约束下转变成应力应变场。飞秒脉冲带来的温度梯度极其陡峭升温速率可以达到1e15 K/s量级瞬间产生的热应力足以让材料发生剥落、碎裂、相爆炸等去除机制。换句话说飞秒激光并不是只靠“烧”把材料去掉很大程度是靠“力”把材料掀掉的。这一点在金属薄膜和高脆性材料上特别明显。热力耦合模型负责把晶格温度Tl或者部分情况下电子压力也参与转换成应力场。材料受热膨胀周围的冷材料限制它膨胀表面层就出现压应力一旦应力超过材料强度就会出现裂纹和喷射。对于金属科学家们还常讨论电子热压和热应力的竞争关系电子温度高的时候电子气压本身就会产生一个瞬态压应力这个压力的传播速度比晶格热传导快得多是飞秒烧蚀中“应力先导、热损伤随后”的重要机制。在仿真里热力耦合的关键不是简简单单加一个“热膨胀”节点而是要把温度场的时间演化准确地送进固体力学求解器保证每一步应力都是在正确的瞬态温度分布下算出来的。很多人做耦合时最容易犯的错是把稳态温度场直接当初始条件施加上去那样算出来的不是应力波而是一朵静态的花。1.3 两种模型的“相互作用关系”到底指什么这里的“相互作用关系”不只是“双温方程算出温度➜传给力学模块算应力”的单向链条。更深一层的意思是晶格温度升高引起材料膨胀和相变而膨胀和相变又会反过来改变材料的光学参数反射率、吸收深度、热力学参数热容、热导率甚至几何形状烧蚀坑形成。这些反馈会改变后续激光能量的吸收和沉积从而影响双温方程的解。不过在大多数研究里要做到全双向耦合非常困难因为飞秒过程只有几百皮秒到纳秒几何变形尺度通常比光斑小很多光学参数变化也有待实验数据支撑。所以常见的做法是“准静态单向耦合”或“半双向耦合”先算双温场再把温度场作为载荷传给应力场应力场算完之后的变形数据再决定是否在下一个脉冲里更新几何和光学参数。这篇标题里的“相互作用关系”在工程实现上通常就落在“电子温度→晶格温度→热应力→去除判据→更新热源参数”这一条链路上每一步的反馈强度就是研究的切入点。2. 建模前的参数准备与方案选型2.1 关键物性参数及其获取思路双温方程和热力耦合模型的参数非常敏感参数错了模型再漂亮都是白搭。核心参数包括电子热容Ce、晶格热容Cl、电子热导率ke、晶格热导率kl、电子-晶格耦合系数G以及激光相关的反射率R、吸收系数α。先看电子热容对金属通常写成CeAe·TeAe是电子热容系数大约是几百到上千J/(m³·K²)的量级。晶格热容Cl相对稳定可以取常数值量级在2.5e6到3.5e6 J/(m³·K)。电子热导率ke在常温下可以由Wiedemann-Franz定律估计ke k0·Te/Tl其中k0是材料在室温下的热导率。这个表达式在飞秒双温模型里用到很多但它有个明显的坑当Tl很小而Te很大时ke会特别大导到数值上很容易不收敛后面我会专门讲怎么处理。电子-晶格耦合系数G是另一个关键参数量级通常在1e16到1e18 W/(m³·K)。G的物理意义是单位体积、单位时间、单位温差下电子交给晶格的能量它直接决定了晶格温度追上电子温度的速度。获得G的可靠方式有两种一是查超快光学实验数据二是通过密度泛函理论计算电子-声子耦合强度再折算。对没有实测数据的材料可以先取同族金属的数量级做初始模拟再靠烧蚀阈值或损伤直径的实验结果反过来标定。这些参数在COMSOL里可以全部做成全局参数或者材料属性中的变量方便后续参数扫描。不要把常数直接写死在方程里否则后面跑耦合系数扫描时又要改模型很容易改错。2.2 为什么选多物理场仿真平台说实话飞秒双温方程用MATLAB也能解用C自己写有限差分也不难。但为什么大家都愿意搬到多物理场仿真平台里做核心原因是热力耦合这一步。双温方程本质上是两个耦合的非线性偏微分方程自己写程序处理起来还不算麻烦。但你要把瞬态温度场再映射到结构力学模块还要考虑温度相关的材料属性、大变形的网格更新、接触边界、参数扫描和后处理自建程序的工作量会成倍上升。多物理场仿真平台的强项就是“模块拼接”自定义偏微分方程接口算双温固体力学接口算应力和变形传热接口可以做参考对比事件接口可以做烧蚀单元失效参数扫描接口一键跑完整个能量密度矩阵。还有一个现实原因审稿人和评审专家认可度高。用成熟商业软件做模拟方法学部分写起来很干净别人复现也容易。自己写代码虽然没什么不行但别人要复现就得从头把你的算法和网格逻辑啃一遍沟通成本高。2.3 空间尺度、时间尺度与网格先决条件飞秒激光烧蚀模拟有两个尺度问题必须预先想清楚。第一个是时间尺度。激光脉冲宽度约1e-13到1e-12秒电子-晶格弛豫时间约1e-12到1e-11秒应力波在纳米薄膜里的传播特征时间约1e-12到1e-10秒。如果目标是分析应力波传播至少要算到几十皮秒甚至纳秒。瞬态求解器的时间步长必须能分辨激光脉冲宽度通常至少取脉冲宽度的1/10到1/20。这意味着一个100飞秒的脉冲时间步长要小于10飞秒。第二个是空间尺度。光学穿透深度α⁻¹在金属里通常只有十几到几十纳米但电子热扩散长度在飞秒时间段内可能达到几十到一百纳米以上应力波的传播范围则可以到微米量级。网格要同时分辨光学吸收层和应力波传播区所以通常在表面区域用纳米级细网格远离激光区域再逐渐拉伸成粗网格避免整体网格数量爆炸。实际操作中我会做一个一维或二维轴对称模型把网格在深度方向从1纳米到2纳米起步光斑半径方向用10纳米到20纳米渐变网格。先跑一维模型验证双温方程的基本行为再用二维轴对称模型加力学分析这样能省掉大量调模型的时间。3. 双温方程在仿真软件中的具体落地3.1 用自定义偏微分方程搭建双温骨架在COMSOL里实现双温方程最直接的方式是用“系数型偏微分方程”接口Coefficient Form PDE定义两个因变量Te和Tl。方程形式写成Ce(Te)·∂Te/∂t ∇·(ke(Te,Tl)·∇Te) − G·(Te−Tl) Q(r,z,t)Cl·∂Tl/∂t ∇·(kl∇Tl) G·(Te−Tl)需要注意系数型PDE接口默认写成“da·∂u/∂t ∇·(−c∇u) f”的形式。把两个方程填进去的时候建议把Te的方程设成da Ce(Te)扩散系数c ke(Te,Tl)源项f −G·(Te−Tl) QTl的方程设成da Cl扩散系数c kl源项f G·(Te−Tl)。单位问题要盯死。COMSOL默认使用SI单位制但很多材料参数表格给出的单位是“W/(cm·K)”或者电子热容单位是“J/(cm³·K²)”不换算直接填进去结果会差得一塌糊涂。我吃过这个亏有一回电子热导率少除了一个100表面温度直接飙到几十万开尔文整个曲线形态完全不对。建议所有参数在建模前统一换算成SI单位列成一张表放在模型文档里免得后面复查时核半天。3.2 激光热源的数学表达与加载方式激光热源Q是整个模型的能量入口它的表达直接决定了能量在时间和空间上如何沉积。常用的形式是体热源模型Q(r,z,t) (1−R)·F·α·exp(−αz)·exp(−r²/r0²)·f(t)其中F是激光能量密度J/m²α是材料吸收系数1/mR是反射率r0是光斑半径f(t)是时间包络函数。对高斯脉冲时间包络常用f(t) sqrt(1/(2πτ²))·exp(−(t−t0)²/(2τ²))这里的τ不是脉冲宽度FWHM而是标准差。FWHM和τ的关系是FWHM 2.3548τ。很多同学直接拿文献里的FWHM值当τ填进去导致脉冲宽度比实际宽了一倍多烧蚀深度飙升怎么调都压不回来。在COMSOL里实现体热源建议把Q定义成一个解析函数或者变量表达式然后直接填到双温方程Te的源项里。注意热源只有沉积在电子系统上所以要加到Te方程而不是Tl方程。有些新手会把热源同时加到两个方程里美其名曰“分一点热量给晶格”这其实是错的会抹掉非平衡升温的物理特征。如果研究的是表面吸收很强的材料也可以把热源从体热源改成表面热流边界条件。金属在飞秒波段通常吸收深度为十几纳米体热源和表面热源的结果差异不大但在超薄薄膜100纳米以下上必须用体热源因为表面热源假设会高估表面温度。3.3 瞬态求解器配置的几点建议瞬态求解器是双温模拟最容易出问题的地方。常规的默认设置大概率跑不动因为物理过程的时间尺度和空间尺度差异太大。首先时间步长必须显式控制。建议初始步长为特征时间τ的1/50最大步长不超过τ的1/10。如果使用自由时间步长求解器很容易为了全局稳定性把步长拉得过大结果就是温度曲线出现锯齿甚至负温度。其次方程的刚性很强。电子方程里的热导率ke可能非常大同时耦合项G(Te−Tl)也不小这会形成一个刚性常微分方程组。建议开启“恒定牛顿”或“完全耦合”求解器同时把相对容差调到1e-4以下。别舍不得精度这个模型本来就是对参数极其敏感的容差太大会直接改变温度波的峰值和相位。第三要注意负温度问题。Te和Tl在解的过程中如果出现轻微振荡振荡幅度一旦超过当前温度值就会出现负温度然后材料参数变成非物理值求解器直接发散。我常用的兜底方案是在材料参数表达式里加下限函数比如用max(Te, 1e-6)或flc2hs平滑阶跃函数把参数取值限制在物理范围里。4. 温度场向应力场传递热力耦合实现4.1 固体力学模块中的热载荷接入拿到双温方程算出的晶格温度Tl之后要让固体力学模块“看到”这个温度场。常规做法是把Tl作为温度变量关联到固体力学模块的热膨胀节点。COMSOL中可以在固体力学模块下添加“热膨胀”特征然后指定热膨胀系数和参考温度。关键问题是到底用Tl还是Te作为热载荷的温度原则上应力由晶格热膨胀产生应该用Tl但如果要考虑电子气压对总应力的贡献需要单独在动量方程里加电子压力项。多数论文里的做法是热应力用Tl电子压力作为可选项单独加入视材料和研究目标而定。对金属薄膜研究机械剥落机制时电子压力项不能忽略对烧蚀深度研究通常Tl热应力就够了。还有一个细节参考温度T_ref。材料在激光照射前有一个初始环境温度比如293.15K。热膨胀的参考温度必须设为这个初始温度而不是0K。否则整个模型一开始就处于一个巨大的热应变状态应力场根本没法看。4.2 材料去除判据与近似处理材料去除建模是热力耦合模型里最让人头疼的部分。COMSOL的结构力学模块本身不提供简单的“单元生死”功能所以我们要用各种近似方法来模拟烧蚀或材料分离。最常用的简化做法是“温度阈值判据”当晶格温度超过材料的蒸发温度或者临界温度时认为该区域的材料已经脱离。工程实现上可以让超过阈值的单元弹性模量急剧下降到接近于零同时设置一个很小的泊松比这样这部分材料就“失去承载能力”等效于被去除。或者定义一个材料属性函数E(Tl)当Tl超过阈值时E降到初始值的1e-6倍并用平滑阶跃函数过渡避免数值突变。另一个办法是使用“变形几何”接口让网格在烧蚀边界处跟着温度等值线走。这个办法做出来的烧蚀坑形状比较直观但计算量大而且网格大变形时容易翻转对新手不太友好。我的建议是先做温度阈值刚度退化法拿到应力波和烧蚀深度的初步结果等模型稳定了再考虑变形几何或任意拉格朗日-欧拉方法。4.3 从温度历史看应力波演化热力耦合模型最有价值的输出是应力波的时空演化。飞秒激光在表面瞬间加热表面层的快速膨胀对内部产生一个压应力脉冲这个脉冲以声速向内传播当应力波到达自由表面时会发生反射压应力变成拉应力如果拉应力超过材料的抗拉强度就会发生表面剥落这就是著名的“飞秒激光表面剥离”机制的一部分。模拟中要重点观察两个量一是表面中心的压应力峰值及出现时间二是应力波传播到背面的时间。通过改变薄膜厚度可以观察到应力波在自由面反射形成拉应力区的位置和幅值。好的应力波云图会清晰展示出压应力波前、反射后的拉应力区域以及可能的层裂位置。这个结果可以直接和实验中的损伤形态对照如果实验中出现圆盘状剥落坑而模拟中拉应力峰值正好在对应深度超过材料强度那模型就说得通。5. 相互作用关系的结果解读与参数影响5.1 电子-晶格耦合系数G的影响G是整个相互作用链条里最值得做参数扫描的量。G大时电子把能量迅速交给晶格晶格温度快速上升热应力也随之增大烧蚀效率高但电子温度峰值相对较低电子热扩散范围变窄。G小时电子系统会保持高温更长时间电子热导率把能量沿径向扩散得更远表面的“感觉”反而更钝烧蚀坑的深度浅、半径大。从相互作用关系来看G的变化直接改变“双温场→热力场”的匹配模式。大的G更像慢激光接近热平衡极限小的G则放大了非平衡效应应力波更强或更早出现。做参数扫描时选择G从0.5e17到3e17 W/(m³·K)这个范围观察烧蚀深度和压应力峰值的响应曲线就能找到“力主导”和“热主导”的分界。5.2 脉冲宽度对非平衡过程的影响脉冲宽度τ是另一个直接调节物理图像好坏的旋钮。把τ从几十飞秒扫到几皮秒模型会从明显的非平衡双温行为过渡到近似热平衡的传统热传导。这个扫描特别适合用来验证双温模型的正确性长脉冲极限下Te应该逐渐逼近Tl双温模型应当退化成经典热传导方程的解。如果长脉冲下Te和Tl始终差了上万开尔文那一定是耦合项或者时间步长设置有问题。实际操作中我习惯先固定G和能量密度扫τ的4到5个对数间隔点。结果上会看到一个明显趋势短脉冲时电子温度峰值极高应力波峰值压力和烧蚀效率更高脉宽增大后同样的能量密度下晶格温度反而更高应力峰值降低损伤从“应力主导”转为“热扩散主导”。这两种模式的转换点正好对应光学吸收深度与热扩散长度的竞争写论文时可以重点讨论。5.3 参数扫描与烧蚀阈值的提取烧蚀阈值这个概念在双温模型里对应到模拟上就是“什么条件下材料达到了去除判据”。通过扫描能量密度F可以画出“烧蚀深度/F”曲线和“损伤半径/F”曲线。通常存在一个明显的阈值F_th低于这个值没有材料去除高于这个值烧蚀深度随ln(F)线性增长金属材料比较典型的规律。在COMSOL中做这个扫描非常简单定义全局参数F然后用辅助扫描把它设置成一组对数分布的数值跑完后在后处理里统计每条曲线下超过温度阈值的最大深度和最大半径。建议同时输出应力场结果高能量密度下可能应力峰值还没达到破坏阈值但温度已经超过沸点这种“温度先导”和“应力先导”的切换关系只有同时看两个场的输出才看得清。6. 一个可复现的简化模拟流程6.1 模型设置与步骤为了让你能快速上手我给你一个可以照抄的简化流程。目标二维轴对称模型下的单脉冲飞秒激光烧蚀某金属薄膜前表面吸收体积热源晶格温度驱动热应力用温度阈值近似材料去除。第一步新建模型选择二维轴对称空间维度。几何很简单一个长方形宽度20微米深度5微米代表基底如果要分析薄膜可以在表面再加一层厚度100纳米的薄膜区域。第二步添加“系数型偏微分方程”接口设置两个因变量Te和Tl。分别把3.1节的方程系数填进去。第三步定义全局参数。包括激光波长、能量密度F_pulse、脉宽FWHM、光斑半径r0、材料参数Ce、Cl、ke、kl、G、R、α等。建议全部用SI单位。第四步添加固体力学接口并在其中添加“热膨胀”特征把温度来源指向晶格温度变量Tl。第五步网格划分。表面区域使用映射网格深度方向第一层厚度不超过2纳米然后按1.3倍比例逐层加厚径向方向在光斑区域用细网格远离光斑用粗网格。全局扫一下网格数量控制在5万到20万之间这个量级在普通工作站上可以接受。第六步瞬态研究设置。时间范围从0到50皮秒时间步长序列用“范围”生成从1e-15秒起步逐步放大到1e-13秒。第七步跑完后处理画Te和Tl在表面和不同深度处的时间演化曲线画t2ps和t10ps时的应力云图统计烧蚀深度和半径。6.2 关键表达式与参数表下面这个表是我在自己模型里常用的一组初始参数材料以“某金属材料”代称你可以根据自己的材料替换。参数选取原则能查实验数据的用实验数据查不到的先按同一族金属量级给。参数符号数值单位电子热容系数Ae96J/(m³·K²)晶格热容Cl2.5e6J/(m³·K)室温电子热导率k090W/(m·K)晶格热导率kl0.5W/(m·K)电子-晶格耦合系数G1e17W/(m³·K)表面反射率R0.61吸收系数α7e71/m激光脉宽(FWHM)FWHM150fs激光能量密度F0.5J/cm²光斑半径r010μm参考温度T_ref293.15K在COMSOL里ke的表达式可以写成ke k0 * max(Te/Tl, 1e-6)用max函数兜底避免Tl趋近零时ke爆炸。电子热容Ce的表达式写成Ce Ae * Te时间热源项f(t)和时间轴上的高斯包络可以直接定义一个解析函数或者在Te方程的源项里写完整表达式注意COMSOL里单位要写清楚。6.3 后处理与结果验证跑通之后先不要急着发图。第一步验证应该是“长脉冲极限对标”把脉宽调整到10皮秒以上跑一次看Te和Tl是否基本重合。如果重合说明双温方程的实现正确如果差距很大检查耦合系数G和时间步长。第二步验证是看烧蚀阈值数量级。拿你设定的材料实验测得的烧蚀阈值做对比如果模拟的F_th和实验值相差在一个数量级以内可以继续优化参数差得太远优先怀疑反射率R和吸收系数α这两个参数对能量沉积的影响最直接。第三步验证才是结果展示。云图要注意色彩范围飞秒激光模拟里电子温度峰值经常到几万开尔文而晶格温度峰值只有几千开尔文共用同一个色标会把晶格温度细节压没。建议是两个温度场单独设定色标范围。7. 常见问题与排查技巧实录7.1 温度场不收敛与负温度问题这是飞秒双温模拟最频繁的翻车现场。症状一般是求解器报“找不到一致的初始值”或者“在某某时间步发散”再或者温度场里出现明显的蓝色负温度斑块。原因排序第一是时间步长太大电子方程的高热导率要求极小的显式极限步长第二是ke表达式分母出现Tl接近0导致热导率数值异常大第三是耦合项G(Te−Tl)让方程变刚性求解器自适应步长被拉爆。解决办法手动缩短最大时间步长给ke表达式加max下限开启强耦合求解器的同时把相对容差往下压。这个排查过程很磨人但基本就这三板斧。7.2 应力波边界反射问题固体力学模块默认的边界会是自由边界或者固定约束但不管是哪个应力波传到边界都会反射反射波会回到激光作用区干扰你要研究的烧蚀应力场。如果你模型尺寸不够大反射波在模拟时间窗口内就已经污染了应力云图。处理办法有几个一是把模型尺寸加大让应力波在研究窗口内到达不了边界二是使用“低反射边界”或“完美匹配层”特征吸收边界波三是按实际物理状态设置边界比如薄膜背面如果是自由表面反射是真实物理现象不需要消除。这里的关键是你得想清楚模拟里哪些反射是物理的、哪些是数值假象不要一刀切。7.3 计算规模与求解策略飞秒激光模拟对计算资源的要求确实不低。一维模型秒级跑完二维轴对称模型如果网格和步长控制好单参数点大概几分钟到几十分钟但一旦做参数扫描再加上变形几何一个算例跑几个小时很正常。我的经验是分阶段控制计算规模。先用一维模型调试物理参数和耦合关系确认方程、参数、求解设置没问题之后再升到二维轴对称。参数扫描不要一上来就扫十几个点先用3到4个边界点探趋势确定关键参数区间后再加密扫描。如果算力实在紧张把应力波分析窗口截断到主要机制发生的时间点比如应力波到背面反射完成前不要盲目算到微秒量级。另外COMSOL求解时可以生成求解器日志看每一步的求解时间和迭代次数。如果某些时间步反复迭代还不收敛直接回去检查该时间段内物理上发生了什么——比如是不是出现了相变阈值附近材料参数突变。一般这种情况需要把材料属性函数中的阶跃过渡设置得更平缓用tanh或flc2hs代替if语句减少数值上的硬切换。我在实际使用中还有一个习惯每改一次参数都会把Te表面峰值温度、Tl表面峰值温度、最大压应力、烧蚀深度这4个量单独记录下来作为模型的“体检指标”。这四个数一旦出现异常跳变就能很快定位是热源缩放问题、耦合参数问题还是网格分辨率问题比对着云图肉眼找问题高效得多。飞秒激光烧蚀模拟跑到最后拼的不是谁方程写得漂亮而是谁能在大量参数、多物理场、小时间尺度共同叠加的混乱里快速分清“物理真实”和“数值假象”。希望这篇东西能让你少走几个弯路。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑