WebCAE
← 文档

WebCAE 参考手册

WebCAE 究竟计算什么、采用何种列式、基于哪些假设。每类分析都给出控制方程、离散方法、输入参数、适用限制以及验证算例链接。每个小节都标注了成熟度状态。

产品版本: 0.2.1+更新于: 2026年10月28日
状态

1产品与手册简介

↑ 返回目录

1.1WebCAE 是什么

WebCAE 是一套全流程的有限元工程分析软件,涵盖几何准备(CAD 导入与参数化建模)、网格划分、材料、边界条件与载荷的指定、求解以及结果后处理。其主要应用领域是结构强度与动力学:实体、壳、梁及其组合。此外还支持传热、热-力耦合问题、声学和流体流动。

产品运行于两个平台,二者使用同一个计算内核:

  • 桌面应用(Windows、macOS):原生求解器,支持多线程,问题规模仅受机器内存限制;
  • 浏览器:同一内核编译为 WebAssembly;便于初步了解和运行小型模型,受限于标签页内存和单线程。

桌面原生路径被视为基准,验证数据均在该路径上取得。如果某个模型在两个平台上的结果不同,则以原生结果为准,并明确说明二者的差异(参见平台、性能与质量控制)。

1.2如何阅读本手册

本手册说明程序究竟计算什么:采用何种提法、哪些单元和方法、基于哪些假设。它不能替代有限元教科书,但其中的公式取自实现本身,而非教科书。凡实现比经典提法更简化之处,均直接注明。

各章按计算流程的顺序排列:

  1. 几何与 CAD 和 网格:计算模型从何而来。
  2. 材料模型、边界条件、载荷与约束、接触与连接:用户需要指定的内容。
  3. 有限元单元库:模型如何离散化。
  4. 线性分析类型、非线性计算与动力学、传热与多物理场:求解哪些问题以及采用何种提法。
  5. 求解器:如何求解所得到的方程组。
  6. 结果、后处理与强度评估:工程师得到什么以及如何计算。
  7. 工程、脚本与自动化、平台、性能与质量控制:如何使用以及为何可以信任结果。

小节的典型结构为:用途、提法与方程、输入与输出、实现方式、局限性、验证(指向验证算例的链接)、脚本命令示例。

1.3就绪状态

每个小节标有以下三种状态之一:

状态含义
稳定已包含在发布版本中,界面和脚本均可使用,并已通过验证算例或与解析解的比对确认。
测试版已实现,用户可用,并有自动化测试覆盖,但出现在最近一次发布之后,或仅在较窄的问题集上经过检验。
实验性原型、工程估算或仅部分覆盖的模块。尚未与独立基准进行完整比对;结果需要自行核验。

状态的标注较为审慎:若在两个状态之间犹豫,则选取更严格的一个。状态随每次发布重新评定。

1.4计量单位

求解器内部所有量均采用协调的国际单位制(SI):长度为米,力为牛顿,应力、压力和弹性模量为帕斯卡,密度为 kg/m³,温度为开尔文。求解器与量纲无关:它只求解方程组,只有输入单位协调时结果才正确。因此,单位换算只在模型与求解器之间的边界这一处进行,其他地方一概不做。

用户可独立选择两件事:

  • 载荷和属性的输入单位制:SI、公制工程单位制(mm、N、MPa)或英制;
  • 存储几何的场景长度单位;通常为毫米,与原始 CAD 一致。

结果显示时带有单位标注。手册中的公式适用于任何协调的单位制:除非另有说明,均默认采用 SI。

1.5检验与验证

关于精度的论断依据公开的验证计划:两百多个具有解析解的问题、NAFEMS 和 MacNeal–Harder 问题,以及非线性和动力学基准题。每个问题都公布了提法、基准值、所得值、偏差以及运行时所用的求解器版本。手册正文中的链接指向具体的算例;完整列表见验证页面。

验证计划中与基准值比对的容许误差为 5 %。不得为使算例通过而放宽该容许误差:超出容许误差的偏差被视为缺陷,须在计算中消除,而不是修改判据。

2几何与 CAD

↑ 返回目录

WebCAE 中的计算从几何开始:以边界表示(B-Rep)形式存在的实体、片体和线。实体可由 CAD 文件导入,可由基本体和草图构建,也可由杆件和壳面片(patch)组装而成。后续的一切——网格、边界条件、结果——都绑定在这一表示的面、边和顶点上。因此,本章不仅介绍获取几何的方式,还介绍如何引用其中的元素,以及几何发生变化时绑定关系会发生什么。

每项操作都经过统一的命令层。功能区按钮、右键菜单项和 DSL 语句执行的是同一条命令,因此用鼠标构建的内容都可以用脚本复现(语法见页面 /docs/dsl)。例外情况已在各小节中注明:中面和与 Onshape 的同步仅在界面中可用,DSL 中按路径导入文件仅在批处理模式下有效。

2.1几何内核与单位稳定

几何由开源内核 Open CASCADE Technology(OCCT 7.9)构建和检验。文档中的体可以是实体(solid)、片体(shell)、线框(wire)或点。布尔运算、倒圆角、缝合以及有效性检验均由 OCCT 完成。该内核由同一份源代码分别编译用于桌面应用和浏览器(WebAssembly)。

单位分为三层。

  • 几何以毫米为单位。基本体、草图和导入模型的坐标均为场景单位(mm)。
  • 求解器接收 SI 单位的数据(米、牛顿、帕斯卡、千克)。换算在求解器边界的同一处完成,用户不可见。
  • 脚本单位由命令 units m|mm|in 设定。它作用于不属于场景坐标的尺寸:单元尺寸 size=、加密区的半径和尺寸、过程化生成的梁、壳和点质量。构建实体的命令(box、primitive、move)的坐标不做换算,仍为场景毫米。
局限。 没有 units 命令的脚本按米制处理:其中的 mesh tet size=6 表示六米。请以 units mm 开始脚本。构建实体的命令不考虑脚本单位——这是有意为之的设计,但在混合脚本中很容易引起错误。
验证。 长度的一致性通过一个集中力算例得到检验,该算例分别以 mm/MPa/N 和 m/Pa/N 求解两次:实体悬臂梁端部集中力——长度约定核对(偏差 2.02 %)。几何与单位是目录中所有算例的基础。
units mm
box dx=20 dy=20 dz=100
list faces of body1

2.2STEP 导入稳定

STEP(AP203、AP214、AP242)是主要的交换格式。文件由 OCCT 的 STEP 读取器读取;文件中的单位换算为毫米。内容被拆分为各个体:优先为实体,若没有实体则为壳,否则整个结果作为一个体。体的名称尽可能取自 STEP 数据。大型装配体随曲面细分的进行逐步显示。

读取后,每个体都要经过有效性检验(类似 BRepCheck),模型会获得下列就绪状态之一:

  • 有效实体——可以生成体网格;
  • 有效片体——仅可使用表面网格;
  • 需要检查——装配体中部分体有问题,其余可用;
  • 不支持或读取错误——不启动计算,原因以代码给出。

如果因故未执行检验,状态会标记为未检验,而不会被当作“合格”。片体的体网格划分会被明确阻止并给出原因代码,而不是被悄悄替换成别的操作。

在界面中,可通过导入按钮或拖放到画布上加载文件。在 DSL 中,带文件路径的 import 命令在批处理(node)模式下有效;在应用内部请通过界面加载。

import "bracket.step"
list faces of body1
局限。 从 STEP 中仅导入几何和拓扑。原 CAD 系统的标注(PMI)、公差和参数化历史均不使用:实体以“死”的 B-Rep 形式进入。原始模型的质量决定结果——自相交曲面和面间间隙并不保证都能被自动修复(参见几何修复)。
验证。 没有针对导入本身的单独数值算例。导入与就绪状态分类由修复回归语料覆盖(7 项全部通过:合格实体、装配体、片体、不含 B-Rep 的文件、空文件、读取失败、结果可复现),并由真实 STEP 零件上的网格语料覆盖。

2.3IGES 与 STL 导入测试版

IGES 由 OCCT 内核读取,读取后曲面被缝合成壳,若封闭则缝合成体。在 DSL 中,格式由参数 format=iges 或文件扩展名指定。与 STEP 一样,DSL 中按路径导入在批处理模式下执行。

STL 是三角形网格,而非 B-Rep。WebCAE 可读取二进制和文本 STL,合并重合顶点,检查水密性(每条边恰好属于两个三角形),并据此将该体归为实体或片体。为了能按编号引用各面,三角形按相邻三角形之间的二面角被分割为“面”(默认阈值约为 35°);分割段的边界成为边。对这样的刻面体,体网格直接按其三角形划分。

局限。 STL 没有精确曲面:圆柱仍是多面体,圆角半径无法提取。刻面体不支持布尔运算、倒圆角、修复和参数化操作。基于 STL 的体网格质量取决于原文件中三角形的质量。OCCT 的 BREP 文件不作为独立的用户格式导入:BREP 在工程内部用作体的存储方式。
验证。 没有单独的验证算例;检验依靠解析与分割的单元测试。

2.4拓扑编号稳定

每个面、边和顶点都有一个编号。该编号与模型树中节点旁显示的编号相同,也是 DSL 所接受的地址:surface number N、edge number N、vertex number N。对于体,编号在模型树中按体排列。

编号规则:

  • 每个实体的编号只发放一次,并绑定到拓扑注册表中的稳定标识符,而不是数组中的位置;
  • 删除后编号不会被复用:计数器只增不减,以免报告或脚本中的引用开始指向另一个实体;
  • 如果某个面在操作后仍保持同一稳定标识符,其编号不变;新生成的面获得新编号;
  • 类型词(surface、edge、vertex)是必需的,并会被检查:若 27 号是顶点,则 surface number 27 会被拒绝;
  • 按外形尺寸的地址(face z-、vertex "x-,y-,z-")和裸索引不受支持,并会给出明确错误。装配体中并不存在“z- 面”,这样的地址会被悄悄指向别的实体。

可通过命令 list faces of <体> 和 list edges of <体> 获知编号:它们会打印每个面的编号、面积、形心和法线,或每条边的长度、中点和方向。

list faces of body1
fix surface number 3
load surface number 5 pressure=-1000000
局限。 在重建面的操作(布尔运算、分割、倒圆角)之后,只有以同一标识符经历该操作的面才会保留编号。如果脚本中的编号是根据此类操作之前的 list faces 结果选取的,则操作之后需要重新读取。当边界条件的绑定丢失时,该记录会保留并加以标记(参见几何修复)。
验证。 编号及脚本对其的引用是目录中所有以 fix surface number N 形式设置条件的算例的基础,例如带孔平板和加筋 B-Rep 面板。

2.5基本体、布尔运算与变换稳定

体的基本操作集合:

  • 基本体:box、cylinder、sphere、cone、torus、wedge、pipe、hollowBox、半球(primitive <形状> 参数);
  • 布尔运算 boolean union|cut|intersect target= tool=、缝合与合并(sew、union);
  • 边的倒圆角与倒角(fillet、chamfer),指定厚度的抽壳(hollow);
  • 变换:move、rotate、mirror、scale,线性和圆形阵列(pattern);
  • 按轮廓构建:sketch(按点构成的轮廓)、extrude、revolve、sweep、loft;
  • 面的直接编辑:偏移(offset_face、pull)、移动(move_face)和拔模(draft_face)。

布尔运算借助 OCCT 构建并保留历史:内核会报告哪些面被修改、生成或删除,编号和绑定关系依据这一历史迁移。

units mm
box dx=60 dy=40 dz=10
primitive cylinder r=8 h=10
boolean cut target=body1 tool=body2
局限。 面的直接编辑适用于简单情形(平面和圆柱面);产品中没有“拖动任意面并自动重建相邻面”的通用功能。直接建模没有专门的验证算例。
验证。 几乎所有算例的几何都用到了基本体和布尔运算;专门针对装配体的算例为接触:不匹配网格。

2.6参数化 CAD 模型测试版

参数化模型保存的不是体,而是配方:先是草图,然后是对它的各项操作。修改草图或尺寸会重新计算整个链条,并就地替换该体——它保留名称、颜色和编号。

草图位于某个平面(xy、xz、yz、参考平面或某个面)上,使用以毫米为单位的局部坐标 (u, v)。草图实体包括:折线和矩形、圆、圆弧。对草图的操作有:extrude(添加、切除或新建体)、revolve、沿路径草图的 sweep、按截面的 loft、thread(螺纹——装饰性或几何性)。支持草图编辑:移动、旋转、镜像、轮廓偏移、修剪与延伸。

草图约束包括点重合、水平、竖直、平行、垂直、共线、相等、同心、中点、对称、相切、固定和尺寸(距离、角度、半径、直径)。尺寸可以命名,并可按编号修改。

约束求解器将约束归结为关于草图坐标的残差 \mathbf{r}(\mathbf{x}),并用带数值雅可比矩阵 \mathbf{J} 的 Levenberg–Marquardt 方法最小化 \tfrac{1}{2}\lVert \mathbf{r}\rVert^{2}:

\left(\mathbf{J}^{\mathsf T}\mathbf{J} + \lambda\,\mathbf{D}\right)\boldsymbol{\delta} = -\mathbf{J}^{\mathsf T}\mathbf{r}

草图的自由度数为 n_{\text{dof}} = n_{\text{var}} - \operatorname{rank}(\mathbf{J})。按秩确定的方法在存在重复约束时同样正确,而此时“变量数减方程数”会给出负数。草图会被判定为完全约束、欠约束(给出自由度数)或过约束(列出相互冲突的约束)。如果方程组无法求解,草图几何不会被部分修改。

界面:参数化操作面板(FeaturePanel)、功能区的“操作”组、模型树中的分支。DSL:命令 cad,其子命令有 sketch、extrude、revolve、sweep、loft、thread、constraint、dimension、solve、recompute、move、rotate、mirror、offset、trim、extend。

cad sketch plane=xy points=0,0,40,0,40,20,0,20 id=sketch1
cad extrude sketch=sketch1 distance=10
cad recompute
局限。 草图和操作保存在工程中,但原 CAD 系统看不到这一历史:不能与其他软件交换参数化历史。DSL 中的草图标识符不得含连字符,含西里尔字母的文本值须加引号——否则词法分析器会把连字符当作减号。具有数百个约束的复杂草图未针对数值雅可比矩阵做过优化。
验证。 目录中没有数值算例:各项操作通过体积、雅可比矩阵的秩、重新计算的可重复性以及保存到工程的测试得到检验。因此状态标注较为审慎。

2.7几何修复与 auto-fix测试版

导入的模型往往不适合划分网格:面间间隙、退化边、小倒角以及比单元更小的孔。WebCAE 区分三种操作。

  1. 导入时修复。 一组受预算限制的阶段:壳的缝合、用 OCCT 工具修正形状(ShapeFix)、共面与共轴面的合并(UnifySameDomain)、将封闭壳装配成体。结果会检验有效性,对同一输入重复运行会得到相同的形状。
  2. 网格划分前的 auto-fix。 作用于副本。无论结果如何,原体、模型树和原始 STEP 都不会被改动。小特征(短边、小面、窄条(sliver)、小于单元的孔和圆角)会被填平,使网格划分器不必为它们加密网格。阈值与用户指定的单元尺寸挂钩,而不是绝对的毫米值。每个阶段都必须证明情况没有变坏:结果有效、体的数量未变、体积偏离不超过允许值。否则该阶段回滚,原因写入报告。
  3. 显式命令。 defeature <体> maxHoleRadius= maxFaceArea= 按您给定的阈值删除孔和面;repair <体> [merge] [heal] tolerance= 以给定公差合并接缝并修复间隙;simplify 按体积和对角线阈值舍弃装配体中的小体;shrinkwrap 构建装配体的外壳。自动模式由命令 autofix on|off 开启和关闭;autofix element=<mm> 打印针对给定单元尺寸的报告。

边界条件不会被悄悄丢失。 如果 auto-fix 的某个阶段会移除与边界条件相关联的面,该阶段就会回滚到较温和的配置。如果绑定仍然丢失(编辑几何、重新导入),边界条件记录会保留在模型中并被标记为孤立,报告则逐一列出这些记录。在绑定恢复之前,带有孤立条件的计算不会启动:缺少所需面的网格看起来像是一次成功的计算,但求解的是另一个问题。

autofix on element=2
defeature body1 maxHoleRadius=1.5
repair body1 merge heal tolerance=0.01
局限。 Auto-fix 提高了网格划分成功的概率,但并不能“修好 CAD”:曲面自相交和严重破碎的壳仍需在原系统中修改。去除特征会改变模型——在计算圆角处的应力集中之前,不能用同样的方法“修复”该圆角。
验证。 修复语料:7 个场景全部通过,结果哈希的可重复性已得到确认。目录中没有针对修复的数值验证算例。

2.8压印与分割稳定

压印(imprint)把一条线或一个平面投到面上并沿其切分该面;B-Rep 中出现内部边和带有各自编号的新面。这是在片体上获得桁条与框线、载荷作用区或固定区而不改变体体积的主要方法。压印边成为网格线,因此布置在其上的杆件与壳共用节点。

命令的变体:

  • imprint <体> points=x,y,z,…——沿给定方向或沿法线(project=)投影到片体上的折线;
  • imprint <体> plane point=x,y,z normal=x,y,z——用平面截取片体或实体;
  • imprint <体 A> <体 B>——两个体相互压印(在接触面上形成公共痕迹);
  • split target=<体> plane=<名称> 或 point= normal=——将体分割为独立的部分。

参数 fuzzy= 以脚本单位给出操作的公差。

units mm
imprint body1 points=-10,100,0, 2010,100,0
list edges of body1
局限。 将折线压印到曲面上取决于投影方向:对于沿圆柱蒙皮的加强筋,需要显式给定方向。
验证。 带 9 条压印线的加筋 B-Rep 面板——九次连续压印,30 个面和共用节点上的 49 根 T 形杆;固支板的挠度与 Timoshenko 解相差 2.55 %。

2.9多体装配测试版

装配体是同一文档中的一组体。体可以隐藏、抑制(排除出计算)、平移和旋转。体的相交通过测量其公共部分的体积来判定。相接触的体可以粘合为统一的模型,也可以保持分离并使用接触。粘合时,WebCAE 用布尔运算(fragment)对齐公共面的拓扑;对于过盈配合存在真实体积相交的情形,提供三种模式:切除(体积归较小的体)、分割为若干部分,或保持原样(此时过盈处的材料被计算两次,并给出警告)。筛选配对的公差与布尔运算本身的公差分别设定。

计算之前会检查装配体网格的连通性:“全部粘合”未能连接的体(没有接触)会形成没有约束的独立块,对它们的线性计算会发散。这类情况在进入求解器之前即被捕获。网格粘合的详情见章节“网格”。

局限。 粘合只在体确实在公差范围内相接触或重叠的地方对齐拓扑。大于公差的间隙仍然是间隙:体之间的桥接需要接触或约束。
验证。 装配体语料由接触和不匹配网格的算例覆盖,例如接触:不匹配网格。没有针对粘合的单独数值算例。

2.10中面实验性

对于薄壁零件,实体模型是多余的:2 mm 厚的板用壳来计算更方便。“中面”操作(仅限界面,位于几何操作面板)会寻找近似平行的面对,其间距落在给定的厚度范围内,并在它们之间构建片体。可找到平面对和圆柱面对;在角部汇合的区域通过把自由边拉向交接平面来封闭。找到的面对厚度会输出在片体的名称中;壳截面厚度(section shell t=)需要另行指定。

局限。 该方法覆盖等厚度的平面和圆柱壁。变厚度、圆锥、球面和自由曲面不做处理。多个中面以一定角度汇合的节点需要检查:不封闭的接缝会以警告形式报告。没有独立的基准核对结果,也没有 DSL 命令。
验证。 没有验证算例;由合成体上的单元测试确认。

2.11框架、梁与壳面片稳定

对于桁架、框架和加筋壳,WebCAE 绕过实体,直接构建计算模型。有两种方式。

参数化框架 frame。 节点和杆件按创建顺序从 1 开始编号。杆件是 Timoshenko 梁,截面取自截面库或由尺寸给定(矩形、圆形、管、工字钢、槽钢、角钢、T 形、箱形);可以在杆件另一端指定不同截面(锥形)并在两端设置铰。壳由四边形单元组成的面片给出:平面四边形(geom=quad)、圆柱或圆锥(geom=cyl)、两条折线之间的直纹面(geom=ruled)或显式的点网格(geom=points)。面片节点在公差范围内与已有节点重合,因此壳和杆件共用节点。加强筋通过命令 frame stiffen 沿面片的网格线添加。

B-Rep 边上的梁。 assign beam edges=… section=rect w= h= flush=outer|inner [ecc=] 将 Timoshenko 杆布置在片体所选的边上(包括压印边)。参数 flush 将边贴近蒙皮的外表面或内表面,ecc 沿法线偏移杆轴。偏移在运动学上予以考虑,因此有效刚度包含 Steiner 定理(平行轴定理)项 I = I_{0} + A\,e^{2}(其中 e 为杆轴到蒙皮中面的距离),而不只是截面自身的惯性矩。

用户得到的是:杆件与壳通过公共节点连接的模型,而不是近似的刚性约束。可进行的计算有静力、模态和屈曲分析;对于自由体的模态分析(船体、飞机),提供不检查机构的模式,其中第一到第六阶振型是刚体模态。

units mm
frame node at=0,0,0
frame node at=1000,0,0
frame member 1 2 section=rect w=20 h=40
frame support node=1 dofs=all
frame load node=2 force=0,0,-500
frame solve static
局限。 模态分析的振型数受平台限制:浏览器中最多 15 阶,桌面应用中最多 100 阶;超出上限的请求会被拒绝,而不是悄悄截断。壳应力在四边形单元的中心输出,应力集中处的峰值被低估。面片的缝合通过命令 frame probe shellcheck 按文档检查:未合并的重复节点和 T 形接头的数量必须为零,否则结构是断开的。
验证。 十个“梁与壳”算例:带压印的加筋 B-Rep 面板(2.55 %)、Steiner 定理,矩形肋(0.07 %)、Steiner 定理,T 形桁条(0.09 %)、带 96 根共用节点桁条的机身舱段增压(0.01 %)、加筋舱段的弯曲与扭转(1.46 %)、舱段模态分析(1.63 %)。

2.12与 Onshape 同步测试版

应用连接到 Onshape 文档(OAuth 2.0 授权),获取带版本信息(microversion)的 STEP 格式模型,并按普通导入的方式加载。再次同步会用新版本替换已导入的体,并尝试把边界条件、载荷、约束和接触迁移到改变后的几何上。

迁移依靠几何匹配进行:对旧模型中的每个面、边和顶点,在新模型中寻找位置、方向和尺寸上最接近的实体。找不到可靠对应关系的记录不会被删除:它们会返回到“需要检查”列表中,最终消息会给出已迁移和未迁移条件的数量。对新几何的引用只使用文档编号。

局限。 匹配是启发式的:如果某个面在编辑中被拆分、合并或明显移位,可能找不到对应关系,或选错对应关系。同步之后,请查看需要检查的记录列表,并检查改动过的面上的载荷。同步仅在界面中可用,没有 DSL 命令。也不会回写到 Onshape。
验证。 没有验证算例;迁移由针对合成几何改动的单元测试覆盖。

2.13FreeCAD 连接器实验性

FreeCAD 的附加组件添加了命令“Analyze in WebCAE”。它将所选的体或文档中所有可见的体导出为 STEP,并在 WebCAE 中打开:在浏览器中或通过专用链接在桌面应用中打开。传输是单向且一次性的。

局限。 这是一次性的几何传递,而不是同步:在 FreeCAD 中修改模型后需要重新导出,边界条件不会随之迁移。该附加组件通过复制到 FreeCAD 的模块目录(Mod)进行安装;尚未确认已发布到 FreeCAD Addon Manager 目录。没有与运行中的 FreeCAD 联动的自动化测试。
验证。 没有验证算例;导出的 Python 代码通过桩(stub)进行检验,应用的接收部分通过单元测试检验。

2.14网格的导入与导出实验性

现成的网格可以取自外部程序,也可以输出到外部。支持 Abaqus(.inp)、Gmsh(.msh;导出为 2.2 格式)和 Nastran(.bdf、.nas)。除网格外,还可导出变形后的表面和拓扑优化的等值面(STL、STEP)。

  • “工程”菜单导出带有体(SOLID_<k>)和表面(SURF_<N>,即 surface number N)的网格,并可将其导入回来。文件中的坐标采用 SI 单位(米)。
  • DSL:import mesh file="model.inp" 和 export mesh file="out.msh" [deformed] [scale=k]。DSL 中的网格导入只读取节点和四面体,不含体和表面;导出时坐标以场景单位(mm)写出,不做换算。
import mesh file="part.inp"
export mesh file="part_out.bdf"
局限。 导入只接受线性四面体:十节点四面体(C3D10、Tet10)按四节点读入,中间节点被舍弃;六面体、棱柱和壳不会被读取。不同路径(菜单与 DSL)使用不同的长度单位。STEP 导出是由三角形构成的刻面壳,而不是带解析曲面的 B-Rep,适合查看而不适合编辑。与 Abaqus、Gmsh 和 Nastran 的互操作未在第三方程序上检验过。
验证。 导入后再导出的往返过程由 WebCAE 内部的单元测试检验;没有与独立软件包的比对。

网格将 B-Rep 几何转化为有限单元。WebCAE 为任意实体生成四面体(tet4、tet10);在几何允许之处生成六面体、棱柱(楔形)和棱锥;在片体上生成四边形和三角形壳单元;沿线生成梁单元。单元类型及其公式见页面 /docs/elements;本章介绍网格如何生成、由什么控制,以及如何评价其质量与充分性。

网格划分在两种环境中运行:桌面应用(原生网格划分器进程)和浏览器(WebAssembly)。二者由同一份源代码构建,但对同一几何,结果的单元数和质量可能不同。以原生路径为基准;Web 版仅供参考。某些功能只在桌面版中提供(边界层、不受限制的大型装配体网格划分)——各小节中均有说明。

3.1四面体网格划分器稳定

四面体由开源网格划分器 Netgen 6.2 在 OCCT 几何之上生成。表面网格建立在 B-Rep 的面上,体网格则采用 Delaunay 方法,辅以推进波前法补充,随后优化单元形状(交换、光顺);方法的详细描述见 Schöberl J., NETGEN: An advancing front 2D/3D-mesh generator based on abstract rules, Computing and Visualization in Science, 1997。网格是协调的:两个面的公共边界上,节点重合。

生成的结果:

  • 一阶(tet4)或二阶(tet10)的节点和四面体;
  • 每个单元的区域(体编号),以便按体指定材料;
  • 边界三角形,每个都带有其所属 B-Rep 面的编号。因此以 surface number N 形式给出的条件在网格重建后依然有效:它们绑定在面上,而不是节点上。

用户可设定尺寸、过渡平滑度(grading)、曲率密度(safety)、最小尺寸和单元阶次(尺寸控制)。有三种质量档位:“草稿”(快速粗网格,不做优化,一阶)、“标准”和“最终”(面向正式计算的完整优化)。

如果网格未能生成,或质量不合格,网格划分器会用修改后的参数重试。这一过程绝不会悄悄进行:应用会显示横幅,说明哪些体是在被修改的设置下划分的,哪些比所要求的尺寸更粗,以及原因(档位、密度或浏览器限制)。未能划分网格的体会单独列出,仅在您同意后才被排除出计算。

可通过“取消”按钮或命令 mesh cancel 中断生成。对于装配体,已有的部分结果(已划分好的体)会保留。

units mm
box dx=60 dy=30 dz=10
mesh tet size=3 order=1
局限。 Netgen 不保证在任意几何上的网格质量:原始模型中的薄片(sliver)、间隙和自相交会产生质量差的单元或导致失败。原生与 Web 平台上的结果可能不同;以原生为基准。片体和线框体不能划分体网格:对它们有表面网格。
验证。 四面体网格是目录中几乎所有算例的基础。直接使用 P1 四面体的有:厚壁圆筒的 Lamé 问题(mesh tet size=5,0.48 %)、杆的纵向响应(0.03 %)、带孔平板(四分之一模型对整体模型,1.38 %)。

3.2P1 与 P2 单元阶次稳定

线性四面体 tet4 在单元内给出常应变,在弯曲和近不可压缩材料中会“闭锁”。二次 tet10 有十个节点(四个角点和六个棱边中点),应变线性变化,且棱边和面可以是曲线形的。在同一网格上,tet10 通常明显比 tet4 精确;代价是节点数,对于典型的四面体网格,节点数约增加 7–8 倍。

P2 网格分两步生成。网格划分器先生成 P1 网格,然后添加棱边中点,并把其中位于边界上的点移到 CAD 曲面上:单元的棱边和面由此具有原始几何的曲率。之后检查每个单元的雅可比是否为正。tet10 映射的行列式恰为三次多项式,因此把它按四面体上的 3 次 Bernstein 基展开:若 20 个系数符号全部相同,则雅可比在单元的整个区域内为正(Johnen A., Remacle J.-F., Geuzaine C., Geometrical validity of curvilinear finite elements, J. Comput. Phys., 2013)。对于条件被违反的单元,中间节点会局部拉直,网格仍可用于计算。该判据是充分而非必要的:拉直也可能在原本可接受的单元上触发。

阶次可通过命令 mesh 的参数 order=1|2 全局设定,或通过网格面板中的“线性/二次”开关设定。对于六面体,阶次由同一开关设定:生成 hex8 之后,中间节点在直棱边上放在中点,在曲棱边上则放在基本体的表面上(hex20)。混合网格中的棱柱和棱锥保持一阶;二次混合网格被禁用(明确拒绝,参见混合区域)。

units mm
mesh tet size=4 order=2
局限。 装配体的渐进式网格(各体分别划分)采用线性单元生成:若要 P2,请单独划分一个体,或将整个装配体划分为统一的粘合网格。P2 的有效性依据几何的角点和中间节点检验,但并不保证其他公式在每个积分点处的雅可比都为正。
验证。 悬臂梁的谐响应,P2 Tet10(0.23 %)与杆的纵向响应,P1 Tet4(0.03 %)的对比;Kirsch 问题中由 P1 过渡到 P2 的子模型(−3.57 %,K_t = 3.08)。

3.3局部单元阶次测试版

零件可以用 tet4 计算,而只在需要的区域保留二次单元。此时尺寸 h 和阶次 p 仍是相互独立的设置:区域 refine zone … order=2 在与球相交的单元中保留 tet10,外加一层过渡单元,区域之外则保留 tet4。

为使位移场保持连续,在 P2 单元与相邻 tet4 的公共棱边上,棱边中点通过约束方程与其两个端点关联:

u_{\text{m}} = \tfrac{1}{2}\left(u_{a} + u_{b}\right)

其中 u_{a}、u_{b} 为棱边两个角点的位移,u_{\text{m}} 为其中间节点的位移。该约束恰好在区域边界上消除二次项,并作为普通约束方程提交给求解器。

units mm
mesh tet size=6 order=1
refine zone at=30,15,5 radius=8 size=1.5 order=2
局限。 网格划分器对整个零件生成棱边中点,因此划分时间和内存与全局 P2 相同。节省只出现在求解器中:被舍弃的中点不进入矩阵。区域选择器是球;按面或按曲率选择尚未实现。空区域(球与零件不相交)不算成功,系统会报告这一点。
验证。 由单元分类和界面约束的单元测试覆盖;目录中没有单独的算例。

3.4单元尺寸控制稳定

单元尺寸可同时由多个来源设定,最终结果不由优先级决定,而取最小值。在点 \mathbf{p} 处,网格划分器得到

h(\mathbf{p}) = \min\left\{\, h_{\text{glob}},\; h_{\text{face}},\; \frac{R}{s},\; h_{\text{zone},k} \,\right\}, \qquad h_{\text{min}} \le h(\mathbf{p}) \le h_{\text{max}}

其中 h_{\text{glob}} 为全局尺寸,h_{\text{face}} 为面上设定的尺寸,R 为局部曲率半径,s 为曲率密度参数(safety),h_{\text{zone},k} 为覆盖该点的各加密区尺寸,h_{\text{min}} 和 h_{\text{max}} 为尺寸的下限和上限。有几个容易误解的推论:面上的尺寸并不比区域“更重要”(在区域内取较小者),而且没有任何输入能使结果比全局尺寸更粗。

参数:

  • 全局尺寸——以毫米给出,或按特征尺寸 L 取预设:“草稿”为 L/10,“标准”为 L/20,“精细”为 L/40;
  • safety s——曲率密度 h \le R/s,范围 0.3–6,默认 1.5。s 越小,圆角和孔处的网格越粗。当尺寸由曲率而非滑块决定时,这是唯一的调节手段:界面会显示有多少个面受曲率限制,并预测单元数;
  • grading——从细单元到粗单元的过渡平滑度;越小越平滑;
  • 最小尺寸——下限;0 表示自动(取最大尺寸的一定比例);
  • 体、面、边、顶点上的尺寸——“单元尺寸”和“局部尺寸”选项卡;在 DSL 中是绑定到 surface number N 的区域;
  • 加密区——球(中心、半径、尺寸),refine zone at=x,y,z radius=r size=h。对于局部六面体层,有圆柱、孔周围的环、长方体、圆角和环面区域(参见混合区域);
  • 清除区域——refine clear。

“尺寸场”模式按有效单元尺寸为各体着色,并显示由哪个来源决定了它,以及是否触及下限。在质量直方图上可选取最差的单元,并在它们接触到的那些 CAD 面上设置局部尺寸(“细化区域”)。

units mm
mesh tet size=5 safety=1.2
refine zone at=50,20,0 radius=15 size=1.5
refine clear
局限。 DSL 中的尺寸以脚本单位给出:没有 units 时是米(参见单位)。边和顶点上的尺寸实现为围绕它们的局部加密,而不是对边上单元长度的硬性指定。尺寸下限可能使所要求的尺寸无法生成;界面会报告这一点并给出最终尺寸。
验证。 目录中没有专门检验最小值规则的算例;它由单元测试检验。加密区在以下算例中发挥作用:混合网格:带孔平板(mesh tet size=12 加局部层)和 Kirsch 问题中的子模型。

3.5边界层实验性

对于近壁区域(流体动力学、薄接触层),需要沿壁面的棱柱层。层由层数 n、增长系数 q(范围 1–5)和第一层厚度 h_{1} 给定。总厚度是等比级数之和:

t = h_{1}\,\frac{q^{n}-1}{q-1}, \qquad t = n\,h_{1} \;\;(q = 1)

界面(“边界层”面板)显示这一总厚度。层由 Netgen 在选定的面上生成;在计算网格中,棱柱被剖分为四面体。层在桌面应用的界面中设定;同样的参数可通过内置 JS 控制台使用。

局限。 边界层仅存在于桌面应用中。在浏览器中,层面板不生成棱柱,而是把所要求的第一层厚度作为选定面上的局部单元尺寸,并在网格划分器的备注中如实说明;带层参数(inflate=、layers=、ratio=、first=)的 DSL 命令 mesh 会拒绝执行:不能把各向同性加密冒充边界层。该功能较新,没有独立验证;界面中也如此标注。
验证。 没有针对层本身的验证算例。

3.6网格质量指标测试版

对于四面体,应用计算三组量。

单元形状(“网格质量”面板)。 棱边比 \mathrm{ER} = \ell_{\max}/\ell_{\min},取自四面体的六条棱边。直方图按 q = 1/\mathrm{ER} 在 0 到 1 之间分为十个区间;鼠标悬停在柱上会在画布上高亮对应单元,点击则只保留这些单元。

归一化雅可比(SICN)。 在网格档案中,该字段称为 SICN(signed inverse condition number,带符号逆条件数),容差阈值与它比较。实际上,网格划分器对四面体计算的是从其第一个顶点出发的各棱边的归一化行列式:

q_{J} = \frac{\lvert \det\left[\mathbf{e}_{1}\;\mathbf{e}_{2}\;\mathbf{e}_{3}\right]\rvert}{\lVert\mathbf{e}_{1}\rVert\,\lVert\mathbf{e}_{2}\rVert\,\lVert\mathbf{e}_{3}\rVert}

正四面体给出 q_{J} = 1/\sqrt{2} \approx 0.71,由相互正交棱边构成的直角角点给出 1。这不是文献中 SICN 的完整定义(按该定义,正四面体给出 1):该量按一个角点计算,适用于 WebCAE 内部的网格比较,但不适合与其他软件的数值对照。行列式符号与网格中占多数的符号不同的单元被视为翻转;行列式为零则为退化。

容差。 接受阈值 q_{J,\min} \ge 0.1 的应用方式如下:

  • 接受——没有翻转和退化的单元,\min q_{J} \ge 0.1;
  • 警告——雅可比处处为正,但 \min q_{J} < 0.1(薄片):允许计算,并给出可能不可靠的提示;
  • 拒绝——存在翻转或退化的单元,或网格为空:计算被阻止;
  • 网格的不连通块(装配体散开)无条件阻止计算:刚度矩阵奇异。

对于六面体,阈值相同,度量为单元八个角点上缩放雅可比的最小值(Verdict 的定义);不允许出现非正值。对于 tet10,有效性依据 Bernstein 系数判定(参见单元阶次)。

线性 hex8 在弯曲时会闭锁:当厚度方向上的单元数较少时,挠度偏小,界面会在网格旁给出此类警告。

局限。 0.1 的阈值是对粗略形状度量的把关,而不是精度的证明:网格可能通过容差检验但仍然过粗。判断精度请使用收敛性研究。质量指标由网格划分器计算,在原生与 Web 平台上可能不同。
验证。 该指标已在合成网格(翻转、退化、正则单元)上通过测试检验。没有与独立 SICN 实现的比对,因此状态标注较为审慎。

3.7体六面体网格测试版

结构化六面体给出规则的网格,厚度方向的单元数可预测,但并非对每个体都能自动生成。应用按由易到难的顺序尝试各条路线,失败时如实退回到四面体。

  1. 结构化基本体。 长方体、圆柱(O-grid 拓扑:中心的方形块和四个极向块)、球、截锥、半球:超限插值(transfinite interpolation),mesh hex nx=… ny=… nz=…。
  2. 拉伸。 体被判定为棱柱形(“2.5D”):带孔的截面沿某一方向拉伸;允许旋转体。
  3. 分解。 体被分割为棱柱,每个棱柱的截面是一个四边形块;协调各界面,然后在每个块中生成结构化六面体网格并缝合节点。
  4. 失败。 如果没有任何路线给出可接受的网格,则生成四面体网格,并以代码输出原因:不存在悄悄的替换。

生成的六面体网格在使用前要通过验收:网格体积与体的精确体积核对,自由面必须位于 B-Rep 边界上,网格必须是单一连通分量,没有悬挂节点,也没有被三个及以上单元共用的面,八个角点上缩放雅可比的最小值不低于质量阈值(0.1)。未通过验收的网格不会进入计算。

在桌面应用中,如果已安装,还可使用外部生成器:HOHQMesh(等厚平面零件)和 SALOME 的块方法 HexaBlock。在“自动”模式下,它们按“结构化拉伸 → HexaBlock → 四面体”的链条接入。

units mm
box dx=60 dy=30 dz=10
mesh hex size=5
局限。 自动六面体网格对棱柱形和正交的体是可靠的。在九个工业 STEP 零件上的实测中,分解在任何尺寸下都没有通过验收,因此对于一般的铸造和铣削零件,请使用 mesh tet 和局部六面体区域。在 DSL 中,mesh hex size=… 之后支持在已接受的六面体网格上对单个体进行静力分析(脚本路径下的计算在 WebAssembly 求解器上进行);多个体、同一脚本中的局部六面体区域、模态分析、屈曲和热分析在这种网格上均不支持。命令 mesh hex decompose 只生成网格并打印报告。六面体网格在浏览器和桌面版中使用同一份代码生成(没有网格划分器的原生版本)。
验证。 验收与质量——对真实体的测试。对六面体单元的数值检验见下面的混合网格算例。

3.8局部六面体区域与混合网格测试版

当某一处需要六面体层(孔边、轴颈、接触垫片)时,其余部分保持为四面体。区域相对于选定的面或体给出,其余参数为层数、级数和耦合方式。

区域类型:

  • refine tube surface number N thickness=t——沿圆柱面的层(孔边、轴颈);
  • refine inflate surface number N thickness=t——沿平面或球面的层(接触垫片);
  • refine box at=… dx= dy= dz=——体内部的长方体,用结构化六面体填充(clip=on 时按边界裁剪);
  • refine sweep surface number A to surface number B——同一个体的两个平行平面之间的棱柱。

层参数:layers(1–12)、bias——从壁面起的厚度级数系数(1–3)、elements=wedge|hex——层的单元类型、conform=weld|mpc——耦合方式。

界面协调性。 六面体四边形面的双线性迹与同一面上两个四面体的分段线性迹并不一致,因此把 hex8 直接与 tet4 粘合无法通过片试验(patch test)。默认情况下,层由棱柱(wedge6)构成:界面上每个三角形之上的棱柱,按构造即与四面体协调。当 elements=hex 时,过渡由棱锥(pyr5)完成:hex8 的界面单元向其自身中心剖分为棱锥,而在四面体一侧的面上,棱锥由两个具有相同对角线的四面体替代。方式 conform=mpc 生成独立的层,并通过节点约束方程将其与四面体相连。

混合网格在片试验中实测的吻合度(位移的最大相对误差):棱柱与四面体粘合——约 10^{-14}(Web 平台);hex8 与两个 tet4 直接粘合——3.1 \times 10^{-3}(原生);hex8 → pyr5 → tet4 过渡——9 \times 10^{-15}(原生)。不同平台的数值不混用。

对于 Kirsch 问题(带孔平板),孔边采用棱柱的混合网格,在 1635–4473 个自由度下,\sigma_{\theta} 最大值的误差在 0.1–0.9 % 之内,沿孔弧线的均方根误差为 0.7–1.2 %。纯四面体网格在 1374–12828 个自由度下,峰值误差在 −17…+4 % 之间波动,沿弧线的均方根误差不低于 5.3 %。

units mm
refine tube surface number 12 thickness=3 layers=3 bias=1.2
refine sweep surface number 1 to surface number 2 layers=4
局限。 混合网格由一阶单元(hex8、wedge6、pyr5、tet4)构成。二次变体(hex20 + tet10)未开放:在其上的计算会明确拒绝。支持带力、给定位移和约束的静力分析(线性和几何非线性);在带六面体区域的网格上,其他分析类型会拒绝并给出消息。elements=hex 的接头需要过渡棱锥;hex8 直接与 tet4 粘合的旧文件不允许重新计算——必须重新生成网格。

3.9装配体与接触对的网格测试版

装配体有两个相反的任务。固定连接的体(焊接、胶接、过盈配合)必须在接合处共用节点——否则刚度矩阵会分裂为互不相连的块。可能分离或滑动的体(接触)则独立划分网格,接合处由求解器的接触算法保证。

粘合(bonding=1)。 相接触的体作为一个协调的模型划分网格:公共面按构造即共用节点。模式有:全部粘合、粘合选定的组、不粘合(bonding=0)。对于接触、公差范围内的间隙和重叠,会执行专门的布尔运算;筛选配对的公差(bondtol=)与运算本身的公差(fuzzy=)分别设定。接合处模式 glue=auto|contact|full:按接触的快速粘合、完整的相交搜索,或自动选择。重叠由参数 interference=cut|split|ignore 处理:把体积交给较小的体(默认)、将相交部分碎分(体积精确,但过盈配合的碎片可能是薄膜),或保持原样(过盈处的材料被计算两次)。

接触对。 彼此没有粘合的体各自单独划分网格;接触面上的节点不必重合。计算之前会检查界面是否就绪:接触区域可能已塌缩为同一个区域,没有找到配对,间隙过大,或者粘合的配对不协调。每种此类结果都会明确报告。

并行网格划分。 分别划分网格时,各体独立且并行生成,进度按体显示,结果汇集为一个网格。如果某个体在原生模式下未能划分,可以由内置的 Web 网格划分器补划;应用会警告此类网格可能略有不同。粘合时,装配体作为统一的模型划分。

对现成网格的缝合。 命令 weld [tol=] 和“缝合”面板在公差范围内合并已生成网格中重合的节点(0 表示自动,取外形对角线的一小部分)。这是节点的缝合而不是几何的缝合:适用于有意拼合的壳面片。

units mm
mesh tet size=8 bonding=1 glue=auto interference=cut
局限。 粘合不会桥接超过公差的间隙,也不会猜测意图:不连通的网格块会阻止计算。在 interference=split 下,过盈配合区域的小薄片可能使网格划分失败。单个体上的 safety 尺寸仅在各体分别划分时生效。浏览器中大型装配体的网格划分受标签页内存限制,因此那里的设置是固定的;对于重型装配体,请使用桌面应用。
验证。 接触:不匹配网格,守恒性(界面 1:1、2:3、3:5,主/从表面互换)、损伤:采用不匹配网格的 DCB(0.09 %),没有针对粘合的单独数值算例。

3.10壳与梁的网格测试版

壳。 片体(B-Rep shell)划分为表面网格:mesh shell size=h element=tri|quad。三角形在每个面的参数空间中生成——沿面的轮廓做约束 Delaunay 三角剖分,并投影到曲面上。四边形按“1 → 3”方案由三角形得到:每个三角形通过形心和棱边中点分为三个四边形。棱边中点由相邻单元共用,因此网格在面的接缝处是协调的,且无论三角形有多少,单元全部为四边形。四边形的棱边长度为原三角形棱边长度的 0.29 到 0.5,所以原始三角剖分要生成得明显更粗。

对于边为直线的四边形面(箱体、板),参数 pattern=structured(与 element=quad 一起)用 Coons 超限混合生成结构化网格,各棱边的分段数相互协调。如果形体中有不适用的面(孔、圆弧),命令会拒绝并给出该面的编号,而不是混合不相容的网格。

梁。 梁网格沿选定的线(B-Rep 的棱边)生成:给定单元数或尺寸;将梁布置到棱边上时,会与相邻的壳形成共用节点(框架与梁)。装配体的单元在计算步骤中编译。

units mm
mesh shell size=10 element=quad
assign beam edges=3,7 section=rect w=10 h=30 flush=outer
局限。 “1 → 3”方案的新节点位于三角形的弦上而不是曲面上,因此在曲面上会增加量级为 h^{2}/(8R) 的误差(平面上的结果是精确的)。将三角形两两合并为四边形、并留下悬挂节点的方案不用于壳的计算:带悬挂节点的网格会沿棱边把壳切开。片体不能划分体网格。
验证。 加筋 B-Rep 面板(片体的四边形网格,共用节点上有 49 根梁,2.55 %)、Kirchhoff–Mindlin 圆板(结构化四边形网格 mesh shell element=quad pattern=structured,0.09 %)。固支板对照 Timoshenko 解的测试,在四边形网格上,对应 25、12、10 和 6 mm 的尺寸,偏差分别为 −2.2、−0.8、−0.35 和 +0.35 %。

3.11Zienkiewicz–Zhu 误差指示器与自适应加密测试版

应力最大值无法区分真实的应力集中(孔、过渡圆角)与粗网格造成的假象。为此使用 Zienkiewicz–Zhu 误差指示器。有限元应力场 \boldsymbol{\sigma}_{h} 在单元之间是间断的。通过对节点周围单元片的局部光顺来恢复连续场 \boldsymbol{\sigma}^{*},并以残差的能量范数估计单元上的误差:

\eta_{e}^{2} = \int_{\Omega_{e}} \left(\boldsymbol{\sigma}^{*}-\boldsymbol{\sigma}_{h}\right)^{\mathsf T}\mathbf{C}^{-1}\left(\boldsymbol{\sigma}^{*}-\boldsymbol{\sigma}_{h}\right)\mathrm{d}\Omega, \qquad \eta^{2} = \sum_{e}\eta_{e}^{2}

其中 \mathbf{C} 为弹性矩阵。模型的相对误差 \eta_{\text{rel}} = \eta \,/\, \sqrt{\lVert\boldsymbol{\sigma}^{*}\rVert_{E}^{2}+\eta^{2}}。对于 tet10,恢复在超收敛的 Gauss 点上以 SPR 方法进行(Zienkiewicz O.C., Zhu J.Z., The superconvergent patch recovery and a posteriori error estimates, Int. J. Numer. Meth. Eng., 1992);单元上的积分精确计算,没有积分误差。对于 tet4 和混合网格,使用节点平均,其精度较低。

命令 hotspots 依据指示器和应力场找出热点及其尺寸,命令 refine adaptive 闭合循环:计算 → 热点 → 热点处的加密区 → 重建网格 → 计算。当满足下列条件之一时循环停止:网格收敛指数(GCI,参见收敛性研究)不高于目标值,诊断出奇异性,相对误差 \eta_{\text{rel}} 不高于给定值,或遍数用完。

refine adaptive 的参数:passes——遍数,从 1 到 8(默认 3);gci——以百分数表示的目标 GCI 带宽(默认 5);tol——以百分数表示的目标 ZZ 相对误差;refine——每遍中热点处单元尺寸缩小的倍数(默认 1.8);minsize——尺寸下限;grading、max_hotspots、at=、radius=——过渡平滑度、热点个数和显式的测量区域。执行之后可使用测量量 adaptive_passes、adaptive_verdict、adaptive_gci_percent、adaptive_richardson_peak、adaptive_zz_error_percent。

units mm
solve
refine adaptive passes=3 gci=5 tol=2 refine=1.6 minsize=0.5
probe adaptive_verdict

子模型(submodel at=… box=… size=… order=2)延续同一思路:围绕应力集中源切出一个子区域,网格划得很细(包括二次 tet10),并按 Saint-Venant 原理(位移边界插值法)把整体粗模型的位移传递到切割边界上。切割边界节点(含中间节点)的位移通过约束方程以非齐次 Dirichlet 条件给出。

局限。 这不是逐单元的 h 自适应:网格是带着热点处的局部尺寸区域整体重建的。需要已求解的、带 Mises 应力场的静力四面体模型;六面体网格、壳和框架不通过这条路径处理,会拒绝。指示器对带 SPR 的 tet10 是准确的(在有已知解的悬臂梁上,效率指数 \theta = \eta/e_{\text{exact}} 收敛到 1.00:三级网格上依次为 1.23 → 1.07 → 1.002);在 tet4 上指示器较粗略。子模型切割边界的截面必须远离应力集中源(约 2–3 倍孔半径),否则 Saint-Venant 原理不成立。
验证。 指示器已在有精确解的悬臂梁上检验。算例 Kirsch 问题中的子模型在同一提法下检验 submodel 和 refine adaptive:粗的 P1 网格(h = 6 mm)使峰值偏低 41.3 %,采用局部 tet10 的子模型最终结果与 K_t = 3.08 相差 −3.57 %。一个算例对应两项功能,因此状态标注较为审慎。

3.12网格收敛性研究测试版

网格收敛不同于求解器收敛。这里,在越来越细的网格上进行的一系列独立计算,回答的问题是:所选的量(最常见的是应力集中源处的应力峰值)趋向于什么。如果它不趋于稳定,则结果表中的任何数字都是网格的假象。

序列的度量是上一次迭代热点周围球内场的最大值,而不是全局最大值:在不同网格上,全局最大值可能出现在模型的不同位置(一个在孔边,另一个在固定端),这样比较的就是不同的点。特征单元尺寸取自球内网格本身,为 h = \overline{\Delta V_{e}}^{\,1/3}(Celik I.B. et al., Procedure for estimation and reporting of uncertainty due to discretization in CFD applications, J. Fluids Eng., 2008),而不是所要求的尺寸:网格划分器给出的并不是所要求的那个尺寸。

对最后三个网格,其尺寸为 h_{1} > h_{2} > h_{3},值为 f_{1}, f_{2}, f_{3}:

r_{21} = \frac{h_{1}}{h_{2}},\quad r_{32} = \frac{h_{2}}{h_{3}},\quad \varepsilon_{21} = f_{2}-f_{1},\quad \varepsilon_{32} = f_{3}-f_{2}
p = \frac{\ln\left\lvert\varepsilon_{21}/\varepsilon_{32}\right\rvert}{\ln r_{\text{eff}}}, \qquad r_{\text{eff}} = \sqrt{r_{21}\,r_{32}}
f_{\text{ext}} = f_{3} + \frac{\varepsilon_{32}}{r_{32}^{\,p}-1}, \qquad \mathrm{GCI} = F_{s}\,\frac{\lvert\varepsilon_{32}/f_{3}\rvert}{r_{32}^{\,p}-1}, \quad F_{s}=1.25

这里 p 为观测到的收敛阶,f_{\text{ext}} 为向无限细网格的 Richardson 外推,GCI 为 Roache 网格收敛指数(ASME V&V 20),不确定度带宽等于 \mathrm{GCI}\cdot\lvert f_{3}\rvert。阶 p 按带符号处理(Celik 的公式中取整个表达式的绝对值):p 的符号本身就是发散的诊断。对于不相等的 r_{21}、r_{32},取几何平均 r_{\text{eff}},而不是 Celik 的迭代公式。

对序列的判定:

  • 已收敛——GCI 不高于目标值(默认 5 %),结果记为 f_{\text{ext}} \pm 带宽;
  • 继续加密——序列收敛,但带宽仍然较宽;增量符号交替变化时同样如此(序列围绕极限摆动,外推不可靠);
  • 可能存在奇异性——p \le 0,增量不减小:峰值随加密而增大。这对尖锐的内凹角(应力按 h^{-\lambda} 增长,270° 角的 \lambda \approx 0.456)、集中力或沿棱边的刚性固定是典型情形。加密网格无济于事——请增加圆角或更换提法;
  • 数据不足——少于三个网格;不正确——尺寸没有减小,峰值为零或非数值,或网格在两次迭代之间没有变化。

不存在因迭代次数上限而悄悄停止的情况:判定始终是上述之一。

局限。 Richardson 估计假定在渐近区内单调收敛;在粗网格上它不可靠。比值 h_{1}/h_{2} 的精确值未知,因此阶的估计有偏;判定为此使用 r_{\text{eff}}。由节点应力算出的量的收敛,不能代替对积分量(反力、能量)的检验。对于奇异问题(尖角),结果“未收敛”是正确的答案,而不是方法的缺陷。
验证。 在带孔平板上,对区域的逐次加密给出序列 2.27 → 2.63 → 2.89 MPa,增量递减;阶的估计为 p \approx 0.48,判定为“收敛,带宽仍然较宽”,而且未超过解析极限 K_t \approx 3。GCI 算法包含在算例 Kirsch 问题中的子模型的循环中;没有针对该算法本身的单独算例。

4材料模型

↑ 返回目录

本章介绍 WebCAE 所计算的本构关系:定律包含什么、用户设定哪些参数、该定律在哪些分析类型中起作用,以及如何验证。部分模型已在计算内核中实现,但尚未接入实体的计算;这类模型标注为实验性,其小节中也直接说明了这一点。

约定。拉伸为正。定律中的应力和应变按 Voigt 顺序 [xx,\,yy,\,zz,\,xy,\,yz,\,zx] 排列;剪应变采用工程剪应变(\gamma_{ij} = 2\varepsilon_{ij}),剪应力采用张量剪应力(\tau_{ij} = \sigma_{ij})。在求解器边界上一切均为 SI 单位(Pa、K、kg/m³、s);在界面中,输入字段接受 MPa、GPa、psi、°C,并在输入时换算为 SI。在 DSL 中,应力和模量以帕斯卡给出,塑性相关的温度以开尔文给出。

模型分析类型状态
各向同性弹性所有线性和非线性分析稳定
带取向的三维正交各向异性线性静力分析,四面体测试版
层合壳静力、模态、屈曲、热载荷稳定
J2 塑性实体的非线性静力分析(桌面版),显式动力学稳定
Johnson–Cook显式动力学;静力分析中不含速率与温度稳定
Neo-Hooke实体的非线性静力分析稳定
材料破坏准则显式动力学(单元侵蚀)测试版
基于弹性解的强度准则后处理测试版
Mooney–Rivlin、Yeoh、Arruda–Boyce、Ogden内核;未接入实体计算实验性
F = Fe·Fp、Norton–Bailey、Perzyna、Prony、Drucker–Prager、GTN内核;未接入实体计算实验性

4.1线弹性各向同性材料稳定

所有线性计算的基本定律,也是所有非线性计算的弹性部分。只要应力未达到屈服,且应变相对于 1 很小,它就足够使用。

Voigt 形式的胡克定律:

\boldsymbol\sigma = \mathbf{C}\,\boldsymbol\varepsilon,\qquad \mathbf{C} = \begin{bmatrix} \lambda+2\mu & \lambda & \lambda & & & \\ \lambda & \lambda+2\mu & \lambda & & & \\ \lambda & \lambda & \lambda+2\mu & & & \\ & & & \mu & & \\ & & & & \mu & \\ & & & & & \mu \end{bmatrix}
\lambda = \frac{E\nu}{(1+\nu)(1-2\nu)},\qquad \mu = \frac{E}{2(1+\nu)},\qquad \kappa = \frac{E}{3(1-2\nu)}

对角线上的 \mu 块对应工程剪应变:\tau_{xy} = \mu\gamma_{xy}。允许 -1 < \nu < 0.5。当 \nu \to 0.5 时,矩阵 \mathbf{C} 的体积部分退化,线性四面体会闭锁;对于近不可压缩材料,请采用二阶单元(参见单元)。

用户设定杨氏模量 E、泊松比 \nu、密度 \rho(参见下一小节)。得到的结果是位移、应变、应力以及导出量(von Mises 等效应力、主应力),详见线性分析一章。

一个材料指定给整个体。对于由多个体组成的装配体,每个体有各自的材料,包括体与体接合处不同的 E、\nu、\rho。

局限。 该定律是各向同性、线性的,且与温度、速率和历史无关:没有 E(T) 和 \nu(T) 的表格。如果工作温度与室温相差很大,请给出该温度下的 E。
验证。 钢和铝的单轴拉伸(钢、铝)、Lamé 厚壁圆筒(Lamé)、NAFEMS 线弹性基准集(LE1、LE10)。
material E=200e9 nu=0.3 density=7850

4.2密度、热膨胀与温度相关性稳定

模态分析、动力学、重力和加速度需要密度 \rho(kg/m³);没有密度时,涉及质量的请求会被拒绝,而不是采用默认值。对于壳和层合板,质量取自材料或各层的密度。

热膨胀由线膨胀系数 \alpha(1/K)给出。热应变是各向同性的,应力由力学部分决定:

\boldsymbol\varepsilon_{\mathrm{th}} = \alpha\,\Delta T\,[1,\,1,\,1,\,0,\,0,\,0]^{T},\qquad \boldsymbol\sigma = \mathbf{C}\,(\boldsymbol\varepsilon - \boldsymbol\varepsilon_{\mathrm{th}})

热载荷和耦合问题见传热与多物理场一章。这里要注意的是 \alpha 为常数:不存在 \alpha(T) 相关性。材料模型中的温度相关性有三处:热导率表 \kappa(T)(kappa_table="T:k,…",温度单位为 °C,节点之间线性插值,表外取端点常数)、Johnson–Cook 模型中屈服强度的温度系数,以及层合板各层的热膨胀。杨氏模量不依赖于温度。

局限。 当 \Delta T \ne 0 时,没有 \alpha_1、\alpha_2 的层合板铺层会被拒绝并给出材料名称:不会出现悄悄取 \alpha = 0 的情况。正交各向异性体的系数 \alpha_1, \alpha_2, \alpha_3 保存在材料中,但在三维正交各向异性体的静力分析中不施加热应变。
验证。 受约束杆件受热:应力 -E\alpha\Delta T(静力、动力)。

4.3材料库稳定

内置材料库是一张统一的预设表;界面中的材料卡片、DSL 和编程接口都使用它。预设包含 E、\nu、\rho、热导率、比热容、\alpha 以及用于安全系数的屈服强度。

  • 钢:通用结构钢(200 GPa、0.3、7850 kg/m³)、20 钢、40Cr(40Х)、09Mn2Si(09Г2С)、不锈钢 304。
  • 铝:通用铝(70 GPa、0.33)、D16T(Д16Т)、6061。
  • 钛:通用钛(116 GPa、0.32)和 VT6(ВТ6,对应 Ti-6Al-4V);铜(120 GPa、0.34);塑料 ABS 和 PA6。
  • 作为 Neo-Hooke 材料的橡胶:\mu = 3.36 MPa,K = 166.7 MPa。
  • 塑性预设:S355 钢(J2,\sigma_y = 355 MPa)、6061-T6 铝(J2)、OFHC 铜和 4340 钢(Johnson–Cook)。
  • 用于 CFD 的介质:空气、水、发动机机油、煤油。

数值为参考性的成组数据:具体牌号的比热容和强度极限请取自您的证书。普通预设中的屈服强度只用于安全系数,不包含塑性;塑性出现在带显式定律的预设以及您自行设定了塑性的材料中。

用户可以向工程的材料库添加自己的材料、修改它们并指定给体。对于层合壳,有单独的铺层正交各向异性材料库(内置的单向塑料 140/10 GPa)。

在 DSL 中,预设提供基础值,显式参数则对其进行覆盖:

material steel E=210e9
局限。 该表为成组数据,没有按牌号和温度的换算。橡胶预设以 \mu 和 K 给出,并换算为计算内核所用的 E、\nu。

4.4三维正交各向异性材料与取向测试版

适用于三个轴向性质各不相同的材料:单向和编织复合材料、木材、轧制材。该定律由材料轴下的九个独立常数 E_1, E_2, E_3, \nu_{12}, \nu_{23}, \nu_{13}, G_{12}, G_{23}, G_{13} 以及每个单元中的轴向取向给定。

按 Voigt 顺序的柔度矩阵,剪应变为工程剪应变:

\mathbf{S} = \begin{bmatrix} \frac{1}{E_1} & -\frac{\nu_{12}}{E_1} & -\frac{\nu_{13}}{E_1} & & & \\ -\frac{\nu_{12}}{E_1} & \frac{1}{E_2} & -\frac{\nu_{23}}{E_2} & & & \\ -\frac{\nu_{13}}{E_1} & -\frac{\nu_{23}}{E_2} & \frac{1}{E_3} & & & \\ & & & \frac{1}{G_{12}} & & \\ & & & & \frac{1}{G_{23}} & \\ & & & & & \frac{1}{G_{13}} \end{bmatrix},\qquad \mathbf{C} = \mathbf{S}^{-1}

泊松比定义为在单轴 \sigma_i 作用下 \nu_{ij} = -\varepsilon_j/\varepsilon_i;对称性给出 \nu_{ji} = \nu_{ij}E_j/E_i。正定性在计算之前检查:E_i > 0,G_{ij} > 0,三对的 1 - \nu_{ij}\nu_{ji} > 0,且

\Delta = 1 - \nu_{12}\nu_{21} - \nu_{23}\nu_{32} - \nu_{13}\nu_{31} - 2\,\nu_{12}\nu_{23}\nu_{31} > 0

不通过检查的参数组会被拒绝,并给出被违反条件的名称。

取向。在每个单元的形心处构造右手三元组 (\mathbf{e}_1, \mathbf{e}_2, \mathbf{e}_3),矩阵 \mathbf{Q} 的各行是它在整体坐标轴中的向量。单元刚度矩阵通过 Bond 旋转得到,应力则返回到材料轴中:

\mathbf{C}_{g} = \mathbf{T}_{\varepsilon}^{T}\,\mathbf{C}\,\mathbf{T}_{\varepsilon},\qquad \boldsymbol\varepsilon_{l} = \mathbf{T}_{\varepsilon}\,\boldsymbol\varepsilon_{g},\qquad \boldsymbol\sigma_{l} = \mathbf{T}_{\sigma}\,\boldsymbol\sigma_{g},\qquad \mathbf{T}_{\sigma}^{-1} = \mathbf{T}_{\varepsilon}^{T}

三元组的设定模式:

  • surface——轴 \mathbf{e}_3 等于参考面上离形心最近的三角形的外法线;\mathbf{e}_1 为给定方向 axis 在切平面上的投影,\mathbf{e}_2 = \mathbf{e}_3\times\mathbf{e}_1。适用于沿曲面铺设的层合零件。
  • cartesian——统一的三元组:\mathbf{e}_3 沿 normal,\mathbf{e}_1 为 axis 的投影。
  • cylindrical——\mathbf{e}_3 沿从通过 origin 的圆柱轴出发的径向。
  • spherical——\mathbf{e}_3 沿从点 origin 出发的径向。

角度 angle 使 \mathbf{e}_1、\mathbf{e}_2 绕 \mathbf{e}_3 旋转:\mathbf{e}_1' = \cos\theta\,\mathbf{e}_1 + \sin\theta\,\mathbf{e}_2。如果给定轴的投影退化,则取备用方向;此类单元的个数记录在结果中。三元组可以在模型上显示。

该求解与通用的各向同性装配分开:对于 TET4 和 TET10 四面体,刚度按旋转后的矩阵装配,方程组用共轭梯度法求解,并采用按节点分块的预条件子,约束(CE、刚性区域)用罚函数引入。结果:位移,整体坐标轴下和材料轴下的应力(localStressXX…XZ,探针 ortho_local_s11_max 及类似量),三元组场。

局限。 仅限四面体(TET4、TET10)上的线性静力分析;六面体不参与计算。每个模型只有一种正交各向异性材料。热应变不考虑各向异性(见上文);模态分析和正交各向异性体的非线性计算未接入。各体之间混用不同单元阶次会被拒绝。
验证。 正交各向异性杆的离轴拉伸,纤维角 30°,Lekhnitskii 解:偏差 0.01 %。这是唯一的独立算例;是在同一提法、同一平台上的计算。
material E1=140e9 E2=10e9 E3=10e9 nu12=0.3 nu23=0.4 nu13=0.3 G12=5e9 G23=3.5e9 G13=5e9 density=1600
orientation surface number 3 axis=1,0,0 angle=30

在界面中,正交各向异性定律在材料卡片中选择(“三维正交各向异性”,九个常数,参考面,方向,角度);圆柱和球模式可通过 DSL 使用。

4.5层合壳:层合板理论稳定

层合壳用沿厚度平均的单一定律——刚度组合——来代替一组铺层。它适用于复合材料面板和夹层板,其厚度相对于尺寸很小。铺层自下而上(从 -z_e 到 +z_e)给定,各层有自己的正交各向异性材料、厚度和角度。

材料轴下的铺层,平面应力状态:

Q_{11} = \frac{E_1}{1-\nu_{12}\nu_{21}},\quad Q_{22} = \frac{E_2}{1-\nu_{12}\nu_{21}},\quad Q_{12} = \frac{\nu_{12}E_2}{1-\nu_{12}\nu_{21}},\quad Q_{66} = G_{12},\quad \nu_{21} = \nu_{12}\frac{E_2}{E_1}

从单元的 x_e 轴起,绕 +z_e 逆时针旋转角度 \theta(c = \cos\theta,s = \sin\theta):

\begin{aligned} \bar Q_{11} &= Q_{11}c^4 + 2(Q_{12}+2Q_{66})c^2s^2 + Q_{22}s^4, \\ \bar Q_{22} &= Q_{11}s^4 + 2(Q_{12}+2Q_{66})c^2s^2 + Q_{22}c^4, \\ \bar Q_{12} &= (Q_{11}+Q_{22}-4Q_{66})c^2s^2 + Q_{12}(c^4+s^4), \\ \bar Q_{66} &= (Q_{11}+Q_{22}-2Q_{12}-2Q_{66})c^2s^2 + Q_{66}(c^4+s^4), \\ \bar Q_{16} &= (Q_{11}-Q_{12}-2Q_{66})c^3s - (Q_{22}-Q_{12}-2Q_{66})cs^3, \\ \bar Q_{26} &= (Q_{11}-Q_{12}-2Q_{66})cs^3 - (Q_{22}-Q_{12}-2Q_{66})c^3s \end{aligned}

项 \bar Q_{16}、\bar Q_{26} 正比于 \sin 2\theta,并随角度变号;在 0^\circ 和 90^\circ 时它们为零,因此仅在这些角度上的检验捕捉不到符号和剪切项的错误。产品的检验语料会计算 \pm15^\circ、\pm30^\circ、\pm45^\circ、\pm60^\circ、\pm75^\circ 以及非对称铺层。

对于位于 z_{k-1} 与 z_k 之间的第 k 层(从参考面起算),单位宽度的刚度组合为:

A_{ij} = \sum_k \bar Q_{ij}^{(k)}(z_k - z_{k-1}),\quad B_{ij} = \frac12\sum_k \bar Q_{ij}^{(k)}(z_k^2 - z_{k-1}^2),\quad D_{ij} = \frac13\sum_k \bar Q_{ij}^{(k)}(z_k^3 - z_{k-1}^3)
\mathbf{N} = \mathbf{A}\boldsymbol\varepsilon_0 + \mathbf{B}\boldsymbol\kappa,\qquad \mathbf{M} = \mathbf{B}\boldsymbol\varepsilon_0 + \mathbf{D}\boldsymbol\kappa,\qquad \mathbf{Q} = \mathbf{A}_s\boldsymbol\gamma,\qquad \mathbf{A}_s = \sum_k k_s^{(k)}\,\bar{\mathbf{Q}}_s^{(k)}\,t_k

这里 \boldsymbol\varepsilon_0 = [\varepsilon_{xx}, \varepsilon_{yy}, \gamma_{xy}],\boldsymbol\kappa = [\kappa_{xx}, \kappa_{yy}, \kappa_{xy}](扭曲率采用工程定义),\varepsilon(z) = \varepsilon_0 + z\kappa。耦合矩阵 \mathbf{B} 对非对称铺层不为零;此时拉伸会引起弯曲。铺层的横向剪切 \bar{\mathbf{Q}}_s 由 G_{13}、G_{23} 经同样的旋转构造:

\bar Q_{s,xz} = G_{13}c^2 + G_{23}s^2,\quad \bar Q_{s,yz} = G_{13}s^2 + G_{23}c^2,\quad \bar Q_{s,xz\,yz} = (G_{13}-G_{23})\,cs

剪切不均匀性修正:默认对所有铺层取 k_s = 5/6。变体 shear=energetic 按铺层取 k_s^{(k)} = \min\bigl(1,\ \tfrac56\,G_{\max}/G_k\bigr)(夹层板的软芯使 k_s 趋近于 1);这是工程上的启发式做法,而不是由平衡条件推出的结论。

参考面相对于中面偏移 z_0(offset=bottom|middle|top|数值)时,无需重新装配即可重新换算刚度组合:\mathbf{B}' = \mathbf{B} + z_0\mathbf{A},\mathbf{D}' = \mathbf{D} + 2z_0\mathbf{B} + z_0^2\mathbf{A}。

单元为四节点 MITC4(Dvorkin、Bathe 1984;Bathe、Dvorkin 1985):剪切按绑定点处的协变应变计算,膜与弯曲采用 2\times 2 个 Gauss 点,绕法线的转动由具有膜剪切刚度 A_{66} 的 Hughes–Brezzi 罚项稳定化。刚度组合 (\mathbf{A},\mathbf{B},\mathbf{D},\mathbf{A}_s) 直接进入单元,因此各向同性壳是刚度组合的特例(\mathbf{A} = Et/(1-\nu^2)\,\mathbf{C},\mathbf{D} = Et^3/(12(1-\nu^2))\,\mathbf{C},\mathbf{B}=0)。

计量铺层角度的 x_e 轴,由参考轴在壳上的投影(axis=X|Y|Z)、坐标系(cs=)和旋转 phi= 确定。如果参考轴几乎与单元垂直,则取备用轴,此类单元的个数会被报告。

壳的热载荷通过内力 \mathbf{N}_T = \int \bar{\mathbf{Q}}\,\bar{\boldsymbol\alpha}\,\Delta T\,dz 和力矩 \mathbf{M}_T 进入;铺层应力按力学应变 \varepsilon - \bar\alpha\Delta T(z) 计算。铺层需要 \alpha_1、\alpha_2(沿纤维和垂直于纤维)。

用户设定的内容:铺层的正交各向异性材料(E1 E2 nu12 G12 G13 G23,密度,强度,\alpha_1,\alpha_2)以及铺层顺序(plies="名称:厚度:角度,…"、symmetric、repeat、offset、shear)。铺层厚度以脚本长度单位给出,模量以帕斯卡给出。在界面中是壳截面中的铺层顺序编辑器。两个平台上的提法相同:在桌面版(基准)中壳按原生路径计算,在浏览器中按 Web 构建计算。

ortho name=ud E1=140e9 E2=10e9 nu12=0.3 G12=5e9 G13=5e9 G23=3.5e9
section shell laminate plies="ud:0.25:45,ud:0.25:-45,ud:0.25:0" symmetric=true
局限。 仅限四边形壳(mesh shell element=quad):三角形单元没有膜与弯曲的耦合。不支持:多层铺层的几何非线性、隐式动力学(层合板的质量未接入,计算也不会被替换成各向同性壳)。采用一阶理论:位移沿厚度线性分布,剪切沿厚度为常数。相对于三维弹性理论,它会低估厚板的挠度:边长/厚度比为 4–10 时为 -10 \ldots -12\,\%,比值为 20 时为 -4\ldots-5\,\%,比值为 100 时为 -0.2\,\%(正交铺层,基准为 Pagano 的三维解,由独立代码复现)。
验证。 验证目录中没有层合板算例;检验在开发测试集中进行。\mathbf{A},\mathbf{B},\mathbf{D} 和铺层应力的装配已在 9 种铺层上与独立的基准脚本核对(相对容差 10^{-9}),角度 \pm15^\circ\ldots\pm75^\circ 在 27 种铺层上核对。单元对同一一阶理论的 Ritz 解:16 种情形下至多 0.7 %;简支板的频率和临界载荷——在 18×12 网格上至多 3 %(在 12×8 网格上,同一铺层的三个频率中最高阶一个给出 6.8 %,在 18×12 网格上为 2.6 %)。单向塑料悬臂梁对照含 d_{11} 的梁公式——在 3 % 以内。0^\circ 和 90^\circ 悬臂梁的挠度分别随 E_1 和 E_2 变化。这些检验的数值主要取自 Web 构建;在原生路径上重复了模态与屈曲检验这一组(12×8 网格上至多 4.6 %),其余未在原生路径上重新计算。

4.6铺层破坏准则与层间应力测试版

按铺层的后处理:根据单元中壳的广义应变(或其节点 SPR 恢复值),计算铺层在材料轴下的应力 (\sigma_1, \sigma_2, \tau_{12}),取铺层底部、中部、顶部三个点,然后计算破坏指数。这些准则需要 ortho 中的铺层强度 X_t, X_c, Y_t, Y_c, S;缺少其中任何一个,准则都会被拒绝并给出字段名称。

  • 最大应力:FI = \max\bigl(\lvert\sigma_1\rvert/X,\ \lvert\sigma_2\rvert/Y,\ \lvert\tau_{12}\rvert/S\bigr),X 和 Y 按应力符号选取。
  • Tsai–Hill:FI = (\sigma_1/X)^2 - \sigma_1\sigma_2/X^2 + (\sigma_2/Y)^2 + (\tau_{12}/S)^2。
  • Tsai–Wu:FI = F_1\sigma_1 + F_2\sigma_2 + F_{11}\sigma_1^2 + F_{22}\sigma_2^2 + F_{66}\tau_{12}^2 + 2F_{12}\sigma_1\sigma_2,F_1 = 1/X_t - 1/X_c,F_{11} = 1/(X_tX_c),F_{12} = -\tfrac12\sqrt{F_{11}F_{22}}。
  • Hashin(平面,四种模式):拉伸时纤维断裂 (\sigma_1/X_t)^2 + (\tau_{12}/S)^2,纤维屈曲 (\sigma_1/X_c)^2,拉伸时基体开裂 (\sigma_2/Y_t)^2 + (\tau_{12}/S)^2,压缩时 (\sigma_2/2S_{23})^2 + \bigl[(Y_c/2S_{23})^2 - 1\bigr]\sigma_2/Y_c + (\tau_{12}/S)^2;铺层指数为各模式中的最大值。
  • 分层:FI = (\tau_{13}/S_{13})^2 + (\tau_{23}/S_{23})^2,按层间剪切计算。

强度储备系数 RF 是使 FI = 1 的载荷乘子:对于线性准则为 1/FI,对于二次准则为 1/\sqrt{FI},对于 Tsai–Wu 和 Hashin 的“基体压缩”模式则为方程 a\lambda^2 + b\lambda = 1 的正根。DSL 探针:laminate_fi_<准则>、laminate_rf_<准则>、laminate_s1、laminate_s2、laminate_t12、laminate_t13、laminate_t23,对第 N 层加后缀 _plyN(1 为最下层)。

一阶理论下的层间应力:\tau_{13}、\tau_{23} 在铺层厚度内为常数。选项 interlaminar=equilibrium 通过沿厚度、从自由下表面起对平衡方程积分来恢复 \tau_{xz}、\tau_{yz}(梯度取自网格的相邻单元),\sigma_{zz} 则按同一原理估计。

局限。 只给出首层破坏,没有刚度退化和损伤发展。由平衡恢复的 \tau 和 \sigma_{zz} 只是估计值:\sigma_{zz} 未与三维解核对,请勿将其用作定量判据;对于只有一个单元的网格,它们不可用。强度由用户输入,不检查其一致性。单独的 Puck 准则原型未接入产品。
验证。 破坏指数和储备系数已与独立的基准脚本核对,包括作为二次方程之根的 Tsai–Wu 储备系数。目录中没有验证算例。

4.7J2 塑性稳定

用于金属的 Huber–von Mises 模型:屈服之前为弹性工作,之后为带硬化的塑性流动。它用于实体的非线性计算(小应变或几何非线性)以及显式动力学。非线性迭代的总体方案见关于材料非线性的章节。

带背应力张量 \boldsymbol\alpha 的屈服面:

f = q - R,\qquad q = \sqrt{\tfrac32}\,\lVert\boldsymbol\xi\rVert,\qquad \boldsymbol\xi = \mathbf{s} - \boldsymbol\alpha

其中 \mathbf{s} 为应力偏量。积分采用径向返回(Simo, Hughes, Computational Inelasticity, 1998, 第 3 章;Wilkins, 1964)。弹性试探步 \mathbf{s}^{\mathrm{tr}} = 2\mu\,\mathrm{dev}(\boldsymbol\varepsilon - \boldsymbol\varepsilon_p);若 f^{\mathrm{tr}} \le 0,则该步为弹性。否则,取法向 \mathbf{n} = \boldsymbol\xi^{\mathrm{tr}}/\lVert\boldsymbol\xi^{\mathrm{tr}}\rVert:

\mathbf{s}_{n+1} = \mathbf{s}^{\mathrm{tr}} - 2\mu\,\Delta\gamma\,\mathbf{n},\qquad \Delta\gamma = \sqrt{\tfrac32}\,\Delta p,\qquad g(\Delta p) = f^{\mathrm{tr}} - 3\mu\,\Delta p - \bigl[\sigma_c(p_n+\Delta p) - \sigma_c(p_n)\bigr] = 0

关于等效塑性应变增量 \Delta p 的标量方程严格单调,根唯一:对于线性硬化,\Delta p = f^{\mathrm{tr}}/(3\mu + H);对于曲线,则在区间 [0,\ f^{\mathrm{tr}}/3\mu] 上采用带二分法的安全 Newton 法。切线为算法切线(与积分器一致)、对称:

\mathbb{D}_{ep} = \kappa\,\mathbf{1}\otimes\mathbf{1} + 2\mu\theta\bigl(\mathbb{I} - \tfrac13\mathbf{1}\otimes\mathbf{1}\bigr) - 2\mu\Bigl[\frac{3\mu}{3\mu + \hat H} - (1-\theta)\Bigr]\mathbf{n}\otimes\mathbf{n},\qquad \theta = 1 - \frac{3\mu\,\Delta p}{q^{\mathrm{tr}}}

硬化。曲线 \sigma_c(p) 是单轴单调加载的应力–应变曲线:

  • 理想塑性:\sigma_c = \sigma_{y0};
  • 按切线模量 E_t 的线性硬化:\sigma_c = \sigma_{y0} + Hp,H = E E_t/(E - E_t);
  • 多线性:表格 (p_i, \sigma_i),第一个点 p_0 = 0 给出 \sigma_{y0},p 严格递增,\sigma 不递减;超出最后一点后应力保持常数(理想塑性),而不是沿斜率延伸。

随动硬化比例 \beta \in [0, 1](0 为各向同性,1 为 Prager 线性随动)混合两种机制:半径 R = \sigma_{y0} + (1-\beta)\bigl(\sigma_c(p) - \sigma_{y0}\bigr),中心位移 \Delta\boldsymbol\alpha = \sqrt{2/3}\,\beta\,\bigl[\sigma_c(p_{n+1}) - \sigma_c(p_n)\bigr]\,\mathbf{n}。单轴曲线与 \beta 无关,而反向屈服(Bauschinger 效应)则依赖于它。软化被禁止(H \ge 0)。

非线性静力分析的运动学:在几何非线性模式下,该定律接受 Green–Lagrange 应变并返回第二类 Piola–Kirchhoff 应力张量(塑性在这一对量中是可加的:小应变、大转动);输出为 Cauchy 应力 \sigma = \mathbf{F}\mathbf{S}\mathbf{F}^T/J。在“仅材料”模式下,\varepsilon = \mathrm{sym}\nabla\mathbf{u}。加载历史(loadpath="1,0")给出卸载后的残余应变以及循环。

用户设定的内容:E、\nu(弹性部分)、\sigma_{y0}(yield=,Pa)、硬化(hardening=linear|multilinear、et=、curve="p:σ,p:σ,…")、kinematic=。结果:等效塑性应变(节点场,探针 plastic_strain)、已塑性化的 Gauss 点比例,对于理想塑性则为极限载荷比例。

局限。 仅限实体;带塑性的梁和壳会被拒绝。带塑性的隐式非线性静力分析在桌面版中执行;在浏览器中会拒绝并给出原因,塑性材料的线性计算则按弹性处理并给出警告。可加性定律无法描述数十个百分点应变下的流动(参见 F = Fe·Fp)。理想塑性在超过极限载荷后失去平衡:这将作为带极限载荷比例的结果返回,而在有硬化时则作为拒绝返回。模量 E_t 严格小于 E,\sigma_{y0} 小于 E。
验证。 单轴加载、卸载与反向屈服、纯剪切的闭合解:单轴、卸载、反向屈服、纯剪切——偏差约为 10^{-6} %。球应力不变性、非结构化网格上的片试验、在 17°、53°、121° 旋转下的客观性(至多 0.57 %,旋转体与基准体的网格不同):静水压力、片试验、客观性。矩形截面的塑性铰,极限弯矩 \sigma_y b h^2/4:0.05 %。带塑性的分阶段计算:分阶段。同一定律用于动力学:弹塑性杆,用于显式动力学——线性硬化、多线性曲线、Bauschinger 效应。隐式算例的数值取自原生路径。
material E=210e9 nu=0.3 plasticity=j2 yield=250e6 hardening=linear et=1e9
nlgeom material loadpath="1,0"
solve

4.8Johnson–Cook稳定

适用于高应变率和受热条件下金属的定律:屈服强度随速率增大,随温度降低。主要应用领域是显式动力学:冲击、穿甲、加速。

\sigma_y = \bigl[A + B\,\bar\varepsilon_p^{\,n}\bigr]\bigl[1 + C\ln\dot\varepsilon^{*}\bigr]\bigl[1 - T^{*m}\bigr],\qquad \dot\varepsilon^{*} = \frac{\dot{\bar\varepsilon}_p}{\dot\varepsilon_0},\quad T^{*} = \mathrm{clamp}\Bigl(\frac{T - T_{\mathrm{room}}}{T_{\mathrm{melt}} - T_{\mathrm{room}}},\,0,\,1\Bigr)

速率系数仅在 \dot\varepsilon^* > 1 时起作用(低于此值取 1:准静态作为下界)。返回过程与 J2 相同,但 \Delta p 的方程中包含该步的速率 \dot{\bar\varepsilon}_p = \Delta p/\Delta t 以及当前的温度系数。绝热升温通过给定定律材料的比热容 c_p 开启:\Delta T = \eta\,q\,\Delta p/(\rho c_p),\eta 为 Taylor–Quinney 系数(默认 0.9);温度分步变化,该步的屈服按该步起始时的温度计算。

参数:A、B(Pa)、n、C、m、\dot\varepsilon_0(epsdot0,1/s)、T_{\mathrm{room}}(troom,K)、T_{\mathrm{melt}}(tmelt,K)、taylor、cp。随动硬化与 Johnson–Cook 不能组合使用(会被拒绝)。

局限。 速率和温度在显式动力学中起作用。在隐式非线性静力分析中,该定律不含速率项和温度项,即按室温下的幂律硬化 A + B\bar\varepsilon_p^n 计算;隐式路径中的绝热升温会被拒绝。模量 E、\nu 不随温度变化。对于铜(预设“Cu-1”),显式计算中的比热容取为与温度相关(Banerjee, 2005);预设中的熔化定律字段以及 Steinberg–Cochran–Guinan 剪切模量字段描述的是参考模型,不参与实体的计算。
验证。 显式动力学,原生:铜的速率敏感性(应力比 1.1147 对 1.1151)、绝热升温、Taylor 冲击、时间步收敛。材料点的绝热升温与公式精确吻合(升温)。目录中没有 Johnson–Cook 的隐式算例。
material E=120e9 nu=0.34 density=8900 plasticity=jc A=90e6 B=292e6 n=0.31 C=0.025 m=1.09 tmelt=1356 cp=385

4.9材料破坏准则测试版

这些准则作用于 J2 或 Johnson–Cook 塑性定律之内,用于显式动力学中的单元侵蚀;静力分析和模态分析会忽略它们。任一准则触发即视为该 Gauss 点失效。产品对单元所做的处理见侵蚀一节。

  • \varepsilon_p \ge \varepsilon_{\mathrm{fail}}——极限等效塑性应变(ep:)。
  • Johnson–Cook 累积损伤 D = \sum \Delta\varepsilon_p/\varepsilon_f \ge 1(jc:d1/d2/d3/d4/d5):
\varepsilon_f = \bigl[d_1 + d_2\,e^{d_3\eta}\bigr]\bigl[1 + d_4\ln\dot\varepsilon^{*}\bigr]\bigl[1 + d_5 T^{*}\bigr],\qquad \eta = \sigma_m/\sigma_{\mathrm{eq}}

d_3 的符号与 Johnson、Cook(Eng. Fract. Mech. 21(1), 1985, 31–48)一致:对金属 d_3 < 0;\eta 限制在区间 [-3, 3] 内。

  • \sigma_1 \ge \sigma_{\max}——最大主应力(smax:,Pa)。
  • \sigma_m \ge p_{\mathrm{spall}}——静水拉应力,层裂(spall:,Pa)。

损伤 D 不会降低刚度:它只触发失效。

局限。 仅限显式动力学;侵蚀适用于 HEX8 和 TET4。没有塑性定律时不能设定这些准则。参数 d_1\ldots d_5 由用户输入;系统会检查单轴拉伸和压缩下 \varepsilon_f 为正。
验证。 按极限塑性应变对均匀杆的侵蚀:算例,偏差 1.46 %。其余准则没有单独的算例。
material steel plasticity=j2 yield=355e6 fail="ep:0.25,smax:1.2e9"

4.10Neo-Hooke 材料稳定

用于橡胶和弹性体在有限应变下的超弹性材料。它在 Total Lagrangian 提法下用于实体的非线性静力分析(几何非线性)。

W = \frac{\mu}{2}\bigl(\bar I_1 - 3\bigr) + \frac{\kappa}{2}(J-1)^2,\qquad \bar I_1 = J^{-2/3}\,\mathrm{tr}\,\mathbf{C},\quad \mathbf{C} = \mathbf{F}^T\mathbf{F},\quad J = \det\mathbf{F}

第二类 Piola–Kirchhoff 应力张量 \mathbf{S} = 2\,\partial W/\partial\mathbf{C},切线 \mathbb{D} = 4\,\partial^2 W/\partial\mathbf{C}\partial\mathbf{C} 以解析式给出(与有限差分核对,至 10^{-8})。输出应力为 Cauchy 应力,\boldsymbol\sigma = \mathbf{F}\mathbf{S}\mathbf{F}^T/J。常数 \mu、\kappa 按各向同性弹性小节中的公式取自材料的 E、\nu(在橡胶卡片中则给出 \mu 和 K)。单元:HEX8、TET4、WEDGE6、PYR5、HEX20、TET10、HEX27。

局限。 纯位移提法,没有压力混合公式:当 \kappa/\mu 达到 10^3 量级及以上时,线性单元会闭锁,请采用二次单元。不能与塑性组合。它与实体的非线性计算一起启用(DSL 中为 nlgeom on);在线性静力分析中以及在带四面体的盒体路径上,非线性材料会被拒绝,而不是以非线性之名按线性计算。
验证。 单个单元上的单轴、双轴、平面拉伸和简单剪切(Poynting 效应):单轴、双轴、平面、剪切,网格收敛阶 2.0,客观性——均在 0.6 % 以内。
material E=1e7 nu=0.45 model="neo-hookean" density=1100
nlgeom on

4.11Mooney–Rivlin、Yeoh、Arruda–Boyce、Ogden实验性

这些势函数用于描述 Neo-Hooke 定律无法描述的橡胶拉伸曲线。内核包含全部四种,且都带解析切线;但在当前版本中,“材料卡片—实体计算”的链路尚未完整,因此本章标为实验性。

\begin{aligned} W_{\mathrm{MR}} &= C_{10}(\bar I_1-3) + C_{01}(\bar I_2-3), \\ W_{\mathrm{Y}} &= \sum_{i=1}^{3} C_{i0}(\bar I_1-3)^i, \\ W_{\mathrm{AB}} &= \mu\sum_{i=1}^{5}\frac{c_i}{\lambda_m^{2i-2}}\bigl(\bar I_1^{\,i} - 3^i\bigr),\quad c = \bigl\{\tfrac12,\tfrac1{20},\tfrac{11}{1050},\tfrac{19}{7000},\tfrac{519}{673750}\bigr\}, \\ W_{\mathrm{O}} &= \sum_{p=1}^{N}\frac{2\mu_p}{\alpha_p^2}\bigl(\bar\lambda_1^{\alpha_p}+\bar\lambda_2^{\alpha_p}+\bar\lambda_3^{\alpha_p}-3\bigr),\quad N\le 3 \end{aligned}

每个势函数都加上体积部分 \tfrac\kappa2(J-1)^2(Arruda–Boyce 为 \tfrac\kappa2\bigl[\tfrac12(J^2-1)-\ln J\bigr]);若给定了可压缩性参数 D_1,则 \kappa = 2/D_1。小应变模量:Mooney–Rivlin \mu_0 = 2(C_{10}+C_{01}),Yeoh \mu_0 = 2C_{10},Arruda–Boyce \mu_0 = \mu,Ogden \mu_0 = \sum\mu_p(Abaqus 约定;经典的 c_p = \mu_p/\alpha_p 由标志 ogden_abaqus=false 选择)。对于 Ogden,主伸长比通过 \mathbf{C} 的谱分解得到。

局限。 卡片接受势函数的常数,但按代码这些常数并不会传到实体的计算中:对于几何体,除 Neo-Hooke 之外的模型,DSL 会拒绝;界面的非线性路径只接收模型名称;没有常数时,内核代入默认值(例如,Mooney–Rivlin 退化为 C_{10} = \mu/2 的 Neo-Hooke)。在这一链路打通之前,请勿将这些模型用于实体的计算。
验证。 单个单元上伸长比 \lambda = 2 的单轴拉伸,常数直接在内核中给定:Yeoh 0.02 %,Ogden 0.02 %,Arruda–Boyce 0.01 %;按 Treloar 数据的联合标定——算例。这是对势函数和切线的检验,而不是对零件计算的检验。Mooney–Rivlin 没有算例。

4.12有限弹塑性应变 F = Fe·Fp实验性

在可加的 J2 方案不成立之处——数十个百分点的应变——需要乘法塑性。已实现一个定律原型,但未接入界面和 DSL。

梯度分解为 \mathbf{F} = \mathbf{F}_e\mathbf{F}_p,\det\mathbf{F}_p = 1。弹性采用弹性构形中的 Hencky 弹性:由 \mathbf{C}_e = \mathbf{F}_e^T\mathbf{F}_e 的谱分解得到对数应变 h_a = \tfrac12\ln\lambda_a,Kirchhoff 应力为 \boldsymbol\tau = K\,\mathrm{tr}(\mathbf{h})\,\mathbf{1} + 2\mu\,\mathrm{dev}(\mathbf{h})。流动为基于 Mises 的相关联流动,线性硬化 \sigma_y = \sigma_{y0} + Hp;增量 \Delta p = f^{\mathrm{tr}}/(3\mu + H) 在对数应变空间中闭式求得,塑性部分通过指数映射更新:\mathbf{F}_p^{n+1} = \exp(\Delta p\,\mathbf{N})\,\mathbf{F}_p^{n},\mathbf{N} = \tfrac32\,\mathrm{dev}(\boldsymbol\tau)/q。该方案与 Eterovic、Bathe(1990)和 Simo(1992)的同类。为了传入 Newton 迭代,Cauchy 应力 \boldsymbol\sigma = \boldsymbol\tau/J 被换算为第二类 Piola–Kirchhoff 应力张量,切线 \partial\mathbf{S}/\partial\mathbf{E} 采用四阶中心差分;在 HEX8、HEX20、HEX27 和 TET10 单元上应用 \bar F 修正以防止体积闭锁。

局限。 该定律存在于内核中,并已在材料点上检验(客观性、Hencky 弹性、球形载荷下零流动);它的参数不会从材料卡片和 DSL 传入计算,该定律与实体单元的连接也未进入任何发布版本。切线为数值切线。目录中没有有限元计算层面的有限应变验证算例。

4.13Norton–Bailey 蠕变实验性

金属在高温和长期载荷下的幂律蠕变:恒定应力下应变增长,恒定应变下应力松弛。

\dot{\bar\varepsilon}_{cr} = A\,q^{\,n}\,t^{\,m},\qquad \dot{\boldsymbol\varepsilon}_{cr} = \tfrac32\,\dot{\bar\varepsilon}_{cr}\,\mathbf{s}/q

q 为 Mises 等效应力;内核中有时间硬化与应变硬化以及积分形式 \bar\varepsilon_{cr} = A q^n t^m(NAFEMS Test 10B)。积分步为隐式 Euler,采用径向返回和关于 q_{n+1} 的标量方程,切线为解析式。DSL 中的参数:creep_a、creep_n、creep_m。

局限。 内核和材料卡片已有;对于几何体,DSL 会拒绝该模型,盒体路径也会拒绝,产品不进行含蠕变的实体计算。没有温度相关性 A(T)。算例是在材料点和一维链上完成的。
验证。 材料点:恒定应力(精确)、松弛(0.2 %)、NAFEMS Test 10B(至多 3.4 %,平面应力状态)。没有有限元算例。

4.14Perzyna 黏塑性实验性

与速率相关的塑性流动:应力可以超过静态极限,超出的部分引起黏塑性流动。

\dot{\bar\varepsilon}_{vp} = \Bigl\langle \frac{q - \sigma_y(\bar\varepsilon_{vp})}{\eta}\Bigr\rangle^{m},\qquad \sigma_y = \sigma_{y0} + H\bar\varepsilon_{vp}

隐式 Euler,在区间上求标量方程 \Delta p - \Delta t\bigl\langle (f^{\mathrm{tr}} - (3\mu + H)\Delta p)/\eta\bigr\rangle^m = 0,切线为解析式。当 \Delta t\to\infty 时,定律趋于静态 J2;当 \eta 很小时,趋于刚塑性。

局限。 与蠕变相同:实体计算未接入,该模型也不用于显式和隐式动力学。参数 \eta 和 m 是有量纲的(\eta 的单位为 Pa·s^{1/m})。
验证。 材料点:超应力——流动速率和累积应变对照公式。

4.15黏弹性:Prony 级数与流变链实验性

聚合物的线性黏弹性:模量随时间松弛。剪切模量采用 Prony 级数形式,体积模量类似:

G(t) = G_0\Bigl[g_\infty + \sum_{i=1}^{M} g_i\,e^{-t/\tau_i}\Bigr],\quad g_\infty = 1 - \sum g_i,\qquad K(t) = K_0\Bigl[k_\infty + \sum k_i\,e^{-t/\tau_i}\Bigr]

各分支的内变量用精确的指数递推更新(Simo, Hughes, 1998, §10.2):\mathbf{h}_i^{n+1} = e^{-\Delta t/\tau_i}\mathbf{h}_i^n + 2G_0 g_i\,\beta_i\,\Delta\mathbf{e},\beta_i = (1 - e^{-\Delta t/\tau_i})\,\tau_i/\Delta t;至多六个分支,未给出 k_i 时取 k_i = g_i。另有一维的 Maxwell、Kelvin–Voigt、Zener 和 Burgers 链,采用精确的指数步,以及带能量平衡的热力学阻尼器。

局限。 三维材料点的 Prony 定律尚未进入任何发布版本;一维链在 0.2.1 版本发布之后进入了主分支。卡片中的参数不会传入实体的计算。没有时温等效(WLF)。
验证。 一维链对照闭合解:Maxwell 松弛、Kelvin–Voigt、标准线性固体、Burgers、黏弹性阻尼器。这是对积分器的检验,而不是对实体计算的检验。

4.16用于土体和岩石的 Drucker–Prager实验性

用于土、混凝土和岩石的、与压力相关的塑性:抗剪强度随围压增大,流动伴随剪胀。

f = q + \alpha p - k(\bar\varepsilon_p),\qquad \alpha = \frac{6\sin\varphi}{3-\sin\varphi},\quad k = \frac{6\,c\cos\varphi}{3-\sin\varphi},\quad c = c_0 + H_c\bar\varepsilon_p,\quad p = \tfrac13\mathrm{tr}\,\boldsymbol\sigma

锥面是按 Mohr–Coulomb 面的三轴压缩子午线拟合的,因此在侧向压力 P_c 下的极限轴向应力为

\sigma_{1c} = P_c\,\frac{1+\sin\varphi}{1-\sin\varphi} + \frac{2c\cos\varphi}{1-\sin\varphi}

势函数为非相关联的:g = q + \beta p,\beta = 6\sin\psi/(3-\sin\psi),剪胀角 0 \le \psi \le \varphi。返回到锥面的光滑壁;若投影越过锥顶,则返回到锥顶(de Souza Neto, Perić, Owen, 2008, §8.3)。当 \psi \ne \varphi 时,切线不对称。DSL 中的参数:cohesion(Pa)、friction_angle、dilatancy_angle(度)。

局限。 没有独立的六棱 Mohr–Coulomb 面:这是在压缩子午线上与之重合的 Drucker–Prager 锥。采用该定律的实体计算未接入(见上文);固结、承载力和边坡稳定性问题在产品中并未作为实体计算实现。当 \varphi=0 时,不可能返回到锥顶。
验证。 材料点,三轴压缩、剪胀和锥顶:算例。没有有限元算例。

4.17GTN 多孔塑性实验性

内核中只有 Gurson–Tvergaard–Needleman 屈服函数 \Phi = (q/\sigma_y)^2 + 2q_1 f\cosh\bigl(3q_2 p/2\sigma_y\bigr) - (1 + q_3 f^2) = 0 以及极限等效应力随压力变化的曲线。没有孔隙率演化、应力积分器,也没有接入计算。

验证。 唯一的算例是零孔隙率的极限情形,此时函数退化为 Mises:f = 0 时的 GTN。

4.18基于弹性解的强度准则测试版

叠加在节点应力场之上的安全系数后处理:更换准则或极限值不需要重新计算。它不属于材料定律,也不是塑性。对每个节点计算利用率 u 和安全系数 n = 1/u(应力为零时设有上限)。

准则利用率 u
von Mises\sigma_{vm}/\sigma_y
Tresca(\sigma_1 - \sigma_3)/\sigma_y
Saint-Venant(\sigma_1 - \nu\sigma_3)/\sigma_y
Rankine\max(\sigma_1/S_t,\ -\sigma_3/S_c)
Coulomb–Mohr\sigma_1/S_t - \sigma_3/S_c(\sigma_1 \ge 0 \ge \sigma_3 时);否则按主应力的符号
Drucker–Prager\bigl[\sigma_{vm} + \beta(\sigma_1+\sigma_3)\bigr]/\sigma_{eq},\beta = \frac{S_c-S_t}{S_c+S_t},\sigma_{eq} = \frac{2S_tS_c}{S_c+S_t}
Goodman、Soderberg、Gerber\sigma_{vm}/2S_f + \sigma_{vm}/2S_u;\sigma_{vm}/2S_f + \sigma_{vm}/2S_y;\sigma_{vm}/2S_f + (\sigma_{vm}/2S_u)^2
局限。 简化之处:Saint-Venant 只使用 \sigma_3,而不是 \nu(\sigma_2+\sigma_3);在 Drucker–Prager 中,第一不变量被替换为和 \sigma_1+\sigma_3(对单轴状态是精确的,在一般情形下未计入 \sigma_2);疲劳准则假定为脉动循环 0\to\sigma,幅值和平均值均为 \sigma_{vm}/2,而不是加载历史。极限值 \sigma_y, S_t, S_c, S_f, S_u 由用户在材料卡片中设定。仅限界面(结果步骤),DSL 中没有安全系数探针。
验证。 由公式的单元测试覆盖;目录中没有验证算例。

5边界条件、载荷与约束

↑ 返回目录

在 WebCAE 中,一个边界条件或载荷就是一条记录。记录由四部分组成:类型(固定、载荷、刚性约束、约束方程)、要素(位移、力、压力、加速度等)、带数值的分量,以及该记录所施加的几何对象列表:顶点、边、面或实体。对象通过模型树中的编号来寻址(surface number 3、edge number 7、vertex number 2),而不是通过包围盒中的方位。模型树中的表单与脚本命令创建的是同一条记录,二者共用同一套逻辑;命令语法见页面 /docs/dsl。

记录编译器把所有记录汇集成一个统一的问题提法并交给求解器。记录是可叠加的:同一个面上的压力和力合成一个总面力,同一个面上不同分量的固定会累积。数值按项目的单位制输入(单位标注在输入框旁边),几何以 mm 存储,而在求解器边界处一律换算为 SI:米、牛顿、帕斯卡、千克。换算只在一处完成,下游不再重复换算。

温度类作用(给定温度、热流、对流、辐射、体积热生成)以及热弹性的温度变化,在热分析一节中描述:传热与多物理场。实体间的接触与粘合见 接触与连接 一节。本节汇集的是力学作用和约束。

设定内容施加对象进入计算的方式
固定、给定位移顶点、边、面、实体消去自由度
法向约束(滚轴、对称)面面上各节点的约束方程
力顶点、边、面、实体节点力
压力、分布力面沿面的一致节点力
加速度、重力整个模型体力 \rho\,\mathbf{a}
远程力、力矩、位移顶点、边、面、实体虚拟主节点与 RBE2
刚性约束 RBE2、MPC 方程顶点、边、面、实体消去从属自由度

5.1固定与给定位移稳定

固定使所选几何上的节点沿一个、两个或三个轴的位移为零。给定位移则使这些节点取非零值 d。两种情形都是对自由度集合 S 的 Dirichlet 条件 u_i = d。

条件被精确满足,不使用罚函数。S 中的自由度从系统中消去:解写为 \mathbf{u} = \mathbf{T}\,\mathbf{u}_{\mathrm{f}} + \mathbf{u}_0,其中 \mathbf{u}_{\mathrm{f}} 为自由自由度,\mathbf{u}_0 携带非零值 d,求解的是缩减后的系统

\mathbf{T}^{\mathsf T}\mathbf{K}\,\mathbf{T}\;\mathbf{u}_{\mathrm{f}} = \mathbf{T}^{\mathsf T}\bigl(\mathbf{f} - \mathbf{K}\,\mathbf{u}_0\bigr).

不引入 Lagrange 乘子。刚性约束和 MPC 方程使用同一套消去机制,详见 求解器 一节。

用户需要指定:目标(顶点、边、面或实体)、分量 all、x、y 或 z,以及数值。数值为零是固定,非零是以项目长度单位表示的给定位移。分量 all 配非零数值时,三个轴上取相同的值。结果:位移场和支座反力(命令 reactions,见 结果 一节)。

需要了解的规则:

  • 同一个面上的 x、y、z 固定会累积;三个轴即完全固定;
  • 每个自由度只允许一个从属约束。因此在同一个面、同一个轴上,固定(d=0)优先于给定位移;对于同一个面和轴上的两个给定位移,按顺序取第一个生效,若数值不同则给出警告;
  • 给定位移只允许施加在面上。位于顶点、边或实体上的非零记录不会被悄悄丢弃:计算会报告该记录需要使用面;
  • 带有给定位移的模型视为已被约束:不会发出“无约束”警告;
  • 在实体的单个顶点上固定会给出警告:反力集中在一个节点,该处应力随网格加密而增长,应力最大值成为网格的性质而非模型的性质。用三个顶点消除六个刚体模态,则是提法所允许的;
  • 对于实体,只固定平动自由度。实体面上的“转动”记录不被求解器接受;梁和壳的支座通过框架命令(frame support)设定。
局限性。 支座是理想刚性的:在内凹角和点固定处应力是奇异的。该机制中没有弹性支座,弹性支座请使用 弹簧。局部坐标系对固定和给定位移不起作用(仅作用于矢量载荷)。线性静力分析中,非零给定位移一次性全部施加;非线性计算中的行为见 非线性计算与动力学 一节。
验证。 端部固定与轴向拉力:单轴拉伸(钢),偏差 3\cdot10^{-5}\,\%。厚板上的支座与对称:NAFEMS LE10,0.67\,\%。边界上的给定位移:子模型:开孔处的应力集中,-3.57\,\%(全局模型的位移被传递到子模型边界)。法向给定位移:圆筒膨胀,0.24\,\%。
fix surface number 1
fix surface number 2 component=z value=0.5
fix edge number 4

5.2法向约束:滚轴与对称面稳定

法向约束禁止面上的节点沿曲面法向运动,而保留其在切平面内的自由度。数值为零时是滚轴或对称面;数值非零时是沿外法向的给定位移(膨胀、收缩)。

对面上的节点 a,写出方程

\mathbf{n}_a\cdot\mathbf{u}_a = d ,

其中 \mathbf{n}_a 为节点法向。它由相邻边界三角形的法向加权平均得到,权重等于它们在该节点处的内角(Thürmer G., Wüthrich C., Computing vertex normals from polygonal facets, Journal of Graphics Tools, 1998)。按面积加权的方案经过检验后被否决:对被对角线剖分的平面四边形,它会使法向发生偏移,而按角度加权不受剖分影响。

如果节点位于两个带法向约束的面的交界处,则三个自由度上会出现多个方程。它们用带主元选取的完整 Gauss–Jordan 方法化简,且不对法向做平均。两个正交的对称面给出两个独立的行,节点保持沿其交线滑动的自由度。近似平行的法向(被分为两个面的光滑曲面)给出冗余的行,该行被舍去。相互矛盾的约束给出警告,且该行不被应用。在三个独立平面的角点处,节点被固定。

没有专门的“对称”类型。对称面就是 d=0 的法向约束,在垂直于坐标轴的平面上,它等价于固定一个分量。模型对称部分上的载荷按占整体的比例给定:若截取了四分之一,则施加四分之一的力。产品中没有反对称(条件 u_t = 0 且 u_n 自由)。

局限性。 节点法向是按网格平均得到的。在网格不均匀的曲面上,约束方向与真实法向相差一个小角度,该角度随网格加密而减小。一个面对应一个法向约束;对同一个面的重复记录会被舍去并给出警告。法向约束只对面起作用。在无摩擦接触装配体中,它只允许施加在垂直于坐标轴的面上:对倾斜的面,计算会拒绝。
验证。 带孔板,按对称面取四分之一模型,峰值应力 1.38\,\%;刚性套筒中的厚壁圆筒,0.48\,\%;圆筒按法向给定位移膨胀,0.24\,\%;NAFEMS LE1,3.62\,\%(面上的对称)。
fix surface number 2 component=normal value=0
fix surface number 3 component=normal value=0.05

5.3集中力、线力与体力稳定

力用矢量(N)给定,并施加在顶点、边、面或实体上。求解器如何处理合力,取决于目标的类型。

  • 顶点。 集中力作用在一个网格节点上。顶点必须恰好对应一个节点;否则计算拒绝。点力下应力是奇异的,点附近的数值依赖于网格,应根据远离该点的截面来判断结果(Saint-Venant 原理)。
  • 边。 合力在位于该边上的节点间平均分配。边上所有节点的份额相同,不考虑每个节点所对应的线段长度。因此在网格不均匀的边上,得到的不是均匀线载荷,而是“每个节点等量”的载荷。
  • 面。 合力 \mathbf{F} 除以以 m² 计的面积:得到均匀面力 \mathbf{t}=\mathbf{F}/A,并按一致方式积分(见下一小节)。因此节点力之和等于 \mathbf{F}。
  • 实体。 合力按体积分配:\mathbf{f}_a = (\mathbf{F}/V)\int_{\Omega} N_a\,dV,其中 V 为实体体积。对装配体,寻址的是实体;未指定实体时,力作用于整个模型。

实体上不能给定集中力矩:体单元的节点没有转动刚度。施加在区域上的力矩通过 远程载荷 给定。对于梁和壳,节点力和力矩可使用命令 frame load node=… force=… moment=…(见 框架、梁与壳面片)。

局限性。 边上的力不考虑各节点所对应的线段长度。接触装配体中不接受实体上的力:接触路径没有体载荷的输入,计算会明确拒绝。此类装配体中的加速度可以使用。
验证。 悬臂梁点力的单位与约定:点力作用下的实体悬臂梁,偏差 2.02\,\%(同一问题分别按 mm/MPa/N 和 m/Pa/N 求解)。壳上的集中力:NAFEMS LE3,0.13\,\%。端面面力:单轴拉伸(钢)。
load vertex number 3 force=0,0,-100
load edge number 5 force=0,-2000,0
load surface number 2 force=5000 component=z

5.4面上的压力与分布力稳定

压力 p 沿面的法向作用,压向实体时为正。分布力是以矢量形式给定的、单位为 Pa 的面力 \mathbf{t}_d。面上作用的面力为

\mathbf{t} = -\,p\,\mathbf{n}_{\mathrm{out}} + \mathbf{t}_d ,

其中 \mathbf{n}_{\mathrm{out}} 为外法向。节点力是一致的:

\mathbf{f}_a = \int_{\Gamma} N_a\,\mathbf{t}\;d\Gamma .

每个面的外法向由相邻单元确定:法向由所属单元的形心指向外侧。这样,即使在整个模型的形心位于材料之外的内表面(管道内腔、镗孔)上,压力的符号也是正确的。对线性单元(tri3、quad4)的平面,积分是精确的。对二次单元的面,采用 tri6(三点积分)和 quad8(3\times3 Gauss 积分)。在平面 tri6 上,角节点得到 0,中间节点各得合力的三分之一;在平面矩形 quad8 上,角节点得到合力的 -1/12,中间节点得到 +1/3。这是二次单元经典的节点分配比例。

面上的力(以 N 计)通过除以以 m² 计的面积转换为面力;distributed_force 记录则直接以 Pa 给定。同一个面上的压力和力叠加为一个载荷。

局限性。 压力在面上是常数:记录中没有对坐标的依赖(静水压力、线性梯度)。对强非线性问题,保持垂直于初始面的(“死”)压力可能是不正确的模型;随动压力见下文。对壳,压力施加在面片上(frame load patch=… p=…),对梁则用线分布载荷(frame load member=… q=…)。
验证。 NAFEMS LE10(受压厚板),0.67\,\%;NAFEMS LE1(边缘压力),3.62\,\%;NAFEMS LE6(斜板),1.65\,\%;套筒中的厚壁圆筒,0.48\,\%;分布载荷下的悬臂梁,1.03\,\%。
units mm
load surface number 1 pressure=10
load surface number 4 distributed_force=2 component=y

5.5随动压力测试版

随动压力随面一起转动,始终沿当前变形构型的法向作用。对于大位移和大转动,这是气体或液体压力唯一正确的模型。面由坐标 (\xi,\eta) 参数化,当前坐标为 \mathbf{x}=\sum N_a(\xi,\eta)\,\mathbf{x}_a,其中 \mathbf{x}_a=\mathbf{X}_a+\mathbf{u}_a。载荷比例为 \lambda 时的节点力:

\mathbf{f}_a = -\,\lambda\,p\int N_a\;\mathbf{x}_{,\xi}\times\mathbf{x}_{,\eta}\;d\xi\,d\eta .

采用 Hibbitt (1979) 的格式,另见 Wriggers, Nonlinear Finite Element Methods, 2008, §4.2.5。适用于 tri3、quad4、tri6 和 quad8 面,积分方案的选取使积分精确,并且闭合曲面上力与力矩之和在机器精度内为零。载荷的切线刚度是解析的,一般情形下不对称(单个面上的载荷是非保守的);对恒定压力下的闭合曲面,各面之和是对称的。提法的细节以及对 Newton 迭代的贡献,见 非线性计算与动力学 一节。

压力模式在实体的非线性计算设置中选择:“随动”或“死”。启用几何非线性时,默认采用随动。在“仅材料非线性”(小应变)模式下,压力为死载荷。对于任意面,有显式命令 nlgeom follower nodes="…" p=…,需给出该面的节点(3、4、6 或 8 个,p>0 表示压向实体)。

局限性。 随动压力仅在实体的非线性静力分析中、且仅在桌面应用中起作用。在隐式动力学和按施工阶段的计算中,计算会明确拒绝;框架的梁和壳不读取压力模式。单条压力记录上的“随动”标志会保存在项目中,但求解器从非线性计算设置而不是记录上的标志中取模式。对弧长法,切线解不包含载荷对参数的导数:校正步仍然收敛,但不是二次收敛。
验证。 验证目录中没有专门针对随动压力的算例。核心已通过检验计算得到验证:在所有节点发生畸变的情况下,闭合曲面上力之和与力矩之和为载荷的 10^{-13} 量级;切线与中心差分的吻合程度达 10^{-10};带扭转弹簧的板在随动压力作用下给出解析转角 \theta=\lambda(M_0+pAL/2)/k,精度达到机器零,而死压力给出的是另一个答案。状态为 beta:验证在核心层面进行,目录中没有独立的参考解。

5.6加速度、重力与旋转稳定

加速度是作用于整个模型的体载荷。给定矢量 \mathbf{a}(m/s²);材料上作用的体力为

\mathbf{f}_b = \rho\,\mathbf{a}, \qquad f_a = \int_{\Omega} N_a\,\rho\,\mathbf{a}\;dV .

重力是特例。沿 -z 方向的重力取 a_z=-9.81\,\mathrm{m/s^2}:\rho\mathbf{a} 前的符号为正,矢量 \mathbf{a} 即体力作用的方向。x、y、z 方向的分量记录叠加为一个矢量。节点力通过对体积的一致积分计算,因此合力在积分精度内等于 \rho V\mathbf{a}。

需要材料密度。对于没有密度的壳,加速度会被悄悄丢失,因此计算会拒绝并要求给定密度。对于装配体,密度按实体取值。

载荷列表中没有作为独立静力作用的离心载荷 \omega^2\rho\,r。旋转结构以另外的方式考虑:陀螺项和旋转软化包含在转子分析中(转子动力学),初始角速度在隐式动力学中给定,而基础的地震激励则在动力学和谱分析中通过基础加速度施加(相对提法 \mathbf{F}=-\mathbf{M}\boldsymbol{\iota}\,\mathbf{a}_0\,k(t))。

局限性。 每个模型只有一个加速度:不能给定随实体变化的场。加速度没有相位。并非所有计算路径都有加速度的输入:在简化路径上,线性稳定性和热弹性会拒绝,而不是丢失载荷。
验证。 施工与开挖阶段中的自重:柱的分阶段施工,0.12\,\%;分阶段开挖,0.17\,\%。基础加速度:动力学:地震基础加速度与 RBE2,0.051\,\%。
load accel=-9.81 component=z

5.7远程力、力矩与位移测试版

远程载荷在任意点 \mathbf{x}_m(可位于实体之外)施加力 \mathbf{F} 和力矩 \mathbf{M},并把它们传递给所选的面、边、顶点或实体。在该点创建一个虚拟主节点。目标的节点按刚体规则成为从属节点:

\mathbf{u}_i = \mathbf{u}_m + \boldsymbol{\theta}_m\times(\mathbf{x}_i-\mathbf{x}_m),

力和力矩施加在主节点上。消去从属节点后,它们作为等效载荷分配到目标上。远程位移给定的是主节点的自由度:三个位移和三个转角,每个轴都可以启用或关闭。点、力和力矩在所选局部坐标系中给定。

局限性。 受载区域表现为刚性:它不发生变形,因此相邻部位的刚度和该区域附近的应力被高估(与任何 RBE2 一样)。载荷在目标上的分布由几何决定,而非由材料的柔度决定;产品中没有按权重传递载荷且不增加刚度的插值约束(RBE3)。不支持柱坐标局部系。
验证。 目录中没有专门针对远程载荷的算例。通过 RBE2 的连接已由算例 动力学:基础与 RBE2 约束 以及力等效性测试(力之和与相对该点的力矩)验证。状态为 beta。
remote load surface number 2 point=150,5,5 force=1000,0,0 moment=0,0,5
remote motion surface number 2 point=1,2,3 translate=0.01,0,0 uaxes=1,0,0

5.8刚性约束 RBE2 与约束方程稳定

刚性区域(RBE2)使从属节点与主节点一起作为一个刚体运动;公式见 有限元库 一节。记录中需要指明主目标和从目标,二者可以是顶点、边、面或实体中的任意一种。

它如何进入计算。主目标和从目标的节点构成一个刚体;主节点选取最靠近主目标形心的节点。对二次网格,中间节点也成为从属节点。从属自由度通过变换 \mathbf{u}=\mathbf{T}\mathbf{u}_{\mathrm{f}}+\mathbf{u}_0 消去:不使用 Lagrange 乘子和罚函数,依赖链被折叠,缩减后的系统由同一个求解器求解(见 求解器)。两个约束对同一个自由度冲突或出现环路时,计算会停止并给出原因代码。

为使约束不与其他条件相矛盾,在计算前从中排除:

  • 被边界条件固定的节点(被排除的数量以警告报告);
  • 已在另一个刚性约束中成为从属的节点(交集被去除);
  • 主目标中已在另一个约束中成为从属的节点:它们不会被选为主节点,如果没有空闲节点,则该约束被跳过。

如果没有剩下任何从节点,则该约束被跳过并给出警告。

在项目中可以对顶点的自由度给定一般形式的约束方程 \sum_i c_i\,u_i = r(MPC)。方程的第一项是从属自由度,其余为主自由度。自由方程只能在界面表单中创建;脚本中没有对应的命令(对于框架有 frame constraint)。运动铰(转动铰、圆柱铰、球铰)由刚性区域和围绕虚拟主节点的线性方程组装而成;脚本中没有对应的命令,也没有验证算例。

局限性。 RBE2 是刚性的:它不允许区域发生变形,并会高估刚度。条件是针对小转动写出的(\boldsymbol{\theta}\times\mathbf{r} 为线性近似)。产品中未实现插值约束 RBE3;最接近的功能是远程载荷,它同样建立在 RBE2 之上。表单中的模式 pinned 和 coupling-x/y/z 被提供为“铰接”和“单轴”,但在求解器中所有这些记录都经由同一个 RBE2 通道,采用完全约束。若只需沿单一方向的约束,请给定 MPC 方程。在实体上(节点有三个自由度),与“铰接”约束的差别看不出来;在梁和壳上则差别显著。
验证。 动力学:基础与 RBE2 约束,0.051\,\%(动力放大系数 1.946,原生路径);热力学:平行杆(框架处的板约束方程),0\,\%。没有针对自由 MPC 和铰的算例。
rigid link master vertex number 6 slaves surface number 2

5.9局部坐标系测试版

对沿倾斜轴方向的载荷,需要使用局部坐标系(CS)。笛卡尔 CS 由原点、z 轴以及(必要时)x 轴方向给定。三轴系按如下方式构造:\mathbf{e}_z 为归一化的 z 轴矢量,\mathbf{e}_x 为经 Gram–Schmidt 正交化的 x 轴,\mathbf{e}_y=\mathbf{e}_z\times\mathbf{e}_x。如果未给定 x 轴或其与 z 平行,则补充一个任意的垂直方向,此时只有指定 x 才能使 CS 绕 z 旋转。

与 CS 绑定的记录的分量 x,给定数值 q,表示矢量 q\,\mathbf{e}_x(y、z 同理)。旋转只在载荷编译器中进行一次;下游的所有数值已经是全局的。CS 的原点只用于远程点,集中力作为自由矢量不读取它。CS 绑定对力、分布力、加速度、远程力和远程位移起作用。

局限性。 仅支持笛卡尔 CS。对柱坐标 CS,单位矢量 \mathbf{e}_r 取决于节点位置,单个载荷矢量的旋转在此没有定义:记录按全局轴计算并给出警告。固定、给定位移和法向约束不使用 CS。不存在的 CS 会给出警告,记录按全局轴计算。
验证。 由单元测试覆盖(三轴系的构造,各分量力之和等于给定的合力);目录中没有独立算例,因此为 beta。
cs turned origin=0,0,0 axisZ=0,0,1 axisX=1,1,0
load surface number 2 fx=1000 cs=turned

5.10螺栓预紧实验性

虚拟螺栓无需建立螺纹即可模拟连接的拧紧:两个法兰被轴向力 F_0 拉紧,螺栓作为弹性杆承受该力。适用于评估装配体中接头的张开和螺栓载荷。

模型如何建立。在螺栓头和螺母支承面的形心处创建两个主节点;每个主节点通过刚性区域与其所在面的节点相连。两个主节点之间引入 Timoshenko 梁,截面积为 A,轴向刚度为 k_b=EA/L,其中 L 为两形心之间的距离。沿螺栓轴向在主节点上施加自平衡的力偶 \pm F_0。预紧力可以通过力 F_0 或拧紧力矩给定:F_0 = T/(K\,d),其中 K 为扭矩系数(默认 0.2),d 为直径。截面积:公称值 \pi d^2/4,应力截面积 A_s=\tfrac{\pi}{4}(d-0.9382\,P)^2(采用粗牙螺距,ISO 898-1),或手动给定。强度等级(8.8、10.9、12.9)决定默认屈服强度:640、900 和 1080 MPa;该值可以手动给定。

对每个螺栓的后处理:工作力 F_{\mathrm{work}}=F_0+k_b\,\Delta u,其中 \Delta u 为解中主节点的相对轴向位移;应力 \sigma=F_{\mathrm{work}}/A;安全系数 \mathrm{SF}=\sigma_y/\sigma。标记出螺栓屈服、低安全系数(小于 1.25)以及接头张开(工作力几乎降为零)的情形。

局限性。 这是基于有限元模型的评估,而不是完整的 VDI 2230 计算。其中没有载荷引入系数 \Phi、嵌入损失、预紧力离散、温度修正,也没有螺纹剪切、螺栓弯曲和疲劳的计算。被连接件的刚度可通过输入框设定,但不进入力的公式:它由有限元模型本身得出。支承面上的刚性区域使头下的接触区变为刚性。F_{\mathrm{work}} 的评估与 VDI 2230 手算的一致性尚未验证。
验证。 没有采用独立参考解的验证:单元测试检验模型的组装(节点、蛛网、刚度、力)和后处理公式,但没有与连接的参考计算做对比。算例 接触:带预紧的法兰接头 直接给定拧紧力,不使用虚拟螺栓。脚本命令 bolt 出现在已发布版本之后。
bolt surface number 10 surface number 20 preload=20000 diameter=12 class=10.9

5.11弹簧与点质量测试版

弹簧是模型两个区域之间,或区域与固定基础之间的弹性约束;点质量是没有刚度的单节点单元。这两种单元在 有限元库 一节中描述,这里说明它们如何进入条件列表。

弹簧通过一条记录创建,记录带有自己的目标(面、边或顶点)和以 N/m 计的刚度 k;对基础,则用单词 ground 代替第二个目标。另外还可以设定横向刚度、扭转刚度和预紧力 F_0。后处理给出伸长量 \Delta L 和工作力 F=F_0+k\,\Delta L。点质量使用命令 mass,在产品中它影响由梁和壳构成的框架的模态与动力分析。

局限性。 弹簧是线性的、双向的;单向作用和间隙属于接触问题。两端的刚性区域使所连接的区域变为刚性。体单元模型中的点质量会被登记,但不进入计算:对实体上的附加质量,请使用刚性区域或密度。
验证。 目录中没有弹簧算例:测试检验的是等效单元的组装和刚度。对点质量,最接近的算例是 NAFEMS FV4,1.06\,\%。
spring surface number 3 ground k=2e6 preload=100
mass node=1000,0,0 m=100

5.12循环对称实验性

循环对称允许只计算盘、轮或叶片环的一个扇区,而不是整个结构。提法如下:扇区绕轴重复 N 次,扇区角为 \Delta\theta=2\pi/N。扇区下边界的节点绕轴旋转 +\Delta\theta(Rodrigues 公式),并在容差范围内与上边界的节点匹配。对每一对节点施加三个约束方程

\mathbf{u}_{\mathrm{high}} - \mathbf{R}(\Delta\theta)\,\mathbf{u}_{\mathrm{low}} = \mathbf{0}.

这是指标 k=0 的谐波:变形状态在所有扇区中相同。计算之后,可以把结果展开为完整的 360^\circ:位移被旋转,应力张量作为张量被旋转(此时 von Mises 等效应力不变)。

对于谐波 k\ge1(Floquet–Bloch 波),代码中按实部和虚部构造带复相位因子 \mathrm{e}^{\mathrm{i}k\Delta\theta} 的约束。静力求解器是实数求解器,不携带这样的场,因此谐波 k\ge1 不用于计算。

用户设定扇区的下边界和上边界(面)、扇区数、轴和容差:在界面中是边界条件步骤的“循环对称”部分,在脚本中是命令 cyclic。扇区的计算是带约束方程的线性静力分析。

局限性。 仅限 k=0,即轴对称的加载图案。两个边界上的网格必须在容差范围内一致;不一致会导致拒绝,或给出关于未配对节点数量的警告。转动自由度(梁、壳)不包含在约束中。载荷在所有扇区中必须相同。
验证。 目录中没有独立算例。单元测试检验:旋转保持长度和正交性、纯扭转与径向膨胀时方程的不变性、旋转时等效应力的不变性。该模块和命令 cyclic 出现在已发布版本之后。
cyclic surface number 1 surface number 2 sectors=12 axis=0,0,1 tol=0.05

5.13步、相位与载荷的时间规律测试版

载荷记录本身没有“阶段”的概念,但有几种计算以不同方式使用它们。

  • 线性静力分析。 载荷步滑块表示对唯一解的缩放:各场乘以比例 s/N。这里没有真正的逐步加载。
  • 非线性静力分析。 载荷和给定位移按比例 \lambda 成比例增长;加载路径 loadpath="1,0" 包含卸载,"1,-1,1" 为循环。详见 非线性计算与动力学 一节。
  • 谐响应。 力、压力和分布力可以带相位角 \Delta\varphi:F(t)=F\cos(\omega t+\Delta\varphi)(参数 phase,单位为度)。加速度不带相位。静力计算忽略相位并对此给出提示。
  • 动力学。 载荷乘以幅值规律 k(t),由表 amplitude="t:k,…" 给定。
  • 单元的生与死。 施工与开挖阶段整体启用和停用实体:非线性计算与动力学。
验证。 含卸载的路径:非线性求解器:载荷反向,0.021\,\%;与步数无关:与步长无关。谐波载荷的相位:谐响应:载荷相位角,0.316\,\%。

5.14几何重建时记录会怎样测试版

几何自动修复、缝合、实体抑制和布尔运算可能会去掉记录所绑定的面或顶点。规则是:记录绝不会被悄悄删除。

  • 记录保留在项目状态中,并被标记为孤立(“目标丢失”);修复报告中会指明有多少条记录失去了绑定,以及是哪些记录。
  • 孤立记录不会转移到其他对象上。如果若干个面合并为一个,原有的任何记录都不会迁移到合并后的面上:在用户自行选择面之前,迁移会改变物理含义。
  • 计算不会假装该记录不存在。在脚本中,计算会拒绝,并列出丢失的记录及其目标。在界面中,该记录被排除出计算并按名称给出警告;如果此后没有约束,则计算被阻止。
  • 在求解器中没有接收端的记录(例如中面接缝的自动连接,在接缝节点建立之前),不会被转换为占位方程:它被标记为未实现,计算会拒绝并给出其名称。
  • 几何自动修复会获得带有记录的面的列表,并且不会去除这些面。
局限性。 保护只针对自动修复。手工编辑几何和布尔运算可能去掉某个面,此时绑定会丢失;模型树中的“目标丢失”图标会提示这一点。此类记录需要手动重新指派:产品不会猜测应把它迁移到哪个面。
验证。 由记录编译器的单元测试和自动修复的场景覆盖,后者检验在受保护的面上没有记录成为孤立。目录中没有独立算例:该规则涉及的是项目状态,而非数值结果。

6接触与连接

↑ 返回目录

由多个实体组成的装配体,需要确定各实体在界面处如何连接。在 WebCAE 中,每一对实体选择一种模式:粘合、弹簧连接、无摩擦接触、摩擦接触或无连接。模式在“连接”面板(配对矩阵)中设定,或使用命令 contact;可以为整个装配体设置默认模式,并对个别配对覆盖该设置。

各模式在提法上有本质区别。粘合(bonded、tied)是线性的:界面传递任何力,且不会张开。无摩擦接触是单向的:实体只传递压力,并可能分离,因此问题是非线性的,需要按载荷步求解。摩擦增加了对历史的依赖。并非每种模式都适用于每种计算类型。如果某一配对被设为所选计算不支持的模式,计算会明确拒绝;它既不会用另一种模式代替,也不会在没有该配对的情况下继续计算。

模式线性静力非线性静力隐式动力学平台
Bonded(共用节点)支持支持,作为单一实体按计算规则(动力学)桌面端和浏览器
Tied(精确 MPC 约束)支持拒绝拒绝桌面端和浏览器
Penalty(弹簧连接)支持拒绝拒绝桌面端和浏览器
Frictionless(无摩擦)支持,按载荷步支持支持仅桌面端
Frictional(Coulomb 摩擦)拒绝拒绝支持仅桌面端

对带无摩擦接触的模态分析、线性屈曲和谐响应,问题被线性化:法向刚度按计算时刻的间隙取值,特征问题中不更新活动配对的集合。桌面(原生)应用被视为基准;浏览器支持粘合和弹簧连接。

6.1接触对的搜索测试版

命令 contact pairs all|visible <mode> 以及面板中的按钮,会为装配体中所有相互接触的实体创建配对。判据是实体表面之间的距离,而不是包围盒的相交:包围盒对形状一无所知,对它来说,嵌在另一零件切口中的零件与仅仅紧邻该切口的零件无法区分。距离按 OpenCascade 内核在导入时生成的边界曲面细分来计算。对每一对确定界面的类型:接触、可测量的间隙(结构性界面),或带有相交体积的重叠(过盈配合或装配错误)。容差是相对的:与装配体的外形尺寸挂钩。位于阈值附近的配对,可用 B-Rep 中实体之间的精确距离加以确认。

按钮“检查连通性”会找出实体群以及“漂浮”的组件,即既未被固定、也没有连接模式相连的部分。在模态分析、屈曲和谐响应中,只要各群尚未连接,计算就会拒绝,并列出未连接的实体。

局限性。 曲面细分从内侧逼近曲面,在曲面界面上,距离可能被高估一个弦误差的量;在平面界面上则是精确的。搜索只找出界面,并不选择模式:模式由用户指定。
验证。 没有专门的验证算例:搜索由单元测试以及对真实装配体的测量检验(在一个由 22 个实体组成的装配体上,几何判据剔除了按包围盒找到的 25 对中的 7 对,这七对均已用精确距离加以确认)。状态为 beta。
contact pairs all tied
contact body1 body2 frictionless

6.2共用节点的粘合(bonded)稳定

最可靠的连接:在网格生成阶段,实体相互接触的面获得共用节点,位移场通过界面按构造是连续的。求解器中没有附加条件,实体只是共享自由度。这种粘合除几何误差外不引入误差,并且适用于所有计算类型。

通过网格参数控制:bonding=0|1 启用粘合,glue=auto|contact|full 选择快速的接触搜索或完整的相交搜索,interference=cut|split|ignore 决定如何处理真实的重叠。在 cut 模式下,有争议的体积归较小的实体(销钉排挤板的材料),界面变为精确接触,体积等于并集。在 split 模式下,重叠被分割:体积准确,但配合的碎片可能成为破坏网格的薄片。在 ignore 模式下,重叠予以保留,材料被计算两次。

局限性。 按节点粘合要求在容差范围内接触或重叠:如果实体被间隙隔开,则不会有共用节点。界面两侧的网格是一致的,因此界面上只设定一个单元尺寸。对于不一致的网格,需要使用 tied 粘合。
验证。 粘合的装配体带有分阶段计算的算例:柱的分阶段施工,0.12\,\%;分阶段开挖,0.17\,\%;新生实体无预应力。没有专门针对粘合的算例。
mesh tet size=125 bonding=1 glue=full

6.3不一致网格上的粘合(tied)测试版

当两个实体在界面处的网格不同(密度不同、节点分离)时,需要使用 tied 粘合。对从属侧(slave)的每个节点,找到它在主侧(master)面上的投影点,从属节点的位移通过重心权重 w_k 用该面的节点来表示:

\mathbf{u}_s - \sum_{k} w_k\,\mathbf{u}_{m_k} = \mathbf{0}.

每个节点有三个约束方程,对于二次网格,中间节点也成对加入。约束被精确满足:从属自由度从系统中消去,如同刚性约束(求解器),不引入 Lagrange 乘子。所用方法为节点对曲面(NTS);它基于 Wriggers P., Computational Contact Mechanics, 2006 中给出的通用接触提法。

“连接”面板的设置:

  • 公式。 “自动”对直接求解器选用运动学约束,对大型装配体上采用代数多重网格预条件子的迭代求解器选用弹簧约束。“运动学(Exact MPC)”和“罚函数”则显式指定。
  • MPC 间隙上限。 从属节点—主节点距离与主面尺寸之比;超出上限的配对被否决(默认 0.8)。

计算前会检查界面:具有共用节点的一致面被跳过;界面上一个配对也找不到、间隙超过上限、以及只有一个区域的计算会被拒绝,并给出原因。

局限性。 该方法是单向的:结果略微依赖于从属侧的选取,应将较细的网格指定为从属侧。NTS 方法在任意不一致的网格上通过分片试验的严格程度不及 mortar 方法;合力的守恒由单独的算例控制。支持四面体装配体(一阶和二阶)。在非线性静力和隐式动力学中,tied 和 bonded 会拒绝:那里没有约束方程。
验证。 目录中没有以 tied 粘合作为配对唯一模式的独立算例:不一致网格上合力的守恒是针对无摩擦接触验证的(接触:非协调网格)。该粘合由配对编译器的单元测试和 UI 组装检验。状态为 beta。
contact body1 body2 tied

6.4罚函数连接(penalty)测试版

Penalty 配对使用与 tied 相同的配对几何,但连接是柔性的:在从属节点与主面上的点之间设置刚度为 k 的弹簧。当 k\to\infty 时,解趋向于 tied。当精确约束使大型装配体的条件数恶化,或界面需要略有让步时,使用该模式。

用户设定相对于计算刚度的倍数(默认 1.0,粘合为 10.0),或自己的 k 值(N/m)。

局限性。 解依赖于 k:刚度过小会在粘合界面上产生明显的相对滑移,过大则使条件数恶化。连接是双向的:界面传递拉力。单向接触是 frictionless 模式。在非线性静力和动力学中,penalty 会拒绝。
验证。 目录中没有算例,由单元测试和编译器测试覆盖。状态为 beta。

6.5无摩擦接触(frictionless)稳定

实体只沿曲面法向传递压力。间隙 g 与法向压力 p 的 Signorini 条件:

g \ge 0,\qquad p \ge 0,\qquad p\,g = 0 ,

间隙为 g = g_0 + \mathbf{n}\cdot\bigl(\mathbf{u}_s - \sum_k w_k\,\mathbf{u}_{m_k}\bigr),针对从属侧的节点 s 和主面上的点。条件通过势函数 \Pi_c=\tfrac12\,k\sum\langle -g\rangle^2 的罚函数进行正则化(其中 \langle x\rangle=\max(x,0)):压力 p=k\langle -g\rangle,活动配对的切线刚度 k\,\mathbf{n}\mathbf{n}^{\mathsf T} 对称且正定。配对在穿透 g<0 时处于活动状态;为避免活动配对的集合来回抖动,切换中加入了滞回。

计算按载荷步进行。每一步用带阻尼和非单调线搜索(Armijo 条件)的 Newton 法求解非线性系统;罚值随步数逐渐增大到给定值。步数在计算页签中设定。每一步之后,在变形构型上重新搜索配对,间隙值被传递,使配对重新打开时不会附加虚假的位移。

产品中的 mortar 这一名称指带加权间隙的提法。约束按从属面的节点建立:每个从属节点对应主面的至多三个节点,带有重心权重,间隙和法向取在投影点处。产品中没有带多边形裁剪的完整段对段积分(Popp A., Gee M., Wall W., A finite deformation mortar contact formulation using a primal–dual active set strategy, 2009)。增广 Lagrange 法(Uzawa 方法)在核心中作为研究选项实现;没有纳入产品路径,解依赖于罚函数。因此仍存在量级为 p/k 的残余穿透。

用户设定接触刚度 k(N/m)或相对于计算值的倍数、载荷步数以及配对的实体。结果:各面上的接触压力、状态(张开、接触)、接触力、按载荷步的历史。

局限性。 该模式仅在桌面应用中可用;在浏览器中,计算会拒绝并给出提示。提法:四面体装配体(线性和二次)。该模式不能与面上的非零给定位移、非轴向面上的法向约束以及实体上的力同时使用:这些计算会拒绝并给出说明。同一装配体中混合的模式集合(一部分配对粘合,一部分无摩擦)不受支持:一个装配体对应一个方程组。方法是单遍的:结果略微依赖于从属侧的选取。残余穿透在 k 较小时增大,而在取值非常大时使条件数恶化。该路径不支持自接触(非线性静力中有自接触)。
验证。 所有数值的平台均为原生。Hertz 接触:球与半空间,压力 p_0 的偏差为 0.67\,\%;Hertz 接触:线接触;均匀分片,0.01\,\%;非协调网格,合力守恒;过盈配合;销与耳片;带预紧的法兰接头;凸轮与从动件;齿轮啮合。张开与闭合、间隙—弹簧:间隙—弹簧,张开与闭合(在非线性核心层面验证)。Hertz 压力已由算例验证;实体的趋近量 \delta 给出较大的偏差(核心验收中约 4.7\,\%):压头并非绝对刚性,而罚函数是有限的。
contact frictionless
mesh tet size=0.25 order=1 bonding=0
load surface number 8 force=-25 component=z
solve
extract contact_pressure target="surface number 7"

6.6Coulomb 摩擦接触测试版

摩擦按 Coulomb 定律限制接触中的切向力:\lVert\mathbf{t}_t\rVert\le\mu\,p_n,低于极限为黏着,达到极限为滑移。该定律是不可逆的,因此结果依赖于加载历史:对每个活动接触点,记住已接受的状态。

在隐式瞬态动力学中,对每个从属节点保存其在主面上的位置以及累积的弹性滑移 \mathbf{e}。切向力用长度 s_{\mathrm{tol}} 正则化,即处于 Coulomb 极限时的弹性滑移:

\mathbf{f}_t = \frac{\mu\,p_n}{s_{\mathrm{tol}}}\;\mathbf{e},\qquad \lVert\mathbf{e}\rVert < s_{\mathrm{tol}},\qquad p_n = \varepsilon\,(-g),

其中试探弹性滑移 \mathbf{e}_{\mathrm{tr}}=\mathbf{e}_{\mathrm{old}}+\Delta\mathbf{s}_t 由先前的值与节点相对于主面材料点的切向位移相加得到,然后被平滑地限制在长度 s_{\mathrm{tol}} 以内。该限制是连续可微的,因此在过渡区切线刚度也有定义。该定律给出真正的静摩擦:受低于极限的水平力作用的物块保持不动。切线通过对配对力的中心差分得到,并与之相协调,包括换面片时投影的移动。

用户设定的系数 \mu 取值范围为 0<\mu\le10(表单中默认 0.3),以及可选的长度 s_{\mathrm{tol}}(参数 slip,单位 m;默认取接触面边长的一个比例)。结果:接触压力、状态(张开、黏着、滑移)、黏着和滑移的计数、摩擦力做功、换面片的次数。

在非线性接触的核心中还有一个带回到 Coulomb 锥的准静态变体(黏着试探,以及在 \Phi=\lVert\mathbf{t}_{\mathrm{tr}}\rVert-\mu p_n>0 时的径向回映,滑移的一致切线),它已通过解析问题验证;在产品中并未接入。

局限性。 摩擦仅在隐式瞬态动力学中可用,仅在桌面应用中,且仅适用于一阶和二阶四面体。静力、模态分析、屈曲、热、谐波以及带摩擦配对的非线性静力会拒绝:计算不会退回到无摩擦的配对。产品中,带摩擦的静力问题必须作为动力问题计算到稳定为止。对于摩擦,无阻尼的 Newmark 格式可能使物体在罚弹簧上跳动并丢失制动;建议使用 HHT-\alpha 或 Rayleigh 阻尼。初始状态 u0=static 与带摩擦的配对同时使用时会拒绝。实体之间不得共用节点。
验证。 基准为刚体的 Coulomb 定律(原生试验台,板上的物块,\mu=0.3):速度和位置误差不超过 0.06\,\%,制动距离误差不超过 0.13\,\%,摩擦功与 \tfrac12 mv_0^2 相比为 0.3\,\%,Tet4 和 Tet10 的容差为 5\,\%;低于极限的力不会使物块移动。验证目录中没有专门针对带摩擦动力学的算例。核心的准静态变体已由算例 Coulomb:黏着与滑移(\mu N=300 N,在 Q=\mu N 处过渡)、斜面物块(\mu=0.5 对 \tan 20^\circ)、Cattaneo–Mindlin(0.2\,\%)验证;这是在小模型上对核心的检验,而不是对产品全链路的检验。
contact body1 body2 frictional mu=0.3
solve transient dt=0.001 tend=0.3

6.7大位移接触与自接触测试版

在实体的几何非线性静力分析中,接触建立在变形构型上:每次组装时都重新搜索配对,也就是在每次 Newton 迭代时,而不仅仅是在载荷步之间。曲面由实体各面的三角形构成(六面体的面分成两个三角形)。对从属节点,在主三角形上找到最近点(按 Ericson 投影),间隙为

g=(\mathbf{x}_s-\mathbf{p})\cdot\mathbf{n},

其中 \mathbf{n} 为接触法向,由主面节点法向插值得到:它在棱和顶点处是连续的,否则在不共面面片之间的棱上,力的方向会发生跳变。接触在 g<0 时处于活动状态;从属节点上按核心的内力约定作用罚力 \varepsilon\,g\,\mathbf{n},主三角形的节点上则按重心权重作用大小相等、方向相反的力,因此 Newton 第三定律被精确满足。切线与力相协调,通过对配对的十二个坐标做中心差分得到(它是非对称的)。相对的法向会剔除虚假的配对:实体下表面的节点不会穿过实体厚度“侵入”同一实体的上表面。

罚值自动选取:\varepsilon=\kappa\,E\,h,其中 E 为两个实体中较小的模量,h 为各面的平均边长,\kappa 为用户设定的倍数(默认 10)。自接触通过计算页签上的复选框启用(\kappa 也在该处设定):实体的表面与自身接触,节点拓扑邻域内的三角形被排除出搜索。对梁和壳的节点列表,有命令 nlgeom contact 和 nlgeom beamcontact。

局限性。 仅限原生路径(桌面端),仅限四面体和六面体(线性和二次)。仅限无摩擦接触:带摩擦的配对、粘合和 penalty 会拒绝(既没有约束方程,也没有摩擦),计算不会被线性计算替代。共用节点的实体作为接触对会拒绝:在粘合的节点之间没有可分离的东西。罚函数会带来穿透,穿透随 \kappa 增大而减小,但会使条件数恶化。穿透的搜索受半径限制,因此载荷步过大可能漏掉接触:应使步长保持较小。
验证。 非线性求解器:接触活动集,1.42\,\%(壳缓冲器,原生路径);NTS 核心的算例为 无摩擦:滑移(0.06\,\%)、间隙—弹簧、张开与闭合。目录中没有专门针对实体自接触的算例,状态为 beta。
nlgeom on method=load steps=10
contact body1 body2 frictionless
solve

6.8梁与壳的接触实验性

对梁采用线对线接触(Wriggers P., Zavarise G., On contact between three-dimensional beams undergoing large deflections, 1997):对一对线段,取轴线上的最近点 \mathbf{x}_1(\xi)、\mathbf{x}_2(\zeta),间隙为

g=\lVert\mathbf{x}_1(\xi)-\mathbf{x}_2(\zeta)\rVert-(r_1+r_2),

其中 r 为截面半径,力是沿法向的罚力,并通过线性权重传递到四个节点上(力之和与力矩之和为零)。对平行线段,取重叠段的中点,并把力乘以重叠比例,使结果不依赖于网格的错位。梁可以发生自接触。

对壳,接触建立在中面上,并偏移半个厚度:g = s\,(\mathbf{x}_s-\mathbf{p})\cdot\mathbf{n}-(o_s+o_m),其中 o 为偏移量,s=\pm1 为所在侧。主侧双面壳的所在侧按节点—三角形配对记忆,否则一次迭代中穿过中面的节点会从反面被推出。

配对通过命令 nlgeom contact 和 nlgeom beamcontact 设定,其中给出按模型编号的节点列表、截面半径和罚值。

局限性。 无摩擦。一步之内梁轴线相互穿过的情形无法捕捉:载荷增量必须小于半径之和。截面按圆形处理(对非圆形取外接圆半径)。转动自由度不参与接触。
验证。 目录中没有独立算例。核心由验收计算和变异检验(壳与梁的测试集,所有变异均为红色)以及桥接的原生测试验证。状态为实验性:验证范围窄,没有外部基准。

6.9显式动力学中的接触测试版

显式格式中采用侵蚀接触:沿存活单元的整个外表面的单向罚函数节点—段接触。表面随侵蚀而更新,冲击体遇到的是新暴露的空腔。罚刚度用主面刚度的一个比例 \alpha 给定(参数 contactStiffness,默认 0.25):过小会造成深度穿透,过大则造成能量增长,这在能量平衡中可以看到。历史输出中给出接触能量和总平衡。

格式、侵蚀与准则的描述见 非线性计算与动力学 一节。

局限性。 仅限 HEX8;无摩擦;不能捕捉棱与棱的接触。
验证。 原生测试:杆碰撞时的速度交换在 2\,\% 以内,能量平衡在 1\,\% 以内,没有接触时杆会直接穿过。目录中没有专门针对接触的算例;侵蚀:Explicit:按塑性应变的侵蚀,1.457\,\%。
explicit erodingContact=on contactStiffness=0.25

6.10热接触测试版

热接触通过界面的传导率 h_c 把两个分离实体的温度联系起来:q_c=h_c\,(T_A-T_B)。它不依赖于力学接触,也不影响力学。提法、间隙容差和结果在 传热与多物理场 一节中描述;与基准的对比也在那里。

核心中还有一个依赖于压力和间隙的传导率模型 h_c(p_n,g_n),属于 Cooper–Mikic–Yovanovich 型(Cooper M., Mikic B., Yovanovich M., Thermal contact conductance, 1969):界面闭合时 h_c=h_0+h_p\,(p_n/p_{\mathrm{ref}})^{\alpha},有间隙时 h_c=k_{\mathrm{gas}}/(g_n+g_0),并按极限间隙截断。该模型只经过核心的内部测试验证;在界面和脚本中并未接入:用户设定的是常数 h_c,力学接触的压力不影响传导率。

局限性。 产品中 h_c 为常数。不计算摩擦产生的热。
验证。 热接触热阻,偏差 0.0003\,\%(原生路径)。
contact body1 body2 thermal hc=1000

6.11内聚力区域(CZM)实验性

内聚力区域用“牵引力—张开”定律描述胶接和复合材料接缝的分层。产品中的定律是双线性的:刚度为 K 的弹性段,直到峰值牵引力 T_{\max},然后线性软化,直至张开量 \delta_f 时完全破坏:

\delta_0=\frac{T_{\max}}{K},\qquad \delta_f=\frac{2\,G_c}{T_{\max}},\qquad D=\frac{\delta_f\,(\delta_m-\delta_0)}{\delta_m\,(\delta_f-\delta_0)},\qquad T=(1-D)\,K\,\delta ,

其中 D\in[0,1] 为标量损伤变量,卸载时不减小;G_c 为断裂能(曲线下的面积)。对混合模式,有效张开量为 \delta_m=\sqrt{\delta_n^2+\delta_s^2},破坏准则采用 Benzeggagh–Kenane 的幂律(Benzeggagh M., Kenane M., 1996):

G_c = G_{Ic} + (G_{IIc}-G_{Ic})\left(\frac{G_{II}}{G_I+G_{II}}\right)^{\eta},

其中 G_I=\tfrac12 K_n\delta_n^2,G_{II}=\tfrac12 K_t\delta_s^2,指数 \eta 默认为 1.45。在混合模式下,\delta_0 和 \delta_f 按当前的模式比计算;在比例加载下,损伤起始等价于二次名义应力准则(Camanho P., Dávila C., 2002)。

用户设定一对曲面(主面和从属面)及参数;在“连接”面板中,配对上有内聚接触的复选框,带强度 T_n 和能量 G_{Ic} 的输入框,其余参数通过脚本命令设定:刚度 K_n、K_t(N/m³),强度 T_n、T_s(Pa),断裂能 G_{Ic}、G_{IIc}(J/m²),指数 \eta。结果:界面上损伤 D 的最大值与平均值、法向和切向牵引力的峰值、最大张开量、处理的节点对数。

重要的是该定律如何进入计算。在产品中,界面是作为后处理器来计算的:根据已有解的位移,把每个从属节点上的位移跳跃与最近的主节点相比较,并计算损伤和牵引力。在全局迭代内部不会重新计算带软化的平衡,因此结果不能显示随着裂纹扩展,接缝的承载能力如何下降。把该定律集成到非线性解中(带损伤的接触对),核心中有节点—曲面配对层面的实现,但没有接入界面和脚本。

局限性。 后处理式评估:用最近的主节点代替向面上的投影;结果依赖于接缝上的网格。评估中的压缩按绝对值作为张开量计入。不模拟裂纹扩展和平衡的丧失。要研究伴随刚度下降的分层发展,目前需要在界面之外使用核心计算。
验证。 该定律在核心层面经过验证:双线性内聚力区域(G_c=0.05 N/mm,T(0.005)=5.5556 MPa,完全吻合)、混合模式(按二次准则,损伤在 t_s=8 MPa 时起始)、双悬臂梁:理论、非协调网格上的双悬臂梁,0.09\,\%、端部切口梁(II 型)。这是用解析解对该定律的检验,而不是三维装配体的计算:从产品界面到结果的链路没有单独的基准,因此状态为实验性。
contact cohesive master="surface number 3" slave="surface number 4" kn=1e12 kt=1e12 tn_max=30e6 gc_n=450

6.12接触的“收敛”判据测试版

在接触问题中,Newton 收敛并不保证物理平衡:活动配对的集合可能抖动,而罚函数问题可能“收敛”到物体失去支承而不动的解。因此,“收敛”判据由若干条件构成,而不仅仅是 Newton 迭代。

  • 对于逐步模式下的无摩擦接触,必须达到全部载荷:如果各步被中断或取消,则判据为假。
  • 按自由自由度计算的物理平衡残差(不含稳定化刚度),不得超过以载荷百分数表示的容差。只有这一条件不依赖于 Newton 做了什么。
  • 如果 Newton 未收敛,允许使用小穿透的备用判据,但仅限于最终解中存在有穿透的配对。在有载荷而无接触的计算中,不会因集合为空而得到“收敛”。
  • 提示信息会给出活动配对的数量、以载荷百分数表示的平衡残差以及最大位移;对于失去支承的物体(“机构”)或未闭合的接触,会明确指出。

对非线性静力,判据按 Newton–Raphson 准则构建(见 非线性计算与动力学),问题未收敛时不接受结果。计算不支持的模式会拒绝:共用节点的实体不作为接触,静力中的摩擦也不会退回到无摩擦的配对。

局限性。 残差容差是统一的,不能从界面配置。对于有机构的问题(无支承的物体),残差很大,但解依赖于舍入:此类模型需要通过固定来修正。
验证。 已通过对原生求解器的真实调用,在载荷反向的接触装配体上(受拉而非受压)验证:物体飞出数公里,判据为假,提示信息给出了残差及原因。破坏该检验会使相应的测试变红。目录中没有算例:算例记录的是预期结果,而这里检验的是拒绝。状态为 beta。

7有限元库

↑ 返回目录

结构单元被组装为同一个全局系统:每个节点有六个自由度 [u_x, u_y, u_z, \theta_x, \theta_y, \theta_z]。体单元只带三个位移;没有梁、壳或刚性约束与之相连的节点,其转动自由度没有刚度,会被自动固定。因此,实体、壳、梁、弹簧和点质量可以共存于同一个模型中。

本节说明有哪些单元、它们按何种提法构建,以及它们的适用界限。带有类型代码和节点数的简要目录见页面 /docs/elements;本节末尾的汇总表已与内核代码核对。

7.1通用约定稳定

所有体单元均为等参单元(Tet10 除外,见下文)。形函数对物理坐标的梯度通过映射的 Jacobi 矩阵得到:

\nabla N_i = \mathbf{J}^{-1}\,\frac{\partial N_i}{\partial \boldsymbol{\xi}},\qquad \mathbf{J}_{ab} = \sum_i \frac{\partial N_i}{\partial \xi_a}\,x_{i,b}.

应变和应力按 Voigt 顺序 [\varepsilon_{xx},\varepsilon_{yy},\varepsilon_{zz},\gamma_{xy},\gamma_{yz},\gamma_{zx}] 书写,剪应变采用工程定义 \gamma = 2\varepsilon。矩阵 \mathbf{B} 由形函数梯度组成:节点 i 的块在 \varepsilon_{xx} 行、u_x 列处为 \partial N_i/\partial x,在 \varepsilon_{yy} 行、u_y 列处为 \partial N_i/\partial y,在 \varepsilon_{zz} 行、u_z 列处为 \partial N_i/\partial z,而剪切行各带两个梯度(例如 \gamma_{xy}:在 u_x 列为 \partial N_i/\partial y,在 u_y 列为 \partial N_i/\partial x)。各向同性弹性:

\mathbf{C} = \begin{bmatrix} \lambda + 2\mu & \lambda & \lambda & 0 & 0 & 0\\ \lambda & \lambda + 2\mu & \lambda & 0 & 0 & 0\\ \lambda & \lambda & \lambda + 2\mu & 0 & 0 & 0\\ 0 & 0 & 0 & \mu & 0 & 0\\ 0 & 0 & 0 & 0 & \mu & 0\\ 0 & 0 & 0 & 0 & 0 & \mu \end{bmatrix},\quad \lambda = \frac{E\nu}{(1+\nu)(1-2\nu)},\quad \mu = \frac{E}{2(1+\nu)}.

单元刚度矩阵由 Gauss 点积分得到:

\mathbf{K}_e = \int_{V_e} \mathbf{B}^{\mathsf T}\mathbf{C}\,\mathbf{B}\,dV \approx \sum_g w_g \,\lvert\det\mathbf{J}_g\rvert\; \mathbf{B}_g^{\mathsf T}\mathbf{C}\,\mathbf{B}_g .

几何非线性路径(Total Lagrangian)使用相同的形函数和相同的积分方案:其中切线刚度由材料部分和几何部分构成,\mathbf{K}_T = \mathbf{K}_{\text{mat}} + \mathbf{K}_{\text{geo}},而默认材料为 Saint-Venant–Kirchhoff(详见 非线性计算与动力学 一节)。各向异性、塑性和超弹性材料在 材料模型 一节中描述;这里只讨论单元本身。

边界条件和约束(刚性区域、约束方程)按“主—从”方案被精确地从系统中消去:求解的是系统 \mathbf{T}^{\mathsf T}\mathbf{K}\,\mathbf{T}\,\mathbf{u}_r = \mathbf{T}^{\mathsf T}\mathbf{f},而不是罚函数系统。这不会恶化条件数,也不会使约束只被近似满足。

单位。几何以毫米(或由命令 units 声明的单位)给定,在求解器边界处一律换算为 SI:米、牛顿、帕斯卡、千克。截面尺寸、壳的厚度和点单元的质量,由用户以与几何相同的单位输入(质量以千克计)。

局限性。 在线性路径中,体单元的材料是各向同性弹性的(每个单元一组 E、\nu)。对近似不可压缩的材料没有混合(位移—压力)列式;当 \nu \to 0.5 时线性单元会闭锁(见 闭锁)。

7.2线性四面体 Tet4稳定

四节点单纯形,应变为常数。它是针对任意 CAD 几何自动生成网格的主要单元:对物体形状稳健,但对弯曲的描述较弱。

形函数与重心坐标一致,N_i = L_i,i = 1,\dots,4。梯度 \nabla L_i 为常数,因此 \mathbf{B} 也是常数,精确积分给出

\mathbf{K}_e = V_e\,\mathbf{B}^{\mathsf T}\mathbf{C}\,\mathbf{B},

即在重心处取一个 Gauss 点。单元内应力为常数,\boldsymbol{\sigma} = \mathbf{C}\mathbf{B}\mathbf{u}_e;节点场通过对相邻单元取平均构造。

该单元在任意畸变的网格上通过分片试验:仿射位移场可复现到机器精度。但常应变意味着弯曲时存在寄生刚度。在由 \approx 1400 个四面体构成的悬臂梁上,一阶固有频率被高估 22\,\%(相同单元尺寸的 Tet10 给出 -0.16\,\%)。对于受弯的实体,请采用 Tet10。

局限性。 沿厚度的单层单元对弯曲和剪切的描述较粗糙;不可压缩材料会闭锁;应力在单元之间不连续。
mesh tet size=10 order=1

7.3二次四面体 Tet10稳定

十节点单元:四个顶点和六个棱中点。二次位移场使单元内部的应变线性变化,并在相同网格上消除 Tet4 的大部分弯曲闭锁。

用重心坐标表示的形函数(N_i 为顶点,N_{ij} 为顶点 i 与 j 之间的棱中点):

N_i = L_i\,(2L_i - 1),\quad i = 1,\dots,4;\qquad N_{ij} = 4\,L_i L_j .

梯度:\nabla N_i = (4L_i - 1)\nabla L_i,\nabla N_{ij} = 4(L_j\nabla L_i + L_i\nabla L_j)。积分采用二阶四点公式,点为 (a,b,b,b) 及其置换,a = 0.5854101966,b = 0.1381966011,权重 V_e/4。对于棱为直线的单元,被积式 \mathbf{B}^{\mathsf T}\mathbf{C}\mathbf{B} 是二次多项式,该公式是精确的。

实现中的一个重要特点:在主组装器中,Tet10 是次参数的。几何由四个顶点确定(映射为线性,Jacobi 行列式为常数),而位移场由十个节点确定。位于 CAD 曲面上、发生偏移的中间节点位置,不用于刚度矩阵:单元按棱为直线来积分。这使其在曲线边界上保持非退化,但曲线边界处单元的体积和刚度按弦而不是按弧计算。对于光滑边界,误差随单元尺寸减小而减小,但并不因曲棱而获得额外的精度提高。主组装器就是这样构建的;在带粘合与接触的多实体计算分支中使用的是其他单元实现,它们的映射可能有所不同。

Tet10 面上的表面载荷按六节点三角形(Tri6)一致地积分,而不是平均分配到顶点。

内核在单元形心处计算应力,在该点角节点的贡献为零(4L_i - 1 = 0)。对于节点云图,后处理器计算单元每个节点上的应力,并按相邻单元数取平均,因此在材料交界处和应力集中处,场是被平滑的。

局限性。 \mathbf{K} 中不考虑棱的曲率(见上文)。应力场在单元之间不连续;节点平均会削平峰值。当 \nu \to 0.5 时的体积闭锁有所减弱,但并未消除。
验证。 悬臂梁的谐响应(P2 Tet10),子模型:开孔处的应力集中,Kirsch(P1 → P2)。在 20\times20\times200 mm 的悬臂上,单元尺寸为 10 mm 时,Tet10 的一阶频率与 Euler–Bernoulli 解析解相差 -0.16\,\%,而 Tet4 为 +22.35\,\%。
mesh tet size=10 order=2

7.4六面体 Hex8稳定

八节点三线性单元,用于规则的体积:长形实体、梁、板以及孔壁处的层。在结构化网格上,它给出光滑的应力场,所需单元数比四面体更少。

自然坐标 (\xi,\eta,\zeta) \in [-1,1]^3 中的形函数:

N_i = \frac{1}{8}\,(1 + \xi_i\xi)(1 + \eta_i\eta)(1 + \zeta_i\zeta).

积分为完全积分,2\times2\times2 个 Gauss 点,位于 \pm 1/\sqrt{3},权重为 1。矩阵 \mathbf{K}_e 按“通用约定”一节中的公式组装,不做任何修改。

这里必须明确指出:在线性路径中,Hex8 没有 B-bar(选择性体积投影)、没有非协调模式,也没有减缩积分。当梁的高度方向单元很少时,该单元会发生弯曲时的剪切闭锁,当 \nu \to 0.5 时发生体积闭锁。对策是沿高度方向加密网格,或改用 Hex20。例如:结构化网格 128\times8\times8 上的悬臂梁与 Euler–Bernoulli 解的偏差为 1.03\,\%;网格 96\times6\times6 上的悬臂(高度方向六个单元)由于剪切闭锁,偏差约为 2\,\%。在显式动力学中,Hex8 是一个独立的单点单元,采用 Flanagan–Belytschko 沙漏控制;它与本小节中的矩阵无关。

应力在单元中心 \xi = \eta = \zeta = 0 处计算。

局限性。 弯曲时以及近似不可压缩材料下会闭锁。要获得弯曲时准确的应力值,请使用 Hex20,或沿厚度至少划分 4–6 层。对于畸变的单元(\det\mathbf{J} 接近零),精度急剧下降。
验证。 悬臂梁(Euler–Bernoulli),Hex8 网格,端部受力的悬臂,单位一致性(2.02\,\%),NAFEMS LE11(偏差 4.88\,\%,接近容差边界),NAFEMS FV52(4.22\,\%),杆中的波速,显式动力学。
mesh hex size=5 order=1

7.5六面体 Hex20(Serendipity)稳定

二十节点单元:八个顶点和十二个棱中点,没有面中心节点和体中心节点。二次插值使其在弯曲时比 Hex8 柔软得多:沿厚度一层单元就足以得到合理的估计。适用于孔周围的环、疲劳应力集中处,以及需要光滑边界几何的接触问题。

Serendipity 族的形函数。坐标为 (\xi_i,\eta_i,\zeta_i) = (\pm1,\pm1,\pm1) 的顶点:

N_i = \frac{1}{8}(1 + \xi_i\xi)(1 + \eta_i\eta)(1 + \zeta_i\zeta)\,(\xi_i\xi + \eta_i\eta + \zeta_i\zeta - 2).

平行于 \xi 轴的棱中点(\xi_i = 0):

N_i = \frac{1}{4}(1 - \xi^2)(1 + \eta_i\eta)(1 + \zeta_i\zeta),

沿 \eta 和 \zeta 的棱类推。积分为 3\times3\times3(27 个 Gauss 点,\pm\sqrt{0.6} 和 0,权重 5/9、8/9、5/9)。与 Tet10 不同,Hex20 是完全等参的:使用全部二十个节点的坐标,因此 CAD 边界上棱的曲率体现在 \mathbf{J} 中。

应力在单元中心计算。该单元在畸变网格上可精确通过分片试验;在单根悬臂上,相对于 Hex8,闭锁的消除十分显著。

局限性。 由结构化六面体网格划分器针对正交区域生成(mesh hex … order=2);任意 CAD 实体用四面体剖分。与 Tet10 处于同一网格中的 Hex20 只有实验形式,见 Hex20–Tet10 二次过渡。节点应力平均使用单元中心的值。
验证。 该单元用于一组超弹性算例,例如 neo-Hookean 弹性,单轴拉伸、客观性检验 和 有限应变下的 MMS。线性路径在核心测试中通过分片试验以及与 Euler–Bernoulli 的对比得到验证。
mesh hex size=5 order=2

7.6六面体 Hex27(三次二次)实验性

二十七节点单元,采用完整的二次 Lagrange 基:在 Hex20 的节点之外,加上六个面的中心和体中心。形函数是一维二次 Lagrange 多项式的乘积:

N_n(\xi,\eta,\zeta) = l_a(\xi)\,l_b(\eta)\,l_c(\zeta),\quad l_{-1}(u) = \tfrac12 u(u-1),\;\; l_0(u) = 1 - u^2,\;\; l_{+1}(u) = \tfrac12 u(u+1),

其中 (a,b,c) \in \{-1,0,1\}^3 为节点 n 的位置。积分为 3\times3\times3。该单元比 serendipity 单元更完整:在强畸变和弯曲时更精确,但代价更高。

Hex27 不在产品的网格流程之内:网格划分器不生成它,因此该单元只能通过直接提供连接关系来使用。Hex27 的质量矩阵在隐式动力学中未实现,此类计算会拒绝并说明原因;模态分析和热分析可以使用。

局限性。 没有网格生成,没有验证算例。验证为核心测试中的分片试验以及与 Hex20 的对比。

7.7三棱柱 Wedge6稳定

六节点线性三棱柱:底面为三角形,沿高度方向线性插值。出现在壁面处的棱柱层(inflation)以及六面体与四面体之间的过渡中。

形函数是底面重心坐标与沿高度的线性因子的乘积:

N_i = L_{k}\,\frac{1 \mp \zeta}{2},

其中 k 为底面顶点编号,下三角形(\zeta=-1)取减号,上三角形取加号。积分是三角形上的三点公式(点 (1/6,1/6)、(2/3,1/6)、(1/6,2/3),权重 1/6)与沿高度的两点 Gauss 公式的乘积:共六个点。权重之和等于参考棱柱的体积,即 1。

该单元线性完备,因此在与 Tet4 缝合的界面上通过分片试验。退化的(非正)Jacobi 行列式会使计算停止并给出提示。

局限性。 线性单元,弯曲时的闭锁与 Hex8 相同。三棱柱没有二次版本(没有 Wedge15)。

7.8金字塔 Pyr5测试版

五节点线性金字塔:四边形底面和一个顶点。在混合网格中作为过渡单元需要,用于六面体的四边形面与四面体的两个三角形面相遇之处。

把六面体直接“退化”为金字塔(合并四个顶部节点)不是线性完备的,也不能通过分片试验,因此采用金字塔单元的有理基(Zgainski 等)。在实现中它写在“塌缩”坐标中,\hat a, \hat b \in [-1,1],w \in [0,1),其中截面的物理坐标按 (1-w) 收缩:

N_i = \frac{1}{4}(1-w)(1 + \xi_i\hat a)(1 + \eta_i\hat b),\quad i=1,\dots,4;\qquad N_5 = w .

在物理坐标 \xi = \hat a(1-w)、\eta = \hat b(1-w) 中,基含有有理项 \xi_i\eta_i\,\xi\eta/(1-w)——名称即由此而来。积分:在 (\hat a, \hat b) 上取 2\times2 个 Gauss 点,在 [0,1] 上沿 w 取两个 Gauss 节点,共八个点。积分点不会落在映射退化的顶点 w=1 处。体积等于底面积与高之积的三分之一,与真实金字塔一致。应力在金字塔轴线上 w = 1/2 处计算。

局限性。 没有二次对应单元(内核中没有 Pyr13)。该单元只出现在混合网格的过渡层中。金字塔的顶点是映射的奇异点;严重拉长的金字塔会导致条件数变差。
验证。 没有专门的验证算例。核心测试中有:“六面体 → 带公共内部节点的六个金字塔”的分片试验(内部节点可复现线性场,精度达 10^{-19}),以及体积和质量守恒的检验。状态为 beta——因为验证范围较窄。

7.9混合网格:Hex8、Wedge6、Pyr5、Tet4测试版

混合网格把一层六面体或三棱柱(在孔壁处、应力集中区、长形块体中)与四面体的其余部分连接起来。界面有两种做法:按公共节点缝合(conformal;经由 Pyr5 和 Wedge6 过渡),或采用节点—曲面约束方程。对于协调界面,Hex8 的面向中心划分为金字塔,而位于两个 Tet4 一侧的金字塔则沿同一条对角线划分为两个 Tet4,因此三角形面是重合的。

界面的正确性由分片试验检验:在“棱柱 + 四面体”的缝合网格上,均匀应力场可复现到 5\cdot10^{-13}。混合网格中的应力在每个单元的节点处计算,并对相邻单元取平均:孔壁处第一层六面体的中心距壁面有半层之遥,用中心值会使应力峰值被低估 12–15 %。

局限性。 混合网格是线性的(P1)。六面体区域与 mesh … order=2 联用不受支持,并会拒绝且给出提示。应力在界面处不连续,平均是可视化的选择,而不是平衡量。
验证。 通过缝合界面的分片试验,带孔板,应力集中(2.3\,\%),过盈配合(Lamé)(-2.5\,\%)。这些算例覆盖“棱柱—四面体”过渡;经由金字塔的过渡没有单独的算例覆盖。

7.10Hex20–Pyr13–Tet10 二次过渡实验性

二次单元的界面要求公共面上的迹相一致:Hex20 的八节点面必须与 Tet10 的两个六节点面相接。为此有两个原型;用户流程(脚本、网格划分器)无法使用它们。

第一个是针对平面 Hex20–Tet10 界面的“公共迹”(common trace)。面带有九个节点:四个角点、四个棱中点和三角剖分对角线的中点。迹一致的条件是对节点值的三个线性关系(这九个值必须是平行四边形上同一个完整二次多项式的值)。它们作为约束方程施加,而主自由度通过精确有理数运算的全局 Gauss–Jordan 约化选取,因此刚体模态和所有二次场都得以保留。网格由单独的适配器组装(从 Tet10 实体中挖去矩形空腔,并嵌入 Hex20)。在由 96 个 Tet10 和一个 Hex20 构成、边界上给定精确二次场的网格上,位移偏差的量级为 10^{-8}。

第二个是把线性混合网格转换为协调的二次 Hex20–Pyr13–Tet10 网格,其公共面为 Quad8 和 Tri6。十三节点金字塔 Pyr13 是二阶金字塔单元(5 个顶点和 8 个棱中点)。Pyr13 在求解器中并不作为刚度单元存在。 只有形函数,以及在网格准备一侧对 Gauss 点处 Jacobi 行列式的检查;该转换器没有进入发行版,在这样的网格上无法计算。

局限性。 脚本 mesh order=2 与六面体区域联用会拒绝。公共迹原型面向平面(平行四边形)界面;对曲线界面尚未得到证明。过渡单元 Wedge6 和 Pyr5 没有二次形式。混合二次网格的计算应视为研究性质。
验证。 在开发过程中进行了组装网格的原生计算,以及对约束方程的破坏性检验;验证算例集中没有该界面的算例。

7.11闭锁:有什么、没有什么稳定

闭锁是单元的寄生刚度,源于其插值无法复现所需的变形。下面如实列出已实现的内容。

  • 弯曲单元的剪切闭锁。 MITC4 壳通过假设的横向剪切将其消除(小节 MITC4 壳)。三角形壳 DKT 在边中点引入 Kirchhoff 约束,不含横向剪切。Timoshenko 梁采用 Hermite 矩阵的标准 \Phi 修正构建;当 \Phi 很小时,它过渡为无闭锁的 Euler–Bernoulli 单元。
  • 体单元的剪切闭锁。 通过提高阶次来解决:用 Tet10、Hex20、Hex27 取代 Tet4、Hex8、Wedge6、Pyr5。对于 Hex8(在线性路径中),没有 B-bar、没有非协调模式、也没有减缩积分。
  • \nu \to 0.5 时的体积闭锁。 没有混合列式:随着 \nu 趋近 0.5,线性单元比应有的情形更刚硬。二次单元会减弱闭锁,但并未消除;对近似不可压缩的材料,请使用超弹性模型(见 材料模型)。
  • F-bar。 对于有限变形的乘法型塑性 \mathbf{F} = \mathbf{F}_e\mathbf{F}_p,在 Hex8、Hex20、Hex27 和 Tet10 单元上引入变形梯度的体积平均(F-bar):\bar{\mathbf{F}} = (\bar J / J)^{1/3}\mathbf{F},其中 \bar J 为单元内的平均值。这部分代码只存在于工作版本中,未进入发行版;请将其视为实验性的。
  • 显式动力学。 Hex8 采用单点积分,使用精确的体积平均梯度,并按 Flanagan–Belytschko 做沙漏控制(黏性型和刚度型)。
  • 壳的膜闭锁。 四边形壳的膜部分是普通的双线性 Q4,采用完全积分,没有非协调模式;在粗网格上面内弯曲时,它比精确解更刚硬。对三角形壳,膜部分是常应变的 CST。
局限性。 如果问题对闭锁敏感(薄体弯曲、近似不可压缩材料),请沿厚度加密网格,并在同一几何上比较两种单元阶次。

7.12Timoshenko 梁稳定

用于框架、桁架和加劲肋的两节点空间杆单元。每个节点六个自由度,每个单元十二个。材料和截面由六个数给定:E、G、A、I_y、I_z、J。剪切模量取为 G = E/(2(1+\nu))。

局部轴(x 沿从节点 1 到节点 2 的轴线)中的刚度为闭式,不需要点积分。轴向和扭转部分:

k_{u} = \frac{EA}{L},\qquad k_{\theta_x} = \frac{GJ}{L}.

xy 平面内的弯曲(自由度 v_1,\theta_{z1},v_2,\theta_{z2}):

\mathbf{k}_{xy} = \frac{E I_z}{(1+\Phi_y)L^3} \begin{bmatrix} 12 & 6L & -12 & 6L\\ 6L & (4+\Phi_y)L^2 & -6L & (2-\Phi_y)L^2\\ -12 & -6L & 12 & -6L\\ 6L & (2-\Phi_y)L^2 & -6L & (4+\Phi_y)L^2 \end{bmatrix},\qquad \Phi_y = \frac{12\,E I_z}{\kappa_y\,G A L^2}.

在 xz 平面内,矩阵相同,但 I_z \to I_y,\kappa_y \to \kappa_z,且“位移—转角”耦合项的符号相反,因为 \theta_y = -dw/dx。当 \Phi \to 0 时得到 Euler–Bernoulli 单元(细长梁),当 \Phi 较大时剪切柔度增大;不存在闭锁。产品中的剪切系数是固定的:\kappa_y = \kappa_z = 5/6(矩形,Timoshenko 经典取值);该值与截面形状无关。

方位。局部 x 轴由节点 1 指向节点 2。参考向量为全局 Z(对于近乎竖直的梁,\lvert x_z\rvert > 0.9999,则取全局 Y)。然后 y = v_{\text{ref}} \times x,归一化,z = x \times y。矩阵通过变换 \mathbf{K}_g = \mathbf{T}^{\mathsf T}\mathbf{K}_l\,\mathbf{T},\mathbf{T} = \operatorname{blockdiag}(\mathbf{R},\mathbf{R},\mathbf{R},\mathbf{R}) 转换到全局轴。

端部的内力按 \mathbf{f}_l = \mathbf{k}_l\,\mathbf{u}_l 恢复,约定为:N > 0 为拉力,T > 0 为沿从节点 1 到节点 2 的轴线按右手定则的力矩;剪力和弯矩作为截面内力给出。

局限性。 扭转仅按 Saint-Venant 处理;没有翘曲自由度(第七个自由度),开口薄壁型材(工字钢、槽钢)的约束扭转无法复现,弯曲平面的侧向屈曲也无法复现。对此类问题,请使用腹板和翼缘的壳模型。梁材料为线弹性。几何刚度 \mathbf{K}_\sigma 由轴力构建(Przemieniecki 公式),不含弯矩和扭矩的贡献。
验证。 分布载荷下的悬臂梁(Timoshenko),Saint-Venant 轴扭转,四种边界条件下的 Euler 压杆屈曲,MacNeal–Harder 弯曲悬臂(沿弧线 96 个直梁单元,1.44\,\%),NAFEMS 模态算例 FV2、FV4 和 FV5(深梁;偏差 3.49\,\%)。MacNeal–Harder 的直悬臂和扭曲悬臂尚未纳入已通过算例集。
frame node at=0,0,0
frame node at=1000,0,0
frame member 1 2 section=rect w=40 h=80
frame support node=1 dofs="all"
frame load node=2 force=0,0,-5000

7.13扩展梁:剪切、偏移与非结构质量稳定

扩展型梁把 Timoshenko 单元扩展到二十二个数,并解除基本型的三个假设:轴线通过形心、截面在主轴上、滚转为零。

  • 滚转与参考向量。 截面绕梁轴转过给定角度,并可用任意参考向量来确定 xy 平面(而不是自动确定)。
  • 离心矩 I_{yz}。 如果截面轴不是主轴,则单元转过主轴角 \alpha,\tan 2\alpha = -2I_{yz}/(I_y - I_z),此时两个平面内的弯曲解耦。
  • 轴线偏移。 截面中心在每一端相对于节点独立偏移(刚性臂):\mathbf{u}_c = \mathbf{u}_n + \boldsymbol{\theta}\times\mathbf{r},\boldsymbol{\theta}_c = \boldsymbol{\theta}_n。柔性长度为两端截面中心之间的距离。这样可以模拟位于板面上的加劲肋,并计入平行轴定理(Steiner 定理):偏心不是靠人为增大惯性矩,而是通过几何传递。
  • 剪切中心。 单元建立在剪切中心,弯曲与扭转在该处解耦;通过同一个刚性臂 \mathbf{s} 转换到截面中心:\mathbf{K}_c = \mathbf{T}_s^{\mathsf T}\mathbf{K}_{sc}\mathbf{T}_s。当作用线不通过剪切中心时,出现弯扭耦合。
  • 剪切系数 \kappa_y、\kappa_z 在单元数据中单独设定(默认 5/6)。
  • 非结构质量,每单位长度(kg/m):作为一致平动质量加入。

节点刚度为 \mathbf{K}_n = \mathbf{A}^{\mathsf T}\mathbf{K}_c\mathbf{A},其中 \mathbf{A} 把节点自由度转换为截面中心的自由度。同样的 \mathbf{A} 也用于质量、几何刚度和热力。当附加数据为零时,矩阵与基本梁一致。类型的选择是自动的:滚转、偏移、剪切中心或非结构质量非零时,启用扩展类型。

局限性。 剪切中心和偏移由单元常数给定;扭转行为不考虑翘曲。不引入非结构质量的转动惯量。共旋(非线性)版本仅支持无偏移且无剪切中心的扩展梁——否则会拒绝。
assign beam edges=12,14 section=rect w=10 h=30 flush=outer

7.14梁铰稳定

梁端的铰会在梁的局部轴中切断三个力矩之一——M_y、M_z 或扭矩 T——的传递。允许在任一端设铰,也允许在跨内设铰。

实现中不使用罚弹簧。带铰的梁端获得一个坐标相同的专属孪生节点:孪生节点的三个位移等于主节点的位移,转角仅沿未释放的轴通过方程 \mathbf{a}\cdot(\boldsymbol{\theta}_d - \boldsymbol{\theta}_n) = 0 相连。被释放的转角仍是孪生节点的自由自由度,其刚度完全由单元提供——这是由求解器完成的静力凝聚。所有梁都在同一轴上被释放的节点,在该转角上被固定;对作用于这样的转角上的力矩没有任何东西可以平衡,计算会拒绝并给出该节点的名称。

局限性。 铰不会检查平动机构(连续三个铰、没有斜撑的桁架)——这是支座布置的性质;此类模型是退化的。
验证。 带偏心和嵌入铰的两跨梁(偏差 0.002\,\%)。

7.15梁截面库稳定

截面按类型和尺寸选取;据此计算 A、I_y、I_z、J 以及最外纤维 c_y、c_z(截面模量 W_y = I_y/c_z,W_z = I_z/c_y)。类型:矩形、箱形截面、实心圆、管、工字钢、T 形、槽钢、角钢。内核中也提供直接以一组数输入 A、I_y、I_z、J、c_y、c_z。

组合型材通过矩形求和并施以 Steiner 平移来计算,切口则按带负号的矩形处理:

I_y = \sum_k \left( \frac{b_k h_k^3}{12} + A_k (z_k - z_c)^2 \right).

Saint-Venant 扭转常数:

  • 圆和管——极惯性矩,J = \pi (D^4 - d^4)/32;
  • 边长为 a \ge b 的实心矩形——Roark 公式,J = a\,b^3\left[\tfrac13 - 0.21\tfrac{b}{a}\left(1 - \tfrac{b^4}{12a^4}\right)\right];
  • 箱形——按 Bredt 的薄壁闭口轮廓,J = 4A_m^2\,t / s,其中 A_m 为中线所围面积,s 为其周长,t 为较小的壁厚;
  • 工字钢、T 形、槽钢、角钢——开口薄壁型材,J = \tfrac13\sum b_i t_i^3。

对于开口型材,这是一阶估计:翼缘与腹板的圆角和交接处在 A、I 和 J 中不予考虑。

根据内力构造截面上的应力分布:\sigma = N/A \pm M_y z/I_y \pm M_z y/I_z;由剪力引起的切应力按 Zhuravskii 公式(静矩通过截面点网格数值计算),由扭转引起的切应力对圆和管按相应公式,箱形按 Bredt,其余按开口薄壁型材理论。等效应力按 von Mises。

局限性。 只有列出的几种截面类型,没有圆角,也没有约束扭转。剪切系数固定(5/6),与截面形状无关。
验证。 Timoshenko 悬臂,Saint-Venant 扭转,带 T 形加强筋的壳条带,带 T 形肋的 B-Rep 加筋板。没有已发布的非圆截面和箱形截面扭转算例。

7.16基于网格的截面与型材目录实验性

内核中增加了一个单独的模块,用于计算任意截面的特性:带切口的多边形。面积、形心、I_y、I_z、I_{yz} 和主轴由轮廓精确计算(Green 定理)。扭转和剪切由在 Tri6 网格上的有限元计算求得,对翘曲函数 \omega 和横向剪切函数 \Psi 求解两个 Poisson 问题:

J = I_p - \boldsymbol{\omega}^{\mathsf T}\mathbf{K}_\omega\boldsymbol{\omega},\qquad k_s = \frac{4(1+\nu)^2 I^2}{A\int \lvert\mathbf{g}\rvert^2\,dA}.

其中 I_p 为极惯性矩,k_s 为能量剪切系数(Timoshenko 梁的剪切能与弹性解的能量相等),\mathbf{g} 为剪切场。还可确定剪切中心。模块返回剪切面积 k_s A:对窄矩形为 5/6,对薄圆管恰为 1/2。该模块还增加了标准型材目录(按 EN 的 IPE、HEA、HEB、HEM 工字钢,以及按 GOST 8239 和 GOST 8240 的工字钢和槽钢)。

局限性。 该模块没有接入界面,也没有接入脚本:产品的计算梁使用上一小节的库,剪切系数固定为 \kappa = 5/6。目录把型材建模为翼缘平行且无圆角;表中的 I_y、I_z 并列保存以供核对。验证为对照精确解的测试;验证算例集中没有算例。

7.17共旋梁稳定

对于大位移和大转动问题,梁采用 Battini–Pacoste 共旋列式重新计算(Battini J.-M., Pacoste C., CMAME 191, 2002)。构型由节点位置和节点的完整转动 \mathbf{R}_g 给定;转动增量是空间旋量 \delta\mathbf{w},更新是乘法形式的,\mathbf{R}_g \leftarrow \exp(\delta\mathbf{w})\,\mathbf{R}_g(有限转动下角度相加是不正确的)。

单元的刚性坐标架由弦以及节点平均 y 轴建立。在小应变下,该坐标架中的变形量是小量:伸长 \bar u = l - l_0 和转角 \bar{\boldsymbol\theta}_i = \log\left(\mathbf{R}_r^{\mathsf T}\mathbf{R}_{g,i}\mathbf{R}_0\right)。对它们不加修改地应用前述小节中的线性 Timoshenko 单元,\mathbf{f}_l = \mathbf{K}_l\,[\bar u, \bar{\boldsymbol\theta}_1, \bar{\boldsymbol\theta}_2]。全局轴中的内力由精确的虚功得到;切线矩阵通过对解析内力做数值微分得到,采用与 Newton 法相同的旋量更新,因此与迭代相协调。

支持基本梁以及不带偏移和剪切中心的扩展梁;否则计算会明确拒绝,而不是悄悄替换物理。

局限性。 材料为弹性(单元框架中为线性规律),框架内应变很小:该单元适用于小应变下的大位移和大转动。节点力矩为“轴向”的,与旋量共轭。

7.18MITC4 壳稳定

四节点平面 Reissner–Mindlin 壳单元,用于板材、板和薄壁结构。每个节点六个自由度;单元在局部坐标架中构建,由三部分组成:膜、带横向剪切的弯曲,以及绕法向转动的罚项。

局部坐标架由节点构建:法向为对角线的向量积,轴 e_1 沿棱 1\to2,并相对法向正交化。四个节点被投影到坐标架平面上,不模拟翘曲。全局轴中的单元矩阵:\mathbf{K}_g = \mathbf{T}^{\mathsf T}\mathbf{K}_l\,\mathbf{T}。弯曲部分使用的不是转动向量 \theta_x, \theta_y,而是法向的倾角 \beta_x = -\theta_y、\beta_y = \theta_x,因此 \mathbf{T} 的转动块中含有一个额外的置换。

膜是平面应力下的双线性等参 Q4,采用 2\times2 完全积分:

\boldsymbol{\varepsilon}_m = [\partial_x u,\ \partial_y v,\ \partial_y u + \partial_x v]^{\mathsf T},\qquad \mathbf{A} = \frac{E t}{1-\nu^2}\begin{bmatrix}1 & \nu & 0\\ \nu & 1 & 0\\ 0 & 0 & \tfrac{1-\nu}{2}\end{bmatrix}.

弯曲。曲率和横向剪切:

\boldsymbol{\kappa} = [\partial_x\beta_x,\ \partial_y\beta_y,\ \partial_y\beta_x + \partial_x\beta_y]^{\mathsf T},\qquad \boldsymbol{\gamma} = [\partial_x w - \beta_x,\ \partial_y w - \beta_y]^{\mathsf T},
\mathbf{D}_b = \frac{E t^3}{12(1-\nu^2)}\begin{bmatrix}1 & \nu & 0\\ \nu & 1 & 0\\ 0 & 0 & \tfrac{1-\nu}{2}\end{bmatrix},\qquad D_s = \kappa_s\,G\,t,\quad \kappa_s = \tfrac56 .

弯曲部分按 2\times2 Gauss 积分。对剪切采用 MITC4(Dvorkin E. N., Bathe K.-J., 1984; Bathe K.-J., Dvorkin E. N., 1985):剪切的协变分量只在四个绑定点(各边中点)上计算,并线性插值:

\gamma_\xi(\xi,\eta) = \tfrac12(1-\eta)\,\gamma_\xi^{A} + \tfrac12(1+\eta)\,\gamma_\xi^{C},\qquad \gamma_\eta(\xi,\eta) = \tfrac12(1-\xi)\,\gamma_\eta^{D} + \tfrac12(1+\xi)\,\gamma_\eta^{B},

其中绑定点 A,C 位于 \xi=0、\eta=\mp1,而 D,B 位于 \xi=\mp1、\eta=0。绑定点处的协变分量 \gamma_\xi = \partial_\xi w - (\partial_\xi x\,\beta_x + \partial_\xi y\,\beta_y) 恰用该点的 Jacobi 矩阵计算。它们在每个积分点上通过 \mathbf{J}^{-1} 转换为笛卡尔分量 [\gamma_{xz},\gamma_{yz}]。假设剪切在 t/L \to 0 时消除了剪切闭锁。对于矩形单元,这些公式与矩形版本在机器精度内一致。

应力在单元中心 \xi=\eta=0 处计算:膜应力 \boldsymbol{\sigma}_m = \mathbf{C}_{ps}\boldsymbol{\varepsilon}_m 加上上、下纤维的弯曲应力,\sigma_b = \pm 6m/t^2,m = \mathbf{D}_b\boldsymbol{\kappa}。输出 \sigma_{xx}, \sigma_{yy}, \tau_{xy} 以及各纤维上平面应力下的 von Mises 等效应力 \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\tau_{xy}^2};横向切应力无法通过这种方式恢复。压力产生的节点载荷是一致的(\int N_i\,p\,dA,采用完整的 Jacobi 行列式);压力的方向与单元外法向相反。

参考面的偏移 z_0(参数 offset=bottom|middle|top,或命令 section shell 中的数值)在刚度包中考虑:\mathbf{B}' = \mathbf{B} + z_0\mathbf{A},\mathbf{D}' = \mathbf{D} + 2z_0\mathbf{B} + z_0^2\mathbf{A};此时单元等价于刚性偏移的各向同性单元(已由测试验证)。

局限性。 膜 Q4 无非协调模式:在粗网格上,板面内的弯曲比精确解更刚硬。四边形是平面的,强翘曲(扭曲网格)会使结果失真:在开发期的测量中,扭曲的 MacNeal–Harder 梁的偏差超出了 5\,\% 容差,因此没有它的已通过算例。横向剪切刚度由系数 5/6 给定,厚壳效应在一阶理论的框架内考虑。
验证。 MacNeal–Harder 矩形板(0.83\,\%),NAFEMS LE3(半球壳,0.13\,\%),LE6(斜板),Kirchhoff–Mindlin 圆板,模态算例 FV12 和 FV22(厚菱形板)。
units mm
section shell t=4
mesh shell size=40 element=quad pattern=structured

7.19法向转动(drilling)稳定

膜 Q4 和 CST 不含绕法向的转动自由度 \theta_z,而壳节点具有该自由度,并进入全局系统。若不补充,矩阵在此自由度上是退化的。把 \theta_z 约束为零(接地弹簧)会高估曲壳的弯曲刚度,因此采用 Hughes–Brezzi 罚项(Hughes T. J. R., Brezzi F., 1989):它把 \theta_z 约束的不是零,而是单元自身位移场的转动:

\Pi_d = \frac{1}{2}\,\gamma\,G\,t\int_{A_e}\left(\theta_z - \omega\right)^2 dA,\qquad \omega = \tfrac12\left(\frac{\partial v}{\partial x} - \frac{\partial u}{\partial y}\right).

其中 \gamma 为无量纲罚参数,由测试确定,相对于膜刚度很小;在界面和脚本中不可调。在纯膜或纯弯曲状态下,罚项不会引入明显的能量,而是在折角处把相邻的不共面壳的转动联系起来。对带层合板的单元,使用刚度包的膜剪切刚度。

局限性。 罚项是数值稳定化,而不是物理刚度;参数值固化在内核中,用户不能更改。除罚项外,在膜自由度中还引入可忽略的稳定化,以排除未连接平壳的平面刚体模态。
验证。 NAFEMS LE3——对法向转动稳定化方式敏感的曲壳(0.13\,\%);MacNeal–Harder 矩形板,以及单元空间取向不变性的测试。

7.20三角形壳 CST 与 DKT稳定

用于非结构化表面网格的三节点平面单元:三角形可由任何表面网格划分器生成,无需重组。由 CST 膜、DKT 弯曲和同样的法向转动罚项组成。

膜为常应变单纯形:\mathbf{B} 为常数,\mathbf{K}_m = t\,A\,\mathbf{B}^{\mathsf T}\mathbf{C}_{ps}\mathbf{B},一个点。弯曲为 Discrete Kirchhoff Triangle(Batoz J.-L., Bathe K.-J., Ho L.-W., 1980):曲率用三个节点的九个自由度 [w,\theta_x,\theta_y] 表示,Kirchhoff 假设在各边中点离散地满足,\boldsymbol{\kappa} = \mathbf{B}_{DKT}(\xi,\eta)\,\mathbf{u}。积分采用各边中点处的三个点,权重 A/3。DKT 中没有横向剪切,按构造不存在剪切闭锁。

应力:膜应力在单元内为常数,弯曲应力取在形心 \xi=\eta=1/3 处,在上、下纤维上为 \sigma_b = \pm 6m/t^2。

局限性。 DKT 适用于薄壳。在细密网格上,三角形壳的收敛性不如四边形壳:在开发期对 NAFEMS LE3 半球的测量中,网格较密时观察到约 -6\,\% 的偏差。CST 膜在面内弯曲时需要密网格。对重要的计算,宜优先使用四边形网格(surface=quad)。
验证。 NAFEMS LE1(带孔的椭圆形膜,MITC4 与 CST+DKT 网格,粗网格上 3.62\,\%)。算例集中其余的壳算例均在 MITC4 四边形网格上完成。
units mm
mesh shell size=20 surface=tri

7.21层合壳(ABD 刚度包)测试版

四节点 MITC4 壳,输入的不是各向同性的 E, \nu, t,而是单位宽度上的本构刚度包:

\mathbf{N} = \mathbf{A}\boldsymbol{\varepsilon}_0 + \mathbf{B}\boldsymbol{\kappa},\qquad \mathbf{M} = \mathbf{B}\boldsymbol{\varepsilon}_0 + \mathbf{D}\boldsymbol{\kappa},\qquad \mathbf{Q} = \mathbf{A}_s\boldsymbol{\gamma}.

刚度包按经典层合板理论逐层组装,横向剪切取一阶(FSDT)。对于边界为 z_{k-1}, z_k(自参考面起算)的第 k 层:

\mathbf{A} = \sum_k \bar{\mathbf{Q}}_k\,(z_k - z_{k-1}),\quad \mathbf{B} = \tfrac12\sum_k \bar{\mathbf{Q}}_k\,(z_k^2 - z_{k-1}^2),\quad \mathbf{D} = \tfrac13\sum_k \bar{\mathbf{Q}}_k\,(z_k^3 - z_{k-1}^3),\quad \mathbf{A}_s = \sum_k \kappa_k\,\bar{\mathbf{Q}}^{s}_k\,t_k,

其中 \bar{\mathbf{Q}}_k 为经铺层角旋转后的该层折减刚度(角度从单元的 x_e 轴绕法向量起),\bar{\mathbf{Q}}^s_k 为该层的横向剪切刚度。剪切系数:均匀的 5/6,或按层的“能量”系数 \kappa_k = \min\{1, \tfrac56\,G_{\max}/G_k\}(对软芯夹层板 \kappa \to 1)。其余部分与 MITC4 相同:带假设应变的剪切使用完整的矩阵 \mathbf{A}_s(2\times2),并加入膜—弯曲耦合 \mathbf{B} 和转动罚项。各向同性情形被恒等地复现(回归检验在 10^{-12} 水平)。

另外:材料轴中的逐层应力和失效准则——最大应力、Tsai–Hill、Tsai–Wu、Hashin(二维)以及按层间切应力的分层指数;层间应力由 FSDT 或由平衡方程恢复。热力 \mathbf{N}_T、\mathbf{M}_T 按各层的热膨胀系数计算。

局限性。 一阶理论:沿厚度的剪切分布视为已给定,逐层的层间应力是估计值。层合板的质量在梁和壳的隐式动力学中未接入(该类型在其中会拒绝);在模态分析和屈曲分析中,层合板的质量和 \mathbf{K}_\sigma 已实现。膜与翘曲方面的局限与 MITC4 相同。
验证。 验证算例集中没有独立算例。基准是经典层合板理论的另一独立实现(包含 \mathbf{A}、\mathbf{B}、\mathbf{D}、位移和各层应力数值的固定数据),以及与各向同性单元的对比;因此状态为 beta。
units mm
ortho name=ud E1=140e9 E2=10e9 nu12=0.3 G12=5e9 G13=5e9 G23=3.5e9
section shell laminate plies="ud:0.25:0,ud:0.25:45" repeat=2 symmetric=true shear=energetic
mesh shell size=40 element=quad pattern=structured

7.22共旋壳稳定

对于壳的大位移和大转动,在线性 MITC4 和 CST+DKT 单元之上,采用共旋列式 EICR(element-independent corotational;Rankin–Nour-Omid;Felippa C. A., Haugen B., CMAME 194, 2005)。与共旋梁一样,构型是节点位置和完整转动,更新为乘法形式。

单元坐标架仅由节点位置确定:对四边形,法向取自对角线,轴 e_1 为相对两边中点连线向量的投影;对三角形,则取棱 1\to2。变形自由度是坐标架中的节点位移 \bar{\mathbf{u}}_i = \mathbf{R}_r^{\mathsf T}(\mathbf{x}_i - \mathbf{x}_c) - \mathbf{R}_0^{\mathsf T}(\mathbf{X}_i - \mathbf{X}_c) 以及转角 \bar{\boldsymbol\theta}_i = \log(\mathbf{R}_r^{\mathsf T}\mathbf{R}_{g,i}\mathbf{R}_0)。对它们不加修改地应用单元的线性刚度:\bar{\mathbf{f}} = \mathbf{K}_l\,\bar{\mathbf{d}}。内力是能量 \tfrac12\bar{\mathbf{d}}^{\mathsf T}\mathbf{K}_l\bar{\mathbf{d}} 对全局自由度的精确梯度(投影项消去坐标架刚体模态和形心平动所做的功);切线通过对与旋量更新相协调的解析力做差分得到。

代码也支持层合类型,但它没有单独的验证算例。

局限性。 单元是平面的:不模拟翘曲。材料为弹性,单元坐标架中应变很小;带塑性的壳有限应变不受支持。
验证。 方板的临界载荷,铰支圆柱板块(偏差 3.55\,\%)。

7.23点质量测试版

具有六个自由度、没有刚度的单节点单元(\mathbf{K} = 0)。参数:质量 m(kg)以及全局轴中的三个转动惯量 I_{xx}、I_{yy}、I_{zz}(SI 单位)。质量矩阵是对角的:

\mathbf{M}_e = \operatorname{diag}(m, m, m, I_{xx}, I_{yy}, I_{zz}).

用于在框架和壳模型的模态与动力分析中模拟附属设备、发动机和配重。点可以由节点或坐标给定。

局限性。 点质量可从脚本使用,并在由梁和壳构成的模型中起作用;在体单元网格上不使用该命令。要把质量悬挂到实体上或网格之外的节点上,请用刚性区域把它与表面连接(见下文)。
验证。 在算例 NAFEMS FV4(带两个位于刚性约束上的非共轴点质量的悬臂)中,偏差为 1.06\,\%。没有针对该单元本身的算例;状态为 beta,因为该单元只能通过脚本创建。
units mm
mass node=1000,0,0 m=100 Ixx=0.5 Iyy=0.5 Izz=0.8

7.24弹簧测试版

模型两个区域之间,或区域与固定基础之间的弹性连接。区域可选面、边或顶点。

实现:在所选每个区域的形心处创建一个主节点;它通过刚性区域(RBE2)与区域的节点相连;在两个主节点之间设置一个具有等效特性的两节点 Timoshenko 单元。给定纵向刚度 k(N/m);在面积固定的情形下取 E_{\text{eq}} = kL/A_{\text{eq}},使 EA/L = k。横向刚度 k_t 和扭转刚度 k_\theta 是可选的:I_{\text{eq}} = k_t L^3 / (12 E_{\text{eq}}),J_{\text{eq}} = k_\theta L / G_{\text{eq}};缺省时,弯曲刚度和扭转刚度可忽略不计。“三轴”模式在基础上设置三个相互独立的正交弹簧 k_x, k_y, k_z。可以有预紧力 F_0——沿弹簧轴线的自平衡力偶。后处理给出伸长量 \Delta L = (\mathbf{u}_B - \mathbf{u}_A)\cdot\mathbf{e} 和工作力 F = F_0 + k\,\Delta L。

局限性。 弹簧是线性的,不能“只承压”:没有单向特性和间隙(为此使用接触)。如果各区域的形心重合,则取沿 z 轴的有效长度 1 mm;对于未给定基础点的对地弹簧,基础取在形心下方沿 -z 方向 10 mm 处(最好显式给定基础点)。主节点周围的刚性区域会使被固定的区域局部变为刚性,这会扭曲连接处附近的应力。
验证。 没有专门的验证算例;该单元由自动组装测试检验。状态为 beta:发行版中包含了界面,脚本命令是后来出现的。
spring surface number 3 ground k=2e6 preload=100

7.25刚性单元与约束方程稳定

刚性区域(RBE2)使从属节点与主节点一起作为一个刚体运动:

\mathbf{u}_d = \mathbf{u}_m + \boldsymbol{\theta}_m\times(\mathbf{x}_d - \mathbf{x}_m),\qquad \boldsymbol{\theta}_d = \boldsymbol{\theta}_m .

这样力和力矩都得以传递,而三自由度与六自由度节点的连接(体实体与梁)无需特殊手段即可解决。

一般形式的约束方程 \sum_i c_i u_i = r(在其他体系中称为 CE/MPC)同样被精确消去:第一项为从属自由度,其余为主自由度。从属自由度的冲突和约束环路会被检测到,并使计算停止。

局限性。 刚性区域没有变形:区域附近的应力取决于从属节点的选取(“刚性斑”效应)。
rigid link master vertex number 6 slaves surface number 2

7.26质量矩阵、几何刚度、应力稳定

质量矩阵。 对于体单元,在模态分析中单元质量 \rho V_e 在其节点间平均分配(集中的、对角的),仅含平动。对规则的 Hex8 和 Tet4,这与 HRZ 集中法一致;对 Tet10 和 Hex20,均分给出正确的总质量,但频率不够准确(不过在悬臂的弯曲模态上,P2 仍给出良好的结果)。模态分析中没有实体的一致质量。对于梁和壳,内核中实现了两种矩阵——集中的和一致的。

  • Timoshenko 梁:Przemieniecki 一致质量,含弯曲转动惯量 \rho I 和扭转惯量 \rho J;当 \Phi \to 0 时为 Hermite 质量。这一惯量对深梁和高阶模态至关重要(NAFEMS FV5)。
  • 壳(MITC4、CST+DKT):一致平动质量 M_{ab} = \rho t\int N_aN_b\,dA,对三角形的闭式为 \rho t A/12\cdot[2\ 1\ 1; 1\ 2\ 1; 1\ 1\ 2];模态质量中不计弯曲的转动惯量。
  • 实体的隐式动力学:可选一致质量 \rho\int N^{\mathsf T}N\,dV、集中的 HRZ(一致质量的对角线,按总质量缩放——始终为正,不同于 serendipity 单元的行求和)以及“按节点均分”。对于 Hex27,动力学中的质量矩阵未实现。
  • 隐式动力学中的梁和壳带有节点的平动质量和转动惯量:梁每端为 \tfrac12\rho L\,\operatorname{diag}(I_y+I_z, I_y, I_z),壳为 \rho t^3/12\cdot A_i,其中 A_i 为分配给节点的面积份额。这一提法是在最近一次发行之后出现的。
  • 显式动力学:对角质量(HRZ 集中法);对形状规则的 Hex8,节点处为 \rho V/8。

几何刚度 \mathbf{K}_\sigma(用于屈曲和预载下的频率)。对实体——由真实应力张量构造,对应三个位移的块:

(\mathbf{K}_\sigma)_{ab} = \mathbf{I}_3\int_{V_e}\nabla N_a^{\mathsf T}\,\boldsymbol{\sigma}\,\nabla N_b\,dV .

对梁——由轴力 N 构造(Przemieniecki 矩阵,弯曲块中的贡献为 N/L)。对壳——仅由膜力 \mathbf{N} 对全部三个平动构造,\int \nabla u_k^{\mathsf T}\mathbf{N}\nabla u_k\,dA;不计转动的贡献。符号对所有类型一致:拉力起稳定作用。

单元层面的应力。 基本恢复按公式 \boldsymbol{\sigma} = \mathbf{C}\mathbf{B}\mathbf{u}_e 在单元的特征点处进行(六面体和三棱柱取中心,四面体取形心,金字塔取高度中点处的轴线)。节点场是对相邻单元的平均;对于 Tet10 和混合网格,先在每个单元的节点处计算应力,然后再取平均。对梁——端部内力 \mathbf{f} = \mathbf{k}\mathbf{u} 并在最外纤维处估计;对壳——在单元中心的上、下纤维处。更精确的方法(平滑、误差指示器)在 结果、后处理与强度评估 一节中描述。

局限性。 Tet10 和 Hex20 在模态分析中的高阶模态质量是近似的。梁的 \mathbf{K}_\sigma 不含弯矩和扭矩的贡献。
验证。 NAFEMS FV5(深梁,转动惯量),FV12(自由板,壳),FV52(Hex8 方块),Euler 压杆的稳定性。

7.27热单元测试版

热问题是定义在相同几何上的标量场 T(每个节点一个自由度):Tet4、Hex8、Wedge6、Pyr5,以及二次的 Tet10、Hex20、Hex27,使用相同的积分方案和形函数。单元:K^e_{ij} = \int\kappa\,\nabla N_i\cdot\nabla N_j\,dV,体积热生成产生的载荷 F^e_i = \int Q\,N_i\,dV。二次单元的面——Tri6 和 Quad8——并不是独立的单元,而是用于边界条件积分的面:采用六点 4 阶 Dunavant 公式的六节点三角形,以及采用 3\times3 Gauss 公式的八节点四边形;热流、对流、辐射和热接触在其上积分。各种提法(稳态、瞬态、含辐射的非线性、热接触、热弹性)在 传热与多物理场 一节中描述。

局限性。 二次热单元和非线性传热是在最近一次发行之后进入版本的。

7.28汇总表稳定

表中 n 为节点数,DOF 为单元自由度数,“质量”指模态分析中实现的是哪种矩阵。详情见上面的各小节。

单元nDOF积分方案特点质量(模态分析)\mathbf{K}_\sigma状态
Tet44121 点常应变节点处 \rho V/4有稳定
Tet1010304 点(2 阶)次参数节点处 \rho V/10有稳定
Hex88242\times2\times2完全积分,无 B-bar节点处 \rho V/8有稳定
Hex2020603\times3\times3serendipity,等参节点处 \rho V/20有稳定
Hex2727813\times3\times3三次二次 Lagrange,网格划分器不生成节点处 \rho V/27有实验性
Wedge66183 × 2过渡,棱柱层节点处 \rho V/6有稳定
Pyr5515塌缩坐标中 2\times2\times2有理基,过渡节点处 \rho V/5有beta
Timoshenko 梁212闭式\kappa = 5/6,Saint-Venant 扭转一致 + 转动惯量轴力稳定
扩展梁212闭式滚转、刚性臂、剪切中心、NSM截面中心处的一致质量轴力稳定
MITC4 壳4242\times2MITC4 剪切,Hughes–Brezzi 罚项一致,平动膜力稳定
CST+DKT 壳3181 / 3 点DKT 弯曲,CST 膜一致,平动膜力稳定
层合壳4242\times2ABD 刚度包,FSDT,至多 36 个数刚度包单位面积质量刚度包膜力beta
共旋梁与壳2 / 3 / 412 / 18 / 24同线性单元EICR,大转动在隐式动力学中—稳定
点质量16—\mathbf{K}=0对角的 m、I—beta
弹簧212闭式等效梁与刚性蛛网——beta
刚性区域(RBE2)1 + k每节点 6—约束消去——稳定

库中没有的内容:作为刚度单元的 Pyr13 和 Wedge15;二次壳;结构组装器中的平面(应变、应力)单元和轴对称单元——此类问题用壳和带对称条件的窄楔形体单元来模拟,平面单元只存在于显式动力学中;带翘曲自由度的梁;非线性和单向弹簧。

带有类型代码的简要单元目录见页面 /docs/elements。

8线性分析类型

↑ 返回目录

本节汇集结构保持线弹性、位移和转角均为小量、且载荷不随之改变的各类计算,包括静力分析、固有频率与振型、特征值屈曲、对谐波激励的稳态响应、对响应谱和随机振动的响应,以及子模型、超单元缩减和转子动力学等辅助手段。接触、塑性、大位移和随时间变化的瞬态动力学见非线性计算与动力学一节。单元及其公式见有限元单元库一节;方程组与特征值问题的求解方法见求解器一节。

所有分析类型的共同约定:

  • 梁和壳在每个节点有六个自由度(三个位移和三个转角),实体单元有三个位移自由度;
  • 固定约束、约束方程和刚性区域通过“主–从”方法从方程组中消去,因此特征值问题和谐响应分析中的约束与静力分析相同;
  • 求解器边界采用国际单位制(m、N、Pa、kg),几何以毫米存储,换算只在一处完成(见单位制);
  • 实体单元的质量矩阵为集中质量矩阵:单元质量在其节点之间平均分配,对二次单元则包括中间节点。对于框架的模态分析,梁和壳可使用一致质量矩阵;
  • 原生(桌面端)路径与浏览器路径的结果基于同一套公式;以原生路径为基准。
分析类型输出内容状态脚本命令
静力分析位移、应变、应力、反力稳定solve static
模态分析频率与振型稳定solve modal
预应力模态分析载荷作用下的频率与振型测试版solve modal prestress=on
屈曲分析临界载荷因子与屈曲模态稳定solve buckling
谐响应幅频特性、相频特性、指定频率下的场稳定solve harmonic
响应谱基底剪力、位移、应力稳定solve spectrum
随机振动(PSD)均方根值 1σ 和 3σ实验性solve psd
子模型法应力集中处的局部求解测试版submodel
Craig–Bampton 超单元缩减矩阵实验性cms
转子动力学Campbell 图实验性solve rotor
不支持的内容。 不支持自由物体的惯性释放(inertia relief):未约束的物体无法进行静力求解,在谱分析中则因含有刚体运动而被拒绝。同样不支持带损耗因子的结构(滞后)阻尼;谐响应分析中可使用模态阻尼和 Rayleigh 阻尼。

8.1线性静力分析稳定

静力分析确定结构在不变载荷作用下的位移。当应力处于弹性范围、位移相对于尺寸很小、且惯性可以忽略时,应使用静力分析。

公式

线弹性体的虚位移原理:对任意容许的 \delta\mathbf{u}

\int_{\Omega} \boldsymbol{\varepsilon}(\delta\mathbf{u}) : \mathbf{C} : \boldsymbol{\varepsilon}(\mathbf{u})\, d\Omega = \int_{\Omega} \delta\mathbf{u} \cdot \mathbf{b}\, d\Omega + \int_{\Gamma_t} \delta\mathbf{u} \cdot \mathbf{t}\, d\Gamma + \sum_i \delta\mathbf{u}_i \cdot \mathbf{F}_i

其中 \mathbf{C} 为弹性张量,\mathbf{b} 为体积力(包括由加速度产生的体积力),\mathbf{t} 为面载荷(压力、分布力),\mathbf{F}_i 为集中力。用单元形函数离散后得到方程组

\mathbf{K}\,\mathbf{u} = \mathbf{f}, \qquad \mathbf{K} = \sum_{e} \int_{\Omega_e} \mathbf{B}^{\mathsf{T}} \mathbf{C}\, \mathbf{B}\, d\Omega

其中 \mathbf{B} 为应变矩阵(形函数的梯度)。对于梁和壳,局部刚度矩阵被旋转到整体坐标轴,所有单元类型汇集成一个每节点六个自由度的方程组。

固定约束与约束方程

固定约束(包括给定非零位移的约束)、约束方程 \sum_i c_i u_i = r 和刚性区域通过线性变换从方程组中消去:

\mathbf{u} = \mathbf{T}\,\mathbf{q} + \mathbf{u}_0, \qquad \mathbf{T}^{\mathsf{T}} \mathbf{K}\, \mathbf{T}\,\mathbf{q} = \mathbf{T}^{\mathsf{T}} (\mathbf{f} - \mathbf{K}\,\mathbf{u}_0)

固定约束是没有主自由度的约束(u = \text{const})。刚性区域使从属节点按刚体运动学跟随:\mathbf{u}_d = \mathbf{u}_m + \boldsymbol{\theta}_m \times (\mathbf{x}_d - \mathbf{x}_m)。它既传递力也传递力矩,因此适用于实体单元与梁、壳单元的连接。相互冲突或循环的约束会以错误代码拒绝求解,而不是悄悄选择其中之一。刚度为零的自由度(例如只有实体单元的节点上的转角)会被自动固定,以避免矩阵奇异。

只要结构被约束而不发生刚体运动,缩减后的方程组就是对称正定的。求解方式(直接分解,或带预处理器的共轭梯度法)根据问题规模选择,详见求解器一节。

用户输入与输出结果

需要设定材料、固定约束、载荷(力、压力、加速度、力矩、远端载荷)、约束,以及线性设定下的接触。结果包括:节点位移、应变和应力(各分量、von Mises 等效应力、主应力)、支座反力、梁的内力,以及壳的膜力和弯曲内力。等效应力按下式计算:

\sigma_{\text{vM}} = \sqrt{\tfrac{1}{2}\left[(\sigma_x-\sigma_y)^2 + (\sigma_y-\sigma_z)^2 + (\sigma_z-\sigma_x)^2 + 6\,(\tau_{xy}^2 + \tau_{yz}^2 + \tau_{zx}^2)\right]}

关于应力恢复和强度评估的详细内容,见结果、后处理与强度评估一节。

局限。 线性静力分析中,多个独立载荷工况及其组合尚未作为单独的求解实现:模型中存在载荷工况记录(螺栓连接和弹簧从中选取各自的记录),但各工况的结果是通过对唯一解进行缩放得到的,而不是重新计算。若需要不同的载荷,请分别运行计算,再自行组合结果:该问题是线性的。必须设置约束:未约束的物体是奇异的。
验证。 与解析解对照:悬臂梁(Euler–Bernoulli)、悬臂梁(Timoshenko)、Lamé 问题、带孔平板、Kirchhoff–Mindlin 圆板、Saint-Venant 扭转、单轴拉伸。NAFEMS 线性静力问题:LE1、LE2、LE3、LE5、LE6、LE7、LE8、LE10。所有偏差均不超过 5 % 的容差。

在脚本中,静力分析是默认的计算类型:

material E=200000000000 nu=0.3 density=7850
fix surface number 1
load surface number 2 force=5000 component=z
solve static

在界面中,计算在“计算”步骤启动,结果在结果步骤查看。

8.2模态分析稳定

模态分析求出受约束结构自由振动的固有频率和振型。它用于避免共振、评估结构的刚度和质量,也是谐响应、谱分析和随机振动分析的基础。

公式

缩减矩阵的广义特征值问题:

\mathbf{K}\,\boldsymbol{\varphi}_r = \omega_r^{2}\,\mathbf{M}\,\boldsymbol{\varphi}_r, \qquad f_r = \frac{\omega_r}{2\pi}

振型 \boldsymbol{\varphi}_r 关于质量矩阵正交:\boldsymbol{\varphi}_i^{\mathsf{T}} \mathbf{M} \boldsymbol{\varphi}_j = m_i\,\delta_{ij}。输出时振型按位移模的最大值归一化:\max \lvert \mathbf{u} \rvert = 1。这只是便于显示的归一化;此时广义质量 m_r 不等于 1,并在计算参与系数时予以考虑(见响应谱)。

质量矩阵由材料密度(实体单元、壳、梁)、梁和层合壳的非结构质量,以及用户设定的集中质量组装而成。集中质量不带转动惯量,除非在该集中质量上显式给定。

参与系数与有效质量

对于方向 d(自由度中的单位向量 \mathbf{t}_d),计算

L_{r,d} = \boldsymbol{\varphi}_r^{\mathsf{T}} \mathbf{M}\, \mathbf{t}_d, \quad \Gamma_{r,d} = \frac{L_{r,d}}{m_r}, \quad M_{\text{eff},r,d} = \frac{L_{r,d}^{2}}{m_r}

所有模态的有效质量之和趋于自由平动自由度的质量(约束节点上的质量进入基础)。这些量在谱分析中输出,用于确定质量覆盖率;普通模态计算的面板显示频率和振型。

实现方式

缩减矩阵 \mathbf{K}_r = \mathbf{T}^{\mathsf{T}}\mathbf{K}\mathbf{T} 和 \mathbf{M}_r = \mathbf{T}^{\mathsf{T}}\mathbf{M}\mathbf{T} 通过对角缩放调整到良好的条件数;低阶模态采用子空间迭代,只做一次刚度分解(对框架则采用分块 LOBPCG 方法)。自由结构(梁、壳):最低阶的零模态以零频率返回,分解时使用谱移。详细内容及按问题规模选择方法的做法,见求解器一节。

用户输入与输出结果

需要设定模态数、固定约束、带密度的材料、集中质量和约束。结果包括:以赫兹计的频率,以及用于查看和动画的振型。密度是必需的:没有质量就没有固有频率,计算将被拒绝。

局限。 与一致质量矩阵相比,实体单元的集中质量会使粗网格上高阶模态的精度偏低;二次单元(产品中的默认选择)可减小这一误差。若结构没有约束,则存在刚体运动(零频率);谱分析会拒绝这样的模型。阻尼不参与特征值问题:频率和振型对应于无阻尼系统。
验证。 NAFEMS 自由振动问题:FV2、FV4、FV5(深梁,扭转模态和轴向模态)、FV12(自由板)、FV13、FV15、FV16、FV22(厚菱形板,Mindlin 模型)、FV52(实体模型)。偏差为 0.7 % 至 4.2 %,容差 5 %。梁–壳模型:加筋机身段。P2 网格上梁的频率也在谐响应算例中得到核对。
fix surface number 1
solve modal nmodes=6
probe frequency mode=1

8.3预应力模态分析测试版

载荷会改变固有频率:拉伸使结构变刚(频率升高),压缩使结构变软(频率降低,在稳定性边界处趋于零)。这类计算适用于弦、叶片、受压杆件,以及一般在较大恒定载荷下工作的结构。

公式

首先在所加载荷下求解线性静力问题,得到应力 \boldsymbol{\sigma}_0。然后据此组装几何刚度矩阵(应力状态刚度矩阵)\mathbf{K}_\sigma,并求解问题

\left(\mathbf{K} + \mathbf{K}_\sigma(\mathbf{u}_0)\right) \boldsymbol{\varphi}_r = \omega_r^{2}\,\mathbf{M}\,\boldsymbol{\varphi}_r

对于实体单元,矩阵 \mathbf{K}_\sigma 中节点对 a、b 的子块是一个标量积分,对三个位移分量重复:

\mathbf{K}_\sigma^{ab} = \left( \int_{\Omega_e} \nabla N_a^{\mathsf{T}}\, \boldsymbol{\sigma}_0\, \nabla N_b \; d\Omega \right) \mathbf{I}_3

符号约定为:拉伸产生正贡献,压缩产生负贡献。

为什么求解的是这个问题,而不是公式 f = f_0\sqrt{1 - P/P_{\text{cr}}}。该公式是单模态的 Rayleigh–Ritz 缩减,仅当振动模态与屈曲模态一致时才是精确的。对铰支梁确实如此(偏差 0 %),对悬臂梁误差可达 4 %,但对 2:1 的铰支板,在载荷为临界载荷一半时,公式使频率偏低 14 %,而在临界载荷时频率降为零,真实值却是 f_0 的 60 %。因此产品中计算的是完整问题。

用户输入与输出结果

需要设定固定约束、载荷(面载荷、集中载荷、体积载荷)和模态数;在界面中勾选“考虑加载状态”,在脚本中使用 prestress=on。结果:载荷作用下的频率和振型。

在下列情形中,计算会明确地拒绝,而不是返回一个看似合理的数值:没有密度;没有任何约束;载荷为零(没有预应力,这就是普通模态分析);矩阵 \mathbf{K} + \mathbf{K}_\sigma 失去正定性(结构已经屈曲,不存在固有频率);特征值问题未收敛。

局限。 仅支持四面体实体模型(线性和二次),且材料为各向同性(按实体给定弹性模量和 Poisson 比);该公式不支持梁和壳。预应力状态由线性静力分析得到,载荷为非跟随载荷,不考虑载荷引起的几何变化。约束和接触罚函数的处理方式与普通模态分析相同。
验证。 此类分析没有公开算例;验证通过对照解析解的自动测试完成:带轴向力的铰支梁(频率按 f_0\sqrt{1 - P/P_{\text{cr}}} 计算,从零载荷到 0.9 倍临界载荷偏差为 0.05–0.5 %,受拉时为 0.03 %),2:1 铰支板在 N = 0.5 N_{\text{cr}} 时的情形(Navier 解,偏差 0.25 %,而用公式近似的误差为 17 %)。超过临界载荷后计算将被拒绝。验证范围狭窄且没有公开算例,是其状态为“测试版”的原因。
fix surface number 1
load surface number 2 force=-1000 component=z
solve modal nmodes=3 prestress=on

8.4线性屈曲稳定

特征值计算求出使理想结构丧失稳定(分岔)的载荷因子 \lambda_{\text{cr}} 及屈曲模态。适用于压杆、框架、壳板和平板。

公式

在参考载荷 \mathbf{f}_{\text{ref}} 下求解线性静力问题,由位移求得内力并组装几何刚度矩阵 \mathbf{K}_G = \mathbf{K}_\sigma(\mathbf{u}_{\text{ref}})。临界因子是下列问题的最小正 \lambda:

\left(\mathbf{K} + \lambda\,\mathbf{K}_G\right) \boldsymbol{\phi} = \mathbf{0} \quad\Longleftrightarrow\quad \mathbf{K}\,\boldsymbol{\phi} = \lambda\,(-\mathbf{K}_G)\,\boldsymbol{\phi}

临界载荷等于 \lambda_{\text{cr}}\,\mathbf{f}_{\text{ref}}。参考载荷取模型的全部载荷:面载荷、集中载荷、体积载荷和加速度载荷。该因子作用于全部载荷。

\mathbf{K}_G 按单元类型组装:

  • 梁:通过轴力 N(取单元两端的平均值),采用 Przemieniecki 一致几何刚度(矩阵见下);
  • 壳:通过膜力 N = \sigma_m t(四边形、三角形和层合壳);
  • 实体单元:通过应力张量 \boldsymbol{\sigma},与上一小节相同。

对于梁,v–\theta_z 平面内的“挠度–转角”子块如下(w–\theta_y 平面内为镜像子块,耦合项符号相反):

\mathbf{K}_G^{v\theta_z} = \frac{N}{L} \begin{bmatrix} \tfrac{6}{5} & \tfrac{L}{10} & -\tfrac{6}{5} & \tfrac{L}{10} \\ \tfrac{L}{10} & \tfrac{2L^2}{15} & -\tfrac{L}{10} & -\tfrac{L^2}{30} \\ -\tfrac{6}{5} & -\tfrac{L}{10} & \tfrac{6}{5} & -\tfrac{L}{10} \\ \tfrac{L}{10} & -\tfrac{L^2}{30} & -\tfrac{L}{10} & \tfrac{2L^2}{15} \end{bmatrix}

所有单元类型采用同一符号约定(拉伸起稳定作用,压缩起失稳作用),因此混合模型可以组装成同一个矩阵。

模态排序

返回指定数量的最小正因子,按升序排列。负的 \lambda(载荷反向时发生的失稳)不输出:对于这种情形,请改变载荷的符号。重根(例如方板的对称模态)作为单独的模态输出。振型按位移最大值归一化。

实现方式

矩阵 -\mathbf{K}_G 是不定的且为低秩,因此对其直接做逆迭代会发散。大规模问题使用谱移和子空间的 K 正交归一化,小规模问题使用对称矩阵对的稠密求解器。与独立稠密求解器的校核结果吻合到六位有效数字。详细内容见求解器一节。

局限。 屈曲前状态是线性的;计算的是理想结构的分岔,不含缺陷和后屈曲路径(这些由另一个计入屈曲模态缺陷的非线性计算处理)。载荷为非跟随载荷。在线性四面体上,由于剪切闭锁,临界载荷会被严重高估;做稳定性分析请使用二次单元(实测与 Euler 解的偏差约 1 %)。对实体单元,\mathbf{K}_G 中的应力按各向同性 Hooke 定律(弹性模量和 Poisson 比)恢复。如果载荷不产生影响弯曲刚度的内力(例如作用于压杆的纯横向力而没有轴向分量),则 \mathbf{K}_G 为零,计算以拒绝告终。
验证。 Euler 压杆:完整边界条件集(偏差 0.1 %),船体甲板板与 Bryan 公式对照(1.36 %),方板的临界载荷和屈曲模态(0.79 %)。
fix surface number 1
load surface number 6 force=-100 component=z
solve buckling nmodes=2
probe load_factor mode=1

8.5谐响应稳定

谐响应分析确定结构在给定频率范围内对按谐波规律变化的载荷的稳态响应。结果为幅频特性和相频特性,以及选定频率下的场。用于评估振动载荷下的共振和振幅。

公式

载荷 F\cos(\omega t + \varphi) 以复振幅 \hat{\mathbf{F}} = \mathbf{F}\,e^{i\varphi} 表示,响应 \mathbf{u}(t) = \operatorname{Re}\left(\hat{\mathbf{u}}\,e^{i\omega t}\right) 满足

\left(\mathbf{K} - \omega^{2}\mathbf{M} + i\omega\,\mathbf{C}\right)\hat{\mathbf{u}} = \hat{\mathbf{F}}

相位角 \varphi 在每个载荷上分别设定(正值为超前),因此可以设定反相的力。载荷按相位分组,模态力为复数。输出包括幅值 \lvert \hat{\mathbf{u}} \rvert、相位、速度幅值 \omega\lvert \hat{\mathbf{u}} \rvert 和加速度幅值 \omega^{2}\lvert \hat{\mathbf{u}} \rvert、模型最大值包络线以及峰值频率;在选定的频率和相位下可查看位移场。

阻尼模型

从三种模型中选择其一,它们互相排斥。

模态阻尼。 所有保留模态取同一个临界阻尼比 \zeta:\mathbf{C}_m = \operatorname{diag}(2\zeta\, m_j\,\omega_j)。

Rayleigh 阻尼。 \mathbf{C} = \alpha\mathbf{M} + \beta\mathbf{K}。在模态基下该矩阵精确地为对角阵,模态的临界阻尼比为

\zeta_j = \frac{\alpha}{2\omega_j} + \frac{\beta\,\omega_j}{2}

系数可直接给定(\alpha 以 1/s 计,\beta 以 s 计),也可由两组“频率–临界阻尼比”(f_1, \zeta_1)、(f_2, \zeta_2) 确定:

\beta = \frac{2\,(\zeta_2\omega_2 - \zeta_1\omega_1)}{\omega_2^{2} - \omega_1^{2}}, \qquad \alpha = \frac{2\,\omega_1\omega_2\,(\zeta_1\omega_2 - \zeta_2\omega_1)}{\omega_2^{2} - \omega_1^{2}}

若某组数据导致 \alpha 或 \beta 为负(即在部分频谱上出现负阻尼),则被拒绝。在 Rayleigh 模式下不再另外加入 \zeta。

按实体的 Rayleigh 阻尼。 装配体的每个实体有各自的一对 (\alpha_r, \beta_r),\mathbf{C} = \sum_r (\alpha_r\mathbf{M}_r + \beta_r\mathbf{K}_r)。这是非比例阻尼,模态矩阵是满阵:

\left(\mathbf{C}_m\right)_{ij} = \sum_r\left(\alpha_r\,\boldsymbol{\varphi}_i^{\mathsf{T}}\mathbf{M}_r\boldsymbol{\varphi}_j + \beta_r\,\boldsymbol{\varphi}_i^{\mathsf{T}}\mathbf{K}_r\boldsymbol{\varphi}_j\right)

在每个频率上求解一个规模等于模态数的复方程组。不使用对角近似:它会丢失各模态经由实体边界产生的耦合。结果面板会就零阻尼、临界阻尼比大于一以及强非比例性发出警告。

不支持结构(滞后)阻尼。

两种求解方法

模态叠加法。 响应按保留的振型展开 \hat{\mathbf{u}} = \sum_j \boldsymbol{\varphi}_j q_j,在每个频率上求解方程组

\left(\operatorname{diag}(k_j - \omega^{2}m_j) + i\omega\,\mathbf{C}_m\right)\mathbf{q} = \hat{\mathbf{f}}, \qquad \hat{f}_j = \boldsymbol{\varphi}_j^{\mathsf{T}}\hat{\mathbf{F}}, \quad k_j = m_j\omega_j^{2}

对恒定的 \zeta,这就是 q_j = \hat{f}_j / \left[m_j(\omega_j^{2} - \omega^{2} + 2i\zeta\omega_j\omega)\right]。该方法速度快,但依赖于保留的模态数:舍去的高阶模态的贡献(静力修正)不会被加入。模态力只考虑载荷和振型的平动分量。频率网格为线性或对数分布,并可在共振点附近选择性加密。

直接法(Direct FRF)。 不截断基底,在每个频率上求解完整的稀疏复方程组 \left(\mathbf{K} - \omega^{2}\mathbf{M} + i\omega\mathbf{C}\right)\hat{\mathbf{u}} = \hat{\mathbf{F}}(采用 COLAMD 排序的稀疏 LU 分解;在整个频率范围内只对结构分解一次)。Rayleigh 阻尼按单元设定:\mathbf{C} = \sum_e(\alpha_e\mathbf{M}_e + \beta_e\mathbf{K}_e),统一的一对系数是其特例。支持所有单元类型,包括梁和壳,也支持齐次约束方程和刚性区域。在每个频率上检查复方程组的残差;若残差超限或出现奇异(无阻尼共振),计算将以错误中止,而不会改用模态法替代。此外还输出复数场:支座反力、应力(线性分量以复振幅表示)、梁的内力、壳的应力。对复振幅不计算 von Mises 等效应力之类的非线性不变量。直接法需显式启用(method=direct),或在按实体设定 Rayleigh 阻尼且原生求解器可用时自动选用。它要求 Rayleigh 阻尼(恒定的 \zeta 仅在模态基下有定义),并且仅在桌面应用中可用。

用户输入与输出结果

需要设定频率范围(f_{\min}、f_{\max})、点数、模态法使用的模态数、阻尼模型,以及带相位的载荷。结果:选定节点处的幅频特性和相频特性、模型包络线、峰值频率、指定频率下的场;直接法还包括反力和应力。

局限。 仅限无接触的线性系统;直接法拒绝接触罚函数。不支持支座的非零给定位移(运动学谐波激励)。模态法按模态数截断,且不对舍去的模态加入静力修正:请检查随模态数的收敛性。模态法不考虑载荷中的力矩(只投影到平动分量);直接法接受完整的载荷向量。界面和脚本的谐响应分析中没有作为激励参数的基础加速度;对于基础的地震和振动激励,请使用响应谱和随机振动。
验证。 P2 单元悬臂(0.23 %),P1 单元杆的纵向振动(0.03 %),带 Rayleigh 阻尼的振子(0.06 %),两个实体采用不同 Rayleigh 系数对的悬臂(模态基对比直接解),铰支梁上的载荷相位(0.32 %)。Rayleigh 阻尼也在时域中得到验证:悬臂的自由衰减振动(0.07 %)。
fix surface number 1
load surface number 2 force=-1000 component=z phase=0
solve harmonic fmin=380 fmax=440 npoints=61 nmodes=6 zeta=0.05
probe harmonic_amplitude x=200 freq=406

用两组数据设定 Rayleigh 阻尼的直接法:

solve harmonic method=direct rayleigh f1=50 z1=0.02 f2=500 z2=0.05 fmin=10 fmax=1000 npoints=40

8.6响应谱(RSA)稳定

谱分析根据设计加速度谱(地震谱、冲击谱和振动谱)给出的基础运动,评估结构的最大响应。计算建立在已完成的模态分析之上,不需要时间积分。

公式

基础沿方向 d(向量 \mathbf{t}_d)以加速度 a_g(t) 运动:

\mathbf{M}\ddot{\mathbf{u}} + \mathbf{C}\dot{\mathbf{u}} + \mathbf{K}\mathbf{u} = -\mathbf{M}\,\mathbf{t}_d\,a_g(t)

对于周期为 T_m 的模态 m 和谱中的伪加速度 S_a(T_m),峰值为(参与系数 \Gamma 和有效质量 M_{\text{eff}} 与模态分析相同,公式见上):

\mathbf{u}_m = \Gamma_{m,d}\,\frac{S_a(T_m)}{\omega_m^{2}}\,\boldsymbol{\varphi}_m, \qquad V_m = M_{\text{eff},m,d}\,S_a(T_m)

其中 V_m 为模态基底剪力。质量按特征值问题的集中质量矩阵计算;振型乘以 \Gamma,因此结果与振型的归一化和符号无关。

模态组合

同一量的各模态峰值贡献 r_m(带符号!)按下列规则之一组合:

  • SRSS:R = \sqrt{\sum_m r_m^{2}},用于频率分散的情形;
  • CQC:R = \sqrt{\sum_m\sum_n \rho_{mn}\, r_m r_n},用于频率接近的情形,相关系数取 Der Kiureghian 公式(Der Kiureghian,1981):
\rho_{mn} = \frac{8\sqrt{\zeta_m\zeta_n}\,(\zeta_m + \beta\zeta_n)\,\beta^{3/2}} {(1-\beta^{2})^{2} + 4\zeta_m\zeta_n\beta(1+\beta^{2}) + 4(\zeta_m^{2}+\zeta_n^{2})\beta^{2}}, \qquad \beta = \frac{\omega_n}{\omega_m}
  • ABS:R = \sum_m \lvert r_m \rvert,保守的上界估计。

CQC 中的临界阻尼比 \zeta 决定相关性;规范谱的纵坐标按 5 % 给定,不随 \zeta 换算。激励方向在模态之后组合:按方向做 SRSS,R = \sqrt{\sum_d R_d^{2}},或采用 100–30–30 规则(ASCE 7-16,第 12.5.3 条):R = \max_d\left(R_d + 0.3\sum_{e\neq d}R_e\right)。

剩余质量

舍去的模态对零周期加速度(ZPA)产生刚性响应。剩余质量 M_{\text{res},d} = M_{\text{ref},d} - \sum_m M_{\text{eff},m,d},其中 M_{\text{ref},d} 为未约束平动自由度的质量。对基底剪力的修正 V_{\text{res}} = M_{\text{res},d}\cdot \text{ZPA}_d 按 SRSS 与模态响应叠加(NRC Regulatory Guide 1.92,ANSYS:missing mass)。对于位移场和应力场,剩余部分通过单独的静力求解 \mathbf{K}\mathbf{u}_{\text{res}} = \text{ZPA}\,\mathbf{M}\,(\mathbf{t}_d - \sum_m\Gamma_{m,d}\boldsymbol{\varphi}_m) 得到,约束相同。规范要求每个方向的质量覆盖率不低于 90 %(SP 14.13330,ASCE 7-16,第 12.9.1.1 条):覆盖率不足时,结果会标注警告,说明其不适用于设计,应增加模态数。

设计谱

  • SP 14.13330.2018:场地设计地震烈度 7、8、9 度,土类别 I–IV,用途系数 K_0、容许损伤系数 K_1、能量耗散系数 K_\psi;竖向分量采用单独的谱,公式相同,取 K_\psi = 1,并乘以系数 0.75(第 5.12 条)。
  • ASCE 7-16 和 7-22:参数 S_s、S_1(7-16,系数 F_a、F_v 按表取值)或 S_{DS}、S_{D1}(7-22),场地类别,周期 T_L,R,I_e。
  • 用户表格:(周期或频率,S_a)数据对,采用线性或对数插值,单位为 g 的倍数或 m/s²。

规范参数不会被悄悄代入:缺少的内容会在运行模态分析之前以错误形式指出。

输出内容

模态表(频率、周期、广义质量、\Gamma、有效质量及其占比、累计占比、S_a、模态基底剪力)、各方向的质量覆盖率、各方向及合成的基底剪力,以及各场。位移按分量组合且非负(包络),组合时位移的符号丢失,这是 RSA 的惯例。应力和应变分量在应用 SRSS 或 CQC 之前,先按模态贡献的符号组合。von Mises 等效应力、主应力和等效应变不是由分量包络计算得到的:它们取为二次不变量在 SRSS/CQC 组合椭球上的最大值(“响应谱椭球峰值”,response-spectrum ellipsoid peak)。这是包络线的峰值,而不是给定加速度时程的时间最大值;此类场适用于方向间采用 SRSS、模态间采用 SRSS 或 CQC 规则的组合结果。

局限。 支持平动自由度的激励。对于实体单元的质量,支持四面体和八节点六面体、二次四面体、梁、壳和集中质量;棱柱、金字塔和二次六面体会被拒绝,以免悄悄丢失质量。谱分析中的框架模态使用集中质量,使 \Gamma 和 M_\text{eff} 与特征值问题采用同一矩阵;当矩阵不一致时,会给出破坏 \mathbf{M} 正交性的警告。没有平动质量的模态(扭转、转动)对平动激励没有响应,并连同编号清单一起被排除。剩余质量修正计入基底剪力,在已求解剩余静力问题时也计入各场;否则各场中只含保留的模态,并会明确说明。该方法给出的是包络线的峰值,而不是随时间变化的序列。
fix surface number 1
solve spectrum code=sp14 intensity=8 soil=II dir=x,y combine=cqc dircombine=srss zeta=0.05 nmodes=20
probe spectrum_base_shear dir=x
probe spectrum_cumulative_mass dir=x

8.7随机振动(PSD)实验性

随机振动分析评估结构在平稳高斯基础激励下的均方根(RMS)响应,激励由加速度功率谱密度(PSD、ASD)给定——典型应用于运输、航空和航天技术。

公式

激励为单边密度 S_a(f),单位为 g^2/Hz(或国际单位,m²/s⁴ 每 Hz),由“频率–密度”点表给出,采用分段对数(log–log)或线性插值。在点 (f_1, S_1)、(f_2, S_2) 之间,log–log 插值为 S(f) = S_1(f/f_1)^{k},k = \ln(S_2/S_1)/\ln(f_2/f_1)。输入 RMS 值 a_{\text{rms}} = \sqrt{\int S_a\,df} 按分段解析积分。

响应由模态叠加构造。模态 j 对相对位移和绝对加速度的传递函数:

H_j^{u}(\omega) = \frac{-\Gamma_j}{\omega_j^{2} - \omega^{2} + 2i\zeta_j\omega_j\omega}, \qquad H_j^{a}(\omega) = \Gamma_j\,\frac{\omega_j^{2} + 2i\zeta_j\omega_j\omega}{\omega_j^{2} - \omega^{2} + 2i\zeta_j\omega_j\omega}

广义坐标的协方差通过对频率直接积分计算(在共振点附近加密的网格上用梯形法),不假定频率分散:

V_{jk} = \int \operatorname{Re}\left[H_j(2\pi f)\,H_k^{*}(2\pi f)\right] S_a(f)\,df

节点处响应的方差:\sigma^{2} = \sum_j\sum_k \phi_j\,\phi_k\,V_{jk},其中 \phi_j 为振型 j 在该节点的值。CQC 相关矩阵 \rho_{jk}(公式与响应谱相同)会被计算并作为诊断输出,但方差本身使用 V_{jk}。输出相对位移、绝对加速度和 von Mises 等效应力的 RMS 1σ 值和 3σ 值(RMS 的三倍,对高斯过程不被超越的概率为 99.73 %)。

对于受白噪声激励的单质量系统,得到 Miles 公式(Miles,1954):

z_{\text{rms}} = \sqrt{\frac{\pi\,S_a}{4\,\zeta\,f_n^{3}\,(2\pi)^{4}}}, \qquad a_{\text{rms}} \approx \sqrt{\frac{\pi}{2}\,f_n\,Q\,S_a}, \quad Q = \frac{1}{2\zeta}

(第二个公式适用于小阻尼。)

实现方式与简化

从模态分析中取得频率、振型以及沿方向的参与系数 \Gamma(按质量,与响应谱相同);模态应力由振型恢复。von Mises 应力估计为 \sigma_{\text{vM}}^{2} \approx \sum_j\sum_k s_j s_k V_{jk},其中 s_j 为第 j 阶振型的 von Mises 等效应力。这是一种简化:von Mises 标量没有符号,也没有应力张量各分量之间的互相关,因此该估计对单一主导模态是准确的,当多个模态贡献显著时只是近似值。对位移使用节点处振型向量的模,结果写入激励方向的分量。疲劳和极值分布不作计算:3σ 是 RMS 的线性放大,而不是时间上的峰值。

局限。 这是建立在模态结果之上的工程估计,而不是独立的随机振动模型。激励为单一方向且沿基础均匀;没有空间相关激励和多支点激励。在界面中(谱卡片的“随机振动”选项卡)使用不计质量的简化参与估计 \Gamma \approx \sum_i\varphi_{i,d}/\sum_i\lvert\boldsymbol{\varphi}_i\rvert^{2},且不恢复模态应力:该模式下的应力场是粗略估计 E\,u_{\text{rms}}/L(L 为模型外形尺寸的对角线),而不是 von Mises 应力。脚本中的计算(solve psd)使用质量参与系数和模态应力;工程结论请以它为准。请自行检查随模态数和频率网格密度的收敛性。
验证。 单质量系统的 Miles 公式(0.08 %):验证的是单质量振子上传递函数的积分,而不是有限元模型。没有对多模态结构的应力 RMS 做独立估计的算例;因此状态为“实验性”。
fix surface number 1
solve psd psd=[(20,0.01),(80,0.04),(350,0.04),(2000,0.005)] dir=z zeta=0.02 modes=10
probe psd_disp_3sigma
probe psd_stress_1sigma

8.8子模型法测试版

边界位移插值法(Cut Boundary Displacement Method)可在不加密整个零件网格的情况下,得到孔、圆角等应力集中处的精确应力。它基于 Saint-Venant 原理:远离应力集中处,粗网格的位移场接近精确值,即使边缘处的应力峰值被低估了 1.5–2 倍。

公式

  1. 在中等网格上求解全局模型:得到场 \mathbf{u}_g(\mathbf{x})。
  2. 围绕关注区域截取局部子模型:通过布尔运算取实体与切割盒的交集,然后划分细网格(线性或二次)。
  3. 子模型的面分为切割面(位于原实体内部)和原有自由面(孔、圆角、外表面)。
  4. 在切割面的每个节点(包括二次单元的中间节点)上施加 Dirichlet 条件,取插值得到的全局位移:
\mathbf{u}_{\text{sub}}(\mathbf{x}_i) = \mathbf{u}_g(\mathbf{x}_i) = \sum_a N_a(\mathbf{x}_i)\,\mathbf{u}_{g,a}

插值采用全局网格四面体上的重心坐标(按全局单元的阶次为线性或二次);位于曲线边界上全局网格之外的点,投影到最近的单元上。

  1. 局部方程组由同一个结构求解器求解;自由面上不加载荷。

用户输入与输出结果

在界面中,子模型在结果步骤的“子模型法”部分启动(它调用与脚本相同的命令)。在全局 solve 之后需设定:中心 at=x,y,z(默认为应力最大值的热点,或已找到的应力集中热点),区域尺寸 radius= 或 box=dx,dy,dz,子模型单元尺寸 size=,阶次 order=1|2。结果:子模型中位于切割边界附近边界层之外的 von Mises 应力峰值、切割边界上的节点数和单元数(submodel_peak_vm、submodel_cut_node_count、submodel_element_count)。

局限。 取第一个活动实体和一个默认材料;切割盒与坐标轴对齐。子模型为线弹性;子模型自由面上的载荷不从全局模型传递(只传递切割边界的位移),因此该方法仅适用于载荷作用在子模型之外的情形。切割边界应位于粗网格仍然适用的区域(距应力集中处约 2–3 倍半径)。该方法的精度取决于切割边界上全局网格的质量;验证仅限于一个算例。
验证。 带子模型的 Kirsch 问题:板中孔边缘的峰值:全局粗网格使其偏低 41 %,P2 网格上的子模型与闭合解的偏差为 −3.57 %,容差 5 %。仅有一个算例、一个平台且发布较晚(在标签 0.2.1 之后),这是其状态为“测试版”的依据。
mesh tet size=12 order=1
fix surface number 1
load surface number 3 pressure=-100000000
solve static
submodel at=60,30,4 box=36,36,8 size=2.4 order=2
probe submodel_peak_vm

8.9Craig–Bampton 缩减(CMS)实验性

部件模态综合法(Craig、Bampton,1968)用超单元替代大型子装配体:超单元由边界自由度和少量固定边界的正则模态组成。适用于子系统要在动力学分析中反复使用的装配体。

公式

自由度分为边界自由度 b 和内部自由度 i。静力模态(约束模态)与固定界面的正则模态:

\boldsymbol{\Phi}_C = -\mathbf{K}_{ii}^{-1}\mathbf{K}_{ib}, \qquad \left(\mathbf{K}_{ii} - \omega_k^{2}\mathbf{M}_{ii}\right)\boldsymbol{\phi}_k = \mathbf{0}, \quad \boldsymbol{\Phi}_N^{\mathsf{T}}\mathbf{M}_{ii}\boldsymbol{\Phi}_N = \mathbf{I}

变换与缩减矩阵:

\begin{bmatrix}\mathbf{u}_b \\ \mathbf{u}_i\end{bmatrix} = \underbrace{\begin{bmatrix}\mathbf{I} & \mathbf{0} \\ \boldsymbol{\Phi}_C & \boldsymbol{\Phi}_N\end{bmatrix}}_{\mathbf{T}_{CB}} \begin{bmatrix}\mathbf{u}_b \\ \mathbf{q}_N\end{bmatrix}, \qquad \hat{\mathbf{K}} = \mathbf{T}_{CB}^{\mathsf{T}}\mathbf{K}\,\mathbf{T}_{CB} = \begin{bmatrix}\hat{\mathbf{K}}_{bb} & \mathbf{0} \\ \mathbf{0} & \boldsymbol{\Lambda}_N\end{bmatrix}

质量矩阵 \hat{\mathbf{M}} 在模态坐标上的子块为单位阵。完整的场通过逆变换恢复。

实际实现情况

已实现稠密矩阵运算:静力模态和正则模态、缩减矩阵、线性四面体的位移和应力恢复、缩减载荷向量。该模块已通过小矩阵上的自动测试验证(Guyan 极限、\hat{\mathbf{K}} 的分块对角性、最低阶特征值吻合)。命令 cms 和结果中的“Craig–Bampton 超单元”部分接受边界面和模态数,但在当前构建中,用户的有限元网格并未传入其中:计算在内置的质量–弹簧测试链上进行。因此,这些命令不能用于对实际子装配体做缩减。

局限。 稠密矩阵:规模限于数百个自由度。没有将超单元组装到总体模型中的功能,也与产品的动力学计算没有联系。界面和脚本未与模型网格相连(见上)。
验证。 没有验证算例;只有针对矩阵的单元测试。
cms boundary="surface number 1" modes=6

8.10转子动力学实验性

转子动力学研究旋转如何改变固有频率:陀螺效应使弯曲频率分裂为正进动(FW)和反进动(BW)。结果以 Campbell 图表示(频率随转速变化),并带有同步激励线 1× 和 2×,二者的交点即为临界转速。

公式

在绕轴以角速度 \Omega 旋转的参考系中:

\left(\lambda^{2}\mathbf{M} + \lambda\,(\mathbf{C} + \Omega\,\mathbf{G}) + \mathbf{K} - \Omega^{2}\mathbf{M}_{\text{spin}}\right)\boldsymbol{\psi} = \mathbf{0}

其中 \mathbf{G} 为反对称的 Coriolis 项矩阵(\mathbf{G}^{\mathsf{T}} = -\mathbf{G}),\mathbf{M}_{\text{spin}} 为垂直于轴线平面内离心力引起的软化。问题在状态空间中线性化,矩阵为

\mathbf{H} = \begin{bmatrix} -\mathbf{M}^{-1}(\mathbf{C} + \Omega\mathbf{G}) & -\mathbf{M}^{-1}\mathbf{K}_{\text{tot}} \\ \mathbf{I} & \mathbf{0} \end{bmatrix}

并通过完整的非对称特征值问题求解(Householder 化为 Hessenberg 形式,再用双重位移 QR 算法)。从共轭复特征值对中取频率 \operatorname{Im}\lambda 和临界阻尼比 -\operatorname{Re}\lambda/\lvert\lambda\rvert。临界转速是 k = 1, 2 时 \omega_i(\Omega) = k\,\Omega 的交点,通过在转速网格上线性插值求得。

实际实现情况

这不是对用户转子的完整计算,而是一个原型:

  • 矩阵 \mathbf{G} 由集中质量的 Coriolis 项构造;圆盘通过极转动惯量产生的陀螺力矩、带刚度和阻尼的轴承,以及油膜的交叉系数,均不参与计算路径;
  • 进动方向由频率相对于静止转子的偏移符号判定,模态按频率列表中的序号匹配,没有按振型跟踪,因此在模态交叉处分类可能有误;
  • 命令 solve rotor 和结果中的“转子动力学”部分针对内置的两自由度模型(质量 2 kg,刚度 2·10⁴ N/m,陀螺系数 0.4)计算图线,而不是针对用户的网格;轴线、转速范围、步数和模态数这些参数只控制扫描过程。
局限。 计算不使用用户的模型。对于实际转子,该图线的结果不能使用;需要外部校核。
验证。 没有验证算例;单元测试在小矩阵上检验 \mathbf{G} 的反对称性、Jeffcott(Laval)模型频率分裂为 FW 和 BW,以及与 1× 和 2× 线交点的识别。
solve rotor axis=z speed_min=0 speed_max=1000 steps=20 modes=4
probe rotor_crit_speed_1

9非线性计算与动力学

↑ 返回目录

本节描述刚度依赖于解、或不能忽略惯性的计算:大位移和大转动、带极限点通过的失稳、施工与开挖阶段、隐式与显式动力学。线性静力分析、模态分析和线性屈曲见线性分析类型一节。材料模型(塑性、超弹性、蠕变)见材料模型一节,接触见接触与连接一节,线性求解器见求解器一节。

单位与其他各处相同:几何采用毫米,求解器边界采用国际单位制(米、牛顿、帕斯卡、千克、秒)。结果以界面单位返回。动力学中的时间以秒计。

各项功能在何处计算:

功能桌面端(基准)浏览器
几何非线性、弧长法、阶段分析支持不支持,明确拒绝
实体隐式动力学支持支持,仅限弹性模型和不含接触、约束与塑性的 Total Lagrangian
梁和壳的隐式动力学支持有限支持
显式动力学支持支持

平台不支持的计算会以明确的原因拒绝。不会悄悄替换为线性解:在非线性路径中,任何不受支持的单元类型、约束或材料都会引发带说明文字的错误,而不是给出简化的答案。

9.1实体的几何非线性稳定

当线性刚度不再能描述结构时启用:位移与截面尺寸相当,单元发生明显转动,压力始终垂直于变形后的表面。对于实体,采用完全拉格朗日列式(Total Lagrangian):所有积分都在初始构形 V_0 上进行。

公式

高斯点处的位移梯度和变形梯度:

\mathbf{H} = \nabla_0 \mathbf{u} = \sum_i \mathbf{u}_i \otimes \nabla_0 N_i, \qquad \mathbf{F} = \mathbf{I} + \mathbf{H}

梯度由位移构造,而不是由 \nabla(\mathbf{X}+\mathbf{u}) 构造:当 \lvert\mathbf{u}\rvert \ll \lvert\mathbf{X}\rvert 时,相近数值相减会丢失有效数字。出于同样的原因,Green–Lagrange 张量通过 \mathbf{H} 计算:

\mathbf{E} = \tfrac{1}{2}\left(\mathbf{F}^{T}\mathbf{F} - \mathbf{I}\right) = \tfrac{1}{2}\left(\mathbf{H} + \mathbf{H}^{T} + \mathbf{H}^{T}\mathbf{H}\right)

第二类 Piola–Kirchhoff 张量 \mathbf{S} 按材料定律计算。默认采用 Saint-Venant–Kirchhoff 模型:

\mathbf{S} = \lambda\,\mathrm{tr}(\mathbf{E})\,\mathbf{I} + 2\mu\,\mathbf{E}

对于橡胶和弹性体的大变形,可选用超弹性模型:可压缩 Neo-Hooke 模型,其能量为 W = \tfrac{\mu}{2}(\bar I_1 - 3) + \tfrac{\kappa}{2}(J-1)^2,\bar I_1 = J^{-2/3} I_1,还有 Mooney–Rivlin、Yeoh、Arruda–Boyce 和 Ogden 模型(参数见材料模型一节)。该列式是纯位移型的,没有单独的压力场。

内力的虚功 \int_{V_0} \mathbf{S}:\delta\mathbf{E}\,dV_0 给出内力向量和切线矩阵。采用工程剪应变的 Voigt 记法(顺序为 11、22、33、12、23、13):

\mathbf{f}_{\mathrm{int}} = \int_{V_0} \mathbf{B}_{NL}^{T}\,\hat{\mathbf{S}}\,dV_0, \qquad \delta\hat{\mathbf{E}} = \mathbf{B}_{NL}\,\delta\mathbf{u}

矩阵 \mathbf{B}_{NL} 依赖于 \mathbf{F}:对节点 i 和分量 m,E_{11} 行等于 F_{m1}\,\partial N_i/\partial X,\gamma_{12} 行等于 F_{m1}\,\partial N_i/\partial Y + F_{m2}\,\partial N_i/\partial X,依此类推。切线矩阵是材料部分与几何部分之和:

\mathbf{K}_T = \underbrace{\int_{V_0} \mathbf{B}_{NL}^{T}\,\mathbb{D}\,\mathbf{B}_{NL}\,dV_0}_{\mathbf{K}_{\mathrm{mat}}} + \underbrace{\int_{V_0} \left(\nabla_0 N_i \cdot \mathbf{S}\,\nabla_0 N_j\right)\mathbf{I}_3\,dV_0}_{\mathbf{K}_{\mathrm{geo}}}, \qquad \mathbb{D} = \frac{\partial \mathbf{S}}{\partial \mathbf{E}}

切线矩阵是解析的且对称(跟随载荷和接触的贡献除外)。对各向同性的 Saint-Venant–Kirchhoff 模型,\mathbb{D} 为常数。对超弹性和弹塑性定律,\mathbb{D} 是该定律的一致切线,因此 Newton 迭代为二次收敛。

积分点方案与线性组装相同(见有限元单元库一节):TET4 取一个点,TET10 取四个点,HEX8 取 2\times2\times2(完全积分),HEX20 取 3\times3\times3。内核还支持棱柱、金字塔和 HEX27。Solve 按钮和 DSL 的路径接入一阶和二阶的四面体与六面体,以及 Hex8–Pyr5–Tet4 混合网格;其他类型组合会明确拒绝。

用户得到的结果

位移、支座反力(最终构形中的 \mathbf{f}_{\mathrm{int}} - \lambda\,\mathbf{f}_{\mathrm{ext}})、Green–Lagrange 应变、真实 Cauchy 应力,以及由其得到的 von Mises 等效应力和主应力。Cauchy 应力通过前推(push-forward)得到:

\boldsymbol{\sigma} = J^{-1}\,\mathbf{F}\,\mathbf{S}\,\mathbf{F}^{T}, \qquad J = \det\mathbf{F}

单元值是高斯点上按体积 V_0 的平均;节点值是相邻单元以其体积 V_0 为权重的平均。这不是超收敛恢复:在梯度较大的区域,节点峰值被抹平。对于已接受的载荷步,保存完整的场,后处理器中可在各步之间切换。快照的内存受预算限制;溢出时各步均匀抽稀,保留第一步和最后一步。

Solution 面板与 DSL 共用以下设置:载荷步数、每步迭代上限、残差容差、压力模式(跟随或死载荷)、接触罚函数倍数。跟随压力沿当前构形的法向作用:\mathbf{f}_a = -\lambda p \int N_a\,\tilde{\mathbf{n}}\,d\xi\,d\eta,其中 \tilde{\mathbf{n}} = \mathbf{x}_{,\xi}\times\mathbf{x}_{,\eta}。该载荷的切线已计入,一般情况下是非对称的(单个面的载荷是非保守的)。

nlgeom on pressure=dead steps=10 maxiter=25 tol=1e-6
solve static

大位移时低阶单元的闭锁,在 L/h = 20、PL^2/EI = 10 的悬臂弯曲问题上做了测量(沿长度 40 个单元,沿厚度 1 个单元)。基准为独立积分得到的 Euler 弹性曲线。端点位移的最大误差:

单元误差
TET456.5 %
HEX88.9 %
TET100.16 %
HEX200.19 %

这是特定网格上的闭锁,并非对任意几何的保证。大位移弯曲问题请使用二阶单元。

局限。 HEX8 采用完全积分,没有 B-bar 和混合列式。对薄体的大变形弯曲,低阶单元会闭锁:见上表。一阶单元上的近不可压缩材料同样容易闭锁。(\mathbf{E}, \mathbf{S}) 这一对量上的加法塑性在小应变大转动下物理上是正确的,而在百分之几十的塑性应变下是错误的(详见材料一节)。计算在原生端进行:在浏览器中启用非线性会被拒绝,并提示在桌面端打开项目。非线性构建中不存在的边界条件通道(含约束的混合模型中的局部阶次区域、实体上的壳“蒙皮”),会逐项拒绝。
验证。 均匀拉伸 \lambda_x = 1.5(E_{xx} = 0.625)在 TET4、TET10、HEX8 和 HEX20 上复现,位移、反力和应力的偏差达 10^{-14}(对照平面应力状态的独立解)。Saint-Venant–Kirchhoff 单轴拉伸直至 E_{GL}\approx 0.092 时与闭合公式吻合到 10^{-8};力等于能量梯度,切线与力的有限差分一致,刚体运动给出零力。含弹性曲线的悬臂弯曲见上表。验证算例:Neo-Hooke,单轴拉伸、Neo-Hooke,简单剪切、超弹性定律的客观性、有限应变下的人造解方法、NAFEMS 3DNLG5、刚体转动。

9.2共旋梁和壳稳定

对于梁和壳,完全拉格朗日列式是多余的:应变保持为小量,大的是转动。这里采用共旋(corotational)方法:单元坐标架跟随节点,在其中使用线性单元,几何非线性完全来自坐标架的转动。

节点的构形由位置 \mathbf{x} = \mathbf{X} + \mathbf{u} 和完整的转动 \mathbf{R}_g\in SO(3) 给出。转动增量是空间自旋 \delta\mathbf{w},更新采用乘法形式:

\mathbf{R}_g \leftarrow \exp(\delta\mathbf{w})\,\mathbf{R}_g

不能直接叠加角度:在大转动下这是不对的。因此节点转动以向量 \log\mathbf{R}_g 输出,其角度取值范围为 [0, \pi]。

梁

采用 Battini 和 Pacoste(2002)的列式。单元坐标架 \mathbf{R}_r 根据弦线和节点转角的 y 轴平均位置构造。坐标架中的变形量:

\bar u = l - l_0, \qquad \bar{\boldsymbol\theta}_i = \log\left(\mathbf{R}_r^{T}\,\mathbf{R}_{g,i}\,\mathbf{R}_0\right)

它们在小应变下是小量,因此可直接对其使用线性 Timoshenko 单元:\bar{\mathbf{f}}_l = \mathbf{K}_l\,[\bar u,\bar{\boldsymbol\theta}_1,\bar{\boldsymbol\theta}_2]^{T}。内力由计入转动导数的精确虚功得到;切线是解析的(与有限差分的吻合度达 10^{-9})。

壳

在线性壳之上采用与单元无关的共旋列式 EICR(Rankin 和 Nour-Omid;Felippa 和 Haugen,CMAME 194,2005):四边形采用 Q4 膜、MITC4 弯曲和绕法向的虚拟转动刚度;三角形采用 CST 膜与 DKT 弯曲。单元坐标架仅取决于节点位置。力是能量 \tfrac12\bar{\mathbf{d}}^{T}\mathbf{K}_l\bar{\mathbf{d}} 对整体自由度的精确梯度;投影项消除坐标架刚体模态上的功。切线是解析的。

用户得到的结果

节点位移和转角(转角以完整转动向量表示)、反力、梁两端在单元当前坐标架中的内力 N, V_y, V_z, T, M_y, M_z。对于壳,计算单元中心上下表面纤维的 von Mises 等效应力,由坐标架变形量按线性关系得到,输出两者中的较大值。非线性计算中没有沿厚度的应力场。

节点力矩由在空间中固定的轴向量给定,并与空间自旋共轭。在平面问题中,这样的载荷是保守的;空间问题中没有跟随力矩。

frame solve static nlgeom=on steps=10 maxiter=30 tol=1e-6
局限。 四边形壳按平面处理:忽略四边形的翘曲(平面单元的 EICR 标准做法)。层合壳在非线性路径中被拒绝。对于梁,原生非线性内核不支持截面偏移和剪切中心。RBE2 约束按几何精确处理(\mathbf{x}_d = \mathbf{x}_m + \mathbf{R}_m \mathbf{d}_0),CE 约束仅限平动上的线性约束;转动上的 CE 和约束链会被拒绝。梁和壳不支持塑性(拒绝,而不是给出弹性结果)。
验证。 力矩 M = \pi EI/L 作用下的悬臂卷成半圆:端点位移 (-L, 2L/\pi),误差 6.6\cdot10^{-4}(壳条)。力 PL^2/EI = 10 作用下的悬臂给出 (-0.5550, -0.8106),对照 Mattiasson 弹性曲线,误差 2.5\cdot10^{-4}。客观性:模型的刚体转动和平移给出零内力。线性极限与线性求解器一致:壳的偏差达 3\cdot10^{-9},梁在 10^{-6} 的容差之内。验证算例:弹性曲线,端部受力、纯力矩,四分之一圆、纯力矩,整圈、Lee 框架、Euler 压杆,分岔。

9.3Newton–Raphson 迭代与载荷步稳定

问题:求 \mathbf{u},使内力与载荷比例 \lambda 下所施加的力相平衡。自由自由度上的残差:

\mathbf{r}(\mathbf{u},\lambda) = \lambda\,\mathbf{f}_{\mathrm{ref}} - \mathbf{f}_{\mathrm{int}}(\mathbf{u}) = \mathbf{0}

载荷分步从 \lambda = 0 增加到 \lambda = 1。每一步执行 Newton–Raphson 方法,每次迭代都完整重新计算切线:

\mathbf{K}_T(\mathbf{u}_k)\,\delta\mathbf{u} = \mathbf{r}(\mathbf{u}_k,\lambda), \qquad \mathbf{u}_{k+1} = \mathbf{u}_k + \delta\mathbf{u}

转动采用乘法更新(见上一小节)。切线矩阵由稀疏 LU(Eigen 库)分解,稀疏模式的符号分析在各次迭代之间重复使用。采用 LU 而不是 Cholesky,是因为共旋单元的切线在非平衡状态下是非对称的;关于线性求解器的详细内容见求解器一节。

收敛准则

当相对残差不超过容差时接受该步:

\lVert \mathbf{r}_{\mathrm{free}}\rVert \le \varepsilon\,\max\left(\lVert\lambda\,\mathbf{f}_{\mathrm{free}}\rVert,\ \lVert\mathbf{f}_{\mathrm{int,free}}\rVert,\ f_{\mathrm{ref}}\right)

其中 f_{\mathrm{ref}} 为载荷的参考范数(见下)。准则仅基于残差;没有基于位移增量或能量的准则。参考范数计入跟随载荷(否则平衡状态下外力为零的纯跟随载荷问题,其相对残差会等于 1),并且在以给定位移加载或卸载到 \lambda = 0 时,计入由模型总载荷给出的下界。若残差在第一次求解之前就已经很小,则不算数:至少要执行一次增量计算。

自动步长缩减

初始步长 \Delta\lambda 是给定步数的 1/N。如果 Newton 迭代在规定的迭代次数内未收敛(或残差为非数值),则放弃该步,状态回退到最后一个被接受的状态,并将 \Delta\lambda 减半。如果 Newton 迭代很快收敛,则步长增大。步长的增大与缩减都有上下限。缩减到最小值以下则报错“自动步长耗尽”。所有被接受的步和回退都会被计数并在结果中显示。

载荷路径

对于弹塑性问题和循环加载,载荷可按任意目标比例 \lambda 的序列施加:\{1, 0\} 为加载并完全卸载(残余变形),\{1, -1, 1\} 为循环。自动步长在每一段上都起作用。载荷路径仅支持载荷控制。

用户输入

参数DSL含义
步数steps=到 \lambda = 1 的目标步数(默认 10)
每步迭代次数maxiter=Newton 迭代次数上限(默认 25)
残差容差tol=相对容差 \varepsilon(默认 10^{-6})
步数上限maxsteps=已接受步数的总数,包括缩减后的步
控制自由度controldof=用于“载荷–位移”曲线;默认取 \lvert u\rvert 最大者
载荷路径loadpath="1,0"依次给出的目标比例 \lambda

用户可见的拒绝原因是固定的:自动步长耗尽(未找到平衡);达到步数上限;切线奇异(机构,或载荷控制下的极限点);落到 \lambda=1 未收敛;输入有误;路径跑到了非物理分支(弧长法)。报告原因的同时还会给出已达到的 \lambda 和步数。

局限。 每次迭代都对切线直接分解:内存和时间的增长快于自由度数,因此带非线性的超大模型代价很高。载荷控制无法通过极限点(切线在该处奇异):此时需要弧长法。Dirichlet 边界条件为按掩码给定的零位移;非零给定位移通过约束方程实现(见给定位移一节)。
验证。 残差二次收敛(对壳:各次迭代为 1、9\cdot10^{-4}、9\cdot10^{-14})。结果与步长无关:5、10 和 20 步给出的解与 40 步相同(与步长无关)。加载与卸载后回到弹性状态(载荷反向)。没有平衡解的模型如实地不收敛:对约束不足的模型的诊断见奇异切线。

9.4Crisfield 弧长法稳定

当加载路径上存在载荷极限点(snap-through)或回折(snap-back)时,载荷控制会在这些点停止:切线奇异。弧长法沿平衡曲线本身前进,而不是沿 \lambda 前进。

未知量是增量 \Delta\mathbf{u} 和 \Delta\lambda,外加一个约束方程。实现的是 Crisfield 的圆柱形变体:弧长约束只施加在自由自由度的位移上,

\Delta\mathbf{u}^{T}\Delta\mathbf{u} = \Delta l^{2}

迭代中的校正量分解为 \delta\mathbf{u} = \delta\mathbf{u}_r + \delta\lambda\,\delta\mathbf{u}_t,其中 \delta\mathbf{u}_r = \mathbf{K}_T^{-1}\mathbf{r},\delta\mathbf{u}_t = \mathbf{K}_T^{-1}\mathbf{f}_{\mathrm{ref}},而 \delta\lambda 是下列二次方程的根

\left\lVert \Delta\mathbf{u} + \delta\mathbf{u}_r + \delta\lambda\,\delta\mathbf{u}_t \right\rVert^{2} = \Delta l^{2}

两个根中,取使更新后的增量与校正前的增量夹角较小的那个。若为复根,则缩减步长。

预测器为切线型;载荷增量的符号按 Feng 方法确定:取前一增量与切线向量的标量积的符号。这在多自由度 snap-back 时并不够,因此增加了 Crisfield 折返检查:被接受的步增量必须与前一步成锐角,否则拒绝该步并将弧长减半。弧长根据校正器的迭代次数调整。如果弧长步越过了 \lambda = 1,则该步被回退,并用载荷控制的小子步“降落”到 \lambda = 1。如果无法降落(刚度为负的分支),则采用最后一个收敛的弧长步。

结果中,用户得到沿路径完整的 \lambda(u) 历程:包含 u 增大时 \lambda 减小的区段,以及 snap-back 之后 \lambda<0 的部分。方法在 Solve 步骤中选择(“方法”列表),在 DSL 中使用 method=arc。

frame solve static nlgeom=on method=arc steps=40 maxiter=40 tol=1e-6
局限。 弧长法不支持塑性:高斯点历史与路径折返不相容,计算会被拒绝。带弧长法的载荷路径(loadpath)同样被拒绝。弧长法的验收是在弹性梁和壳上进行的;对带塑性历史的实体,没有通过极限点的验证。该方法构造路径,但不替用户选择分支:在带有多个分支的分岔点处,路径取决于缺陷(见下一小节)。如果载荷的绝对值偏离给定值太远,保险机制会以“路径跑偏”拒绝并停止计算。
验证。 Lee 框架(多自由度上的极限点和回折):每个臂 10、20 和 40 个单元时,极限载荷为 1.8665、1.8590 和 1.8569,对照基准 1.85,路径通过到远端分支;见 Lee 框架。铰支圆柱面板(Sze,Sabir–Lock):极限载荷 2221 N,对应挠度 10.3 mm,随后载荷下降到 \lambda = 0.22,再回升到 \lambda = 1,期间没有步长回退(铰支圆柱段,极限点挠度偏差 3.6 %)。Mises 桁架通过两个极限点,闭合形式 P(s) = EA\,s\,(h^2 - s^2)/l_0^3 已在内核验收中核对。在桁架跳跃屈曲和弧长法,桁架页面上,基准是同一个闭合公式,求解器则证实了极限点的通过;曲线的逐点核对在内核测试中完成。

9.5初始缺陷与后屈曲行为测试版

受压的完善结构按分岔失稳;实际结构按极限载荷失稳,极限载荷取决于初始偏差的形状和幅值(缺陷敏感性,Koiter)。典型流程:线性屈曲计算 \to 按求得的模态引入缺陷 \to 弧长法非线性计算。

命令 imperfection 取线性屈曲的第 k 阶特征模态 \boldsymbol\phi_k,按最大平动位移归一化,并移动网格节点的坐标:

\mathbf{X}_i \leftarrow \mathbf{X}_i + w_0\,\frac{\boldsymbol\phi_{k,i}}{\max_j \lVert\boldsymbol\phi_{k,j}\rVert}

其中 w_0 是以模型长度单位表示的最大位移(参数 scale)。连续多条命令会叠加各模态(多模态缺陷)。适用于壳网格、实体网格和框架。该命令要求在同一模型上先执行 solve buckling,并会改变工作模型的几何:之后的计算在扰动后的网格上进行。

solve buckling nmodes=3
imperfection mode=1 scale=0.5
solve static nlgeom=on method=arc steps=20 maxiter=30 tol=1e-5
局限。 界面中暂无引入缺陷的专门控件,该命令只在 DSL 中可用。按特征模态引入缺陷只是偏差模型之一;实际缺陷(椭圆度、焊缝、残余应力)需要另行设定。薄壳的后屈曲分支对网格、幅值和所计入的模态数敏感;应将结果理解为敏感性估计,而不是规范意义上的极限载荷。
验证。 测试中核对了模态的归一化、坐标扰动,以及 Euler 悬臂的临界载荷。理想方板的临界载荷见板的临界载荷(对照 4\pi^2 D/b^2,偏差 0.79 %)。壳在分岔点之后的行为在 Sze 面板上验证过(见上一小节)。对命令 imperfection 的后屈曲极限载荷,目前还没有与独立基准的定量对照。

9.6迭代中的材料非线性稳定

材料非线性进入同一个 Newton 循环。每个高斯点保存该定律的历史(已接受的状态);迭代时定律由已接受状态出发计算,而不是在迭代过程中累积。已接受状态在步收敛之后更新,步回退时状态保持不变。因此在相同位移下重新组装是幂等的,而步长缩减不会破坏历史。

定律返回应力和一致切线 \partial\mathbf{S}/\partial\mathbf{E}。对 Mises 塑性(各向同性、随动、多线性硬化)和 Johnson–Cook,定律的输入是 Green–Lagrange 张量,输出是第二类 Piola–Kirchhoff 张量:塑性在这一对量上是加法的。各定律及其参数的说明见材料模型一节。

“仅材料非线性”模式(nlgeom=material)关闭实体的几何非线性:\boldsymbol\varepsilon = \mathrm{sym}\,\nabla\mathbf{u},不组装 \mathbf{K}_{\mathrm{geo}},压力为死载荷。

对理想塑性,在最后一个目标载荷处自动步长耗尽,意味着承载能力耗尽。此时产品把最后一个收敛的平衡作为结果返回,并报告极限载荷比例(\lambda_{\mathrm{lim}});对有硬化的情形,这种拒绝仍然是计算错误。

material steel plasticity=j2 yield=250e6
nlgeom material steps=20 loadpath="1,0"
solve static
局限。 塑性与超弹性不能混用于同一模型。(\mathbf{E}, \mathbf{S}) 上的加法塑性不能描述百分之几十应变下的流动。这在受压厚壁圆筒、给定腔体三倍膨胀的情形中可以看到:死载荷计算只能达到 a/a_0 = 1.44(跟随载荷下仅到 1.005),这些结果不被接受为解。乘法塑性(\mathbf{F}=\mathbf{F}_e\mathbf{F}_p)的原型存在于材料点层面,不包含在已发布版本中,此处也不作声明。隐式静力中的绝热升温被拒绝(它依赖于速率)——请使用显式动力学。
验证。 矩形截面塑性铰:极限弯矩与 \sigma_y b h^2/4 相差 0.05\%(塑性铰)。单个单元上单轴加载、纯剪切和卸载时,偏差约为 10^{-6} %:单轴加载、纯剪切、卸载后的残余状态、屈服反向。几何与塑性共同作用的情形在小于 1 % 的应变下得到验证。

9.7非线性问题中的给定位移测试版

除力之外,也可以用给定位移加载(作动器、过盈配合、试样拉伸)。在非线性静力分析中,非零给定位移通过平动自由度上的线性约束方程引入,其右端与 \lambda 成正比:

\sum_i c_i\,u_i = \lambda\,\bar r

其中 c_i 为约束系数(对给定位移,为系数 1 的一个自由度),\bar r 为给定值(求解器边界上以米计);方程的第一项为从属自由度。位移随载荷比例增长,在载荷路径 \{1, 0\} 中回到零。平动上的约束在大位移下仍然是精确的。给定位移与力、跟随压力和载荷路径兼容。

仅用位移加载时没有外力,通常的残差参考范数为零:舍入残差除以零会使计算错误地不收敛。因此参考范数取为给定位移的能量尺度。这一改动不影响由力加载的计算。

局限。 仅限平动:给定转角和转动上的约束会被拒绝。从属自由度不能同时被固定。远端点的给定位移(RBE2 主节点上的约束链)会被拒绝。
验证。 两个长度不等的 HEX8 单元,给定 2 % 的伸长:支座与作动器的力 \mp 4120.8 N 与 Saint-Venant–Kirchhoff 精确力一致,卸载到 \lambda = 0 后最大位移的量级为 10^{-12} m。混合杆(Tet4、Hex8、Pyr5)在拉伸 15 % 时复现基准,相对偏差达 10^{-7}。验证页面上没有对应的单独算例。

9.8实体隐式动力学稳定

考虑惯性和阻尼的瞬态动力学:适用于载荷随时间的变化相对于基频周期很快、但不需要冲击和应力波的情形(后者请用显式格式)。求解半离散运动方程

\mathbf{M}\ddot{\mathbf{u}} + \mathbf{C}\dot{\mathbf{u}} + \mathbf{f}_{\mathrm{int}}(\mathbf{u}) = \mathbf{F}(t)

载荷为 \mathbf{F}(t) = k(t)\,\mathbf{F}_0,其中 k(t) 是由“时间–系数”数据对表给出的分段线性幅值。

格式

实现了 Newmark-\beta 和 HHT-\alpha(Hilber–Hughes–Taylor)。没有广义 \alpha 格式(Chung–Hulbert)。两种格式写成同一形式:

\mathbf{M}\mathbf{a}_{n+1} + (1+\alpha)\left[\mathbf{C}\mathbf{v}_{n+1} + \mathbf{f}_{\mathrm{int}}(\mathbf{u}_{n+1})\right] - \alpha\left[\mathbf{C}\mathbf{v}_n + \mathbf{f}_{\mathrm{int}}(\mathbf{u}_n)\right] = (1+\alpha)\mathbf{F}_{n+1} - \alpha\mathbf{F}_n
\mathbf{u}_{n+1} = \mathbf{u}_n + h\mathbf{v}_n + h^2\left[(\tfrac12 - \beta)\mathbf{a}_n + \beta\mathbf{a}_{n+1}\right], \qquad \mathbf{v}_{n+1} = \mathbf{v}_n + h\left[(1-\gamma)\mathbf{a}_n + \gamma\mathbf{a}_{n+1}\right]

Newmark 对应 \alpha = 0;默认 \beta = 1/4,\gamma = 1/2(梯形法则:无条件稳定,无数值阻尼)。对于 HHT-\alpha,参数 \alpha\in[-1/3, 0],且 \beta = (1-\alpha)^2/4,\gamma = (1-2\alpha)/2;对高频的数值阻尼随 \alpha 的减小而增强:\Omega\to\infty 时谱半径的极限等于 (1+\alpha)/(1-\alpha)。广义的 \beta、\gamma 在 \gamma \ge 1/2 且 \beta \ge (\gamma + 1/2)^2/4 时被接受,即仅限无条件稳定的情形;其余情形(包括“线性加速度”)会被拒绝,以免出现悄无声息的不稳定。

格式的未知量是该步的增量 \Delta\mathbf{u}。Newton 迭代使用有效切线

\mathbf{J} = \frac{\mathbf{M}}{\beta h^2} + (1+\alpha)\left[\frac{\gamma}{\beta h}\mathbf{C} + \mathbf{K}_T(\mathbf{u}_{n+1})\right]

Rayleigh 阻尼 \mathbf{C} = a_R\mathbf{M} + b_R\mathbf{K}_0;\mathbf{K}_0 是初始构形的切线,计算过程中不更新(与工业代码中的材料阻尼相同)。系数可由一对 (a_R, b_R) 或两组“频率–临界阻尼比”给定。如果某步不收敛,则递归地将其减半,直到给定的深度(同一输出步内的子步)。在小应变且无塑性(\mathbf{K} 为常数)的情况下,采用快速的线性路径,整个计算只做一次分解。

用户输入

步长 h 和终止时间是必需的。质量:一致质量(默认)、按 HRZ 的集中质量,或“在节点间平均分配”。运动学:小应变,或大位移(Total Lagrangian)。初始条件:满载下的静力状态(“释放”)或零值;所有节点或选定实体的初速度。基础加速度按相对形式给定:\mathbf{F} = -\mathbf{M}\boldsymbol\iota\,\mathbf{a}_0\,k(t)。结果:探针点上随时间变化的位移、速度和加速度,能量序列(动能、内部功、阻尼耗散、外力功、平衡),Mises 应力和塑性应变的最大值,场的帧,以及各节点的 Mises 包络。

solve transient dt=1e-4 tend=0.05 scheme=hht alpha=-0.05 amplitude="0:0,0.001:1"
solve transient dt=1e-4 tend=0.05 rayleigh f1=50 z1=0.02 f2=500 z2=0.05

这里的键 alpha= 和 beta= 是格式参数,而不是 Rayleigh 系数。直接积分的替代方案是模态叠加(method=modal),采用精确的 Duhamel 积分和剩余模态的静力修正;它是线性的,不能替代非线性动力学。

局限。 无条件稳定性是针对线性系统证明的。在非线性问题中,不保证能量平衡:Total Lagrangian 下的悬臂,在振幅 10^{-4} m 时五个周期内 T+U 的漂移为 3\cdot10^{-7},在振幅 0.078 m 时为 2.9\cdot10^{-4}。HHT 以及偏离梯形法则的 \beta,\gamma 会产生数值耗散,能量平衡显示了这一损失。塑性与 Total Lagrangian 每次迭代都要付出一次分解的代价:实际上限是几千个自由度上的几万步。跟随压力在动力学中被拒绝。超弹性不与塑性混用。浏览器中可用弹性模型和不含塑性、接触与约束的 Total Lagrangian;网页路径的结果与原生路径在同一网格上一致。
验证。 振动周期与离散格式的周期一致,达 10^{-6};单自由度系统的轨迹与独立的转移矩阵一致,达 4\cdot10^{-12}(Newmark 和 HHT,无量纲频率 \omega h 从 0.3 到 60);悬臂上阶跃载荷的动力系数为 1.958,对照模态求和的 1.957,纯模态载荷下为 2.000。验证算例:悬臂的自由衰减振动,Rayleigh 阻尼(0.065 %)、阶跃载荷,动力系数(0.84 %)、100 个周期内的 Newmark 能量、HHT 数值阻尼、脉冲作用下的弹塑性杆(残余伸长对照准静态卸载为 0.42 %)。

9.9梁和壳的隐式动力学、约束与基础测试版

对于梁和壳,动力学在转动群 SO(3) 上进行。节点带有转动惯量;空间形式的转动 Euler 方程

\mathbf{g} = \mathbf{J}_s\,\boldsymbol\alpha + \boldsymbol\omega\times\left(\mathbf{J}_s\boldsymbol\omega\right), \qquad \mathbf{J}_s = \mathbf{R}\,\mathbf{J}_{\mathrm{ref}}\,\mathbf{R}^{T}

该步的转角增量 \Delta\boldsymbol\theta = \log(\mathbf{R}\,\mathbf{R}_n^{T}) 进入 Newmark/HHT,转动子块的切线包含 \mathbf{T}^{-1} 的导数。质量:一致质量或集中质量;支持初始角速度 \mathbf{w}_0(绕质心的刚体转动)。

对于实体,另外还提供:CE/MPC 和 RBE2 约束、法向约束、远端力和力矩、支座的给定运动(绝对形式下 u = k(t)\bar u)、基础加速度(地震激励)。动力学在独立自由度中进行,缩减质量为 \mathbf{M}_r = \mathbf{T}^{T}\mathbf{M}\mathbf{T}。接触和摩擦(节点–表面罚函数、正则化 Coulomb 摩擦)见接触与连接一节。

局限。 动力学中,由实体与梁或壳共同组成的模型会被拒绝。对梁和壳,原生内核不支持约束、基础激励和偏置截面。跟随压力被拒绝。棱柱和金字塔有质量矩阵;HEX27 没有。部分功能是在已发布版本之后出现的,经过的独立核对较少。
验证。 对悬臂梁(8 个单元)的刚度矩阵和质量矩阵,位移和速度相对于精确阻尼解的误差,在 Newmark 和 HHT 中,每将步长减半便降为四分之一(二阶精度)。算例:三维实体中的地震基础加速度与 RBE2、带偏心和铰的两跨梁。

9.10显式动力学稳定

显式格式用于快速过程:冲击、穿透、爆炸加载、波的传播。时间步长受 Courant–Friedrichs–Lewy 条件限制,但不需要求解方程组,也没有迭代:每步只计算一次内力。运动方程采用中心差分格式(Verlet 的速度形式)和对角质量矩阵进行积分:

\mathbf{v}^{n+1/2} = \mathbf{v}^{n-1/2} + \Delta t\,\mathbf{M}^{-1}\left[\mathbf{f}_{\mathrm{ext}} - \mathbf{f}_{\mathrm{int}}(\mathbf{u}^{n})\right], \qquad \mathbf{u}^{n+1} = \mathbf{u}^{n} + \Delta t\,\mathbf{v}^{n+1/2}

按 HRZ(Hinton–Rock–Zienkiewicz)的集中质量:把一致质量的对角线按单元总质量缩放。对于二阶单元,按行求和会使角点的质量为负,而这种方法的质量仍为正。

临界时间步长

时间步长不超过波穿过最小单元所需时间的估计值:

\Delta t = \alpha_{\Delta t}\,\min_e \frac{L_e}{c_e}, \qquad c = \sqrt{\frac{K + \tfrac{4}{3}G}{\rho}}

其中 L_e 为单元的特征尺寸(六面体取 V/A_{\max},四面体取 3V/A_{\max},A_{\max} 为最大面的面积),\alpha_{\Delta t} 为用户设定的安全系数(dtScale)。对 HEX8,采用单元的严格极限 2/\omega_{\max},由 \mathbf{M}^{-1}\mathbf{K}_e 的最大特征值给出。对 \nu=0.3 的立方体,它等于 0.735\,L_e/c(体积“呼吸”模态),因此仅凭 L_e/c 的估计并不安全。时间步长在计算过程中重新计算:针对存活单元,并在有限变形时按当前尺寸。如果网格中存在特征尺寸异常小的退化单元,则对其质量进行缩放,使它们不会把整个计算的步长压到零。缩放会扭曲这些单元的惯性。

单元、材料、载荷

三维 TET4、TET10、HEX8;二维 QUAD4 和 QUAD8(平面应变或平面应力)。HEX8 是单点单元,采用精确的体积平均梯度,并按 Flanagan–Belytschko 方法控制“沙漏”(黏性和刚度两种形式,系数由用户设定,计算会报告沙漏能量与内能之比,并在比值过大时发出警告)。材料:线弹性、J2 塑性(理想、线性或多线性硬化,含各向同性与随动份额)、Johnson–Cook(速率、温度、绝热升温)、用于冲击波的 Mie–Grüneisen 状态方程(见材料模型一节)。体积黏性 q_1(线性)和 q_2(二次)抑制波前的振荡。

载荷与条件:实体或表面的初速度、固定、对称、表面的给定运动(按表给出速度或位移)、刚性墙、体积力和重力、吸收边界。计算中维护能量平衡:动能和内能、沙漏能、侵蚀能、外部作用所做的功。

有限变形

对 TET4 和 HEX8,可以启用有限变形模式(largeStrain=on):更新拉格朗日列式、当前网格上的梯度、Jaumann 次弹性并按 Hughes–Winget 方法转动累积应变、在步长估计中采用当前体积和单元尺寸。不启用时,列式为几何线性(小应变和小转动)。对应变达到量级 1 的冲击,必须使用此模式:几何线性列式下的 Taylor 冲击与理论相差 1.6 % 和 5.1 %(无量纲载荷 \rho U^2/\sigma_y 分别为 0.25 和 0.5)。

material E=124e9 nu=0.34 density=8960 plasticity=j2 yield=300e6
explicit endTime=0.00017 dtScale=0.8 largeStrain=on
bc explicit_velocity body vx=-91.5
bc rigid_wall plane x 0 friction=0
solve explicit
局限。 时间步长很小(微秒及以下):在精细网格上,整秒的物理时间意味着数百万步。显式格式中的接触是侵蚀型的(见下),其中没有摩擦。TET10 和二维单元不支持有限变形和侵蚀。平衡问题请使用隐式静力。计算可以取消:取消标志在每一步都会被查询。
验证。 线性硬化杆的拉伸(J2,线性硬化)、多线性曲线(多线性硬化)、Bauschinger 效应(混合与随动硬化)、铜的速率敏感性和升温(Johnson–Cook 速率敏感性、绝热升温)、铜中的冲击波(Mie–Grüneisen,U_s = c_0 + s\,U_p)。铜圆柱的 Taylor 冲击:终末长度与初始长度之比 L_1/L_0 = 0.9002,对照 Hawkyard 理论(能量)的 0.8957 和 Taylor 理论(动量)的 0.8968,偏差 0.5 %(Taylor 冲击);随步长的收敛见Taylor 杆冲击:四个安全系数下平均塑性应变为 0.14021、0.13983、0.13962、0.13956。HEX8 杆中的波速(纵波速度)、自重作用下的悬臂(Euler–Bernoulli 悬臂,1.7 %)。显式格式中板的穿透冲击只做了粗略核对,偏差为 16–20 %,在本参考手册中不声明为已验证。

9.11单元侵蚀与破坏测试版

在穿透和层裂计算中,达到破坏准则的单元从内力中移除。准则可以组合,任一准则达到即发生破坏:

  • 极限等效塑性应变 \varepsilon_p \ge \varepsilon_{\mathrm{fail}};
  • Johnson–Cook 累积损伤 D = \sum \Delta\varepsilon_p/\varepsilon_f,其中 \varepsilon_f = [d_1 + d_2 e^{d_3\eta}]\,[1 + d_4\ln\dot\varepsilon^*]\,[1 + d_5 T^*];
  • 最大主应力 \sigma_1 \ge \sigma_{\max};
  • 层裂压力 \sigma_m \ge p_{\mathrm{spall}}。

被移除的单元不再承力,但其节点的质量保留(动量守恒),步长按存活单元计算,单元的内能被固定为侵蚀能,能量平衡保持封闭。侵蚀接触是针对存活单元整个外表面的单边罚函数节点–线段接触;随着侵蚀的进行会露出新的面,冲击体遇到的是形成的空腔。

material steel plasticity=j2 yield=355e6 fail="ep:0.25,smax:1.2e9"
explicit endTime=0.03 dtScale=0.8 largeStrain=on erodingContact=on
局限。 侵蚀在 HEX8 和 TET4 上受支持(TET10 和二维单元会被拒绝)。侵蚀接触仅限 HEX8,没有摩擦;不能捕捉棱边对棱边的接触;对 TET4 会被拒绝。侵蚀仅按准则从模型中移除质量,网格不会重构;结果依赖于单元尺寸。准则的参数取自实验或文献,产品不对其进行拟合。该方法能给出定性正确的层裂和穿透图像,但穿透的定量精度低于均匀问题。
验证。 均匀杆在有限应变下,在公式 u_f = L\,[\exp(\varepsilon_{\mathrm{fail}} + \sigma_f/E) - 1] 预测的位移处破坏,首次侵蚀的偏差在 0.5 % 以内;能量平衡闭合到 0.11 %(侵蚀,均匀杆,1.46 %)。带缺口的杆分成两段,自由杆分成三段,动量精确守恒。板的穿透只做了粗略核对,偏差为 16–20 %。

9.12显式动力学中的波动问题测试版

弹性波在土体和固体中的传播。波源:面上的压力或切向载荷、节点力、按时间规律给压力的爆炸空腔、光滑膨胀中心(无旋体积力,纯 P 波)。时间规律:Ricker 脉冲、指数、扫频、简谐、阶跃、表格。弹性层用于定义成层半空间。虚拟检波器记录节点处或离给定点最近的节点处的位移、速度和加速度;据此计算 PPV、到达时间和波速。场 \nabla\cdot\mathbf{u} 和 \lvert\nabla\times\mathbf{u}\rvert 输出到网格和节点上。

Lysmer–Kuhlemeyer 无反射边界给出与速度成正比的应力:

\sigma_n = -\rho\,c_p\,v_n, \qquad \tau = -\rho\,c_s\,v_t

密度和波速取自相邻单元的材料,法向取自面本身,阻尼器隐式地进入时间步。

explicit geophone at=0,0,-100 name=g1
explicit layer axis=z at=-300 E=2e9 nu=0.3 density=1800
bc explicit_absorbing surface number 4
局限。 Lysmer–Kuhlemeyer 边界在法向入射时是精确的,随入射角增大而变差:P 波和 S 波的反射,法向入射时为百分之几以下,30° 时为 2.5 %,45° 时为 9 %,60° 时为 24 %。对于掠入射的波,必须把边界移得离波源更远。HEX8 的 CPML 层作为选项存在,但本参考手册不声明其已通过验证。单元尺寸必须能分辨波长,否则会产生数值色散。
验证。 吸收边界在法向入射时的反射:P 波 0.39 %,S 波 0.4–1.4 %(Lysmer–Kuhlemeyer 吸收边界)。土柱中按检波器得到的 P 波和 S 波速度:土柱中的波速。层界面上的反射与透射:层界面反射。Rayleigh 波:Rayleigh 波速度(1.3 %)。球面波的 1/r 衰减:点源(4.6 %,接近容差)。

9.13单元的生与死、施工与开挖阶段稳定

对于分层建造构筑物、开挖土方、隧道掘进和逐层堆焊,活动单元的集合随阶段变化,载荷和约束是累积的,位移和应力也是累积的。设定阶段列表:每个阶段在其开始时激活一些实体(生)并停用一些实体(死)。

“软单元”方法:网格保持完整,系统规模在各阶段之间不变。非活动单元不会被删除;其内力和切线乘以一个小的软化系数 s(参数 stagesoft),定律为弹性且无历史,不分配密度和重量。算法的误差与该系数成正比:相对误差量级为 0.04\,s。仅属于非活动单元的节点跟随活动部分:在阶段开始时,其位置按与活动实体交界上最近的节点设定。

生。在阶段开始时,新单元的参考构形取为当前构形:\mathbf{H} = \nabla(\mathbf{u} - \mathbf{u}_{\mathrm{ref}}) = \mathbf{0},\mathbf{S} = \mathbf{0},塑性历史为空。单元以无应力状态“出生”在变形后的构形上,而不是初始网格上。死。单元变软,其残余力被清零;它所卸掉的载荷,由结构随阶段载荷增量逐步承接。

阶段的加载沿参数 \lambda\in[0,1] 进行:

\mathbf{P}(\lambda) = (1-\lambda)\,\mathbf{b} + \lambda\,\mathbf{f}_{\mathrm{stage}}, \qquad \mathbf{b} = \mathbf{f}_{\mathrm{int}}(\mathbf{u}_0)

其中 \mathbf{b} 是新活动单元集合在阶段开始构形 \mathbf{u}_0 上的内力(按构造处于平衡),\mathbf{f}_{\mathrm{stage}} 为阶段的全部载荷。差值 \mathbf{f}_{\mathrm{stage}} - \mathbf{b} 既包含外载荷的增量,也包含已“死”单元的“开挖力”。Newton 迭代和自动步长与非线性静力分析共用。阶段的容差按模型的全部载荷来度量。重量和体积力按实体分配:非活动实体没有重量。

结果按阶段保存;命令 stage view 切换查看和测量。

nlgeom on pressure=dead
stage add name=L1
stage add name=L2 activate=body2
solve static
stage view 2
局限。 计算在原生端进行,浏览器中的阶段分析会被拒绝。仅支持四面体(一阶和二阶)上的实体;梁、壳、接触、约束、弧长法以及带阶段的载荷路径会被拒绝。压力为死载荷。没有活动单元的节点上的载荷在该阶段被暂停(这类节点的数量会予以报告)。代价随阶段数增长:在 5.5 万个自由度的模型上做八个阶段,时间比单次求解增加 6–9 倍。软化系数由用户设定(范围从 10^{-12} 到 10^{-2}):过小会恶化条件数,过大会引入误差。
验证。 含全部实体的阶段与普通静力分析逐位一致(单阶段)。柱在自重下逐层建造:四个阶段中每一个阶段相对闭合形式的偏差都不超过 0.12 %(柱的建造)。带弹性回弹的开挖:至多 0.17 %(开挖,回弹)。在已受载结构上新生的实体不承担任何载荷(无应力出生);普通计算给出的沉降要大 18 %。塑性:只有后生的实体发生屈服(塑性与出生)。

非稳态温度可以在动力学中对结构加载。耦合是单向的:热传导步给出 T_{n+1},热载荷 \mathbf{f}_{\mathrm{th}}(T_{n+1}) 进入力学求解;变形对温度没有反向影响(没有 Gough–Joule 项)。两种模式:准静态(每个热步求 \mathbf{K}\mathbf{u} = \mathbf{f}_{\mathrm{ext}} + \mathbf{f}_{\mathrm{th}}(T),无惯性)和动力学——与隐式动力学相同的 Newmark/HHT 积分器,右端带热载荷;HHT 取 (1+\alpha)\mathbf{f}_{\mathrm{th}}(T_{n+1}) - \alpha\mathbf{f}_{\mathrm{th}}(T_n)。每个热步对应给定数目的力学步。非稳态热传导的公式见传热与多物理场一节。

局限。 单向耦合:隐式动力学中塑性功产生的热不会回到温度中。耦合形式下的接触和辐射会被拒绝。带加热的塑性只在原生端计算。
验证。 Danilovskaya 波:波前速度偏差为 0.3 %(内核)和 2 %(TET10 上的产品);应力剖面随网格加密而收敛(Danilovskaya 波,1.7 %)。无惯性的准静态模式与静态热弹性一致,位移达 10^{-13}。

9.15取消计算测试版

Solve 步骤中的“取消”按钮会设置原生求解器的取消标志,并中断对结果的等待。具体停止什么,取决于所做的计算。

标志在以下位置被查询:显式动力学循环的每一步(计算返回状态为“已取消”的部分结果)、非稳态热传导的每一步之后(部分帧)、mortar 接触的载荷步中。在非线性静力的 Newton 循环、隐式动力学和分阶段计算中没有查询点:界面立即显示已取消,但内核可能会一直运行到当前调用结束。

局限。 对于较长的非线性静力和隐式动力学计算,不保证内核提前停止。如果计算可能耗时很长,请事先加以限制:步数、总步数上限、终止时间。

9.16“已收敛”标志的诚实性稳定

把结果当作解展示的非线性计算,比拒绝求解的计算更糟。产品中采用如下做法。

对于载荷控制,只有在达到 \lambda = 1(或载荷路径的最后一个目标)且最后一步按残差收敛时,计算才被视为收敛。自动步长耗尽、达到步数上限、切线奇异、出现非数值——都会以带原因代码、已达到的 \lambda 和步数的拒绝来处理,而不是把最后一步当作结果。界面中的状态显示为“已收敛:达到 \lambda = 1”或“未收敛:原因”。检验:没有平衡解的问题返回 converged = false 且 \lambda < 1。

局部进展不会被掩盖:用户可以看到已接受的步数、回退次数和迭代次数。对于理想塑性,极限载荷是单独的明确结果,并标注为极限载荷比例。翻转的单元(雅可比行列式非正)被视为非数值并缩减步长:在超过极限的压力下,计算不会返回带负体积的“已收敛”解。对原生结果的完整性做检查:不了解塑性或载荷路径的旧二进制文件会被拒绝,并提示更新应用,而不是返回弹性结果。

局限。 如果在走过若干步之后步长缩减已耗尽,弧长法可能在已达到的路径点上结束计算;此时收敛标志仍为真,尽管 \lambda 可能小于 1。请将已达到的 \lambda 与 1 比较:对弧长法而言,这是判断给定载荷已被达到的唯一可靠标志。界面会将其与状态一起显示。

10传热与多物理场

↑ 返回目录

本节描述热问题(热传导、辐射、热接触)、热弹性、流体或气体绕流(CFD)以及空腔声学。各模块的成熟度不同:热传导和热弹性在桌面端和浏览器中均可计算,CFD 仅在桌面端可用;声学和 Gough–Joule 效应目前仍属实验性。每个小节的状态标在标题中,局限则单独列在提示框里。

输入与输出的单位:几何采用 mm,时间采用秒,温度采用 °C(辐射公式中由内核自行换算为开尔文),热导率 \kappa 采用 W/(m·K),比热容 c_p 采用 J/(kg·K),密度采用 kg/m³,热流密度采用 W/m²,对流换热系数 h 采用 W/(m²·K),体积热生成率 Q 采用 W/m³,热膨胀系数 \alpha 采用 1/K。求解器边界采用国际单位制。

桌面版本由原生内核计算,浏览器版本则用同一份代码编译为 WebAssembly 运行。以桌面端为基准。在已验证的问题(非线性热传导、耦合热弹性动力学)上,两个平台的数值在打印位数内一致。CFD 仅在桌面端可用。

10.1稳态热传导测试版

稳态问题在给定温度、热流、对流和体积热生成率的条件下,给出稳定的温度场。用于评估零件内的温差、散热功率,也是耦合热弹性的第一步。

公式

区域 \Omega 内各向同性材料的 Fourier 方程:

-\nabla\cdot(\kappa\,\nabla T)=Q \quad\text{in }\Omega

边界上互不相交各部分的边界条件(法向 \mathbf n 指向外):

  • 温度:T=T_D;
  • 热流,以流入物体为正:\kappa\,\partial_n T=q;
  • 对流:-\kappa\,\partial_n T=h\,(T-T_\infty);
  • 向环境辐射:-\kappa\,\partial_n T=\varepsilon\sigma\,(T_K^4-T_{\infty K}^4)——见非线性热传导。

线性情形(无辐射)的弱形式:求 T,使其在给定温度的边界上等于 T_D,且对任意试函数 w

\int_\Omega \kappa\,\nabla T\cdot\nabla w\,dV+\int_{\Gamma_h} h\,T\,w\,dA=\int_\Omega Q\,w\,dV+\int_{\Gamma_q} q\,w\,dA+\int_{\Gamma_h} h\,T_\infty\,w\,dA

离散后得到对称正定方程组 \mathbf K\,\mathbf T=\mathbf F,其矩阵为 K_{ij}=\int_\Omega\kappa\,\nabla N_i\cdot\nabla N_j\,dV+\int_{\Gamma_h}h\,N_iN_j\,dA,向量为 F_i=\int_\Omega Q\,N_i\,dV+\int_{\Gamma_q}q\,N_i\,dA+\int_{\Gamma_h}h\,T_\infty N_i\,dA。

用户输入与输出结果

用户设定材料的 \kappa(每个实体分别设定)、按表面编号施加在面上的温度、热流和对流系数,以及整个实体或选定实体的体积热生成率 Q。结果为节点处的温度场、最小值和最大值,以及以瓦计的功率平衡:

P_Q+P_q=P_D+P_h+P_r

左侧为热生成和流入的热流,右侧为通过给定温度的面(按反力)、对流和辐射的散热。平衡的偏差表明边界条件与矩阵是否一致。

实现方式

单元为线性和二次四面体(4 节点和 10 节点)。内核也支持 8/20/27 节点的六面体、楔形和金字塔单元。边界面为一阶和二阶的三角形和四边形。矩阵是稀疏的:小规模方程组用 LDL^T 直接分解求解,大规模的用带不完全 Cholesky 预处理器的共轭梯度法。如果没有任何一个面给定温度或对流,则问题是奇异的(温度只能确定到一个常数),计算会拒绝并给出说明。

局限。 热传导是各向同性的标量。辐射仅限于向给定温度的环境辐射,不含空腔表面之间的辐射(角系数没有接入计算)。对流采用常数 h,与温度无关。带棱柱边界层的网格会被热计算拒绝。界面中没有为热计算选择六面体网格的选项:产品入口只组装四面体。
验证。 验证列表中没有线性稳态问题的单独算例。线性内核在测试中对照带热生成的杆的闭合解 T_{\max}-T_0=QL^2/(2\kappa) 进行了验证:二次单元的相对误差不超过 4\cdot10^{-14},线性四面体为 0.33 %。同一个组装器还在非线性算例中使用:NAFEMS T2、带 κ(T) 的热传导、热接触。状态为测试版,因为内核在 0.2.1 发布之后经过重写(稀疏求解器、二次单元、热生成)。

界面:功能区中的热分析,边界条件步骤中的热边界条件(“热流”“体积热生成”),结果为“温度”场和功率平衡。

material preset=steel kappa=40
thermal surface number 1 temperature=100
thermal surface number 2 convection=25 ambient=20
load heat_generation=2e6
solve thermal

10.2瞬态热传导测试版

瞬态计算给出温度在随时间变化的载荷下的演化:加热与冷却、热冲击、循环工况。当零件的热惯性很重要、而不仅仅关心稳态时需要用到。

公式

\rho c_p\,\dot T-\nabla\cdot(\kappa\,\nabla T)=Q \quad\Rightarrow\quad \mathbf C\,\dot{\mathbf T}+\mathbf K\,\mathbf T=\mathbf F(t)

热容矩阵 C_{ij}=\int_\Omega\rho c_p\,N_iN_j\,dV 取一致矩阵或对角的 HRZ 矩阵(Hinton、Rock、Zienkiewicz,1976):对一致矩阵的对角线按单元缩放,使其总和等于 \int\rho c_p\,dV。对角矩阵可消除陡峭波前上的振荡,但仅支持线性单元。

时间积分采用 \theta 方法:

\left(\tfrac{1}{\Delta t}\mathbf C+\theta\mathbf K\right)\mathbf T_{n+1}=\left(\tfrac{1}{\Delta t}\mathbf C-(1-\theta)\mathbf K\right)\mathbf T_n+\theta\,\mathbf F_{n+1}+(1-\theta)\,\mathbf F_n,\qquad \tfrac12\le\theta\le1

当 \theta=1 时,格式为隐式 Euler:一阶精度,L 稳定,单调。当 \theta=\tfrac12 时为 Crank–Nicolson:二阶精度,A 稳定,但在载荷突变处会产生衰减振荡——这是格式本身的性质。步长矩阵是常数,因此只分解一次。步长按终止时间调整:\Delta t_{\text{used}}=t_{\text{end}}/\lceil t_{\text{end}}/\Delta t\rceil。也可以由用户设定非均匀的步长表。

用户输入

必须设定步长 \Delta t、终止时间和初始温度:产品不会猜测初始状态。此外还有材料的密度和 c_p、\theta 格式与热容类型、探针(以 mm 为单位的点,吸附到最近的节点)、保存的场帧数。每个载荷通道都乘以分段线性的时间表 k(t):温度 T_D(t)=T_D\,k_T(t)、热流、对流系数、环境温度、热生成率。表之外的系数保持不变。给定值的节点在 t=0 时的温度等于 T_D(0),因此 t=0 时壁面的突变不会在第一步产生脉冲。

能量平衡

对步长方程的各行求和,得到精确恒等式

\mathbf 1^T\mathbf C\,(\mathbf T_{n+1}-\mathbf T_n)=\Delta t\,\left[\theta\,P_{n+1}+(1-\theta)\,P_n\right]

其中 P 为热生成、热流和给定温度处反力的总功率,减去对流和辐射。产品输出该恒等式的残差,以及累计能量 \int\rho c_p\,\Delta T\,dV 的独立积分。机器精度量级的残差表明,反力、对流和热源的组装与矩阵一致。

局限。 热传导是各向同性的;\rho 和 c_p 与温度无关。没有随温度变化的 h,没有相变。二次单元(10 节点四面体、20/27 节点六面体)上的对角热容会被拒绝。在浏览器中,特别大的问题会被拒绝,并建议改用桌面端。
验证。 NAFEMS T3:36.584 °C 对照 36.6 °C(0.045 %),平衡残差 1.4\cdot10^{-14}。半无限体,erfc:0.316 %。变载荷下的能量平衡:残差 2\cdot10^{-14},探针与截面平均值的对照为 1.13 %。三个算例均采用二次四面体,原生端。

界面:计算步骤中的“稳态 / 瞬态”切换,以及步长、时间、格式和 k(t) 表的字段。

material preset=steel kappa=40 specific_heat=460
thermal surface number 1 temperature=120
solve thermal transient dt=0.1 tend=16 t0=20 theta=0.5 probes="10,0,0;20,0,0"

10.3非线性热传导:κ(T) 与辐射测试版

如果模型中存在辐射边界或 \kappa(T) 表,则自动启用非线性模式。用于高温工况:受热零件的冷却、辐射散热、热导率强烈依赖温度的材料。

公式

按 Stefan–Boltzmann 定律由表面向环境辐射:

q_r=\varepsilon\,\sigma\,\left(T_K^4-T_{\infty K}^4\right),\qquad T_K=T+273.15,\qquad \sigma=5.670374419\cdot10^{-8}

其中 \sigma 的单位为 W/(m²·K⁴),\varepsilon 为发射率。

\kappa(T) 的关系是由“温度 : 热导率”数据对构成的分段线性表;表之外取端点的值。稳态问题的残差和切线矩阵:

\mathbf R(\mathbf T)=\mathbf K(\mathbf T)\,\mathbf T-\mathbf F+\mathbf F_r(\mathbf T),\qquad J_{ij}=\int_\Omega\left(\kappa\,\nabla N_j\cdot\nabla N_i+\kappa'\,N_j\,\nabla T\cdot\nabla N_i\right)dV+\int_{\Gamma_r}4\varepsilon\sigma\,T_K^3\,N_iN_j\,dA

切线是完整的且非对称(由于 \kappa'),因此 Newton–Raphson 方法为二次收敛。在瞬态计算中,\theta 方法的每一步求解非线性方程

\tfrac{1}{\Delta t}\mathbf C\,(\mathbf T-\mathbf T_n)+\theta\,\mathbf F_{\text{int}}(\mathbf T)+(1-\theta)\,\mathbf F_{\text{int}}(\mathbf T_n)-\theta\,\mathbf F_{n+1}-(1-\theta)\,\mathbf F_n=0

其雅可比矩阵为 \tfrac{1}{\Delta t}\mathbf C+\theta\,\mathbf J_{\text{int}}。Newton 步按残差范数进行阻尼;收敛准则为计入舍入水平的相对残差。

用户输入与输出结果

辐射:发射率 \varepsilon\in(0,1] 和以 °C 计的环境温度。\kappa(T) 表是“°C : W/(m·K)”数据对,温度严格递增,\kappa>0。结果还会补充 Newton 迭代次数、残差历程和平衡中的辐射功率。如果方法未收敛,则不给出温度:计算会拒绝,而不是给出近似值。

局限。 每个模型只有一个 \kappa(T) 表。发射率和 h 为常数。辐射仅限向环境辐射,不含表面之间的换热。\rho 和 c_p 与温度无关。设定辐射和 \kappa(T) 的主要方式是 DSL;界面中没有输入 \kappa(T) 表的表单。
验证。 NAFEMS T2:辐射端面的温度 927.004 K 对照 927 K,三次 Newton 迭代。κ(T) 对照 Kirchhoff 变换:58.1139 °C,吻合到小数点后 4 位。瞬态辐射冷却:695.581 °C 对照 ODE 积分的 695.576 °C(0.0008 %)。所有算例均采用线性四面体,原生端;网页端给出相同的数值。
material preset=steel kappa_table="0:20,400:60" specific_heat=460
thermal surface number 2 radiation=0.85 ambient=20
solve thermal transient dt=5 tend=600 t0=900 theta=0.5

10.4接触界面的热接触测试版

热接触模拟装配体中两个分离实体之间的热阻:通过界面的热流与界面处的温度跳跃成正比。适用于螺栓连接和压配合连接、垫片、接触垫。力学接触见接触一节;热接触与之无关,也不影响力学。

公式

q_c=h_c\,(T_A-T_B),\qquad \Pi_c=\tfrac12\,h_c\int_{\Gamma_s}(T_s-T_m)^2\,dA

一对实体中,一个为从属体(slave,命令中的第一个),另一个为主控体(master)。在从属面的高斯点处求出其在主控面上的投影;如果到主控面的距离不超过容差、法向几乎反平行且间隙沿法向,则该点被计为界面。实体的其余面保持绝热。对矩阵的贡献 \mathbf K_c=\sum h_c\,w\,\boldsymbol\varphi\boldsymbol\varphi^T,其中 \boldsymbol\varphi=[N_s;\,-N_m],是对称且半正定的:界面本身既不产生热量,也不带走热量。方法为按从属点的配点法,不使用 mortar 乘子。由于该贡献是线性的,仅靠接触本身并不会启用 Newton 迭代。

用户输入与输出结果

界面传导率 h_c,单位 W/(m²·K),以及以 mm 计的间隙容差(默认取面平均尺寸的四分之一)。结果:通过界面的功率、相连表面的面积、相连点的个数、平均温度跳跃。如果 h_c\le0、在容差范围内找不到界面、或实体通过公共节点粘合,计算将被拒绝:界面既不会被悄悄地绝热,也不会被悄悄地视为理想接触。

局限。 h_c 为常数,与压力、间隙和温度无关。接触中的摩擦生热不予计算。在不协调的网格上,配点法通不过分片试验:偏差可达温差的 0.4 %;应当把较细的一侧指定为从属体。实体必须分离——粘合的装配体没有界面。
验证。 热接触热阻:界面上的温度跳跃为 60.000 K,功率 6.0000 W,两实体中点处为 90.000 和 10.000 °C(偏差 0.0003 %)。在不协调网格上,温度跳跃的差异不超过 0.07 %。一个算例,原生端。
contact body1 body2 thermal hc=1000
thermal surface number 5 temperature=100
thermal surface number 32 temperature=0
solve thermal

10.5热弹性(单向,静力)测试版

单向热弹性:温度影响应力应变状态,变形对温度没有反向影响。用于在温度场已知或已算出的情况下计算零件的温度应力。

公式

热应变是各向同性的:\boldsymbol\varepsilon_{th}=\alpha\,\Delta T\,\mathbf I,\Delta T=T-T_{\text{ref}},其中 T_{\text{ref}} 为无应力温度。应力由应变的力学部分确定:

\boldsymbol\sigma=\mathbb C\,(\boldsymbol\varepsilon-\boldsymbol\varepsilon_{th}),\qquad \mathbf f_{th}=\int_\Omega\mathbf B^T\,\mathbb C\,\boldsymbol\varepsilon_{th}\,dV

实体

对各向同性材料,\mathbb C\,\boldsymbol\varepsilon_{th}=c_0\,(1,1,1,0,0,0)^T,其中

c_0=\frac{E\,\alpha\,\Delta T}{1-2\nu},\qquad F_i=\int_\Omega c_0\,\nabla N_i\,dV

节点力对全部七种实体单元类型进行组装。对于二次四面体,载荷采用比刚度更精确的积分方案(27 个点):被积函数含有形函数梯度与二次 \Delta T 场的乘积。应力由全应变恢复,因此在后处理器中要从中减去球形部分 c_0\,\mathbf I。\Delta T 的来源:用户给定的均匀值,或稳态热计算得到的节点场(耦合热弹性)。

梁和框架

设定均匀的 \Delta T 以及截面各面之间的温差 \Delta T_y、\Delta T_z。截面温度 T(y,z)=T_{\text{ref}}+\Delta T+g_y\,y+g_z\,z,g_y=\Delta T_y/h_y。等效节点力:轴向 N_T=E\,A\,\alpha\,\Delta T,弯曲 M_{T,z}=E\,I_z\,\alpha\,g_y 和 M_{T,y}=E\,I_y\,\alpha\,g_z。同样的量也要从内力中扣除。加热不产生横向力和扭转。

壳

对于处于平面应力状态的各向同性壳,c_0=E\,\alpha\,\Delta T/(1-\nu)(不是 1-2\nu:第三方向不受约束)。对于层合壳(MITC4),热内力和热力矩按层计算:

\mathbf N_T=\sum_k \bar{\mathbb Q}_k\,\bar{\boldsymbol\alpha}_k\int_{z_k}\Delta T\,dz,\qquad \mathbf M_T=\sum_k \bar{\mathbb Q}_k\,\bar{\boldsymbol\alpha}_k\int_{z_k}\Delta T\,z\,dz,\qquad \mathbf f=\int_A\left(\mathbf B_m^T\mathbf N_T+\mathbf B_b^T\mathbf M_T\right)dA

其中 \bar{\mathbb Q}_k 为该层在单元坐标轴中的折算刚度,\bar{\boldsymbol\alpha}_k=(\alpha_1c^2+\alpha_2s^2,\ \alpha_1s^2+\alpha_2c^2,\ 2(\alpha_1-\alpha_2)\,sc)^T 为按铺层角旋转后该层的膨胀系数(剪切为工程剪应变),z 自参考面起算,弯曲部分的符号由所采用的曲率方向确定。温度沿厚度线性分布:设定中面上的 \Delta T 和“上表面减下表面”的温差。各层的应力按力学应变 \boldsymbol\varepsilon-\bar{\boldsymbol\alpha}_k\,\Delta T(z) 计算。

用户输入

材料的系数 \alpha 和加热:均匀的 \Delta T(DSL 中为 deltaT=),或热计算得到的温度场(仅限实体)。对梁使用 dt、dty、dtz;对壳使用 shell_temperature dt=… gradient=… 或 temperature=… reference=…(无应力温度)。零模式不算作载荷,此时不需要 \alpha;\Delta T 非零而没有 \alpha 时,计算会明确拒绝。

局限。 小应变;E、\nu、\alpha 为常数(该公式不考虑其随温度的变化)。对实体,\alpha 是各向同性的。壳和梁的热载荷由给定的 \Delta T 值设定,而不取自热计算。DKT 三角形壳只支持均匀的 \Delta T——要考虑沿厚度的温差,需要使用四边形单元。壳的模态分析不计入热预应力(计算会给出警告),带加热的壳的稳定性分析会被拒绝。加热与几何非线性(nlgeom)同时使用不受支持。
验证。 热力学部分的相关算例:固定杆(−240 MPa,精确吻合)和并联杆(57.037 MPa);两者均在网页平台上取得。含热应变的实体静力分析还由轴向固定杆验证(-192.000 MPa =-E\alpha\,\Delta T,\Delta T=80 K),该算例由耦合动力学求解器计算。在内核测试中:固支梁给出 N=-EA\alpha\,\Delta T,精度 10^{-13};截面上存在温差的悬臂,其挠度为 -\alpha\,g\,L^2/2,对两种符号和两个轴均成立;平面固支板为 -E\alpha\,\Delta T/(1-\nu),四边形与三角形网格划分结果一致。状态为测试版:二次单元的应力修正、梁以及层合壳的通道均在 0.2.1 发布之后加入。

界面:分析类型“热弹性”(\Delta T 和 \alpha 字段)、计算步骤中的“耦合热弹性”(热 → 应力);对于梁和壳,在其面板中设置温度字段。

material preset=steel
fix surface number 1
solve thermoelastic deltaT=80

10.6耦合热弹性动力学测试版

瞬态的“温度 → 位移”计算:热场随时间变化,力学响应计入惯性。用于热冲击、快速加热、热弹性波,这些情形下准静态近似是不可接受的。

这里“耦合”的含义

耦合是单向的:温度 T(t) 影响位移 \mathbf u(t),产品计算中没有反向影响(变形产生的加热)。这一名称沿用自“热和力学在同一网格、同一步长中”的提法。对钢材,无量纲的反馈强度

\delta=\frac{\beta^2\,T_{\text{ref}}}{\rho c_p\,(\lambda+2\mu)},\qquad \beta=\frac{E\,\alpha}{1-2\nu}

约为 1 %。对快速过程(冲击、超声),该修正可能是显著的,见 Gough–Joule。

公式

\mathbf C\,\dot{\mathbf T}+\mathbf K\,\mathbf T=\mathbf F(t),\qquad \mathbf M\ddot{\mathbf u}+\mathbf C_d\,\dot{\mathbf u}+\mathbf f_{\text{int}}(\mathbf u)=\mathbf f_{\text{ext}}(t)+\mathbf G\,(\mathbf T-T_{\text{ref}})

热载荷算子 \mathbf G 用与静力分析相同的积分 F_i=\int c_0\,\nabla N_i\,dV 组装一次,在每一步中归结为矩阵与向量的乘法。每步的顺序为“先热、后力学”(Armero–Simo 等温分裂,1992):先由 \theta 热步给出 T_{n+1},再将热载荷 \mathbf f_{th}(T_{n+1}) 代入力学步的右端。对 HHT-α,积分器取 (1+\alpha)\,\mathbf f_{th}(T_{n+1})-\alpha\,\mathbf f_{th}(T_n)。在单向耦合下,格式无条件稳定,其阶数等于热格式与力学格式阶数中较小者。

两种模式:

  • 准静态,无惯性:在每个热步求解 \mathbf K_s\,\mathbf u=\mathbf f_{\text{ext}}+\mathbf f_{th};线性问题只分解一次。允许使用 J2 弹塑性材料(仅限桌面端)。
  • 动力学:Newmark 或 HHT-α 积分,一个热步对应若干个力学步。

热部分可以使用非线性热传导中的辐射和 \kappa(T)。

用户输入与输出结果

必须设定步长、终止时间和初始温度;此外还有无应力温度、热格式 \theta、力学格式、Rayleigh 阻尼、热载荷和力学载荷的 k(t) 表,以及探针。结果:各帧的温度场和位移场,探针处的 T、\mathbf u、\dot{\mathbf u} 序列,扣除热应变后的应力张量,等效应力,包络线,能量,热平衡。

局限。 小应变;不支持几何非线性、接触、刚性约束和参考加速度。梁和壳会被拒绝(它们没有热弹性动力学)。单元:4/10 节点的四面体和 8/20 节点的六面体。热步长恒定。带加热的弹塑性仅限准静态,原生端;初始 \Delta T\ne0 与塑性同时存在时会被拒绝。没有界面表单:计算从 DSL 启动。Danilovskaya 和 Boley–Barber 的基准解是开发者为同一连续体公式推导的;未与文献原文核对。
验证。 轴向固定杆:-192.000 MPa =-E\alpha\,\Delta T,动能处于机器零的水平。Danilovskaya 波:波前速度和应力剖面,1.72 %。Boley–Barber:悬臂挠度峰值 4.6504 μm 对照模态解的 4.6297 μm,0.447 %。准静态与动力学对比:缓慢加热时为 0.567 %,快速加热时差异为 45.9 %(灵敏度检验)。耦合动力学中的辐射与 κ(T):与单独的热计算一致(T 的最大差异为零),0.0008 %。原生端;网页端在打印位数内一致。
solve thermoelastic transient mode=dynamic dt=1e-6 tend=2e-4 t0=20 tref=20 scheme=hht alpha=-0.2

10.7Gough–Joule 效应实验性

热弹性耦合的反向通道“变形 → 温度”:快速压缩时物体升温,拉伸时则降温。该效应作为体积热源进入热方程。

已实现的内容

\rho c_p\,\dot T=\nabla\cdot(\kappa\,\nabla T)+Q-T_{\text{ref}}\,\beta\,\operatorname{tr}\dot{\boldsymbol\varepsilon},\qquad \beta=\frac{E\,\alpha}{1-2\nu}

在绝热加载下,由此得到 \Delta T=-\dfrac{T_{\text{ref}}\,\beta}{\rho c_p}\,\operatorname{tr}\boldsymbol\varepsilon(Kelvin,1853;Biot,1956)。格式带一步滞后:力学步之后组装节点功率,并混入下一个热步的右端。仅在准静态模式下有效;带该效应的动力学会被拒绝。

术语说明。在文献中,“Gough–Joule 效应”指弹性体的熵弹性:拉伸的橡胶会发热,加热时则会收缩。这里实现的是可压缩线弹性体的线性热弹性(压热)Kelvin 效应。与超弹性定律相联系的橡胶熵弹性模型并未实现。

局限。 该模块未接入产品计算:无论从界面还是从 DSL 都无法启用该效应。它是一个单独的内核,带有独立的验收。未计入作为单独通道的塑性流动耗散、动力学以及几何非线性。在自由单轴拉伸下 \operatorname{tr}\dot{\boldsymbol\varepsilon}\approx0,不产生加热——这是预期的结果。
验证。 “压缩时的绝热加热”算例在独立的试验台上确认了符号(压缩使温度升高)和对载荷的线性:力加倍使 \Delta T 加倍,而弹性功则增至四倍。算例中 \Delta T 的绝对值没有与绝热加热公式核对:验收问题中有一个面保持在 T_{\text{ref}},存在散热。因此状态为实验性。

10.8CFD:不可压缩流动(SU2)稳定

CFD 计算流体或气体绕物体或在通道内的稳态流动:速度场和压力场、壁面力、压力损失、流量。计算在桌面应用中由外部求解器 SU2(Stanford University Unstructured,开源代码,LGPL-2.1 许可证)完成;CFD 在浏览器中不可用。

求解的方程

不可压缩 Navier–Stokes 方程(密度和黏度为常数):

\nabla\cdot\mathbf u=0,\qquad \rho\left(\partial_t\mathbf u+\mathbf u\cdot\nabla\mathbf u\right)=-\nabla p+\nabla\cdot\left[(\mu+\mu_t)\left(\nabla\mathbf u+\nabla\mathbf u^T\right)\right]

在层流模式下 \mu_t=0。在湍流模式下采用 Reynolds 平均方程(RANS),涡黏性 \mu_t 取自 Menter k–\omega SST(1994)或 Spalart–Allmaras(1992)模型。不使用 Euler(无黏)方程和可压缩方程。不求解能量:流动是等温的,没有 Archimedes 浮力。

方法为基于原始四面体对偶网格的顶点中心有限体积法(Economon 等,AIAA J.,2016)。对流通量采用通量差分裂(FDS),按 MUSCL 格式达到二阶精度并采用 Venkatakrishnan 限制器;湍流量采用迎风格式。定常化采用基于伪时间的隐式 Euler,使用自适应 Courant 数,必要时采用几何多重网格。

用户输入与输出结果

介质:空气、水、油或煤油(密度和黏度在材料中设定)。按表面编号设定的边界条件:给定速度的入口(大小、方向、湍流强度)、给定表压的出口、无滑移壁面(可选力监测)、滑移壁面、对称面。未标记的面成为不监测力的无滑移壁面;这类面的清单会输出到警告中。对于湍流计算,壁面附近需要棱柱网格层(y⁺ 约为 1):模型积分到壁面。

停止准则由用户设定:最大迭代次数和容差。当存在监测力的壁面时,收敛由力系数的稳定(Cauchy 准则)确定;对于内部流动,由压力残差的相对下降确定。

国际单位制下的结果:速度场和压力场、涡量、Q 准则、C_p、壁面切应力、y^+、系数 C_d、C_l 和力(在给定参考面积和长度时)、入口与出口之间的压差、质量流量、残差历程。后处理器:切片、流线、等值面、粒子。

与产品其他部分的联系

CFD 使用同一份几何、同一个表面编号日志和同一个视口。计算是单向且孤立的:没有向强度计算传递压力、也没有热耦合(CHT),力和压力需要由您手动传递。

局限。 仅限不可压缩公式。对于 Mach 数高于约 0.3 的情形,压缩性的影响不予考虑,因此喷管和高速绕流的结果(见 LRE、Aerospike、栅格舵算例)应视为不可压缩模型的估计,而不是气体动力学计算。没有能量、传热、浮力、自由表面、多相、空化。仅有 RANS,没有 LES。定常 RANS 在分离流动中并不总是收敛:在圆柱或台阶后分离时,力系数可能无法稳定下来,对此类问题,瞬态模式更为可靠。精度取决于网格:验证算例是在一阶四面体网格上计算的,单元数为 9–44 千个。
验证。 14 个算例,偏差均不超过 2.51 %。定量基准:Hagen–Poiseuille 流动(u_{\max}/U_{\text{mean}},2.51 %)、平面 Poiseuille 通道(压差,0.32 %)、Re = 40 的圆柱(C_d 对照 Tritton 与 Coutanceau–Bouard,1.89 %)、Re = 400 的后向台阶(Armaly 等,2.37 %)、管束(Žukauskas 关联式,1.57 %)、无人机机翼(Prandtl 升力线,1.55 %)。集管质量守恒(0.06 %)和LRE 燃烧室(0.62 %)算例检验流量平衡。API 6A 闸阀、Kort 导管、扩压器、诱导轮、Aerospike和栅格舵算例是与工程估算和参考关联式对照的,而不是与精确解对照。

界面:计算步骤中的 CFD 设置、边界条件和“流动”后处理器。

cfd fluid air
cfd set speed=15 turbulence=sst iterations=500
cfd inlet surface number 1
cfd outlet surface number 2
cfd wall surface number 3 monitor=on
solve cfd

10.9CFD:瞬态问题与物体运动测试版

当流动不能趋于定常(圆柱后的涡脱落、脉动)或边界在运动(壁面转动、转子、物体的活塞式移动)时,需要瞬态模式。

已实现的内容

物理时间采用二阶双时间步(dual time stepping)积分:在每个物理步内执行内迭代直至收敛。用户设定步长、持续时间、内迭代次数和保存帧的频率。会话保存在磁盘上,计算可以取消并从检查点继续;帧在后处理器中回放。

运动:

  • 转动壁面(表面速度按转轴和转速设定);
  • 流体区域的旋转坐标系(MRF 方法)——转子的定常平均解;
  • 沿单一方向的给定物体平移(线性、简谐、表达式、表格),采用时间一阶的弹性 ALE 方案进行网格变形;壁面速度相对于网格步长受到控制;
  • 单自由度转子的给定转动和自由转动(力矩、阻尼)。

运动的结果为位移、速度、力、功率和功,按选定的帧归一化。

局限。 平移仅限单一方向;任意取向、自由平移、六自由度、“流体–结构”耦合、大行程以及物体接触均未实现。两个区域的滑移界面以原型形式存在,未接入产品。基础 CFD 中不可压缩公式的全部局限仍然适用。对于分离流动,力系数的定常性需要通过按周期平均来检验。
验证。 验证列表中没有算例。验收采用原生测试:从检查点继续的计算与连续计算一致(坐标精确,压力和速度在 1 % 以内),平移和转动在测试用例上得到检验。状态为测试版:验证范围狭窄,运动边界没有独立的基准。
cfd set mode=transient dt=0.001 time=0.005 inner=40 output=1
solve cfd

10.10空腔声学(Helmholtz 方程)实验性

空气(或充液)空腔的模态分析:固有频率和压力振型。用于评估腔体容积的共振——腔室、风道、车厢。

公式

对简谐过程 e^{i\omega t},压力幅值 p 的 Helmholtz 方程:

\nabla^2 p+k^2\,p=0,\qquad k=\frac{\omega}{c_0}

壁面上为声学刚性条件 \partial_n p=0(自然边界条件)。有限元离散导出广义特征值问题

\mathbf K_a\,\mathbf p=\omega^2\,\mathbf M_a\,\mathbf p,\qquad \mathbf K_a=\int_\Omega\nabla N^T\nabla N\,dV,\qquad \mathbf M_a=\frac{1}{c_0^2}\int_\Omega N^TN\,dV

对于长度为 L 的封闭刚性管,纵向模态的频率为 f_n=n\,c_0/(2L),包括零频(常压)。零模态在计算中也存在。

实现方式

单元为带一致声学质量的线性四面体。矩阵是稠密的,问题通过对矩阵 \mathbf M_a 做 Cholesky 分解化为标准形式,再用 Jacobi 方法对对称矩阵对角化来求解。这种方法适用于小型空腔(至多几百个节点);对大型网格而言,它太慢且占用内存过多。

用户设定声速 c_0(空气 343 m/s,水 1481 m/s)、密度 \rho_0 和模态数。空腔取为已划分四面体网格的实体。结果:以 Hz 计的频率、各节点上的压力振型,以及视图窗口中驻波 p(\mathbf x)\cos\omega t 的动画。

局限。 这是一个原型。仅支持刚性壁面:命令的参数 impedance= 和 fsi= 会被解析并检查数值寻址,但不影响固有频率。振型的归一化是约定的,因此计算后打印的“声压级”没有物理意义;只使用频率和振型。该计算中不构造对声源的响应。如果没有网格,计算会代入内置的试验通道 1 m × 0.1 m × 0.1 m:运行前请确认网格已划分。仅支持四面体组装;对网格尺寸的依赖和频率的收敛性尚未研究。
验证。 验证列表中没有算例。在测试中,对长 1 m、划分为 11 个截面的网格上的通道,检验其第一个非零频率落在 150–210 Hz 的区间内,解析值为 171.5 Hz,即容差约为 20 %,而不是 5 %。展示用的消声器示例给出频率和振型,但其说明中声明的声压级不能由该计算复现。

界面:结果步骤中的“振动声学(Helmholtz)”部分。

solve acoustics c0=343 rho0=1.204 modes=5
probe acoustic_f1

10.11振动声学实验性

振动声学描述振动的结构与空腔中空气的相互作用:结构辐射声音,空腔中的压力又对结构加载。产品中没有把这一计算作为统一的耦合问题;目前只有一些单独的预备件。

代码中现有的内容

  • 边界阻抗(Robin 条件)。阻尼矩阵 \mathbf C_a=\dfrac{\rho_0}{Z_a}\int_{\Gamma_z}N^TN\,dA,其中声阻抗 Z_a 以瑞利(Rayl,Pa·s/m)计;对空气,波阻抗 \rho_0c_0\approx413 瑞利。
  • 结构与空腔的耦合矩阵 \mathbf C_{fsi}=\int_{\Gamma}\mathbf N_u^T\,\mathbf n\,N_p\,dA,作用在公共边界上。
  • 空腔对声源的频率响应:\left(\mathbf K_a-\omega^2\mathbf M_a+i\omega\,\mathbf C_a\right)\mathbf p=\mathbf q,在频率网格上求解,并换算为声压级 \text{SPL}=20\log_{10}(p_{\text{rms}}/p_{\text{ref}}),其中 p_{\text{ref}}=20 μPa(空气)和 1 μPa(水)。

这些是带有单元测试的独立函数。由它们并未组装出“结构–空腔”耦合系统,频率响应和阻抗矩阵也没有从界面和 DSL 接入计算。只有空腔声学的刚性壁面模态计算可用。

局限。 振动声学计算作为一个模型并未实现,也不作为估计手段提供。目前的实际做法是:将模态分析和谐响应分析得到的结构固有频率和振型,与空腔的声学模态进行人工比较。频率吻合表明可能存在共振,但这种做法无法给出幅值和辐射。
验证。 没有验证算例。单元测试检验矩阵的组装和向分贝的换算(包括 20 μPa 对应 0 dB、1 Pa 对应 94 dB 的参考值),但不涉及与耦合问题的解析解或已发表解的对比。

11求解器:直接法、迭代法与特征值求解器

↑ 返回目录

离散化之后,任何线性问题都归结为一个带稀疏矩阵的代数方程组。本章说明这些方程组如何求解:采用哪些方法,为什么这些方法对有限元矩阵是正确的,产品如何校核结果,以及在哪些情况下如实拒绝求解。本章描述方法及其适用边界,内部参数的选取不在本章范围内。

实现中使用开源库:MFEM(稀疏矩阵与共轭梯度法)、Eigen(稀疏分解与小型稠密问题)、AMGCL(代数多重网格预条件器,仅用于桌面应用)。在 macOS 上,直接分解也可由 Apple Accelerate 完成。内核的全部运算均采用双精度(IEEE 754 binary64)。求解器边界处采用国际单位制:米、牛顿、帕斯卡、千克。用户看到的结果以其自身的单位显示,换算只在一处完成。

桌面应用的原生路径被视为基准。浏览器版本使用相同的公式,但为单线程,受限于标签页内存,且不含多重网格预条件器。差异在正文中另行指明。

11.1有限元方程组:稀疏性、正定性与约束稳定

静力问题在组装之后具有如下形式

\mathbf{K}\,\mathbf{u} = \mathbf{f}

刚度矩阵 \mathbf{K} 具有三条性质,方法的选择以此为依据。它是稀疏的:节点只与共享单元的节点相关联,每行有几十个非零元素,且非零元素所占比例随模型增大而下降。它是对称的,因为双线性型是对称的。它是半正定的,而在刚体位移被约束之后是正定的:对许可子空间内的所有 \mathbf{v} \neq \mathbf{0},有 \mathbf{v}^{\mathsf T}\mathbf{K}\mathbf{v} > 0。对于实体,网格加密时条件数按 O(h^{-2}) 增长。薄壳和杆件的条件数增长得更快:大致随膜刚度与弯曲刚度之比的平方增长,即 (L/t)^2。

统一的装配器把梁、壳和实体单元组装为一个方程组,每个节点有六个自由度(三个位移、三个转角)。没有刚度的自由度,例如仅被实体单元包围的节点的转角,会被自动消去。

边界条件与约束

固定约束、线性约束方程、刚性区域(RBE2)以及可精确消去的粘接界面,均通过消去从属自由度处理,而不是通过拉格朗日乘子:

\mathbf{u} = \mathbf{T}\,\mathbf{u}_r + \mathbf{u}_0, \qquad \mathbf{K}_r = \mathbf{T}^{\mathsf T}\mathbf{K}\,\mathbf{T}, \qquad \mathbf{f}_r = \mathbf{T}^{\mathsf T}\left(\mathbf{f} - \mathbf{K}\,\mathbf{u}_0\right)

矩阵 \mathbf{T} 把独立自由度 \mathbf{u}_r 与完整向量联系起来,\mathbf{u}_0 承载约束的非齐次部分。只要 \mathbf{K} 在许可子空间上是对称正定的,缩减矩阵 \mathbf{K}_r = \mathbf{T}^{\mathsf T}\mathbf{K}\mathbf{T} 就仍然是对称正定的。不会出现带零块的鞍点系统。因此,线性静力分析只需对称正定矩阵的方法(Cholesky、共轭梯度),而不需要不定矩阵的方法(MINRES、带选主元的分解)。带罚函数的接触会向 \mathbf{K} 中添加刚度,同样保持正定性,但会使条件数变差。

缩放

求解之前,缩减后的方程组按对角线进行对称缩放:

\tilde{\mathbf{K}} = \mathbf{S}\,\mathbf{K}_r\,\mathbf{S}, \quad \mathbf{S} = \operatorname{diag}\!\left(K_{r,ii}^{-1/2}\right), \quad \tilde{\mathbf{f}} = \mathbf{S}\,\mathbf{f}_r, \quad \mathbf{u}_r = \mathbf{S}\,\tilde{\mathbf{u}}

这是一个等价变换:结果不变,但位移与转角之间、约束行与弹性行之间的量级差异得以消除。对角线非正的行不做缩放。

局限。 约束不足的模型(无支承的物体、机构)会给出奇异矩阵。产品不会悄悄对其正则化:直接法要么无法分解该矩阵,要么返回非有限结果,计算会被标记为未收敛。近奇异矩阵可能给出有限但毫无意义的解。对此的防范是平衡校核:支承反力之和必须与载荷平衡。对于薄壳,条件数差使得采用通用预条件器的迭代法不可靠,见迭代求解器。
验证。 矩阵组装与约束消去的正确性由分片试验检验:MacNeal-Harder 实体单元分片试验和混合网格:棱柱与四面体缝合界面的分片试验。静力的解析校核:悬臂梁(欧拉-伯努利)。

11.2矩阵存储与重排序稳定

矩阵以稀疏行压缩格式 CSR 存储(行偏移、列索引和数值三个数组)。相邻单元的重复贡献在组装时求和。缩减矩阵通过三重乘积 \mathbf{T}^{\mathsf T}\mathbf{K}\mathbf{T} 以同一格式得到。对于直接分解,矩阵被转换为 Eigen 格式,必要时只取下三角。

单元局部矩阵并行计算,但按单元编号的顺序依次累加到全局矩阵中。因此组装得到的矩阵与线程数无关。

因子 \mathbf{L} 的非零元素个数取决于未知量的编号顺序。对称分解采用近似最小度排序(AMD):Amestoy P., Davis T., Duff I., An approximate minimum degree ordering algorithm, SIAM J. Matrix Anal. Appl., 1996。Apple Accelerate 和 Eigen 的 SimplicialLDLT 都使用该排序。对于非对称和复数方程组,稀疏 LU 采用按列的 COLAMD 排序。嵌套剖分排序(METIS)和逆 Cuthill–McKee 排序(RCM)在求解器中未采用。

对于三维网格,在良好排序下,因子的内存大致按 O(n^{4/3}) 增长,分解的运算量大致按 O(n^{2}) 增长(George A.,嵌套剖分)。Eigen SimplicialLDLT 在实体模型上的实测指数略高,约为 n^{2.3}。计算界面按自由度数的经验幂律给出直接求解器的内存预测。

局限。 内存预测是在二阶四面体上标定的,对六面体可能低估分解的峰值。这是用于选择路径的估计,而不是保证。对于最大规模的三维模型,AMD 排序并非最优:那里因子的填充增长得比嵌套剖分排序所能给出的更快。

11.3稀疏直接求解器稳定

对于对称正定矩阵,采用 Cholesky 分解或带预先置换 \mathbf{P} 的 \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T} 分解:

\mathbf{P}\,\tilde{\mathbf{K}}\,\mathbf{P}^{\mathsf T} = \mathbf{L}\,\mathbf{D}\,\mathbf{L}^{\mathsf T}, \qquad \mathbf{L}\mathbf{y} = \mathbf{P}\tilde{\mathbf{f}}, \quad \mathbf{D}\mathbf{z} = \mathbf{y}, \quad \mathbf{L}^{\mathsf T}\mathbf{w} = \mathbf{z}, \quad \tilde{\mathbf{u}} = \mathbf{P}^{\mathsf T}\mathbf{w}

在正定矩阵上,该分解无需选主元即可保持稳定(Golub G., Van Loan C., Matrix Computations)。因此置换只依据填充选取,而不依据元素大小。该方法在舍入误差范围内是精确的。条件数影响答案的精度,但不影响能否得到答案,而迭代法则并非如此。分解失败意味着失去了正定性或内存不足。

在 macOS 上,分解由 Apple Accelerate 的稀疏求解器完成(Cholesky 或 \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T}),它是多线程且向量化的。在 Windows、Linux 和浏览器中使用 Eigen SimplicialLDLT,它是单线程的,明显更慢。在产品的模型上,直接法与迭代法给出一致的位移:相对偏差约为 10^{-9}(见下表)。若分解失败,则启用备用路径,只有当它们全部用尽时,计算才返回未收敛标志。

分解只做一次,并可复用于多个右端项:用于特征值问题、按频率网格的谐响应分析,以及步长恒定的隐式瞬态计算。

对于可能不定的矩阵,例如带预应力模态分析中的 \mathbf{K} + \mathbf{K}_{\sigma},不按大小置换的 \mathbf{L}\mathbf{D}\mathbf{L}^{\mathsf T} 分解不能保证稳定性,其本身也无法区分正定与不定。因此分解之后会检查对角阵 \mathbf{D} 的符号。若矩阵不再正定(载荷高于临界值),计算返回未收敛标志,而不是一个看似合理的频率。

对于非对称方程组(某些非线性问题的切线矩阵)和复数方程组,采用 COLAMD 排序的稀疏 LU,见谐响应分析和非线性计算。

测量

带固定端和压力的壳,原生路径,Apple M5,Apple Accelerate(2026年10月13日测量):

自由度数时间,s内存(RSS),GB
13 8240.07—
144 1500.80.9
584 0646.03.2
1 000 0007.44.3
2 100 00012.88.2

对于实体,由于填充更多,直接法的代价更高。在具有 8.9 万个活动自由度的 Hex20 模型上,Accelerate 在基准平台上用 35 s 求解,而 Linux x86-64 试验台上的单线程 Eigen(第三个平台,非基准,仅供参考)用 734 s。因此在 Windows 和 Linux 上,对于超过中等规模的实体模型,产品选择迭代求解器,见求解器选择。

局限。 直接法受内存限制:因子的填充增长得比矩阵的规模更快。直接求解之后,残差 \lVert \mathbf{K}\mathbf{u} - \mathbf{f} \rVert / \lVert \mathbf{f} \rVert 不单独计算:产品依赖分解成功以及结果为有限值。谐响应分析是例外,那里在每个频率上都校核残差。在 Windows 和 Linux 上,直接法是单线程的。
验证。 直接法是大多数静力验证算例的基础,例如 NAFEMS LE10 和悬臂梁(铁木辛柯)。公开算例集中没有专门的“直接法对迭代法”系列:这类比对由开发自动化测试完成。

11.4小规模系统的稠密求解器稳定

对于小型框架和壳模型,以及用于基准校核,采用稠密求解。算法如下:先检查矩阵的对称性,然后就地做 Cholesky 分解。对于正定矩阵,Cholesky 无需选主元即稳定,因此不需要缩放和置换。如果矩阵不对称或不正定(机构、失稳),分解回退为按列选主元的 LU。对称性要显式检查,因为 Cholesky 只读取一个三角,对非对称矩阵会悄悄给出错误答案。对于奇异矩阵,结果为非有限值,调用方据此识别出机构。

稠密求解需要 O(n^2) 的内存和 O(n^3) 的时间,因此只适用于小模型。在原生路径上,超过较小规模的壳和框架模型会自动切换到稀疏分解,在浏览器中则受标签页内存决定的规模上限限制。稠密与稀疏路径给出相同的位移:在壳模型上的相对偏差约为 10^{-11}。

局限。 规模限制是主要的局限。在浏览器中,稠密求解仍是小型框架和壳的主要路径。对于条件数差的矩阵,答案有限并不等于正确:校核方法是反力平衡,见上文。

11.5迭代求解器:带代数多重网格预条件器的 CG测试版

带预条件器 \mathbf{M} 的共轭梯度法沿一系列共轭方向的步进求解 \tilde{\mathbf{K}}\tilde{\mathbf{u}} = \tilde{\mathbf{f}}。当矩阵本身和预条件器都是对称正定时,该方法是正确的。收敛速度由预条件后矩阵的条件数决定:迭代次数按 \sqrt{\kappa(\mathbf{M}^{-1}\tilde{\mathbf{K}})} 增长(Saad Y., Iterative Methods for Sparse Linear Systems, 2003, 第6章)。

在桌面应用中,预条件器是来自 AMGCL 库的平滑聚合代数多重网格(AMG)(Vaněk P., Mandel J., Brezina M., Computing 56, 1996;Demidov D., AMGCL, Lobachevskii J. Math., 2019)。相互关联的节点组被合并为聚合体,据此构造粗网格层,每一层执行光滑,最粗层采用直接求解。一次 V 循环用作预条件器。在方程组为分块结构的情形,聚合会考虑节点的三个自由度。光滑器是对称的,因此 V 循环按构造即为对称,这正是共轭梯度法所要求的。AMG 的特点是:网格加密时迭代次数几乎不增长。在 Linux x86-64 试验台上(仅供参考),对于具有 14、105、202 和 346 千个活动自由度的 Hex8,AMG-CG 分别在 32、43、48 和 52 次迭代内收敛。单独的 Jacobi 或 Gauss–Seidel 不具备这一性质。

停止准则是相对残差。对于 AMG 路径,它是残差的欧几里得范数与右端项范数之比:\lVert \mathbf{r}_k \rVert_2 / \lVert \tilde{\mathbf{f}} \rVert_2 \le \varepsilon。对于其余各级(MFEM 的共轭梯度法),它是预条件残差的范数与初始值之比。容差 \varepsilon 和最大迭代次数由用户在“计算”步骤中设定;默认值为 \varepsilon = 10^{-6} 和 5000 次迭代。残差的变化过程显示在计算窗口中,计算可以取消。

防止错误运行的保护。 产品在每次迭代中检查预条件器:标量积 (\mathbf{M}^{-1}\mathbf{r}, \mathbf{r}) 必须保持为正。否则共轭梯度法停止并指明原因,而不是沿着无意义的方向继续迭代。残差发散同样会中断 AMG 级。共轭梯度法残差的欧几里得范数是非单调的,在实体上可能暂时增大然后才收敛,因此只有在明确发散时才会中断。当某一级失败时,计算转入备用路径。如果没有任何一级收敛,结果被标记为未收敛。

与直接法在基准平台上的对比(Apple M5,2 个线程,2026年10月21日在负载较高的机器上测量,时间仅供参考;同一模型由两条路径分别计算):

模型活动自由度数AMG-CG:迭代次数,s直接法(Accelerate),s位移偏差
Hex2036 432179, 13.36.210^{-9}
Hex2089 280218, 40.335.44 \cdot 10^{-10}
Tet1045 00078, 6.23.92 \cdot 10^{-9}
Tet10104 544100, 10.218.13 \cdot 10^{-9}
Hex8147 85246, 8.791.35 \cdot 10^{-10}

迭代路径在时间上的优势随模型规模增大而增长,并在直接法内存不足时成为决定性因素。

浏览器版本中没有 AMGCL。那里的迭代路径使用共轭梯度法配较简单的预条件器(小型方程组用不完全 Cholesky,大型方程组用 Gauss–Seidel)。它们在细网格上收敛较慢,因此浏览器的迭代次数不能照搬到桌面端。

局限。 (1) 薄壳和由刚性约束缩减的方程组不适合通用 AMG:聚合体没有考虑转动的近似零空间,迭代收敛缓慢或不收敛。对于纯壳和框架,产品使用直接法。(2) AMG 预条件器并非适用于所有提法;其余提法采用其他预条件器,速度较差。(3) 求解器面板上方法(CG、MINRES、GMRES)和预条件器的选择会保存在工程中,但内核始终使用 CG 并自动选择预条件器:因此本小节的状态为 beta。(4) 多线程执行时,标量积中的求和顺序可能变化,差异保持在舍入误差水平。
验证。 公开验证中没有为迭代路径单列算例。桌面端的自动测试要求,迭代模式在真实的 Hex20 模型上收敛,并给出与同一模型直接计算一致的位移。

11.6结果校核:残差、收敛标志、拒绝而非替代测试版

任何计算都会返回收敛标志。仅当达到的残差不超过容差且结果为有限值时,才会置位该标志。若无此标志,界面显示警告“未收敛——下列数值可能不可靠”,脚本以错误“solver did not converge”结束。结果不会被当作成功的结果给出。

内核遵循的原则:

  • 拒绝而非悄悄替代。 如果所选方法不适用或内存放不下,计算返回带有原因和自由度数的错误,而不是悄悄地用另一种方式、以另一种精度计算。求解器设置中的非法值在输入时即被拒绝。对于薄壳,规模上限取决于机器内存(会考虑“设置 → 计算”中的限额);超过该上限,计算拒绝执行。
  • 每一步都校核。 共轭梯度法检查预条件器的正定性,AMG 检查残差增长。谐响应计算在每个频率上检查残差。非线性求解器能识别奇异切线并给出诊断。
  • 特征值问题。 对于原生路径上的框架和壳,会校核每个所请求特征对的相对残差。对于实体,停止准则是里兹值的稳定,该路径上特征对的残差不输出到产品中。
  • 平衡校核。 支承反力和积分量可通过后处理命令查询;对于框架模型,可使用 frame probe equilibrium,即力和力矩上的相对残差 \lVert \sum \mathbf{R} + \sum \mathbf{F} \rVert。

精度与可复现性。 内核的所有路径均采用双精度运算。刚度矩阵与线程数无关。不声称逐位可复现:多线程求和与库分解可能产生舍入水平的差异。不同平台之间没有逐位一致,也不预期有:它们使用不同的库、不同的运算顺序,原生路径上还可能出现融合乘加运算。早期对悬臂梁的浏览器解与原生解的比对,相对偏差约为 10^{-9}。

局限。 各路径的校核并不均衡:迭代路径控制残差,直接路径检查分解和结果的有限性。对于同一几何,浏览器版与桌面版的网格划分器可能构造出不同的网格,此时计算数值会有所不同;以原生结果为基准。
验证。 非线性问题失败的诊断:非线性求解器——奇异切线诊断。本章其余算例检验的是整个计算结果,而不是收敛控制机制。

11.7无矩阵(算子)路径测试版

在无矩阵方法中,不组装全局矩阵:求解器只知道 \mathbf{K}\mathbf{v} 对向量的作用。对于实体的简单线性静力分析(面约束和面载荷,无刚性区域和约束),产品使用 MFEM 的算子组装(部分组装,partial assembly),单元为一阶和二阶,采用配 Jacobi(对角)预条件器的共轭梯度法。该算子在物理上与已组装矩阵相同:早期对悬臂梁的部分组装与完整组装的比对,偏差约为 10^{-11}。

几何多重网格法(MFEM 的 h-多重网格,配切比雪夫光滑)作为研究试验台进行过检验:问题规模增大 225 倍(189 至 42 483 个自由度)时,迭代次数仅增大了 1.9 倍(28 至 52),即收敛与网格无关。该方法未纳入产品的计算路径:它需要嵌套的网格层次,而产品构造的是非结构网格。

局限。 算子路径只覆盖实体的简单线性静力分析。“直接”模式对其不起作用:该路径始终是迭代的。对于其余一切情形(带约束的装配体、梁壳混合模型),产品显式组装矩阵。
验证。 没有单独的公开算例;与解析解的比对由开发测试在悬臂梁上完成。

11.8特征值问题:模态分析与屈曲稳定

模态分析求解广义问题

\mathbf{K}_r\,\boldsymbol{\varphi} = \lambda\,\mathbf{M}_r\,\boldsymbol{\varphi}, \qquad f = \frac{\sqrt{\lambda}}{2\pi}

失稳:(\mathbf{K}_r + \lambda\,\mathbf{K}_{\sigma})\boldsymbol{\varphi} = \mathbf{0},其中 \mathbf{K}_{\sigma} 是由预应力状态产生的几何刚度,而 \lambda_{\text{cr}} 是最小的正特征值(临界载荷系数)。提法和假设在线性分析类型一章中说明。这里说明求解方式。

分块逆迭代(子空间)

对于实体和混合模型,采用带 Rayleigh–Ritz 过程的子空间迭代(Bathe K.-J., Finite Element Procedures, 2014, 第11章)。迭代步为:

\mathbf{Y} = \mathbf{K}_r^{-1}\,\mathbf{M}_r\,\mathbf{X}, \quad \mathbf{K}_p = \mathbf{Y}^{\mathsf T}\mathbf{K}_r\mathbf{Y}, \quad \mathbf{M}_p = \mathbf{Y}^{\mathsf T}\mathbf{M}_r\mathbf{Y}, \quad \mathbf{K}_p\,\mathbf{Q} = \mathbf{M}_p\,\mathbf{Q}\,\boldsymbol{\Theta}, \quad \mathbf{X} \leftarrow \mathbf{Y}\,\mathbf{Q}

块中包含的向量比所请求的振型更多;p \times p 的小型稠密问题用标准方法(Eigen)求解。当所请求的里兹值在相邻两步之间的相对变化小到可以忽略时,迭代停止。矩阵 \mathbf{K}_r 只分解一次,此后每个 \mathbf{K}_r^{-1}\mathbf{b} 就是一对三角求解。在 macOS 上,对中等规模的模型采用 Accelerate 分解,其他平台采用 Eigen SimplicialLDLT。对于非常大的模型,\mathbf{K}_r^{-1} 通过带内部容差的 AMG-CG 近似施加;近似逆需要谨慎(见局限)。质量矩阵上添加了一个小的对角附加项(“下限”),以免无质量自由度破坏小矩阵 \mathbf{M}_p 的 Cholesky 分解;由它产生的虚假高阶模态会被滤除。

屈曲问题使用同一子空间,但形式不同。矩阵 -\mathbf{K}_{\sigma} 是变号且低秩的,因此谱按常数 c 平移,向量在 \mathbf{K}_r 的标量积下正交归一化。倒数 \theta = 1/\lambda 由平移后的值重新换算得到。

框架与壳:LOBPCG

对于原生路径上的框架和壳,采用分块方法 LOBPCG(Knyazev A., SIAM J. Sci. Comput., 2001),其精确预条件器为单次 Cholesky 分解得到的 \mathbf{K}_r^{-1}。本质上它是带局部最优方向的分块 Lanczos。它使用一致质量矩阵,对屈曲问题不需要平移谱。支承载荷下的静力分析用同一分解求解,因此其误差不进入临界系数。停止准则是每一对所请求特征对的相对残差。与稠密路径在相同模型上的比对,偏差不超过 10^{-7}。对于小型方程组仍保留稠密路径:广义问题通过 \mathbf{K}_r 的 Cholesky 分解化为标准问题,并用 Jacobi 方法求解。它是基准方法,但时间按 n^3 增长。

自由体与机构

对于未约束的模型,矩阵 \mathbf{K}_r 是奇异的(六个刚体模态)。此时对谱做平移:以小的 \tau > 0 求解 (\mathbf{K}_r + \tau\,\mathbf{M}_r)\boldsymbol{\varphi} = (\lambda + \tau)\,\mathbf{M}_r\boldsymbol{\varphi},然后减去平移量。刚体模态保持为零频率,并与弹性模态分开。对于框架,命令 frame solve modal free=on 显式剔除六个刚体运动振型。如果弹性振型被刚体模态“淹没”(振型少于所请求的数量,且第一个频率接近零),产品拒绝该结果并指明原因:模型约束不足。

局限。 (1) 分块迭代的收敛性取决于 \mathbf{K}_r^{-1} 的精度。近似逆可能给出看似合理但错误的频率;在试验台比对中,AMG 变体与精确分解的频率一致到 3 \cdot 10^{-9},但在产品本身中,实体路径上并不校核特征对的残差。(2) 实体稀疏路径中的质量集中在节点上(对角 \mathbf{M})。(3) 特征值问题的时间比静力分析高几十倍:每次子空间迭代要求解 p 个方程组。(4) 在浏览器中,框架和壳的特征值问题走稠密路径,规模受限(约几千个自由度);在原生路径上,稀疏方法可达数十万。(5) 所请求的振型数不得超过带质量的自由度数。
验证。 固有频率:NAFEMS FV4、NAFEMS FV12(自由板,刚体模态剔除)、NAFEMS FV52(实体板,前三阶模态为刚体模态)、悬臂梁的谱分析:模态质量。屈曲:欧拉压杆屈曲。
solve modal nmodes=6
solve buckling nmodes=4

11.9谐响应分析的复数方程组测试版

稳态谐响应 \mathbf{u}(t) = \operatorname{Re}\left(\hat{\mathbf{u}}\,e^{i\omega t}\right) 在瑞利阻尼下,对每个频率给出一个复数方程组

\left(\mathbf{K} - \omega^2\mathbf{M} + i\omega\,\mathbf{C}\right)\hat{\mathbf{u}} = \hat{\mathbf{f}}, \qquad \mathbf{C} = \sum_e \left(\alpha_e\,\mathbf{M}_e + \beta_e\,\mathbf{K}_e\right)

该矩阵是复对称的,但有阻尼时不是厄米的,因此 Cholesky 方法不适用。采用稀疏复数 LU(Eigen SparseLU,COLAMD 排序)。结构的符号分析对整个频率网格只做一次,数值分解则在每个频率上进行。约束和缩减与静力分析相同,方程组按对角线缩放。求解之后,在每个频率上计算相对残差;若超过容差,计算停止并指明频率。奇异(无阻尼共振)同样给出带频率的错误,而不是虚假的答案。在脚本中可选择振型分解法(modal)或直接法(direct)。

局限。 直接谐响应分析仅在桌面应用中可用。它要求齐次约束和瑞利阻尼;输出数据量有限。它拒绝非齐次约束方程。
solve harmonic fmin=20 fmax=400 npoints=60 method=direct rayleigh a=1.5 b=0.000002

11.10非线性计算中的线性代数稳定

非线性问题(几何非线性和材料非线性、接触、弧长法)通过牛顿迭代求解。每次迭代求解一个带切线矩阵的线性方程组 \mathbf{K}_T(\mathbf{u})\,\Delta\mathbf{u} = -\mathbf{r}(\mathbf{u})。切线矩阵由稀疏直接分解来分解。只要稀疏结构不变,符号分析和排序就在各次迭代之间复用;结构变化(例如活动接触的改变)会触发新的分析。牛顿收敛准则、载荷步和弧长法在非线性计算与动力学一章中说明。

局限。 带罚函数的接触方程组比线性静力分析的条件数更差。对于活动接触,求解器面板上的类型固定为带严格容差的迭代 CG。
验证。 非线性路径由几何非线性和物理非线性计算的算例所确认:见牛顿–拉弗森法与分步加载和弧长法。

11.11并行性与平台测试版

桌面应用使用 OpenMP:单元矩阵的并行组装和多线程 AMG 预条件器。Apple Accelerate 的直接求解器自身即为多线程。默认线程数通过测量选定,用户可在“设置 → 计算”(“求解器核心数”)中更改。扩展性受内存带宽而非核心数限制:在 21.5 万自由度的模型上(Apple M5),两个核心带来 1.2–1.5 倍的加速,六个核心约为 1.8 倍,十个核心则不比六个更快。该设置对经由 AMG 的路径起作用;部分原生计算是单线程的。

浏览器版本是单线程的,只使用标签页的内存(32 位 WebAssembly 模块不超过 4 GB),且不含 AMG。在大模型上,浏览器远在原生路径的极限之前就遇到内存和时间的限制。浏览器中的求解器模式和规模阈值不可配置。Eigen 直接分解在那里工作到内存阈值,超过之后采用迭代 CG。

验证的基准数值是原生的。在同一几何上,各平台可能出现分歧:例如浏览器与桌面的网格划分器构造出不同的网格。比较数值时,请留意平台标注。

局限。 Windows 和 Linux 上的直接求解器是单线程的,明显慢于 macOS 上的 Accelerate。随核心数的加速受内存带宽限制。
验证。 各平台的测量见平台、性能与质量控制一章。

11.12求解器选择:自动与手动测试版

用户在两个界面上控制选择。

“计算”步骤,求解器面板。 类型(直接或迭代)、“优先直接求解器”复选框、直接法的内存限额(MB)。对于迭代模式,可设置容差和最大迭代次数。面板显示直接法的内存预测和所选路径。如果预测超出限额,求解器切换为迭代并显示通知。存在活动接触时,类型固定为迭代 CG。

“设置 → 计算”(仅桌面端):求解器模式“自动”/“直接”/“迭代”、直接法的规模阈值(以自由度计)、线程数、内存限额。“自动”模式在阈值以内选择直接法,超过则选择迭代法。阈值留空表示自动选择:对于实体,阈值由计算界面的内存限额推算。在 Windows 和 Linux 上,实体模型的自动阈值较低,因为那里直接法较慢(见直接求解器)。对于壳和框架,直接法在调用期间自动提升,因为迭代方法在它们上不可靠。

在脚本中没有专门选择线性求解器的命令:solve 使用文档的设置。这些设置可通过脚本的编程接口(cae.solver、cae.compute)访问。

局限。 迭代模式面板上的“方法”(CG、MINRES、GMRES)和“预条件器”(无、Jacobi、ILU、AMG)下拉列表保存在工程中,但不改变算法:内核使用 CG 并自行选择预条件器。“WebGPU 加速”设置同样没有接入计算。因此本小节的状态为 beta。
验证。 各模式的行为由界面和桌面封装层的自动测试检验(模式和阈值的更改传到内核,调用之后设置得以返回)。没有公开的验证算例。

11.13原型与未实现部分:GPU、云端、无矩阵 P2实验性

这些模块存在于代码中,但没有接入产品的计算。列出它们是为了使能力边界清晰。

  • WebGPU 上用于 Tet10 和 Hex20 的无矩阵 PCG。 该模块逐单元计算 \mathbf{y}_e = \mathbf{K}_e\mathbf{u}_e,采用图着色,以对角线和两层 p-多重网格作预条件。它有测试覆盖,但没有任何计算调用它。求解器面板上的“Matrix-Free P2 GPU”复选框保存在工程中,不改变任何行为。
  • WebGPU CG 求解器。 该模块在 GPU 上以单精度求解稀疏方程组,并带有 CPU 备用变体;开发测试确认,计算不会调用它。产品内核以双精度计算。
  • 混合云计算。 路由模块和网格传输客户端决定是否把计算交给远程服务器(依据模型规模、分析类型、“Auto / Force Local / Force Cloud”设置)。服务器端未接入计算,模式的选择不改变计算。在当前版本中,计算始终在本地执行。
  • 用于 P2 四面体的带 IC(0) 的 LOBPCG。 稀疏模态分析的研究模块;未纳入主路径。
  • 几何多重网格法(GMG)。 存在于测试试验台中(见上文),计算中不使用。
局限。 不能在计算中依赖这些能力。其状态在该模块接入计算并经独立算例验证的版本发布时重新评定。
验证。 无:这些模块不参与计算,也未列入公开验证。

12结果、后处理与强度评估

↑ 返回目录

计算完成后,求解器给出位移(梁和壳还有转角)。其余一切——应力、应变、反力、安全裕度、网格误差估计——都由后处理器据此构造。本章说明具体计算了什么、在哪些坐标轴和单位下、后处理器在何处做了简化,以及哪些量只是估计而非严格计算的结果。

全章的约定:

  • 张量按 Voigt 顺序 [xx,\ yy,\ zz,\ xy,\ yz,\ zx] 书写;拉伸为正;
  • 对于应力,剪切分量为张量分量;对于应变,\gamma_{ij} = 2\,\varepsilon_{ij}(工程剪应变);
  • 线弹性计算的后处理器依据位移和单元材料工作:\boldsymbol{\varepsilon} = \mathbf{B}\,\mathbf{u}_e,\boldsymbol{\sigma} = \mathbf{C}\,\boldsymbol{\varepsilon},其中 \mathbf{B} 和 \mathbf{C} 与单元刚度矩阵中的相同;
  • 在非线性计算中,各场(柯西应力、塑性应变、反力)由非线性内核给出,不再通过位移的线性重构重新计算。

12.1结果场与单位稳定

一次计算的结果是一组节点场。它们可以在模型上着色、用探针读取、输出到报告和文件。主要的组别:

组别场量纲
位移u_x, u_y, u_z,模 \lvert\mathbf{u}\rvert长度
转角(梁、壳)\theta_x, \theta_y, \theta_zrad
应力\sigma_{xx}, \sigma_{yy}, \sigma_{zz}, \sigma_{xy}, \sigma_{yz}, \sigma_{zx},Mises 等效应力,\sigma_1,\sigma_3压强
应变\varepsilon_{xx}, \varepsilon_{yy}, \varepsilon_{zz}, \gamma_{xy}, \gamma_{yz}, \gamma_{zx},等效应变,塑性应变无量纲
安全裕度安全系数或利用率(按所选准则)无量纲
反力支承节点处的反力模力
接触压强、状态、切向力压强、代码、力

应力和应变的分量不仅可以在全局坐标轴下显示,也可以在用户坐标系(直角坐标或柱坐标)下显示:张量在每个节点按公式 T'_{ij} = \mathbf{v}_i^{\mathsf T}\,\mathbf{T}\,\mathbf{v}_j 换算,其中 \mathbf{v}_i 是该点处坐标系的单位矢量。不变量(Mises、\sigma_1、\sigma_3)与坐标系的选择无关。

单位

求解器边界处采用国际单位制(m、N、Pa、kg),模型几何以毫米存储。结果场以流水线自然得到它们时所用的单位存储:

  • 应力——以帕斯卡计;
  • 位移——以模型单位(mm)计,使变形图可直接与原始几何叠加而无需换算;
  • 反力按模型坐标计算,因此显示之前换算为牛顿;
  • 应变和安全系数是无量纲的。

显示采用状态栏中选定的单位制:国际单位制、“公制工程”(mm、N、MPa)或英制(in、lbf、psi)。一张表为图例、探针、按数值过滤、手动色标范围和报告换算数值,因此色标上的标注与数字始终一致。在 DSL 中,除非量的描述另有说明,量以国际单位制返回。在 VTK 文件中,单位包含在场名中(displacement_mm、vonMises_Pa、reactionMag_N)——ParaView 不识别单位。

局限。 节点场以单精度存储(约七位有效数字);相近量之差在其上会丢失有效位。
验证。 力和长度单位的一致性由算例点力作用下的实体悬臂确认:同一问题在 mm/MPa/N 和 m/Pa/N 下给出同一挠度。简单拉伸时的应力在算例单轴拉伸(钢)和单轴拉伸,材料敏感性中核对。

12.2应力向节点的恢复稳定

有限元给出的是单元内部的应力,而着色和探针使用的是节点值。“单元 → 节点”的转换是一个单独的步骤,有其自身的误差。

计算内容

对于线弹性计算,单元内一点的应力为 \boldsymbol{\sigma} = \mathbf{C}\,\mathbf{B}(\mathbf{x})\,\mathbf{u}_e,其中对各向同性材料

\mathbf{C}:\ \sigma_{ii} = \lambda\,\operatorname{tr}\boldsymbol{\varepsilon} + 2\mu\,\varepsilon_{ii},\quad \sigma_{ij} = \mu\,\gamma_{ij},\quad \lambda = \frac{E\nu}{(1+\nu)(1-2\nu)},\ \mu = \frac{E}{2(1+\nu)}.

计算点取决于单元类型:

  • TET4——应变为常数,每个单元一个应力;
  • TET10——在边为直边的单元内部,应力线性变化;它依据单元自身形函数的梯度,在单元的十个节点上计算;
  • HEX8、HEX20、HEX27、棱柱、金字塔——单元中心(形心)处一个值。

节点取包含它的各单元的算术平均。被平均的是张量分量而非等效量:Mises、\sigma_1 和 \sigma_3 是由平均后的张量再计算的,因为主应力非线性地依赖于各分量。权重按单元个数,不按体积。在 TET4/TET10 混合网格(二次单元区域)中,每个单元在自己的基下计算,节点按自己的相邻单元取平均,场在节点处保持单值。

在实体的非线性计算中,柯西应力取自单元的高斯点,在初始构型下按单元体积平均,然后节点按相邻单元以该体积为权重平均。

在热弹性模式下,从正应力分量中减去热部分 \sigma^{\text{th}} = E\,\alpha\,\Delta T/(1-2\nu),因此显示的应力是机械应力。

在结果面板中,可以在“节点”(平均)场与“逐单元”场之间切换。逐单元场呈阶梯状,但如实显示单元之间的跳变;两种模式之差是对网格解析梯度程度的粗略估计(更精确的估计见误差指示器)。

需要了解的事项

材料与物体的边界。 节点场是单值的,因此在两种材料(或两个相连物体)的边界上,平均会抹平具有不同 E 的材料之间应力的物理跳变。边界上的节点值是两个不同量的平均,而不是“左侧”或“右侧”的值。对于跳变显著的位置,请查看逐单元模式或单独的区域。正因如此,多材料模型不生成安全裕度图:边界节点处的许用应力不能归属于任何一种材料。相反,误差指示器是按材料分别恢复场的。

边界附近的峰值。 单元中心的值会在粗网格上低估峰值:形心位于单元深处,而不在纤维上。在悬臂的纯弯曲中,对 TET10 网格(高度方向四层单元),节点计算在最外纤维上的误差为 0.34 %,而同一计算的形心值误差为 14–18 %(开发时的测量)。

梁在节点处不做平均。 框架的一个节点上汇集着内力各不相同的杆件,平均在提法上就是错误的。

局限。 没有按体积加权的高斯点外推,也没有为输出场提供超收敛恢复(只存在于误差指示器内部)。对于 HEX 及其他取中心值的单元,场的内部变化无法解析:棱边或面上的峰值可能被低估。跨材料节点上的值是平均,而不是来自某一侧的极限值。
验证。 节点恢复在以下算例中与解析解核对:刚性套筒内的厚壁圆筒(拉梅问题)、带孔板(法向对称面)、NAFEMS LE1(椭圆膜)、NAFEMS LE10(厚板)。通过不同单元类型缝合界面的常应力分片试验——混合网格:分片试验。

12.3等效应力与等效应变稳定

由应力张量计算出便于与材料极限比较的标量。

Mises 等效应力(畸变能):

\sigma_{\text{vm}} = \sqrt{\tfrac12\left[(\sigma_{xx}-\sigma_{yy})^2 + (\sigma_{yy}-\sigma_{zz})^2 + (\sigma_{zz}-\sigma_{xx})^2\right] + 3\left(\sigma_{xy}^2 + \sigma_{yz}^2 + \sigma_{zx}^2\right)}.

主应力 \sigma_1 \ge \sigma_2 \ge \sigma_3 是 3\times3 对称矩阵的特征值。它们用 Smith 三角公式以闭式求得:设 q = \operatorname{tr}\boldsymbol{\sigma}/3,p = \sqrt{\lVert \boldsymbol{\sigma} - q\mathbf{I}\rVert_F^2/6},\mathbf{B} = (\boldsymbol{\sigma} - q\mathbf{I})/p,\varphi = \tfrac13\arccos\!\left(\det\mathbf{B}/2\right),则

\sigma_1 = q + 2p\cos\varphi,\qquad \sigma_3 = q + 2p\cos\!\left(\varphi + \tfrac{2\pi}{3}\right),\qquad \sigma_2 = 3q - \sigma_1 - \sigma_3.

对于球张量(p = 0),三者均等于 q。模型上输出的场是 \sigma_1(最大主应力)和 \sigma_3(最小主应力);\sigma_2 可在场计算器中获得。

Tresca 应力强度——极端主应力之差:

\sigma_{\text{int}} = \sigma_1 - \sigma_3 = 2\,\tau_{\max}.

它用于强度图(Tresca 准则)和 ASME 的应力线性化。

等效应变。 对于偏量为 \mathbf{e} = \boldsymbol{\varepsilon} - \tfrac13\operatorname{tr}\boldsymbol{\varepsilon}\,\mathbf{I} 的应变张量 \boldsymbol{\varepsilon},“等效应变”场等于偏量的范数:

\varepsilon_{\text{eq}} = \sqrt{\mathbf{e}:\mathbf{e}} = \sqrt{\tfrac23\left[\varepsilon_{xx}^2 + \varepsilon_{yy}^2 + \varepsilon_{zz}^2 - \varepsilon_{xx}\varepsilon_{yy} - \varepsilon_{yy}\varepsilon_{zz} - \varepsilon_{zz}\varepsilon_{xx} + 3\left(\varepsilon_{xy}^2 + \varepsilon_{yz}^2 + \varepsilon_{zx}^2\right)\right]},

其中 \varepsilon_{xy} = \gamma_{xy}/2,依此类推。这不是按不可压缩性归一化的“塑性”等效应变(\sqrt{2/3}\,\lVert\mathbf{e}\rVert):在不可压缩材料的单轴拉伸中,所显示的值是轴向应变的 \sqrt{3/2}\approx 1.22 倍。累积塑性应变 \bar\varepsilon^{p} 由非线性计算的材料模型作为单独的场输出。

局限。 Mises 和 Tresca 适用于塑性材料;对于脆性材料,请使用基于主应力的准则(见强度准则)。对于壳,等效应力按平面应力状态计算(见壳的结果)。
验证。 单轴加载下的 Mises 和主应力在算例单轴拉伸(钢)和单轴拉伸(铝)中核对;圆柱壳纯弯曲时的应力——NAFEMS LE2。

12.4强度准则与安全系数测试版

强度图是对已算出的节点应力所做的后处理;更换准则或极限不需要重新计算。对每个节点计算“利用率” D,安全系数 n = 1/D。若 D = 0,则裕度以显示的上限为限。

准则利用率 D所需的材料性能
Mises\sigma_{\text{vm}}/\sigma_y屈服极限 \sigma_y
Tresca(\sigma_1-\sigma_3)/\sigma_y\sigma_y
Rankine\max\!\left(\sigma_1/\sigma_t,\ -\sigma_3/\sigma_c\right)拉伸极限 \sigma_t 与压缩极限 \sigma_c
Coulomb–Mohr\sigma_1/\sigma_t - \sigma_3/\sigma_c(当 \sigma_1\ge0\ge\sigma_3)\sigma_t、\sigma_c
Saint-Venant(\sigma_1 - \nu\,\sigma_3)/\sigma_y\sigma_y(或 \sigma_t)、\nu
Drucker–Prager\left[\sigma_{\text{vm}} + \beta(\sigma_1+\sigma_3)\right]/\sigma_{\text{lim}}\sigma_t、\sigma_c
疲劳:Goodman、Soderberg、Gerber见下疲劳极限、\sigma_u 或 \sigma_y

对于 Drucker–Prager,\beta = (\sigma_c - \sigma_t)/(\sigma_c + \sigma_t),\sigma_{\text{lim}} = 2\sigma_t\sigma_c/(\sigma_c + \sigma_t);常数的选取使该准则在单轴拉伸和压缩达到极限时恰好给出 D=1。

图中的三种疲劳变体是对脉动循环(从零开始)的简化估计(幅值等于平均值 \sigma_{\text{vm}}/2),疲劳极限为 \sigma_e:

D_{\text{Gdm}} = \frac{\sigma_{\text{vm}}}{2\sigma_e} + \frac{\sigma_{\text{vm}}}{2\sigma_u},\qquad D_{\text{Sdb}} = \frac{\sigma_{\text{vm}}}{2\sigma_e} + \frac{\sigma_{\text{vm}}}{2\sigma_y},\qquad D_{\text{Gbr}} = \frac{\sigma_{\text{vm}}}{2\sigma_e} + \left(\frac{\sigma_{\text{vm}}}{2\sigma_u}\right)^2.

对于任意的加载循环,请使用按 S-N 曲线的疲劳计算。

如果所选准则缺少某项性能,面板会指出缺少的性能,而不是按默认值生成图。

自定义的强度条件可在场计算器中设定为“裕度”场 K = [\sigma]/f(\sigma)。

局限。 准则基于存储的节点场工作,其中只有 \sigma_{\text{vm}}、\sigma_1 和 \sigma_3。因此 Drucker–Prager 准则中的第一不变量 I_1 被替换为 \sigma_1+\sigma_3(当 \sigma_2 等于平均值时精确),而 Saint-Venant 使用不含中间主应力项的 \sigma_1 - \nu\sigma_3。对于由多种材料组成的模型,不生成该图(边界上的节点应力无法对应到单一许用值)。这些准则不考虑应力集中、尺寸、表面状态和温度——这些修正由用户通过许用值引入。
验证。 准则公式由单元测试依据解析值验证。清单中没有单独的裕度图验证算例;因此本小节标注为 beta。

12.5壳的结果稳定

对于壳(带膜部分的 MITC4 四边形和 CST+DKT 三角形),应力在沿厚度的纤维上输出。在单元中心计算膜部分和弯曲部分:

\sigma^{\text{top/bot}}_{\alpha\beta} = \sigma^{m}_{\alpha\beta} \pm \frac{6}{t^2}\,m_{\alpha\beta},\qquad \mathbf{m} = \mathbf{D}_b\,\boldsymbol{\kappa},\quad D = \frac{E\,t^3}{12(1-\nu^2)},

其中 \boldsymbol{\kappa} 为曲率,m_{\alpha\beta} 为单位长度上的弯矩,\sigma^m 为平面应力状态的膜应力(\sigma_{zz} \approx 0)。符号“+”为上纤维(沿单元法向),“−”为下纤维。纤维上的等效应力是平面的:

\sigma_{\text{vm}} = \sqrt{\sigma_{xx}^2 - \sigma_{xx}\sigma_{yy} + \sigma_{yy}^2 + 3\sigma_{xy}^2}.

在结果面板中选择纤维:上纤维、下纤维或模值较大者。分量在单元局部坐标系中计算。节点平均之前,平面张量被旋转到全局坐标轴(\boldsymbol{\sigma}_{\text{glob}} = \mathbf{R}^{\mathsf T}\boldsymbol{\sigma}_{\text{loc}}\mathbf{R}),否则在曲壳上的平均会把不同基下的分量混在一起;上、下纤维分别平均。

对于层合壳,应力按层恢复:在每层的三个点(底、中、顶),依据广义应变 (\boldsymbol{\varepsilon}^0, \boldsymbol{\kappa}) 和该层的刚度;横向剪应力 \tau_{13}、\tau_{23} 为单独的场。广义应变通过逐片拟合(SPR)传递到节点,不会跨越不同截面的接缝或折角做平滑。

局限。 应力在单元中心一点计算,因此在边缘和曲率跳变处,峰值可能被低估。单位长度上的膜力 N 和弯矩 M 不作为单独的场输出;用户得到的是纤维上的应力(必要时 N = \sigma^{m}\,t 和 M = \sigma^{b}\,t^2/6 可手工恢复)。壳的节点场中尚未计入热修正,因此对于热载荷下的壳,请以逐单元的值为准。
验证。 NAFEMS LE2(外表面的环向应力,基准值 6M/t^2 精确吻合);加筋舱段的膜应力——机身圆柱舱段增压(轴向和环向应力对照 Lamé–Barlow,偏差至多 0.01 %);挠度——MacNeal-Harder 矩形板和基尔霍夫–明德林圆板。

12.6梁的结果测试版

对每个梁单元,后处理器依据节点位移恢复两端的内力:\mathbf{f} = \mathbf{k}_{\text{loc}}\,\mathbf{T}\,\mathbf{u}_e,其中 \mathbf{T} 是到局部坐标轴的旋转。输出轴力 N、剪力 Q_y、Q_z、扭矩 T 和弯矩 M_y、M_z。符号:N>0 为拉伸,T>0 沿从第一个节点指向第二个节点的轴按右手定则。如果单元上作用有分布载荷,则端部内力要按等效载荷的贡献修正(\mathbf{f}_{\text{int}} = \mathbf{f}_{\text{solver}} - \mathbf{F})。

内力图显示单元端点的值,并以线段相连;在两个单元交汇的节点处,取两个端点值的平均。因此集中载荷下剪力的跳变在图上被抹平:在跳变点处,请查看单元端点的值。

截面上的应力有两种计算方式。

按库存特性估计(用于汇总和查找最不利截面):\sigma = N/A \pm \lvert M_y\rvert/W_z \pm \lvert M_z\rvert/W_y——模值之和,即截面角点处的应力。对于圆形和管形截面,这是保守估计:两个平面内弯曲最大的点并不重合。

沿截面的分布(“截面”面板)——在截面点网格的节点上:

\sigma_{xx} = \frac{N}{A} + \frac{M_z\,y}{I_z} - \frac{M_y\,z}{I_y},\qquad \tau_{\text{shear}} = \frac{V\,Q(\zeta)}{I\,b(\zeta)},

其中被截取部分的静矩 Q 和宽度 b 在截面网格上数值计算(茹拉夫斯基公式)。扭转剪应力:圆形和管形——\tau = T r/J;矩形——普朗特应力函数的近似;闭口箱形——Bredt 公式 \tau = T/(2A_m t);薄壁开口型材(工字形、T 形、槽形、角钢)——沿板厚的线性规律。等效应力:\sigma_{\text{vm}} = \sqrt{\sigma_{xx}^2 + 3\tau^2},其中 \tau = \sqrt{\tau_{xy}^2 + \tau_{xz}^2}。

局限。 翘曲(约束)扭转和连接节点处的应力集中均未考虑;对于开口薄壁型材,扭转采用线性规律近似。茹拉夫斯基理论给出沿宽度平均的剪应力,对短粗梁并不精确。按库存特性的估计不能替代沿截面的分布。
验证。 悬臂梁的挠度在算例悬臂梁(欧拉–伯努利)和(铁木辛柯)中核对,组合截面——带 T 形加强筋的壳条。端部内力和沿截面的分布由单元测试依据材料力学公式验证(偏差至多 3.4 %);验证清单中没有单独针对内力的算例,因此本小节标注为 beta。

12.7材料局部轴向的应力测试版

对于正交各向异性实体(纤维复合材料、木材、轧材),胡克定律写在材料轴 1,2,3 下,而同一坐标轴下的应力比全局轴下的更重要:据此校核沿纤维方向和垂直于纤维方向的强度。轴的取向可以按表面、按直角、柱或球坐标系为物体设定,外加面内转角。

正交各向异性材料的刚度矩阵(九个独立常数 E_i、\nu_{ij}、G_{ij})通过 Bond 变换转换到全局轴,应变通过全局轴下的 \mathbf{B}\mathbf{u} 计算,而应力则转换到材料轴:\boldsymbol{\sigma}_{\text{loc}} = \mathbf{T}_\sigma\,\boldsymbol{\sigma}_{\text{glob}},其中 \mathbf{T}_\sigma 是应力的 Bond 矩阵。场 \sigma_{11}、\sigma_{22}、\sigma_{12} 可用于着色和探针(stress_local11、stress_local22、stress_local12);节点上的值是相邻单元的平均。

局限。 正交各向异性实体的求解器在四面体(TET4 和 TET10)上工作;应力取单元形心处的值并在节点上平均(即与应力恢复中的误差相同)。实体的强度图按上表中的各向同性准则构造,使用等效应力,而不是 \sigma_{11}, \sigma_{22}, \sigma_{12};复合材料准则(Tsai–Wu、Hashin)针对壳的层实现。
验证。 轴的变换和按表面的取向对照 Lekhnitskii 的单向复合材料偏轴拉伸公式核对:Lekhnitskii (1977) §6。本小节标注为 beta:该功能在 0.2.1 版之后加入,只有一个算例。

12.8支承反力与力的平衡稳定

作用于被约束自由度上的反力,是支承作用于物体的力。对于实体,它通过受约束自由度上平衡方程的残差计算:

\mathbf{R} = \left(\mathbf{K}\,\mathbf{u}\right)_{\text{c}} - \mathbf{F}_{\text{c}},

其中 \mathbf{K}\mathbf{u} 针对受约束节点逐单元组装(\sum_e \int_{\Omega_e} \mathbf{B}^{\mathsf T}\boldsymbol{\sigma}\,d\Omega),而 \mathbf{F} 是右端项,包括面载荷、集中载荷、体载荷和节点载荷。反力既对应固定约束(零位移),也对应给定的非零位移;后一种情况下,它显示为施加该位移所需的力。

输出内容有:按每条边界条件记录的反力(分量和模)、支承节点上的分布以及总反力 \sum R_x, \sum R_y, \sum R_z。平衡校核是把总反力与所施加载荷之和比较:对于静力问题,\sum \mathbf{R} + \sum \mathbf{F} = \mathbf{0}。对于框架模型(梁、壳),反力由节点处端部内力与节点载荷的平衡得到。

反力是两个大数之差,因此任何在受约束节点的 \mathbf{F} 中遗漏的载荷,都会整个进入结果。后处理器对右端项的完整性进行记账:如果某种载荷未能计入(例如作用在网格中未找到的顶点上的力),反力数值会连同明确的警告一起输出,而不是悄悄给出。

局限。 在公式 \mathbf{K}\mathbf{u} - \mathbf{F} 不成立之处,不输出反力:存在接触时(部分平衡由接触力承担),以及未保存反力的非线性计算(线性重构会是错误的)。对于二次单元上的计算,反力要求使用同样的二次网格:用 P1 刚度矩阵乘 P2 位移,在弯曲问题上会给出失真的结果,该请求被拒绝。已保存的非线性计算的结果按原样输出。
验证。 公式 \mathbf{K}\mathbf{u} - \mathbf{F} 由脚本测试在解析解上验证:20×20×100 mm 的杆在 5000 N 力作用下拉伸,给出反力 −5000 N(四位有效数字以内),几何路径和简化路径均如此。含接触的非线性计算的反力(由非线性内核自身保存,而非重新计算)及其与所施加载荷的平衡,在算例接触——销钉在耳孔中、接触——均匀面片、接触——间隙弹簧、接触——不匹配网格中验证。

示例

reactions
probe reaction_z

12.9按 ASME VIII-2 的应力线性化(SCL)测试版

在压力容器和管道中,强度准则不是峰值,而是沿壁厚的应力积分分量。应力分类线(SCL)自内表面(x=0)贯穿壁厚至外表面(x=t);沿线的场被分解为膜应力、弯曲应力和峰值部分(ASME BPVC Section VIII Division 2, Annex 5-A;EN 13445-3;GOST 34233)。

被线性化的是线的局部坐标系中的张量分量(x 轴沿 SCL,其余轴为子午方向和环向),而等效量则是由线性化后的张量再计算的:

\boldsymbol{\sigma}_m = \frac1t\int_0^t \boldsymbol{\sigma}(x)\,dx,\qquad \boldsymbol{\sigma}_b^{\text{in}} = \frac{6}{t^2}\int_0^t \boldsymbol{\sigma}(x)\left(\tfrac t2 - x\right)dx,\qquad \boldsymbol{\sigma}_b(x) = \boldsymbol{\sigma}_b^{\text{in}}\left(1 - \tfrac{2x}{t}\right),

在外表面上,弯曲部分等于 -\boldsymbol{\sigma}_b^{\text{in}}。峰值部分是表面上的余量:\boldsymbol{\sigma}_F = \boldsymbol{\sigma}(x_s) - \boldsymbol{\sigma}_m - \boldsymbol{\sigma}_b(x_s)。积分用沿线等距点上的复合 Simpson 公式计算。对每一个分量(P_m、P_b、各表面上的 P_m + P_b、F)给出 Mises 和 Tresca 等效应力(强度 \sigma_1 - \sigma_3)。

许用应力(如果给定了材料性能):

S_m = \min\!\left(\tfrac23\,\sigma_y,\ \frac{\sigma_u}{2.4}\right),\qquad P_m \le S_m,\qquad P_m + P_b \le 1.5\,S_m.

裕度为许用值与实际值之比。许用值 S_m 也可以直接给定。

线由两个点(内侧、外侧)以及用于确定子午方向的第三个点或容器轴线来定义;沿线的点数默认为 47。

局限。 被线性化的是节点平滑后的应力:沿线的值由四面体四个角节点线性插值(不使用 TET10 的边中点)。在应力集中源附近,这种平滑会影响 P_b 和 F。划分为总体与局部薄膜应力 P_L、一次和二次 Q 应力仍由工程师负责:该模块计算沿所选线的各分量,并将 P_m 与 S_m、P_m + P_b 与 1.5\,S_m 比较。不执行 P_L + P_b + Q \le 3 S_m 的校核,也不依据峰值 F 做疲劳评估。线必须垂直于壁面;偏离法向会以警告输出。
验证。 SCL 在验证算例中没有单独的条目。算法由单元测试在解析剖面上验证:纯拉伸(仅 P_m)、纯弯曲(仅 P_b)、带非线性峰值的组合,以及线在空间中旋转的不变性。本小节标注为 beta:没有取自 ASME 参考算例的独立基准。线性化界面已包含在 0.2.1 中,DSL 命令 scl 在其后加入。

界面与 DSL 中的位置

结果面板“线性化”:在模型上点击三次(内侧点、外侧点、子午线上的点),得到沿厚度的分布曲线图和分量表。

scl p1=(50,0,0) p2=(62,0,0) samples=47 criterion=tresca
probe scl_pm
probe scl_pm_pb

12.10应力集中热点与 Zienkiewicz–Zhu 误差指示器测试版

应力最大值回答不了这样的问题:它是物理上的应力集中(孔、圆角),还是粗网格的假象(约束角点)。有限元应力场的误差估计可以回答这一问题。

方法

用于四面体网格(TET4、TET10 及混合网格)的 Zienkiewicz–Zhu (1987) 指示器。

  1. 有限元场 \boldsymbol{\sigma}_h 在单元之间是间断的。它取自单元的四个高斯点(应力的超收敛点)。
  2. 恢复出连续场 \boldsymbol{\sigma}^*:在节点周围的单元片上拟合一个多项式(SPR——逐片超收敛恢复,Zienkiewicz–Zhu 1992);节点取该多项式的值。恢复按材料分别进行,因此材料边界上的跳变不会被抹平。
  3. 单元误差是差的能量范数:
\eta_e = \lVert \boldsymbol{\sigma}^* - \boldsymbol{\sigma}_h\rVert_{E,e} = \sqrt{\int_{\Omega_e} (\boldsymbol{\sigma}^* - \boldsymbol{\sigma}_h)^{\mathsf T}\,\mathbf{C}^{-1}\,(\boldsymbol{\sigma}^* - \boldsymbol{\sigma}_h)\,d\Omega}.

全局相对误差 \eta = \lVert e\rVert / \sqrt{\lVert\boldsymbol{\sigma}^*\rVert^2 + \lVert e\rVert^2}。对于 TET10,差 \boldsymbol{\sigma}^* - \boldsymbol{\sigma}_h 在单元上是二次多项式,积分精确求得(解析质量矩阵),没有求积误差。除绝对误差 \eta_e 外,还输出误差密度 \eta_e/\sqrt{V_e}——它与单元尺寸无关。

从误差到热点

  1. Dörfler 标记(Dörfler 1996):承载总平方误差中比例 \theta 的最小单元集,\sum_{e\in M}\eta_e^2 \ge \theta \sum_e \eta_e^2;经典取值 \theta = 0.5。该准则通过误差而不是单元个数来设定,因此与网格尺寸无关。
  2. 合并:把被标记的单元(按公共面)合并为连通组。
  3. 滤除噪声:孤立单元和很小的组更多地与退化单元而非物理相关;它们不会悄悄消失,而是作为被舍弃者显示在报告中。如果模型上的误差较小且均匀,则没有热点,面板会如实写明。
  4. 按误差密度排序,密度为 \sqrt{\sum\eta_e^2/\sum V_e},而不是按总和:按总和排序会把网格最粗的区域排在第一位。

对于每个热点,给出其中心、外接球半径、体积、占总误差的份额和当前的单元尺寸。从热点出发构造加密区(球),尺寸为 h_{\text{new}} = h_{\text{old}}/k(默认缩小一半),并留有网格过渡带的余量;可以用一个按钮创建,或在所有热点处同时创建。

局限。 该指示器估计的是离散误差,而不是其原因:真正的奇异点(凹角、点力、固定边)处误差同样很高,热点也会出现,而加密不会消除它。按密度排序只消除了单元尺寸的影响;在约束假象仍强于应力集中源的问题上,它可能排在清单首位。区分奇异性可借助网格收敛性。该方法是为四面体定义的;对于六面体网格和壳,不构造热点。该估计不能替代按一系列网格对应力峰值收敛性的校核。
验证。 在有 Timoshenko 精确解(平面应变)的悬臂上,三级网格的有效性指数 \theta_{\text{eff}} = \eta/\lVert e_{\text{exact}}\rVert:SPR——1.226 → 1.066 → 1.002(收敛于 1);简单的逐片平均使误差被低估约 30 %,因此默认使用 SPR。测量是在开发时的测试平台上、在内核的 WASM 版本上完成的;原生路径上未重新测量。带孔板上“误差 → 加密球 → 重新计算”的循环包含在算例子模型:Kirsch 孔处的应力集中中(相对闭式解的偏差为 −3.57 %,容差 5 %)。验证范围较窄:一种几何,一个公开算例,因此本小节标注为 beta。

界面与 DSL 中的位置

结果面板“热点”:列表,按钮“此处建球”和“所有热点建球”。在 DSL 中——hotspots 以及自动循环 refine adaptive,用户在其中设定目标误差:gci(网格收敛性阈值,%)和 tol(ZZ 误差阈值,%)。

hotspots refine=2 minsize=0.5
probe hotspot_count
refine adaptive passes=3 gci=5 tol=2

12.11网格收敛性:Richardson 外推与 GCI测试版

求解器收敛(一次计算内残差的下降)是一回事;按网格的收敛(网格加密时应力峰值趋向何值)是另一回事。该模块通过在越来越细的网格上进行的一系列独立计算来回答第二个问题。

度量——取自上一迭代已固定的热点球内场的最大值(全局最大值在不同网格上可能位于不同位置,不能比较)。单元的特征尺寸 h 取自该球内网格本身,为 h = (\overline{\Delta V_e})^{1/3}(Celik et al., ASME J. Fluids Eng., 2008),而不是所要求的尺寸:网格划分器给出的并不是所要求的尺寸,而该方法使用的是 h 之比。

依据最后三个网格(h_1 > h_2 > h_3,峰值 f_1, f_2, f_3)计算:

\varepsilon_{21} = f_2 - f_1,\quad \varepsilon_{32} = f_3 - f_2,\quad r_{\text{eff}} = \sqrt{\frac{h_1}{h_2}\cdot\frac{h_2}{h_3}},\quad p = \frac{\ln\lvert\varepsilon_{21}/\varepsilon_{32}\rvert}{\ln r_{\text{eff}}},
f_{\text{ext}} = f_3 + \frac{\varepsilon_{32}}{r_{32}^{\,p} - 1},\qquad \text{GCI} = \frac{F_s\,\lvert\varepsilon_{32}/f_3\rvert}{r_{32}^{\,p} - 1},\quad F_s = 1.25 \ \text{(Roache)}.

阶数 p 按带符号计算,不取 Celik 记法中的模:负的 p 是发散的诊断,而不是噪声。结论为以下之一:

  • “已收敛”:极限 f_{\text{ext}} \pm \text{GCI}\cdot\lvert f_3\rvert,GCI 不高于目标(默认 5 %);
  • “收敛,但带宽仍然较宽”——继续加密;
  • “不收敛——可能存在奇异性”(p \le 0):添加圆角,继续加密也得不到答案;
  • “历史数据不足”(少于三次迭代)或“输入不可用”。

如果增量的符号发生了变化(序列围绕极限振荡),则结论为“继续加密”:这样的序列中外推不可靠。

局限。 每次迭代都是一个新的非结构网格,峰值带有自身的噪声;在 h 不精确时,p 的估计有偏(两个网格什么也给不出)。Richardson 假定处于渐近区:对于粗网格,“已收敛”的结果不可靠。度量绑定到某个热点;同一模型上的另一个热点需要自己的序列。该模块无法区分物理上的发散与提法的缺陷(点力、边的刚性固定)。
验证。 开发时的测量(TET4 四面体,内核的 WASM 版本;原生路径上未重新测量):带孔板(Kirsch,K_t = 3),四次迭代——峰值 2.139 → 2.511 → 2.747 → 2.853 MPa,结论为“收敛至 2.939 \pm 0.108 MPa”,而精确值为 3.0 MPa(外推偏差 2 %);凹直角——峰值 18.0 → 21.9 → 27.6 → 38.9 MPa,p = -1.26,结论“可能存在奇异性”。清单中没有单独的网格收敛性验证算例;相邻的是子模型:Kirsch 孔处的应力集中。

12.12基于 S-N 曲线的疲劳测试版

高周疲劳范围内按应力的寿命估计:线性静力计算给出应力分布,它按载荷历史缩放,寿命则在每个节点按 Wöhler 曲线计算。

S-N 曲线——三种之一:

  • Basquin: \sigma_a = \sigma'_f\,(2N_f)^b,由此 N_f = \tfrac12(\sigma_a/\sigma'_f)^{1/b};可选的疲劳极限 \sigma_e:低于它则 N_f = \infty。
  • 双斜率,在基准循环数 N_e 处折弯:当 \sigma_a \ge \sigma_e 时 N_f = N_e(\sigma_a/\sigma_e)^{1/b_1},低于极限时 N_f = N_e(\sigma_a/\sigma_e)^{1/b_2}(b_2 = 0 时为无限寿命)。
  • 表格式: 在 \log\sigma–\log N 坐标下分段插值。

平均应力修正 \sigma_m 把循环 (\sigma_a, \sigma_m) 换算为等效的对称幅值 \sigma_{a,\text{eq}}:

方法\sigma_{a,\text{eq}}所需
Goodman\sigma_a/(1-\sigma_m/\sigma_u)\sigma_u
Gerber\sigma_a/(1-(\sigma_m/\sigma_u)^2)\sigma_u
Morrow\sigma_a/(1-\sigma_m/\sigma'_f)\sigma'_f
Soderberg\sigma_a/(1-\sigma_m/\sigma_y)\sigma_y

当 \sigma_m \ge 分母的极限时,修正给出无穷大(静力破坏)。默认情况下,当平均应力为压应力 \sigma_m \le 0 时不施加修正(保守,\sigma_{a,\text{eq}} = \sigma_a);压缩有利影响的计入需显式开启。

载荷用以下方式之一设定:应力比 R = \sigma_{\min}/\sigma_{\max}(默认 R=-1);缩放系数范围;静力解的缩放系数历史;若干步结果的序列(非比例加载)。历史用“雨流”法(rainflow,ASTM E1049-85,§5.4.4)分解为闭合循环和半循环 \{\Delta\sigma,\ \sigma_m,\ w\}(权重 1 或 0.5),残余半循环以权重 0.5 计入。损伤按 Palmgren–Miner 规则累加:

D = \sum_i \frac{n_i}{N_{f,i}},\qquad N_{\text{blocks}} = \frac1D.

这里 N_{\text{blocks}} 是以给定载荷块的重复次数表示的寿命。

用于计算循环的标量应力为 Mises、带符号的 Mises(符号取模最大的主应力的符号)或 \sigma_1。结果是损伤 D、\log_{10}N_f、等效幅值和疲劳安全系数 n = \sigma_a^{\text{allow}}(N_{\text{target}})/\sigma_{a,\text{eq}} 的场——即目标寿命下的许用幅值与等效幅值之比(设有上限),以及最危险的节点。

局限。 该模块依据线弹性解的应力工作(高周疲劳);不支持应力集中处的塑性重分布、按应变的低周疲劳和多轴加载的临界平面。多轴状态被归结为一个标量(\sigma_{\text{vm}} 或 \sigma_1)。没有尺寸、表面状态、集中系数 K_f 的修正:它们需要计入曲线之中。S-N 曲线是材料特性,由用户设定;在 DSL 中,若未给定参数,则代入一条通用的钢曲线,仅适合检查脚本流程。节点应力是平均过的(见应力恢复),这会影响应力集中处的估计。
验证。 S-N 曲线、修正以及雨流(包括闭合内循环和外循环)的公式由单元测试依据解析值验证;清单中没有单独的疲劳验证算例。该功能在 0.2.1 版之后加入。
fatigue sigma_f=900e6 b=-0.09 sigma_e=200e6 sigma_u=600e6 correction=goodman r_ratio=0
probe fatigue_min_log_life

12.13断裂力学:KI、J 评估与 Paris 裂纹扩展实验性

该模块依据线弹性断裂力学的闭式公式以及假想裂纹处的应力,给出工程估计。这不是沿裂纹尖端周围的围线或区域计算 J 积分,也不是在带裂纹的网格上的计算。

公式。

  • K_I = Y\,\sigma\sqrt{\pi a};对于无限大板中的中心裂纹 2a,Y=1,K_I = \sigma\sqrt{\pi a}。
  • 能量释放率(Griffith–Irwin):G = K_I^2/E',其中 E' = E(平面应力)或 E/(1-\nu^2)(平面应变)。
  • Paris 疲劳裂纹扩展:da/dN = C\,(\Delta K)^m,\Delta K = Y\,\Delta\sigma\sqrt{\pi a}。在 Y 为常数时,积分可解析求得:N = \dfrac{a_f^{\,1-m/2} - a_0^{\,1-m/2}}{(1-m/2)\,C\,(Y\Delta\sigma\sqrt\pi)^m}(m=2 时——N = \ln(a_f/a_0)/[C(Y\Delta\sigma\sqrt\pi)^2])。
  • 起裂准则:当 K_I \ge K_{Ic} 时裂纹失稳;临界长度 a_c = \dfrac1\pi\left(\dfrac{K_{Ic}}{Y\sigma}\right)^2,裕度 n = K_{Ic}/K_I。
  • 对于 DCB(I 型)和 ENF(II 型)试样,模块中有梁的柔度、G 和临界载荷公式;它们用于内聚区的验证算例。

按棱边估计(fracture edge number N):用户指定棱边(假想裂纹的位置)、初始长度和最终长度 a_0 与 a_f、Paris 参数 C、m、韧性 K_{Ic} 和形状因子 Y。在棱边的节点上取张开应力 \sigma_{\text{open}}——无裂纹模型计算中的最大主应力。随后 K_I = Y\,\sigma_{\text{open}}\sqrt{\pi a_0},J = K_I^2/E',而循环次数通过对 Paris 定律积分得到,其中 \Delta\sigma = \sigma_{\text{open}}(“从零到最大”的循环)。单位:K_{Ic} 以 MPa·√m 计,C 对应以 MPa·√m 计的 \Delta K 和以米计的裂纹长度;在结果面板中,a_0 和 a_f 以毫米输入,在 DSL 中以米输入。

局限。 这是“应力 × 理想化裂纹公式”的估计,而不是裂纹尖端周围的场。这里的“J”是 K_I^2/E'——能量等价量,而不是独立的围线积分,它并不校验 K_I。解对 a_0 和 Y 的选取(由用户设定)敏感,也对裂纹处的应力被网格平滑到什么程度敏感(节点平均会低估峰值;对于处于应力梯度中的小裂纹,该估计不适用)。仅限 I 型;不考虑混合型、尖端塑性和裂纹间的相互作用。Paris 扩展是在恒定 \Delta\sigma 下对循环次数的估计,不考虑门槛值 \Delta K_{th}、循环不对称性的影响和过载。内聚区(分层,I/II 型)和 Gurson 多孔塑性是单独的材料模型,不参与此估计。
验证。 算例中心裂纹 KI、恒定 ΔK 下的 Paris 定律和Griffith 能量按算例描述,把闭式公式的实现与基准值核对(偏差 0 %):检验的是算术和单位,其中并不涉及对 K_I 或 J 的有限元提取。与独立数值解(网格中的裂纹、围线积分)的核对尚无,因此本小节标注为实验性。
fracture edge number 7 a0=0.002 af=0.008 c=1e-11 m=3 ki_c=50
probe sif_k1
probe paris_cycles

12.14场计算器:自定义表达式稳定

工程师可以设定自己的场——基于结果节点场的表达式——它像内置场一样在模型上着色:带图例、探针和按数值过滤。

表达式由以下变量构成:应力分量 sxx … szx、vm、s1 s2 s3,应变分量 exx … gxz、eeq、epeq,位移 ux uy uz umag,以及数字、常数和函数(abs sqrt cbrt sign exp log log10 sin cos tan atan atan2 min max hypot clamp pow,算术运算与乘幂)。解析是安全的(不执行任意代码)。

量纲在解析阶段检查。 表达式内部一切按国际单位制(Pa、m)。单位是具名的量:许用值写作 250*MPa,而不是 250e6。表达式 250e6/vm 被拒绝(量纲为 1/Pa),vm + 5 同样(压强不能与数字相加)。结果的量纲由表达式推出:Pa → “压强”(按单位制以 MPa、psi 或 Pa 显示),米 → “长度”,1 → 无量纲;其他幂次无从显示,表达式被拒绝并给出量纲名称。可选的 unit= 是对量纲的断言:不一致则拒绝。

按自定义准则的安全裕度(单独的场类型):K = [\sigma]/f(\boldsymbol\sigma),其中 f 是以压强为单位的准则(例如 vm 或 max(s1, -s3*ft/fc)),[\sigma] 是常数许用值。当 f=0 时,裕度以上限为限;当 f<0 或为非数值时,该节点未定义。

值未定义的节点得到“非数”并被计数:它们的个数和第一个原因写入报告;不会悄悄代入零。

局限。 表达式作用于节点(平均后)场,而不是高斯点。结果中没有的变量(例如线性计算中的 epeq)会被拒绝并给出名称。对于谱分析的包络,主应力和不变量没有定义(分量的幅值不构成带符号的张量),这类变量会被拒绝。
验证。 单元测试在 1000 个节点上,把由分量按用户公式组装的 von Mises 与内置场核对,并核对主应力三元组、通过 \sigma_1 - \sigma_3 得到的 Tresca 准则、单位换算以及量纲拒绝。清单中没有独立的验证算例:该场是内置量的组合。
field define name=sigma_ratio expr="vm / (250*MPa)" unit=none
field safety name=n_shell criterion="vm" allowable="250*MPa"
probe n_shell

12.15探针、过滤器与测量稳定

在界面中,通过点击模型放置探针;面板显示节点处场的值。自动探针标出所选场在模型上的最小值和最大值。按数值过滤器只在模型上保留落在给定范围之外或之内的节点。色标范围可以手动固定(以所选单位制的显示单位计)。

在 DSL 中:

probe displacement_magnitude at=0,0,100
minmax vonMises
legend range min=0 max=250
result field vonMises

probe <quantity> at=… 对落入给定坐标周围容差窗口 tol= 内的节点上的场取平均(不插值;如果只给定一个坐标,得到的是该截面的平均值);如果窗口中没有节点,命令拒绝执行并要求放宽容差。minmax 返回整个节点数组上的最小值和最大值(表达式的值取最大值)。可用的量有:位移、vonMises、principalMax、principalMin、张量分量、材料局部应力、反力(reaction_x、reaction_y、reaction_z、reaction_magnitude)、线性化、疲劳、断裂力学、优化的结果,以及动力学和频率量。完整清单见页面 /docs/dsl。

局限。 探针不在单元内部对场做插值:其值是窗口内节点的平均,而节点值本身也是平均过的(见应力恢复)。窗口的默认宽度与网格尺寸相关联;对于尖锐的峰值,请显式设定 tol=。
验证。 探针和 minmax 在所有验证算例中用作测量手段;它们自身的行为(单位、聚合、对错误参数的拒绝)由脚本测试验证。

12.16参数化 DOE 与代理模型优化实验性

“参数化 DOE 与优化”一章由三个部分组成;目前它们都没有与有限元模型的计算相连。

  • 试验设计。 拉丁超立方(LHS),从若干候选中按点间最小距离最大(maximin)选取;确定性生成器,种子可固定。称为“Sobol”的模式实现为 Halton 序列(按素数基底的基数逆序)——低偏差,但不是 Sobol 序列。
  • 代理模型。 普通克里金(带常数趋势的高斯过程):相关函数为高斯型或指数型,对相关矩阵作 Cholesky 分解,预测均值与方差,期望改进(Expected Improvement)用于贝叶斯优化。相关长度由点间平均距离的启发式规则选取,而不是通过最大化似然。
  • 带约束的优化器。 先取一组初始 DOE 点,然后对罚函数 f(\mathbf p) + c\,v(\mathbf p)^2 做局部模式搜索(逐坐标,无改进时步长减半),其中 v 为约束的最大违反量。输出最优解、可行点上的 Pareto 前沿、历史记录以及最优点处的有限差分灵敏度 \partial f/\partial p_k。这不是 SQP 方法:其中没有梯度和二次子问题。

约束可对应力、频率、屈曲系数和位移设定;目标和实体地址遵循与产品其余部分相同的编号规则(文档编号,不使用 bbox 地址)。

局限。 在当前版本中,界面章节和 DSL 命令 doe run 都按内置的模型函数计算目标与约束(质量——作为杆件尺寸的乘积,应力和频率——对高度和长度的简化依赖),而不是按您的模型的计算;默认参数为长度、宽度、高度。代理模型和期望改进已实现并通过测试验证,但在产品的端到端流程中未被调用。因此结果展示的是算法的运行,而不是您零件的最优结构。不能把结果 doe_best_mass 当作工程结论使用。
验证。 单元测试:LHS 和 Halton 的可复现性、参数的离散步长、克里金在训练点处方差为零的插值、EI 公式、带约束的模型悬臂优化。尚无在真实模型上的核对;清单中没有验证算例。
doe param name=thickness min=1 max=10
doe run method=lhs samples=20 objective=mass
probe doe_feasible_count

12.17结果导出稳定

  • VTK(legacy ASCII,UNSTRUCTURED_GRID)用于 ParaView:未变形网格的节点,所有受支持类型的单元(TET4、二次 TET10、HEX8、棱柱、金字塔),位移作为矢量场 VECTORS(用于 Warp By Vector),节点标量(位移模、Mises、\sigma_1、\sigma_3、安全系数、应变、接触、以 N 计的反力)以及温度。单位写在场名中。在界面中——项目菜单,在 DSL 中——export vtk path=...(按路径写入文件在桌面和脚本环境中可用)。
  • 网格,为计算软件包格式:export mesh file="model.inp",必要时附带变形后的几何和位移比例。
  • HTML 报告:计算参数、探针和视口快照;数字按所选单位制输出。
局限。 VTK 中输出的是平均后的节点场(没有单元值)。对于谱包络,分量作为独立的标量(FIELD)写出,而不是带符号的矢量:不能对其应用 Warp By Vector。文件为 ASCII,对大模型而言体积很大。
验证。 没有单独的算例;场名中单位的正确性和场的构成由导出时的测试检验。

12.18图例与变形图稳定

模型上的色标从场中取范围(节点上的最小值和最大值),标注取自所选单位制的单位表;范围可以手动固定(双击色标两端或 legend range min= max=)。对于接触,色标是分类的(状态),对于安全系数,高于上限的值标注为“无穷大”。变形图绘制 \mathbf{x} + s\,\mathbf{u},比例 s 由用户选择;s = 1 时显示的是真实变形,s 更大时则是示意性的,因此数值请取自探针和图例,而不要取自图像。

局限。 在大比例下,变形形状只是示意,而不是受载物体的几何。色标上的数字对应的是节点平均场,而不是高斯点处的值。

13项目、脚本与自动化

↑ 返回目录

在 WebCAE 中,同一个计算可以用三种方式完成:在界面中用鼠标操作,用内置的 DSL 语言编写脚本,或者通过 MCP 委托给外部 AI 助手。三种方式使用同一个模型和同一套命令,因此结果不取决于所用的方式。本章说明工作流程、项目文件、脚本语言、助手的接入、现成的示例、数据交换和本地化。

这对工程师有什么用。脚本把计算变成可复现的文档:可以把它放在报告旁边,在新版本上重新运行并比较数值。项目文件保存的是连同结果在内的模型,而不仅仅是原始数据。DSL 命令的详细手册另行维护:DSL 脚本语言。

13.1工作流程:六个步骤稳定

界面被组织为由六个步骤组成的链条。每个步骤对应顶部面板上的一个标签页和各自的参数面板。

步骤工程师的操作得到的结果
1. 几何构建基本体和草图,导入 STEP 和 IGES,切割、粘合,修复几何(见几何与 CAD)带有面、边、顶点编号的实体、曲面片和线
2. 模型设定材料并将其指派给实体,梁截面、壳厚度、分组不含载荷的计算模型
3. 载荷与边界条件设置固定约束、力、压力、温度、接触和约束与实体编号绑定的边界条件记录
4. 网格选择网格类型、单元尺寸、单元阶次、加密区四面体、六面体、壳或梁的网格
5. 计算选择分析类型和求解器参数,启动计算位移、应力、温度场,频率、振型,稳定性系数
6. 结果查看场、探针、反力、截面,导出表格、图片、文件

第 5 步的分析类型从以下几组中选择:结构(静力、模态分析、屈曲、谐响应、瞬态动力学)、热、显式动力学和 CFD。由 frame 命令定义的梁和壳模型经过相同的步骤,但在第 3 步和第 4 步中显示的是框架面板,而不是通常的面板。

这些步骤并不构成刚性的流水线。可以返回到任何可用的步骤。“几何”“模型”和“载荷与边界条件”步骤始终开放;“网格”和“计算”需要有几何或网格,“结果”在存在计算结果时开放。对模型的更改可以撤销和重做(Undo 和 Redo)。

自动保存会把模型的快照(不含结果)写入浏览器或应用程序的本地存储,以便在标签页重新加载或故障后保留。这是一种保险,而不能代替把项目保存到文件。

局限。 自动保存不会在设备之间迁移,也不保存结果:恢复之后需要重新计算。自动保存快照的大小有限;非常大的模型请显式保存到文件。
验证。 步骤顺序本身没有单独的验证算例。验证目录中所有算例的模型都通过命令层经过同一条链条,而按步骤构建模型和标签页之间的切换由界面测试覆盖。

13.2项目文件 .wce稳定

项目保存为一个扩展名为 .wce 的文件。原来的扩展名 .caeweb 仍可打开;下次保存时会建议使用 .wce。扩展名不说明内容:读取方依据签名和压缩方式判断格式,因此重命名后的文件同样可以打开。

文件内保存的是完整的模型,而不仅仅是原始数据。

  • 几何:原始 STEP 的字节、每个实体经过校验的 B-Rep、创建和导入的实体、带稳定标识符的拓扑快照、实体编号日志。
  • 模型:材料及其指派、截面、分组、边界条件、载荷、接触和约束、网格与计算设置。
  • 网格:四面体、六面体、混合单元和表面网格,以及单元质量。
  • 结果:静力、温度场、显式、谐响应、框架结果(静力、振型、屈曲、动力学)、加载步历史、自适应重划分的存档。

数值数组(节点、单元、场)存放在二进制块中,不转码为文本,而整个容器经 gzip 压缩。文件记录数据模式的版本。旧文件可由新版应用打开:缺失的字段取默认值,过时的实体地址在读取时转换为编号。旧版本的应用拒绝打开更新模式的文件,而不是在丢失数据的情况下读取。

不保存的有:界面的临时状态(当前标签页、状态、选择)、被中断计算的部分序列、脚本和终端日志。项目可通过“项目”菜单、将文件拖入窗口、在桌面端双击(应用已注册 .wce)以及供助手使用的 cae_open_project 命令打开。“项目”菜单还可以把结果与模型分开保存并读回。

局限。 脚本和操作日志不包含在文件中,请将它们另行存放在旁边。大型 CFD 计算的帧不会进入文件:它保存元数据和指向计算会话的引用,而场则从同一台机器上的会话目录读取。DSL 命令中没有写入和打开项目的功能;这通过菜单或 MCP 完成。含结果的大模型文件可能占用数百兆字节。
验证。 往返保存与读取(模型、网格、结果、旧模式的迁移、对更新模式的拒绝)由单元测试覆盖。该格式没有独立的验证算例,对文件而言也没有意义:检验的是数据完整性,而不是物理。

13.3统一命令层与操作日志测试版

产品的任何功能都作为统一命令层的一条命令来接入。功能区按钮、上下文菜单项、DSL 的一行以及助手的调用,都指向同一个函数。界面中的表单和脚本不重复逻辑,因此同一操作在任何路径上都给出相同的结果。这是一条开发规则:一项新功能只有在界面和脚本两处都可达时才算完成。

可用的有三个界面。第一个是图形界面。第二个是 DSL 语言,逐行执行。第三个是 JavaScript 的编程接口 cae.*,终端和 MCP 桥通过它工作。在窗口底部的终端中,以 cae. 开头的行作为 JavaScript 执行;其他行先尝试作为 JavaScript,再尝试作为 DSL。可以一次粘贴多行。

操作日志是自动建立的。终端显示两个通道:计算内核的命令(几何、网格、材料、边界条件、启动计算;始终显示)和界面事件(切换标签页、选择、可见性、相机;通过“UI 事件”复选框开启)。命令以 cae.* 调用的形式记录,例如 cae.fix(...) 或 cae.setMeshOrder(...)。这样的行可以复制并重新执行,也就是说,可以根据日志组装出宏。

局限。 日志记录的是 cae.* 调用,而不是 DSL 的行,且不保存在项目中。并非每个操作都有可重放的行:部分事件被记录为可读的注释。在 3D 视图中用鼠标进行的选择和显示设置只存在于界面中。DSL 的覆盖不完整,脚本中的若干模式会带说明地拒绝执行,而不是悄悄替换;限制清单维护在 DSL 页面上。某些命令只在应用程序内部可用,例如自动搜索接触对的 contact pairs。因此状态为 beta:该原则在主链条上得到遵守,但不保证适用于每一个操作。
验证。 操作到日志行的转换由单元测试覆盖;命令层没有验证算例。

13.4结果的可复现性测试版

要使计算能够重现,需要脚本、程序版本和平台。在同一平台上,重新运行同一脚本会得到相同的网格和相同的数值:网格划分器是确定性的。桌面端与浏览器之间,同一几何上的网格可能不同,因此不同平台的数值应带着平台标注来比较(见平台差异)。

结果带有“求解器纪元”标记。当求解器中修复了一个可能使已保存结果的数值超出 5 % 容差的错误时,纪元号会增加。打开在这类修复之前保存的项目时,程序会显示持续性的提示“结果可能已过时”。结果本身不会被删除:可以将它与重新计算的结果比较。报告、DSL(解释器响应中的 staleResults 字段)和 MCP 给出同样的判定。

产品版本可见于各面板、“关于”窗口和“设置 → 更新”、cae_get_state 的响应以及 cae.version 属性。点击版本号可打开更新历史。

局限。 结果文件中保存的是求解器纪元号,而不是产品发布版本号。纪元只在改变数值的修改时变化;单纯的重构和加速不会使其增加。确定性只针对同一平台和同一版本。无法保证用另一个发布版本的程序严格复现结果:请在报告中记录版本。
验证。 纪元和过时判定由单元测试覆盖,包括对不带标记的结果的拒绝。验证卡片上的版本标识见小节版本与结果标识。

13.5DSL 脚本语言稳定

DSL 是一种文本命令语言。脚本是普通的 UTF-8 文件,每行一条命令;注释以 # 或 // 开头,块和循环用 { } 括起。每条命令是一个词,后面跟位置参数和形如 key=value 的命名参数。矢量以逗号分隔的数字书写:origin=0,0,10。数字允许使用指数:E=200e9。

该语言包含变量(let)、条件(if/else)、循环(for x in [0..3]、while)、函数(func/return)和内置函数(abs、sqrt、min、max、floor、ceil、round、len、str、num、basename)。输出用 print,把值写入结构化响应用 record。为防止死循环,执行步数限制为一百万,递归深度限制为 64。

命令涵盖整条链条:几何(primitive、boolean、sketch、extrude、import)、材料与截面(material、section、assign)、网格(mesh、refine)、边界条件(fix、load、contact、remote)、计算(solve static|modal|buckling|thermal|nonlinear|...)、结果(probe、minmax、reactions、hotspots)和输出(export vtk)。脚本的长度单位由命令 units 设定;载荷和材料常数以国际单位制给出。

实体寻址

面、边和顶点只能通过模型树中的编号寻址:surface number N、edge number N、vertex number N。必须写出实体类型这个词。按外形尺寸的方向(face z-)和裸索引会因语法错误而被拒绝。编号可通过命令 list faces of body1 或 list edges of body1 获知。在脚本中,list 的结果可以保存到变量中:每个面都有 .n(编号)、.area、.centroid、.normal。这使得可以按条件选择面并将编号代入命令:fix surface number faces[0].n。详见小节拓扑编号。

从几何到结果的脚本示例

截面 20×20 mm、长 100 mm 的悬臂杆:一端固定,另一端受 5000 N 拉力。二阶四面体,线性静力,然后按公式 \delta = FL/(EA) 校核。

# 悬臂杆 20x20x100 mm,沿 z 轴受 5 kN 拉力
units mm
material E=200e9 nu=0.3 density=7850
primitive box dx=20 dy=20 dz=100
mesh tet size=8 order=2
fix surface number 5
load surface number 6 force=5000 component=z
solve static
reactions
minmax vonMises
minmax displacement_magnitude

在此例中,面 5 是 z=0 处的端面,面 6 是 z=100 mm 处的端面。对于长方体,面按 x-、x+、y-、y+、z-、z+ 的顺序编号;对于其他物体,请在设置边界条件之前用命令 list faces of body1 查看编号。预期结果:总反力在数值上等于所施加的力(5000 N),而端面的最大位移接近解析值 \delta = FL/(EA) = 5000\cdot 0.1/(2\cdot 10^{11}\cdot 4\cdot 10^{-4}) \approx 6.25\cdot 10^{-6} m。固定端完全禁止端面上的位移,因此其附近会出现局部集中,最大 Mises 应力将超过均匀的 F/A = 12.5 MPa。与解析解比较时,请取远离固定端的值。

脚本在应用程序的终端中运行,或通过 MCP 的 cae_run_script 命令运行;print 的输出和 record 记录的值连同执行状态一起返回。

在脚本中,list 的结果可以保存并用循环遍历,例如输出各面的编号、面积和法向。

let faces = list faces of body1
for f in faces {
  print f.n f.area f.normal
}
局限。 不带 units 命令的脚本被视为以米为单位,因此其中的 mesh tet size=6 是六米:请以 units mm 开始脚本。部分命令只在应用程序内部、在打开了模型的情况下工作,而不能在无头运行中使用。脚本中不可用或带说明地拒绝的模式,列在 DSL 页面的已知限制一节中;该语言不保证界面的每个操作都有对应的命令。
验证。 几乎整个验证程序都是用 DSL 编写的:可执行脚本发布在 213 个算例中 207 个的页面上,例如铁木辛柯悬臂梁和带孔板。DSL 算例集在原生路径上的偏差在容差范围内;详情见平台、性能与质量控制一章。

13.6面向 AI 助手的 MCP 服务器测试版

MCP(Model Context Protocol)是一个开放协议,助手(Claude Desktop、Claude Code、Cursor 等)通过它调用工具。WebCAE 提供一个本地桥,把助手与应用程序的打开窗口连接起来。助手操作的是真实的模型:打开项目、检查面和边、指派材料、设置边界条件、划分网格、启动计算、获得数值和屏幕截图。

这些工具带有类型,并分为几组:检查(cae_inspect_surfaces、cae_inspect_edges、cae_get_state、cae_get_model_context)、构建(cad_create_from_template、cad_create_from_script、cae_import_step_artifact、cae_open_project)、模型设定(cae_set_material、cae_add_boundary_condition)、计算与查看(cae_solve、cae_screenshot),以及通用的 cae_run_script,它以字符串形式接收 DSL 脚本,并返回 print 的输出、record 记录的值和状态。边界条件的目标用同样的编号 surface number N 寻址;沿坐标轴的伪名称(“上表面”)会被桥拒绝。工具清单和参数见:MCP 服务器。

该桥只监听本地地址。在发布的桌面版本中,它默认是关闭的:连接上没有授权,常开的端口会把模型交给本机上的任何进程。启用方式是顶部面板的“MCP”按钮,或在应用启动时启用。应用程序的活动窗口只有一个:如果连接了多个客户端,命令进入同一个窗口,其余的等待。

局限。 该桥面向桌面应用和一个打开的项目;没有对模型的云端访问。结果的质量取决于助手:它调用的是同样的命令,但由它决定调用哪些。因此,请像手工操作之后一样检查边界条件和数值。桥在本地工作,但助手从工具响应中读到的一切,会按所选客户端的设置传给其模型的提供方。
验证。 桥的工具及其响应的解析由自动测试覆盖。协议本身没有验证算例;物理由验证一章的算例检验。

13.7示例库测试版

应用程序中有附带已算出结果的现成项目:0.2.1 发布版中约九十个,工作分支中超过一百个。它们可以从顶部面板的“示例”菜单、“设置 → 打开示例”以及形如 ?example=<id> 的链接打开。项目打开时即带有结果场、图例和探针,无需重新计算。示例按行业(汽车制造、机械制造、铁路运输、采矿、石油天然气、能源、航空航天、建筑、造船)和分析类型分组:静力、模态分析、屈曲、大挠度、接触、RBE2 约束、CFD(RANS)、框架与壳结构。网站上的展示页展示的是同样的模型。

另有一组非线性与多物理场算例:带摩擦的制动蹄片、带 RBE2 约束的塔架地震分析、拱的动力跳跃屈曲、带热弹性冲击的汇流排焦耳加热,而在工作分支中还有超弹性减震衬套、带蠕变和疲劳的涡轮盘扇区、双层梁 DCB 的分层、消声器声腔。每个算例都保存了构建脚本和数值标识。0.2.1 发布之后新增的算例不在其中。

局限。 示例是演示性的,而不是验证性的:它们展示程序的功能,并不证明其精度。其中的数值是在特定版本中得到的;如果求解器自那时起有过改动,程序会显示结果已过时的提示。大型示例是在桌面端计算的;在浏览器中重新计算它们可能会因标签页内存不足而无法进行。
验证。 验证由验证目录承担,而不是示例。目录和已保存项目的加载由单元测试覆盖。

13.8数据交换:项目、结果、几何测试版

“项目”菜单汇集了交换操作。

  • 几何:导入 STEP 和 IGES(见导入 STEP和导入 IGES 与 STL),存在几何时可导出为 STEP 和 IGES。
  • 项目:“新建项目”“保存项目…”“打开项目…”(.wce 格式,见上文)。
  • 结果:“导出结果…”和“导入结果…”使用 .wce 和 .caeweb 文件,而导入也接受 .vtk。这使得可以把结果场传给同事而不必传递整个项目。
  • VTK:把带场的网格导出为 ParaView 可读取的 .vtk 格式。对于显式和 CFD 计算,使用计算模块生成的 VTK。
  • DSL:export vtk [path=...]。

在桌面端,文件对话框是系统对话框。在支持 File System Access API 的浏览器(Chrome、Edge)中,项目直接保存到所选文件,在其余浏览器(Safari、Firefox)中则作为普通文件下载。

局限。 VTK 导出包含网格和场,但不含边界条件和材料:这是用于查看的格式,而不是模型交换格式。结果导入会恢复文件中网格上的场,而不迁移计算任务。与 CAD 系统的联系仅限于 STEP 和 IGES 文件;与 Onshape 的同步和 FreeCAD 连接器见几何与 CAD一章。
验证。 项目和结果的往返交换由单元测试覆盖。导出的场尚未与独立软件包(ParaView)做自动核对。

13.9网格交换与变形形状导出实验性

在工作树中(而不在已发布的 0.2.1 版本中)新增了有限元网格的交换,以及向类 CAD 格式的结果导出。Abaqus(.inp)、Gmsh(.msh)和 Nastran(.bdf)网格的导入与导出,以及变形形状和应力等值面向 STL 和 STEP 的导出,在存在网格或位移场时,可通过“项目”菜单中的相应项打开。关于网格导入及其局限的详情,见小节网格的导入与导出。

局限。 这些功能未进入发布版本,其菜单格式和行为可能改变。导入仅接受线性四面体。变形形状导出为 STEP 时是由三角形构成的面片壳,而不是 B-Rep:适合查看,不适合设计。
验证。 尚无与独立软件包的核对;往返导入和导出由单元测试验证。

13.10本地化与单位制测试版

界面已翻译成四种语言:英语、俄语、西班牙语和中文。语言依据页面地址、参数 lng、已保存的设置和浏览器语言确定;可在设置中切换。英语是源语言:若没有译文,则显示英文文本,而不是内部键名。

翻译的完整程度并不一致。西班牙语和中文语言包覆盖了英文字符串中的几乎全部(约 98 %)。俄语语言包在 2026 年 10 月底时翻译了约四分之三:未翻译的有若干面板,其中包括一部分通用标签、材料和截面编辑器、平面与坐标系、树的上下文菜单。这些位置以英文显示。

单位的选择与语言无关。可用三种输入单位制:国际单位制(m、N、Pa、kg)、公制工程单位制(mm、N、MPa、°C)和英制(in、lbf、psi、°F)。单位标注取自参考表:在俄语语言包中使用符合 GOST 8.417 的西里尔字母符号,在其余语言包中使用国际符号。求解器边界处始终是国际单位制:换算由唯一的转换模块完成,而几何以毫米存储。

局限。 俄语界面没有完全翻译,本手册也不保证其中的按钮名称在英文背景下一致。DSL 命令的名称不翻译,在所有语言中都相同。DSL 中的单位与界面中的设定方式不同:材料常数和载荷以国际单位制给出,程序化对象的长度以命令 units 的单位给出。
验证。 翻译的完整程度以及屏幕上没有内部键名,由依据真实源码的自动测试检验;未翻译项的计数是固定的,只能减少。单位的一致性由在不同单位制下求解的集中力算例验证:点力作用下的悬臂。

14平台、性能与质量控制

↑ 返回目录

本章回答三个实际问题。计算应在哪里运行:桌面应用还是浏览器,以及两者的结果有何不同。程序能计算多大规模的问题、需要多长时间。为什么这些数值值得信赖,具体检验的是什么。这里的数值是在具体的机器上测得的,每个数值都标明了平台。不同平台的数值未经标注不能比较。

原则只有一条:基准是桌面端的原生路径。验证、性能测量和差异分析都在它上面进行。浏览器版本使用同一个内核,编译为 WebAssembly,用于初步了解和小型模型。如果在同一模型上各平台的结果不同,则以原生结果为准,并明确说明差异。

14.1桌面端与浏览器:什么在哪里计算稳定

桌面应用提供 Windows 版(64 位,NSIS 安装程序,为当前用户安装)和适用于 Apple 处理器的 macOS 版(DMG 镜像;没有适用于 Intel 处理器的镜像)。没有 Linux 版。浏览器版在支持 WebAssembly 的现代浏览器中运行;项目在 Chrome 和 Edge 中直接保存到所选文件,在 Safari 和 Firefox 中作为普通文件下载。

参数桌面端浏览器
计算内核原生,C++同一内核,编译为 WebAssembly
求解器稀疏直接法与带 AMG 预条件器的迭代 CG,多线程矩阵组装内存阈值以内为直接 Cholesky,超过则为不带 AMG 的迭代 CG,单线程
内存受机器内存限制;启动前显示内存预测每个模块最多 4 GB 线性内存(32 位寻址)以及标签页内存
网格划分器Netgen,多个实体并行构建,可随时取消WebAssembly 中的 Netgen,多个实体在工作线程池中并行
几何OpenCASCADE,原生 STEP 导入WebAssembly 中的 OpenCASCADE
CFDmacOS 上有(SU2);Windows 版没有无
计算设置“设置 → 计算”:求解器模式、线程数、内存限额不可配置
更新安装新的发布版本页面在加载时更新;有新版本时应用会提示重新加载

对工程师而言,由此得出一条实用规则。浏览器适合查看现成的示例、构建并检查小型模型、检验脚本。工作模型、由数十个实体组成的装配体、数百万自由度、CFD,以及一切需要可复现地重复的计算,请在桌面端进行。

桌面端的主要计算默认走原生路径。如果原生路径失败(没有二进制文件、响应错误、超出规模),程序会报告原因,而不会改用浏览器路径:悄悄切换平台会在没有警告的情况下给出不同的数值。

局限。 在 0.2.0 版本发布时,macOS 镜像没有用开发者证书签名,也没有经过公证,因此首次启动时系统可能要求确认打开该应用程序。Windows 版不含 CFD。Windows 上的直接求解器是单线程的,明显慢于 macOS 上原生的直接求解器,因此在 Windows 上自动选择会更早转向迭代方法(见并行性与平台和求解器选择)。设置中的“检查更新”按钮在当前版本中只报告已安装的版本号,并不查询网络。
验证。 验证算例主要由原生求解器测得;平台并非在每张卡片的网格与计算标识中都有记录,部分旧卡片标注为“WASM”(见验证程序)。对整个目录尚无原生结果与浏览器结果的成对核对。

14.2典型问题规模与用时测试版

下面汇总了原生路径的测量。每张表都标明了机器。这些是供规划使用的数量级,而不是保证:用时取决于处理器、机器负载、问题类型和网格质量。测量是在不同时间、不同机器上进行的,不合并为一张表。

实体的线性静力分析,原生求解器,8 线程,28 GB 内存,2026 年 9 月 2 日测量。 二阶四面体,带代数多重网格预条件器的 CG(AMGCL,Gauss–Seidel 光滑器,聚合中含物体的刚体运动基)。时间为总时间:构建预条件器与求解。

自由度数时间,sCG 迭代次数内存,GB
17.5 万2.4201.1
40.8 万5.6192.4
78.8 万11.0214.6
135 万20.3258.1
213 万31.42112.7

迭代次数几乎不随规模增长:多重网格预条件器使收敛实际上与网格步长无关。在一个真实的天线 CAD 模型上(74.1 万自由度,Tet10),同一方法在 8 线程上用 10.7 s,在单线程上用 19.8 s;单线程的稀疏直接 Cholesky(Eigen)耗时 843 s、内存 6.7 GB;在 macOS 上,Apple Accelerate 直接求解器明显更快。在小型模型(几万自由度)上,直接法比迭代法更快也更可靠,因此只要模型能放入内存限额,自动选择就保留直接法。

MITC4 壳的静力分析,原生求解器,Apple M5,24 GB,2026 年 10 月 13 日测量。 1000×1000×10 mm 的方板,边缘固定,均布压力;时间从按下“求解”到出结果,包括模型准备和数据传输。

自由度数时间,s原生求解器内存峰值,GB挠度相对基准
100 万7.25.9+0.008 %
200 万16.86.4+0.008 %

求解器单独在 200 万自由度时占用 6–7 GB,但整个应用程序连同界面在同样规模下占用约 15.7 GB(100 万时约 9.6 GB),在 24 GB 的机器上,200 万自由度时会开始使用交换空间。因此壳静力分析的规模上限取决于物理内存:目前 24 GB 时约为 180 万自由度,16 GB 时约为 100 万。超过上限时,计算在启动前就带着原因拒绝,而不会转向浏览器路径。

网格构建,原生网格划分器 Netgen,Apple M5(4 个性能核心和 6 个能效核心),24 GB,2026 年 8 月和 10 月在负载较高的机器上测量。

任务(测量日期)结果
由 15 个实体、634 个曲面组成的装配体,12 万个四面体(10.08)顺序构建 13.8 s;四个实体同时构建时约 4.3 s(加速 3.2×)
同一文件,细网格(13.10)525 万个四面体用 435 s,内存峰值约 3.2 GB
由 271 个实体组成的装配体,209 万个四面体(11.08)原生 352–433 s(271 个实体中的 270 个),作为对比,浏览器中为 621 s

网格划分器的加速来自同时构建的多个实体(按性能核心数),而不是单个实体内部的线程:十个线程作用于一个实体只带来 1.2×。

关于浏览器的已知情况。 问题规模受限于每个模块 4 GB 的线性内存和求解器的单线程。按 2026 年 7 月的测量,二阶静力分析的实际上限约为一百万个四面体,二阶绑定接触约为几十万。确切的界限取决于问题类型、浏览器和标签页的空闲内存。手册中没有浏览器的可比用时表:基准是原生路径。

局限。 用时不能严格地迁移到其他硬件。网格划分器的测量是在负载较高的机器上进行的;同一配置重复之间的离散度达到 19–25 %。线性求解随核心数的扩展性一般:在 21.5 万自由度的模型上,两个核心带来约 1.2–1.5 倍的收益,再往后就受限于内存带宽。壳和网格的测量是在同一台机器(Apple M5)上进行的,实体的测量在另一台机器上;Windows 上没有测量。
验证。 原始测量保存在开发分析文档中,并可通过试验台复现;没有关于性能的公开验证算例(算例检验的是精度,而不是时间)。

14.3平台差异测试版

桌面端和浏览器由同一份源代码构建,但并非逐位一致:原生版本使用带融合乘加的处理器指令和系统数学库,而浏览器版本没有。浮点数最后几位上的差异有时会带来明显的后果,尤其是在网格划分器中。

  • 网格可能不同。 在由 271 个实体组成的装配体上,两个平台都能构建的 269 个实体中,有 115 个(43 %)得到相同的网格,其余的四面体个数不同,最差的实体相差 11.9 %。四面体总数的一致程度达到 0.01 %,因为朝不同方向的差异相互抵消。每个平台各自是确定性的:重复运行会得到同样的网格。
  • 失败情况可能不同。 有些实体在浏览器中无法划分网格而在桌面端可以(同一装配体中的一个实体,桌面端为 20 599 个四面体),反之亦然(同一装配体中的另一个实体)。原因是网格算法在样条曲面上、在算术略有不同时发散,而不是内存损坏。实际结论:网格划分器在一个平台上失败,并不证明几何有缺陷,请尝试另一个平台或改变单元尺寸。
  • 原生平台的网格质量并不总是更高。 在 10 mm 的测试立方体、单元尺寸 4 mm 的条件下,最小 SICN(单元的有符号逆条件数,见网格质量指标)在桌面端为 0.146,在浏览器中为 0.182。原生路径仍是基准,这是一项决定,而不是因为它处处更好:它与桌面端用户得到的结果一致。
  • 影响数值的是网格,而不是求解器。 带数值验收的 DSL 算例集在原生网格划分器上全部通过。更换网格划分器的平台时,集合中 115 个数值测量中有 111 个逐位一致;其余四个相差的量从 10^{-13} 到 5\cdot 10^{-2} 个百分点,即至少比容差小一百倍。
  • 功能。 CFD 只在桌面端有(Windows 版中没有)。在浏览器中测得的验证卡片标注为“WASM”。
局限。 网格划分器的分析基于一个由 271 个实体组成的装配体和一个测试立方体;没有关于整个目录上差异的总体统计。同一验证算例的原生结果和浏览器结果目前不成对发布。
验证。 差异由对比试验台测量,并按网格划分器算法的步骤逐步分析;DSL 算例集的验收在原生平台上进行。

14.4验证程序稳定

公开的验证程序即验证页面。目录中有 213 个算例;其中 211 个有已执行的运行,且全部通过。两个 MacNeal–Harder 算例(直悬臂梁和扭曲悬臂梁)以“开发中”发布:提法已有,运行尚无。对每个已执行的算例,页面上显示提法、基准、所得值、偏差、网格和求解器版本。213 个算例中有 207 个发布了 DSL 脚本:可以将其粘贴到应用程序的终端中重复该计算。

类别算例数检验内容
非线性与接触112接触与摩擦、超弹性、塑性与蠕变、损伤与断裂、几何非线性与稳定性、分阶段施工、动力学与显式
解析解50闭式解:梁与板、厚壁圆筒、屈曲、动力学与谐响应、谱、随机振动、热传导、热弹性、混合网格
NAFEMS22线性静力(LE 系列)、固有频率(FV)、传热(T)
CFD14管道和通道中的流动、绕流、压降、物体上的力(SU2 计算)
梁与壳10加筋板、机身、船体、偏心肋
MacNeal–Harder5三个已执行:弯曲悬臂梁、矩形板、分片试验;两个在开发中

示例:NAFEMS LE1,椭圆膜、赫兹接触:球、刚性套筒内的厚壁圆筒(拉梅问题)、方板屈曲、带极限点的 Lee 框架、Re = 40 时流中的圆柱。

三类基准。解析解:弹性理论和动力学的公式,其结果有闭式解。已发表的基准:NAFEMS 和 MacNeal–Harder 算例集。不变量与平衡:能量、力的平衡、对称性、与物体旋转或加载步无关性,用于无法给出数值基准的情形。

局限。 验证证明的是实现能在给定的网格上复现已知解,而不是证明该模型适用于您的结构:单元、网格和边界条件的选择仍由工程师负责。算例由开发者选定,本手册不声称有第三方对程序的独立认证。平台并非在每张卡片中都有标明(部分旧算例中标注为 WASM);部分在浏览器路径上得到的卡片尚未在原生路径上重新生成。算例大多规模较小;大型工业装配体以现成示例的形式呈现,没有与基准核对(见示例库)。
验证。 算例的结果由运行自动发布,而不是手工发布。卡片的日期和求解器版本在运行时记录(见版本与结果标识)。

14.5容差政策 ≤5 %稳定

与基准核对的容差是统一的:偏差不超过 5 %。偏差相对于基准值计算:

\varepsilon = 100\,\frac{\lvert v_{\text{calc}} - v_{\text{ref}}\rvert}{\lvert v_{\text{ref}}\rvert}\ \%

其中 v_{\text{calc}} 是 WebCAE 的结果,v_{\text{ref}} 是基准。对于含多个量的算例,卡片中给出每个量的偏差,而表格中每个算例只有一个数。

规则是严格的:不为了让算例通过而放宽容差。超过 5 % 的偏差被视为缺陷,并在计算中而不是在准则中消除。如果某个算例无法做到,则不用宽松的容差将其关闭,而是以“开发中”发布,或附原因推迟。

211 个已执行算例的偏差分布:

指标数值
偏差不高于 1 %165 个算例(78 %)
偏差不高于 2 %190 个算例(90 %)
偏差不高于 5 %211 个算例(100 %)
平均偏差0.59 %
中位数0.05 %
最大4.88 %(NAFEMS LE11)

百分之几十分之一量级的偏差,通常出现在分片试验、平衡、不变量以及有精确解析解的问题上。在有应力集中的问题、粗网格上的壳以及薄体上,偏差更接近界限:5 % 的容差反映的是该方法在所选网格上的真实精度,而不是留有富余的裕量。因此请把该容差理解为算例的上限,而不是您的任何模型的精度。

局限。 统一的 5 % 容差并不适合所有目的:对于认证计算,您可能需要更严格的准则和自己的网格收敛性校核(见网格收敛性研究)。容差是按算例的主要量(挠度、应力、频率)检验的,而不是按整个场。
验证。 容差已写入每个算例的记录(全部 213 条记录都带有 5 %),运行会被自动核对,偏差大于容差的算例不会作为通过发布。

14.6自动回归检验测试版

质量由开发时运行的多层检验来保持。2026 年 10 月底的数量级:

  • 单元测试——数百个文件中约五千项检验:公式、矩阵组装、文件解析、命令、界面;
  • 类型检查分两遍,分别针对产品和测试:捕获测试运行所遗漏的错误,因为测试的执行环境不检查类型;
  • 端到端脚本集——约八十个文件,运行从几何到结果的完整链条;
  • 网格语料库——来自真实 STEP 文件的 17 个任务,网格划分器为原生;检验结果、网格质量和连通性;
  • DSL 算例集——74 个用例,115 项带容差的数值检验,原生网格划分器;
  • 应用原生部分的测试——约二百五十项;
  • 内核的原生物理检验——约九十项:复频率响应、给定的非线性轨迹、壳中的应力恢复;
  • 验证算例——即那 213 个,带有可执行脚本。

一项新测试只有在证明了它能变红之后才会被接受:把回归放回产品代码中,测试必须失败,然后再撤销修改。这是防范“绿色空壳”——什么也不检验的测试——的保护。另有一条关于测试数量的规则:不给出已执行测试数量的闸门静默,不算结果,因为测试集可能已不再能构建。

局限。 所有单元测试的完整运行需要约半小时,在大的工作阶段的边界上执行,而不是针对每次修改;在两者之间,针对受影响的区域运行选定的测试集。对于当前的开发分支,撰写本文时没有记录绿色的完整运行作为基线。测试表明没有已知的回归,但并不证明没有错误。
验证。 测试集的指标及其基线在每个大的阶段固定下来;公开目录中的验证算例在数值路径变化时重新核对。检验的数量随产品的发展而变化,因此给出的是数量级,而不是精确值。

14.7GPU 与云端模式实验性

计算始终在处理器上、在本地进行。显卡和远程服务器不参与计算。

代码中有原型:WebGPU 上的 CG 求解器、用于 Tet10 和 Hex20 的无矩阵变体,以及在浏览器、本地模块和远程服务器之间路由计算的路由器。它们有各自的测试覆盖,但产品的计算不调用它们,产品中也没有服务器端。在计算面板和“设置 → 计算”中有相应的开关(“WebGPU 加速”“Matrix-Free P2 GPU”“Hybrid Cloud RPC”):目前它们保存在项目中,不改变计算。详见:原型与未实现部分。

局限。 规划时不能依赖 GPU 和云端模式。本章中所有的性能数字都是处理器的。未来接入的时间和内容不作承诺。
验证。 有模块级别的检验,但它们未纳入计算,也未经算例验证。

14.8版本与结果标识稳定

应用程序、安装程序、网站和验证卡片采用统一的编号:语义化版本 MAJOR.MINOR.PATCH,发布标签为 vX.Y.Z。当前版本为 0.2.1。修复使最后一位增加;新功能或新的物理使中间一位增加;在主版本号为零期间,不兼容的更改同样计入中间一位。文档页面上的计划版本标注为“计划”,不带日期。

在哪里查看版本:

  • 在程序中:顶部和底部面板中的版本图标、“关于”窗口、“设置 → 更新”;点击版本号会打开按发布版本分组的更新历史;
  • 在脚本中:属性 cae.version 和 MCP 中 cae_get_state 的响应返回形如 WebCAE 0.2.1 的字符串;
  • 在验证卡片中:“求解器版本”字段。

卡片中运行的标识记录为 WebCAE <version> · <short commit>。提交之后的标记 +dirty 表示运行时被跟踪的文件中有未提交的修改:这样的数值只有连同这些修改才能被精确复现。在引入统一编号之前记录的卡片不会被重写,因为它们的数值是由其他构建得到的。它们显示为“引入编号之前(0.1.1 之前)”或“未记录版本”。在 211 个已执行的算例中,目前带版本号标识的有 14 个,“引入编号之前”的有 28 个,“未记录版本”的有 169 个。对旧卡片重新测量并记录版本的工作尚未完成。

文件兼容性。旧版本保存的项目可由新版本打开。更新模式的项目,旧版本拒绝打开,而不是在丢失数据的情况下读取。如果更新之后已保存结果的数值可能已发生变化,程序会给出“结果可能已过时”的警告(见结果的可复现性)。

局限。 对旧版本的长期支持(修复的向后移植)没有公开的政策:修复在新的发布版本中推出。每份报告都请记录版本号以及计算所用的平台。
验证。 发布的所有文件中版本号的一致性、标识的格式和记录的顺序,由自动测试检验。

15术语表与参考文献

↑ 返回目录

15.1术语表

术语含义
自由度(DOF)离散问题的未知量:节点的位移或转角、节点的温度。问题规模通常以自由度数表示。
刚度矩阵 \mathbf{K}在线性问题中联系节点位移与节点力:\mathbf{K}\mathbf{u}=\mathbf{f}。对称;施加约束后为正定。参见求解器。
切线矩阵 \mathbf{K}_T非线性问题中残差对位移的导数;材料部分与几何部分之和。参见非线性计算。
几何刚度 \mathbf{K}_G(\mathbf{K}_\sigma)初始应力对刚度的贡献;是屈曲分析和带预应力模态分析的基础。参见线性分析类型。
残差外力与内力之差 \mathbf{r}=\mathbf{f}_{ext}-\mathbf{f}_{int};其范数是主要的收敛判据。
Gauss 点单元上的数值积分点;应变和应力在这些点上计算。参见单元库。
闭锁(locking)单元刚度被人为夸大:薄壳和梁中的剪切闭锁,近不可压缩材料中的体积闭锁。
MITC张量分量混合插值——消除壳的剪切闭锁的一种方法(Dvorkin–Bathe)。
P1 / P2线性和二次形函数;分别对应 Tet4 和 Tet10。
RBE2刚性连接:从节点随主节点作为一个整体运动。参见边界条件。
MPC / 约束方程自由度之间的线性关系,从方程组中被精确消去。
罚函数通过大刚度弹簧近似施加约束;精度取决于其大小。
弧长法对参数进行延拓的方法,可通过“载荷—位移”曲线的极值点。参见弧长法。
径向返回在一点处对弹塑性状态进行积分的算法:弹性试探步并投影到屈服面。参见材料模型。
SICN通过归一化雅可比度量四面体质量;值 \le 0 表示单元翻转。产品中采用的定义和阈值见章节网格。
ZZ / SPR基于恢复应力场的 Zienkiewicz–Zhu 离散误差估计。
Richardson 外推根据三套网格上的结果估计网格加密时某个量的极限值。
von Mises、Tresca屈服准则的等效应力;公式见后处理。
SCL按 ASME VIII-2 的应力分类线:薄膜、弯曲和峰值分量。
HHT-α、Newmark运动方程的隐式时间积分格式。参见隐式动力学。
中心差分显式积分格式;时间步小于临界值时稳定。参见显式动力学。
AMG用于迭代求解大型方程组的代数多重网格预条件子。参见迭代求解器。
WebAssembly(WASM)浏览器的可执行代码格式;计算内核的浏览器版本即在其中运行。

15.2参考文献

本手册提法所依据的教科书和专著:

  1. Bathe K.-J. Finite Element Procedures. 2nd ed. Watertown: K.-J. Bathe, 2014.
  2. Zienkiewicz O.C., Taylor R.L., Zhu J.Z. The Finite Element Method: Its Basis and Fundamentals. 7th ed. Butterworth-Heinemann, 2013.
  3. Hughes T.J.R. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis. Dover, 2000.
  4. Belytschko T., Liu W.K., Moran B., Elkhodary K. Nonlinear Finite Elements for Continua and Structures. 2nd ed. Wiley, 2014.
  5. Simo J.C., Hughes T.J.R. Computational Inelasticity. Springer, 1998.
  6. Wriggers P. Computational Contact Mechanics. 2nd ed. Springer, 2006.
  7. Crisfield M.A. Non-linear Finite Element Analysis of Solids and Structures. Vol. 1–2. Wiley, 1991, 1997.
  8. Reddy J.N. Mechanics of Laminated Composite Plates and Shells. 2nd ed. CRC Press, 2004.
  9. Clough R.W., Penzien J. Dynamics of Structures. 3rd ed. Computers & Structures, 2003.
  10. Saad Y. Iterative Methods for Sparse Linear Systems. 2nd ed. SIAM, 2003.
  11. Davis T.A. Direct Methods for Sparse Linear Systems. SIAM, 2006.
  12. Timoshenko S.P., Goodier J.N. Theory of Elasticity. 3rd ed. McGraw-Hill, 1970.
  13. Lekhnitskii S.G. Theory of Elasticity of an Anisotropic Body. Moscow: Mir Publishers, 1981.

关于具体方法的论文:

  1. Dvorkin E.N., Bathe K.-J. A continuum mechanics based four-node shell element for general nonlinear analysis. Engineering Computations, 1984, 1(1).
  2. Batoz J.-L., Bathe K.-J., Ho L.-W. A study of three-node triangular plate bending elements. Int. J. Numer. Meth. Eng., 1980, 15.
  3. Hughes T.J.R., Brezzi F. On drilling degrees of freedom. Comput. Methods Appl. Mech. Eng., 1989, 72.
  4. Battini J.-M., Pacoste C. Co-rotational beam elements with warping effects in instability problems. Comput. Methods Appl. Mech. Eng., 2002, 191.
  5. Felippa C.A., Haugen B. A unified formulation of small-strain corotational finite elements. Comput. Methods Appl. Mech. Eng., 2005, 194.
  6. Zienkiewicz O.C., Zhu J.Z. The superconvergent patch recovery and a posteriori error estimates. Int. J. Numer. Meth. Eng., 1992, 33.
  7. Dörfler W. A convergent adaptive algorithm for Poisson's equation. SIAM J. Numer. Anal., 1996, 33.
  8. Celik I.B. et al. Procedure for estimation and reporting of uncertainty due to discretization in CFD applications. J. Fluids Eng., 2008, 130.
  9. Popp A., Gee M.W., Wall W.A. A finite deformation mortar contact formulation using a primal–dual active set strategy. Int. J. Numer. Meth. Eng., 2009, 79.
  10. Wriggers P., Zavarise G. On contact between three-dimensional beams undergoing large deflections. Commun. Numer. Meth. Eng., 1997, 13.
  11. Camanho P.P., Dávila C.G. Mixed-mode decohesion finite elements for the simulation of delamination in composite materials. NASA/TM-2002-211737, 2002.
  12. Benzeggagh M.L., Kenane M. Measurement of mixed-mode delamination fracture toughness. Compos. Sci. Technol., 1996, 56.
  13. Cooper M.G., Mikic B.B., Yovanovich M.M. Thermal contact conductance. Int. J. Heat Mass Transfer, 1969, 12.
  14. Craig R.R., Bampton M.C.C. Coupling of substructures for dynamic analyses. AIAA J., 1968, 6(7).
  15. Der Kiureghian A. A response spectrum method for random vibration analysis of MDF systems. Earthquake Eng. Struct. Dyn., 1981, 9.
  16. Miles J.W. On structural fatigue under random loading. J. Aeronaut. Sci., 1954, 21.
  17. Hinton E., Rock T., Zienkiewicz O.C. A note on mass lumping and related processes in the finite element method. Earthquake Eng. Struct. Dyn., 1976, 4.
  18. Knyazev A.V. Toward the optimal preconditioned eigensolver: LOBPCG. SIAM J. Sci. Comput., 2001, 23.
  19. Vaněk P., Mandel J., Brezina M. Algebraic multigrid by smoothed aggregation for second and fourth order elliptic problems. Computing, 1996, 56.
  20. Johnen A., Remacle J.-F., Geuzaine C. Geometrical validity of curvilinear finite elements. J. Comput. Phys., 2013, 233.
  21. Economon T.D. et al. SU2: An open-source suite for multiphysics simulation and design. AIAA J., 2016, 54(3).

标准与基准问题集:

  1. NAFEMS. The Standard NAFEMS Benchmarks. Rev. 3, 1990; Selected Benchmarks for Natural Frequency Analysis, 1987.
  2. MacNeal R.H., Harder R.L. A proposed standard set of problems to test finite element accuracy. Finite Elements in Analysis and Design, 1985, 1.
  3. ASME Boiler and Pressure Vessel Code, Section VIII, Division 2, Part 5.
  4. ASTM E1049-85. Standard Practices for Cycle Counting in Fatigue Analysis.
  5. VDI 2230 Blatt 1. Systematische Berechnung hochbeanspruchter Schraubenverbindungen.

15.3开源组件

计算内核和模型准备使用开源库:

组件用途
MFEM有限元基础设施:空间、装配、部分求解器
Eigen稠密与稀疏线性代数,直接分解
AMGCL代数多重网格预条件子(桌面版)
Apple Accelerate稀疏直接分解(桌面版,macOS)
Netgen四面体网格生成
Open CASCADE Technology几何内核:导入、布尔运算、拓扑
SU2有限体积法流动计算

各组件的许可证列于页面开源。

We use essential cookies to run this site, plus analytics cookies if you agree. Privacy Policy