Appearance
SProcess Ch9:Computing Mechanical Stress
> 来源:sprocess_ug.pdf(Sentaurus Process User Guide, W-2024.09) > 章节范围:Chapter 9,文档目录页标注约 p.762–801(PDF 物理页约 762–801)
章节导读
本章讨论 Sentaurus Process 中的机械应力计算。应力在工艺建模中具有重要作用:它控制器件结构完整性、工艺产率、受力载流子迁移率变化,以及漏电流与系统应力的函数关系。在更细尺度上,应力还可通过修改带隙影响掺杂扩散率,并影响氧化速率从而改变热生长氧化物层形状。
9.1 机械应力概述
机械应力在工艺建模中具有重要作用。它控制器件的结构完整性,工艺产率与应力有关,带电载流子的迁移率会因应力而改变,漏电流也是系统应力的函数。
在更细的尺度上,应力可以通过修改带隙来影响掺杂扩散率。应力还可以影响氧化速率,从而改变热生长氧化物层的形状。
在现代工艺流程中,精确计算应力非常重要。然而,设计能够产生正确类型应力的工艺流程是一个持续的趋势。适当的应力可以显著增强器件性能。
应力计算模拟按以下独立步骤执行:
定义力学方程:使用的方程定义了准静态 regime 下的力平衡。
定义边界条件:对于由力平衡方程导出的椭圆方程,需要在所有边界上给定边界条件。Sentaurus Process 提供 Dirichlet 或 Neumann 边界条件,但需满足一定准则。最低准则要求结构被充分约束以消除刚体模式。
定义材料属性:这一步定义应力与应变之间的关系。某些材料在给定应变下可以承受应力而不松弛(弹性材料);其他材料可以松弛应力(粘性或粘弹性材料)。Sentaurus Process 提供粘弹性本构方程来计算机械应力。通过适当设置参数,也可以模拟纯粘性材料和纯弹性材料这两种极端情况。Sentaurus Process 中使用的粘弹性模型提供 Maxwell 模型和标准线性固体模型两种选择。粘度可以依赖于局部剪切应力,使其成为局部变化的量,并可导致非线性力学行为。除弹性和粘弹性材料外,还有用于模拟不可逆变形和温度依赖性体积变化的材料。
定义驱动应力的机制:通过固有应力、热失配、材料生长、晶格失配(硅锗)和致密化来实现。所有这些过程在线性弹性范围内是可加的。在非线性范围内,必须从可用的应力历史中更新。
应力在所有材料中求解。然而,在惰性扩散期间,应力计算可以关闭。材料行为参数(在本章中介绍)可以在参数数据库中找到:
tcl
<material> Mechanics以下各节详细讨论本构方程。这些张量方程可以分为两个分量:
- 膨胀分量(Dilatational component):对应于张量的迹,描述纯体积变化时的材料行为。
- 偏斜分量(Deviatoric component):描述任意变形但不改变体积。
例如,应变张量可以分解为:
9.2 材料模型
Sentaurus Process 以通用方式实现了粘性、粘弹性和弹性模型,其中粘性模型和弹性模型可以从粘弹性模型推导出来。粘性和粘弹性模型使用剪切应力依赖的粘度。弹性模型还具有各向异性弹性,其中弹性系数取决于晶体取向。塑性模型描述了与加载速率无关的屈服后材料行为。
9.2.1 粘弹性材料
粘弹性材料响应由弹性和粘性分量组合表征。组合响应取决于弹性和粘性应力或应变的耦合方式。Sentaurus Process 提供两种常用组合:
- Maxwell 模型
- 标准线性固体模型(Standard linear solid model)
Maxwell模型
Maxwell 模型的粘弹性行为通过将弹性响应和粘性响应串联获得。应力-应变方程以膨胀分量和偏斜分量形式写出。体积应力张量的方程为:
其中 是体积粘度。此外,应力和应变张量与静水压力 的关系为:
体积模量 可以从泊松比(PoissRatio)和杨氏模量(YoungsMod)计算:
偏斜分量描述为:
剪切模量 可以从泊松比和杨氏模量计算:
默认情况下,粘弹性响应仅应用于偏斜分量。线性弹性模型用于压强-体积响应:
要将粘弹性响应同时应用于偏斜分量和体积分量,请使用:
tcl
pdbSet Mechanics NoBulkRelax 0剪切粘度 是剪切应力和温度 的函数:
通常 ViscosityW 为负值,因此剪切粘度 随温度升高而降低。体积粘度具有类似的阿伦尼乌斯表达式,由参数 Viscosity0.K 和 ViscosityW.K 定义。
关于剪切应力 的依赖性,参见"剪切应力依赖粘度"部分。
其他温度依赖粘度模型可用:
- Avramov-Milchev (AM) 模型
- Mauro-Yue-Ellison-Gupta-Allan (MYEGA) 模型
- Vogel-Fulcher-Tammann (VFT) 模型
要启用这些模型之一,请使用:
tcl
pdbSetSwitch <mat> Mechanics Viscosity.Temperature.Dependent.Model AM | MYEGA | VFT | DEFAULT标准线性固体模型
在标准线性固体模型中,材料行为通过将弹性响应与基于 Maxwell 模型的粘弹性响应并联来建模:
与 Maxwell 模型的差异允许总应力在粘弹性应力松弛为零后仍不为零:
要激活标准线性固体模型,请使用:
tcl
pdbSetSwitch <material> Mechanics ViscoElasticity.Model SLS-Maxwell9.2.2 纯粘性材料
默认情况下,氧化物和氮化物被视为粘弹性材料。然而,粘度是温度的函数(参见 Equation 989)。随着温度升高,粘度降低,即材料变得越来越像液体。当粘度达到非常低的值时,Equation 986 中的第二项可以忽略。
弛豫时间 通常可以很好地估计粘弹性材料的行为。如果 远大于工艺时间,则材料处于弹性 regime。如果 在工艺时间的范围内,则材料表现为粘弹性。如果 非常小,则材料处于粘性 regime。
9.2.3 剪切应力依赖粘度
对于粘性和粘弹性材料,粘度可以依赖于温度和剪切应力 。温度依赖性由 Equation 989 描述。剪切应力依赖性为:
剪切应力 从偏斜分量应力张量的第二个不变量计算:
粘度临界值 可以通过以下方式确定:
默认情况下,氧化物和 nitride 被视为具有剪切应力依赖粘度的粘弹性材料。Vcrit0 和 VcritW 的值也在参数数据库中设置:
tcl
pdbSetDouble <material> Mechanics Vcrit0 <n>
pdbSetDouble <material> Mechanics VcritW <n>9.2.4 纯弹性材料
如果将 Equation 986 中的粘度设置得足够高,则可以忽略左侧第二项,得到纯弹性材料的偏斜分量描述。
默认情况下,硅和 polycrystalline silicon 被视为纯弹性材料。为实现这一点,这些材料的粘度设置为 1×10^40 poise。
> 注意:K 和 G 是描述弹性材料的主要参数,而不是杨氏模量和泊松比。当使用 pdb 命令更改材料属性时,只有主要参数的更改才会影响模拟。要获取杨氏模量和泊松比,请分别使用 KG2E 和 KG2nu 命令。
9.2.5 各向异性弹性材料
各向异性弹性材料的应力和应变关系可以描述为:
其中 和 分别是工程应力和应变的分量, 是刚度矩阵的分量。
立方晶体各向异性
立方晶体的力学响应沿不同晶体取向而变化。对于立方晶体,参考轴选择平行于晶体轴。在与晶体轴对齐的坐标系中,对称刚度矩阵 C 具有以下非零分量:C11 = C22 = C33,C12 = C23 = C13,C44 = C55 = C66。
各向异性程度可以通过比率 A = 2C44/(C11 - C12) 来衡量。如果比率 A 等于 1,则各向异性模型退化为各向同性模型。
默认情况下,各向异性弹性模型关闭。使用以下命令开启:
tcl
pdbSet Silicon Mechanics Anisotropic 1三个模量参数的默认值(对于 crystalline silicon):
tcl
pdbSet Silicon Mechanics C11 16.57E11
pdbSet Silicon Mechanics C12 6.39E11
pdbSet Silicon Mechanics C44 7.96E11默认值为 dyn/cm²。
六方晶体各向异性
六方密排晶体包含一个各向同性平面。在与晶体轴对齐的坐标系中,对称刚度矩阵 C 具有以下非零分量:C11 = C22,C33,C12,C13 = C23,C44 = C55,C66 = (C11 - C12)/2。
当模拟坐标轴与晶体轴不一致时,必须相应地变换刚度矩阵 C。
六方各向异性弹性模型应用于某些纤锌矿 III-V 氮化物材料。使用以下命令开启:
tcl
pdbSet <material> Mechanics Anisotropic 1材料必须设置为具有六方晶格类型的 crystalline。
正交各向异性模型
正交各向异性材料有三个对称平面。在与对称平面对齐的坐标系中,刚度矩阵 C 具有以下非零分量:C11、C22、C33、C44、C55、C66、C12 = C21、C13 = C31、C23 = C32。
正交各向异性材料属性可以通过指定九个独立参数来描述:对称平面中的杨氏模量(Ex、Ey、Ez)、方向剪切模量(Gxy、Gxz、Gyz)和方向泊松比(νxy、νxz、νyz)。
默认情况下,正交模型关闭。使用以下命令开启:
tcl
pdbSet <material> Mechanics Orthotropic 1材料属性可以通过以下命令指定:
tcl
pdbSetDouble <material> Mechanics YoungsModulusX <n>
pdbSetDouble <material> Mechanics YoungsModulusY <n>
pdbSetDouble <material> Mechanics YoungsModulusZ <n>
pdbSetDouble <material> Mechanics PoissonRatioXY <n>
pdbSetDouble <material> Mechanics PoissonRatioXZ <n>
pdbSetDouble <material> Mechanics PoissonRatioYZ <n>
pdbSetDouble <material> Mechanics ShearModulusXY <n>
pdbSetDouble <material> Mechanics ShearModulusXZ <n>
pdbSetDouble <material> Mechanics ShearModulusYZ <n>杨氏模量和剪切模量的单位是 dyn/cm²。
> 注意:各向异性弹性模型和塑性模型不能同时为同一材料开启。
9.2.6 塑性材料
金属等材料在低应力下表现为线性弹性行为,但在高应力下发生永久变形。在低温下,这些材料中的永久变形对加载速率不敏感。这种材料行为定义为塑性或弹塑性。
要开启塑性材料模型,请使用:
tcl
pdbSet <material> Mechanics IsPlastic <n>增量塑性
非单调加载下的塑性材料行为使用增量 formulation 建模。增量塑性使用 von Mises 屈服准则与关联流动和双线性硬化。
对于线性各向同性硬化:
其中 是单轴拉伸中的屈服应力, 是各向同性硬化模量。
对于指数(非线性)各向同性硬化:
要设置这些参数,请使用:
tcl
pdbSetDouble <material> Mechanics Incremental.Plasticity.SigmaY <n>
pdbSetDouble <material> Mechanics Incremental.Plasticity.Hiso <n>
pdbSetDouble <material> Mechanics Incremental.Plasticity.Riso <n>
pdbSetDouble <material> Mechanics Incremental.Plasticity.Biso <n>
pdbSetDouble <material> Mechanics Incremental.Plasticity.Hkin <n>
pdbSetDouble <material> Mechanics Incremental.Plasticity.HNLkin <n>要开启增量塑性模型,请使用:
tcl
pdbSet <material> Mechanics Plasticity.Model Incremental9.2.7 摩尔分数依赖力学性质
在力学中,摩尔分数依赖性默认启用,应用于:
- 各向同性材料的体积模量和剪切模量
- 立方各向异性弹性材料的 C11、C12 和 C44
- 六方各向异性弹性材料的 C11、C12、C13、C33 和 C44
- 热膨胀系数
合金力学参数基于摩尔分数和基础材料上定义的参数进行插值。
要关闭摩尔分数依赖性,请使用:
tcl
pdbSet Mechanics Parameter.Interpolation 09.2.8 温度依赖力学性质
材料的力学性能在高温下与室温下不同。典型材料的弹性模量随温度升高而降低。
温度依赖性和摩尔分数依赖性在同一 PDB 开关下处理。温度依赖性可以应用于:
- 各向同性材料的体积模量和剪切模量
- 立方各向异性弹性材料的 C11、C12 和 C44
- 六方各向异性弹性材料的 C11、C12、C13、C33 和 C44
- 四参数正交弹性模型的 YoungsModulusX、YoungsModulusY 和 YoungsModulusZ
- 各向同性、立方各向异性和六方各向异性弹性材料的热膨胀系数
可用选项:
线性依赖:使用参数
<parameter>.T1定义。例如:tclpdbSet <material> Mechanics BulkModulus.T1 <n>参数计算为 ,温度单位为摄氏度。
分段线性依赖:可以为体积模量指定:
tclpdbSetDoubleArray <mat> Mechanics BulkModulus.TTable {<T1> <v1> ... <Tn> <vn>}
要关闭温度依赖性,请使用:
tcl
pdbSet Mechanics Parameter.Interpolation 09.2.9 平面应力分析
在 2D 问题中,Sentaurus Process 中实现的弹性模型默认遵循平面应变 formulation。在平面应变假设下:
对于一个维度远小于其他两个的薄板状结构,可以在平面应力假设下建模:
可以使用以下命令开启特定区域的平面应力模型:
tcl
pdbSetBoolean <material> Mechanics PlaneStress 19.3 方程:全局平衡条件
Sentaurus Process 中的力学方程是准静态力平衡方程。
应变率张量与速度梯度的对称分量相关:
应变通过"材料模型"中定义的任何模型与应力相关。对于所有模型,全局平衡条件为:
上述方程使用有限元法求解。解是表示每个节点速度分量的向量。这些速度用于计算应变和应力。应力和边界条件决定系统的力学状态。
> 注意:应力和应变是速度的导数。因此,它们以比解变量低一阶的精度计算。这意味着它们在元素之间是不连续的。当可视化时,即使线性求解器已收敛,应力值也可能看起来收敛不好。
9.4 应力产生机制
每个力学系统都需要一组应力驱动机制来达到应力状态。Sentaurus Process 中的应力诱导机制如下所述。
9.4.1 材料生长
在氧化过程中,体积增加。热氧化消耗体积为 1 的硅产生体积为 2.25 的氧化物。此过程在生长界面产生速度:指向硅的速度向量描述氧化前端的进展,指向氧化物的速度向量说明了上述提及的体积膨胀。后者负责产生机械应力,因此被用作力学问题的边界条件。
9.4.2 致密化
典型的致密化过程使用热加热来增加多孔材料的密度。随着材料密度增加,其体积收缩,体积收缩产生应力。
致密化诱导应力计算使用 density.increase 参数开启:
tcl
diffuse temperature=1000<C> time=30<min> \
density.increase={<regionName>=<n> | <material>=<n>}总密度增加可以按材料或按区域为给定的扩散(或 temp_ramp)步骤指定。
9.4.3 选择性关闭网格移动
MinimumVelocity 参数可用于选择性地关闭点或界面移动。
tcl
pdbSet <material> Grid MinimumVelocity <speed>如果 <material> 是体材料(没有下划线),则该参数适用于体点。如果体点的速度小于 <speed>(单位为 cm/s),Sentaurus Process 将速度截断为零。默认情况下,这适用于硅材料。
另一方面,如果 <material> 是界面材料(带下划线,如 PolySilicon_Silicon),则该参数仅适用于该界面上的点。
9.4.4 热失配
temp_ramp 命令或 diffuse 命令中的 ramprate 关键字描述的温度变化会导致结构中因相关材料的不同热膨胀系数而产生应力。
必要时可以使用 stress.relax 标志关闭应力计算:
tcl
diffuse temperature=1000<C> time=30<min> !stress.relax默认情况下,2D 模拟的惰性退火期间计算应力。要将 !stress.relax 应用于所有惰性退火步骤,请使用:
tcl
pdbSet Compute NoStressRelax 1要在 3D 模拟中将 stress.relax 应用于所有惰性退火步骤,请使用:
tcl
pdbSet Diffuse 3DStressRelax 1某些材料的热膨胀系数可以在参数数据库中找到:
tcl
pdbGet <material> Mechanics ThExpCoeff对于六方各向异性材料,热膨胀系数张量具有对称平面,可以定义为:
tcl
pdbSet <material> Mechanics ThExpCoeff1 <n>
pdbSet <material> Mechanics ThExpCoeff2 <n>
pdbSet <material> Mechanics ThExpCoeff3 <n>对于六方各向异性材料,前两个热膨胀系数必须相等。
9.4.5 晶格失配
锗和碳等杂质的存在可以改变晶体硅的晶格参数。这一效应在技术上有两种利用方式:
- 在外延期间引入杂质以形成应变层
- 生长衬底(通常是在标准衬底上生长的非常厚的层)以产生定制的晶格常数
大多数技术应用基于第一种用途,例如在硅衬底上生长 SiGe 源/漏区。对于应变 SiGe 外延,Sentaurus Process 自动计算并应用应变,无需用户输入。
锗在硅中的应变分布近似为:
其中 x 是 Ge 摩尔分数,计算为锗浓度除以硅晶格密度。
对于最常见的在硅衬底上生长 SiGe 层的情况,模型默认开启。对于其他合金材料系统,需要一些设置来指导 Sentaurus Process 如何计算晶格失配应变。
对于非硅衬底或底部没有硅的区域,需要使用 region 命令标记衬底区域:
tcl
region name=<c> substrate9.4.6 表面回流力
回流过程是由于粘弹性材料行为和表面张力。表面张力的效应可以用沿表面的拉伸回流力建模。在弯曲表面上,产生的力倾向于倒圆角并平滑不规则性。
此类回流力仅应用于与气体网格相邻的指定材料的所有表面元素。回流力的大小可以通过设置来指定:
tcl
pdbSetDouble <mat> Mechanics Reflow.Force <n>9.4.7 边缘位错
晶体晶格缺陷(如位错)的存在会影响通道应力状态。边缘位错的影响通过叠加弹性理论中各向同性无限介质的位错诱导应力场来包含。
每个边缘位错可以定义为:
tcl
stressdata <material> | region=<c> \
apply.dislocation \
dislocation.origin={<n> <n> <n>} \
para.orient={<n> <n> <n>} \
perp.orient={<n> <n> <n>} \
stress.relax其中:
dislocation.origin是位错核心的位置para.orient指定边缘位错的方向或半平面的方向perp.orient是垂直于半平面的 Burgers 向量stress.relax开启叠加位错诱导应力场后的应力松弛
9.4.8 本征应力
某些工艺步骤需要沉积具有固有应力的材料。Sentaurus Process 可用于对这些工艺步骤建模。固有应力(StressELXX、StressELYY、StressELZZ、StressELXY、StressELYZ、StressELZX)可以在 deposit 命令中指定。
默认情况下,松弛后所得应力将小于预设值。可以缩放预设应力,使对于平坦表面,松弛应力与预设应力相同:
tcl
pdbSet Mechanics StressRelaxFactor 19.4.9 刻蚀和沉积后的应力重新平衡
当从给定结构中移除或添加材料时,物理应力分布通常会随相应的几何和边界变化而变化。在模拟中,需要应力重新平衡步骤来重新建立结构中的应力平衡并使应力分布符合新边界。
默认情况下,在执行蚀刻或沉积后会调用应力重新平衡操作。要省略应力重新平衡步骤,请使用:
tcl
pdbSet Mechanics EtchDepoRelax 09.4.10 应力历史的自动追踪
热残余应力是给定器件结构制造历史的函数,制造历史由各个温度和温度斜坡期间的工艺步骤组成。要准确模拟应力演变,应追踪所有温度斜坡。
当开启 StressHistory 参数时:
tcl
pdbSet Mechanics StressHistory 1温度间隙被检测并填充即时应力重新平衡,求解热失配应变和应力。
9.4.11 相变导致的应力变化
要模拟相变(熔化或凝固)期间的机械应力,通常使用混合模型来平滑固-液界面上的力学效应。在此模型中,应力是相场参数 的函数, 在 0 和 1 之间变化。应力也是固相和液相两者的材料模型的函数。
要激活熔体力学应力,请使用以下参数:
tcl
pdbSet Heat Use.Melting.Laser 1
pdbSet Heat Melting.Mechanics.Method PhaseField9.5 保存应力和应变分量
默认情况下,应力张量分量在元素和节点上都保存。应变张量分量的弹性部分也默认在元素和节点上保存。
要将应力张量分解并保存膨胀和偏斜分量,请开启:
tcl
pdbSet Mechanics decomposeStress 19.5.1 输出场
Sentaurus Process 假设应力和应变在元素上定义。然而,并非所有工具都可以读取或可视化元素值。因此,Sentaurus Process 执行元素的节点应力插值作为后处理步骤,并将两种形式的应力写入输出。
元素应力具有前缀 StressEL,节点应力具有前缀 Stress。张量分量由后缀 XX、XY、YY、YZ、ZX 和 ZZ 给出。
在历史相关材料中,应力和应变之间无法创建简单的闭合形式关系。但是,计算弹性分量很有用。应变能的存储指标是弹性应变分量。
压力是应力张量迹的负三分之一:
9.5.2 主应力和主应变
主应力是作用在剪切应力为零的面上的法向应力。
要计算主应力,请使用:
tcl
pdbSet Mechanics Calculate.Principal.Stress 1结果字段为:
PrincipalStress1:第一主应力PrincipalStress2:第二主应力PrincipalStress3:第三主应力
要计算主应力方向,请使用:
tcl
pdbSetBoolean Mechanics Calculate.Principal.Direction 1类似地,主应变可以使用以下方式计算:
tcl
pdbSet Mechanics Calculate.Principal.Strain 19.5.3 追踪最大应力
在典型工艺流程中,最大应力可能在某个工艺步骤达到,随后应力可能会下降。如果材料容易通过分层或位错成核而失效,则最大应力达到时可能发生失效。
要始终追踪最大应力,请设置:
tcl
pdbSet Mechanics SaveMaxStress 19.6 最小可执行示例
以下示例用于验证应力计算环境 + 热膨胀/失配应力链路:
tcl
# ch9_min_stress.cmd
go sprocess
# 1) 定义网格线和区域
line x location=0.00 spacing=0.02 tag=top
line x location=1.00 spacing=0.05 tag=bot
line y location=0.00 spacing=0.05 tag=left
line y location=1.00 spacing=0.05 tag=right
region Silicon xlo=top xhi=bot ylo=left yhi=right substrate
# 2) 初始化结构与材料
init wafer.orient={1 0 0} notch.direction={1 1 0} slice.angle=-90
# 3) 设置各向异性弹性(硅默认)
pdbSet Silicon Mechanics Anisotropic 1
pdbSet Silicon Mechanics C11 16.57E11
pdbSet Silicon Mechanics C12 6.39E11
pdbSet Silicon Mechanics C44 7.96E11
# 4) 开启主应力/主应变计算
pdbSet Mechanics Calculate.Principal.Stress 1
pdbSet Mechanics Calculate.Principal.Strain 1
# 5) 保存初始结构(无应力)
struct tdr=out/ch9_m1_init.tdr !Gas
# 6) 执行温度斜坡(触发热失配应力)
temp_ramp name=cool t_start=1000 t_end=25 time=10
diffuse temp.ramp=cool
# 7) 保存最终结构(含应力场)
struct tdr=out/ch9_m1_final.tdr !Gas
# 8) 输出节点应力分量供检查
set fp [open "out/ch9_stress.out" w]
set y 0.5
set z 0.0
puts $fp "Stress at y=$y z=$z:"
puts $fp "Stress_xx=[select z=Stress_xx y=$y z=$z]"
puts $fp "Stress_yy=[select z=Stress_yy y=$y z=$z]"
puts $fp "Stress_zz=[select z=Stress_zz y=$y z=$z]"
puts $fp "MisesStress=[select z=MisesStress y=$y z=$z]"
close $fp
exit9.7 关键参数速查表
| 类别 | 参数/命令 | 作用 | 常见取值/示例 |
|---|---|---|---|
| 各向异性弹性 | Mechanics Anisotropic 1 | 开启立方晶体各向异性 | 用于 Si、Ge |
| 弹性常数 | Mechanics C11/C12/C44 | 刚度矩阵分量 | Si: 16.57E11/6.39E11/7.96E11 dyn/cm² |
| 粘弹性模型 | ViscoElasticity.Model | 选择 Maxwell 或 SLS | Maxwell(默认)/ SLS-Maxwell |
| 体积松弛 | Mechanics NoBulkRelax | 控制体积粘弹性响应 | 0=开启,1=关闭(默认) |
| 塑性模型 | Mechanics IsPlastic | 开启塑性材料 | pdbSet <mat> Mechanics IsPlastic 1 |
| 增量塑性 | Mechanics Plasticity.Model | 选择塑性 formulation | Incremental |
| 屈服应力 | Incremental.Plasticity.SigmaY | 单轴拉伸屈服应力 | 如 5e8 dyn/cm² |
| 温度依赖 | Parameter.Interpolation | 开关温度/摩尔分数插值 | 1=开启(默认),0=关闭 |
| 热膨胀系数 | Mechanics ThExpCoeff | CTE 设置 | Oxide: 5e-7 /K |
| 热失配控制 | !stress.relax | 关闭热应力计算 | 在 diffuse 命令中使用 |
| 平面应力 | Mechanics PlaneStress 1 | 开启平面应力分析 | 薄结构用 |
| 主应力计算 | Calculate.Principal.Stress 1 | 输出主应力场 | |
| 主应变计算 | Calculate.Principal.Strain 1 | 输出主应变场 | |
| 最大应力追踪 | SaveMaxStress 1 | 记录整个流程最大应力 | |
| 应力分解 | decomposeStress 1 | 保存膨胀/偏斜分量 | |
| 应力历史 | StressHistory 1 | 追踪温度斜坡间的应力 | |
| 晶格失配 | Mechanics Lattice.Constant.Mismatch | 开关晶格失配模型 | SiGe 默认开启 |
| 致密化 | density.increase | 设置致密化密度增量 | diffuse density.increase={oxide=0.02} |
| 固有应力 | Mechanics StressRelaxFactor 1 | 缩放预设内应力 | 1=使松弛应力等于预设值 |
9.8 常见问题与诊断步骤
问题 1:应力结果不符合预期(过大或过小)
诊断步骤:
- 检查是否正确开启了力学模型(
Anisotropic、ViscoElasticity.Model等)。 - 确认材料参数(C11/C12/C44 或 YoungsModulus/PoissRatio)设置正确。
- 验证
init中的晶向(wafer.orient、slice.angle)是否与实际工艺一致。 - 检查热膨胀系数是否合理(CTE 不匹配会导致热失配应力)。
- 确认是否使用了正确的坐标系(
math coord.ucs建议统一)。
问题 2:塑性流动不收敛或结果不稳定
诊断步骤:
- 确认
Incremental.Plasticity.SigmaY(屈服应力)设置了非零正值。 - 检查是否同时设置了各向同性硬化模量(
Hiso)或 kinematic 硬化参数(Hkin)。无硬化时数值模拟可能不稳定。 - 降低时间步长或使用
temp_ramp代替大步长diffuse。 - 检查网格质量——塑性模型对网格畸变敏感。
问题 3:粘弹性应力松弛时间尺度不正确
诊断步骤:
- 确认粘度值是否在合理范围内(Si 默认 1e40 poise 即为"弹性")。
- 检查
Viscosity0和ViscosityW是否为温度依赖设置了正确值。 - 验证
NoBulkRelax设置——默认仅偏斜分量粘弹性,体积为弹性。 - 对于 Maxwell 模型,弛豫时间 ,确认 与工艺时间尺度匹配。
问题 4:SiGe 晶格失配应变与预期不符
诊断步骤:
- 确认
region中正确定义了substrate标记。 - 检查
TopRelaxedNodeCoord是否设置在松弛层顶部的约 2/3 处。 - 对于非 SiGe 材料系统,确认
strain_profile命令已定义。 - 验证
UpdateStrain参数——掺杂再分布时晶格间距和应变会自动更新。
问题 5:2D 平面应力 vs 平面应变选择错误
诊断步骤:
- 薄结构(如膜、悬臂梁)应使用
PlaneStress 1。 - 厚结构默认使用平面应变(
PlaneStress 0)。 - 注意:不应在同一结构中混合使用两种 formulation。
问题 6:边界条件设置不当导致刚体模式
诊断步骤:
- 检查是否所有边界都定义了适当的位移约束。
- 使用
stressdata命令为特定区域/材料设置位移边界条件。 - 确认至少有一个点被完全约束(否则会出现刚体运动)。