2. HyperMesh核心数据架构解析
在HyperMesh中做多求解器模型迁移,第一件必须搞清楚的事不是“怎么导出”,而是“数据到底存在哪里、归谁管”。HyperMesh并不是一个把几何、网格、材料、载荷混在一起的大仓库,它采用了一种分层、分域的组织方式:一部分数据是求解器无关的通用模型数据,另一部分数据则被绑定到具体的求解器模板(Solver Template)上。理解这条分界线,是后续所有迁移、转换、排错工作的基础。
一、HyperMesh的数据组织层次
从整体上看,HyperMesh的模型数据可以按“几何—网格—单元—属性—材料—载荷/边界条件”这条主线来理解,但它们并不是简单的线性堆叠,而是通过引用关系互相连接。几何(Geometry)是模型的形状来源,通常以曲面(Surface)、实体(Solid)、线(Line)、点(Point)等形式存在,它本身不参与求解,但为网格划分提供基础。网格(Mesh)是几何离散化后的结果,由节点(Node)和单元(Element)组成。单元是网格的最小承载单位,它必须被赋予属性(Property),属性再引用材料(Material),从而形成“单元→属性→材料”的引用链。载荷(Load)和边界条件(Boundary Condition,简称BC)则作用在节点、单元或几何上,描述工况。
这里有一个关键点:在HyperMesh中,几何、网格、单元这些对象本身是求解器无关的,它们只描述“模型长什么样、由什么组成”。而材料、属性、载荷、边界条件中的很多具体参数,则往往带有求解器专属的语义。例如,同样是“壳单元属性”,OptiStruct、Abaqus、Nastran对厚度、积分点、偏置的定义方式可能不同;同样是“约束”,不同求解器对自由度的编号和约束类型也不一样。
二、求解器无关数据与求解器专属数据的区分
判断一份数据属于哪一层,最直接的方法是问:换一个求解器,这份数据还能原样使用吗?如果能,它就是求解器无关的;如果不能,它就需要在迁移时做映射或转换。
几何、节点、单元拓扑、单元连接关系、网格质量指标,这些是典型的求解器无关数据。无论你最终用OptiStruct还是Abaqus,一个四面体单元的节点编号和连接关系不会变,网格的雅可比、翘曲度也不会因为求解器不同而改变。因此,在HyperMesh中划分网格、清理几何、检查网格质量,这些工作可以在确定求解器之前完成,也可以在求解器之间复用。
材料、属性、载荷、边界条件则要复杂一些。它们中的一部分参数是通用的,比如弹性模量、泊松比、密度,这些物理量本身与求解器无关;但它们在HyperMesh中的卡片形式、字段名称、单位制约定、组合方式却是求解器专属的。例如,在OptiStruct模板下,壳属性可能使用PSHELL卡片,厚度、材料ID、积分点位置都有固定字段;切换到Abaqus模板后,同样的壳属性会变成SHELL SECTION,字段顺序和可选参数都会变化。再比如约束,Nastran用SPC卡片,Abaqus用*BOUNDARY,OptiStruct用SPC或SUPORT,自由度编号也可能从1~6变成1~6但含义顺序不同。
三、HyperMesh中的实际组织方式
在HyperMesh的模型树(Model Browser)中,这些数据被组织成若干集合(Collector)。几何放在几何集合中,网格放在组件(Component)中,单元通过组件归属到属性,属性再引用材料。载荷和边界条件通常放在载荷集合(Load Collector)中,并按工况步(Load Step)组织。每个集合都有自己的卡片编辑器(Card Editor),你可以在其中看到当前求解器模板下的具体字段。
这里有一个非常实用的操作习惯:在开始建模前,先通过Preferences → User Profiles选择目标求解器模板。模板一旦确定,HyperMesh就会加载对应的卡片库和单位制约定。后续创建的材料、属性、载荷都会按照该模板的格式存储。如果中途切换模板,HyperMesh会尝试做一次映射,但映射结果需要逐项检查,尤其是材料本构、接触定义、连接单元这些强求解器相关的部分。
下面用一个简化的示例说明迁移时的检查顺序。假设你有一个OptiStruct模型,需要迁移到Abaqus:
1. 确认几何与网格:节点、单元、组件归属不变,直接复用。
2. 检查材料:E、ν、ρ 可通用;塑性曲线需重新按Abaqus的*PLASTIC格式整理。
3. 检查属性:PSHELL → SHELL SECTION,确认厚度、积分点、偏置字段对应。
4. 检查载荷与边界条件:SPC → *BOUNDARY,FORCE → *CLOAD,确认自由度顺序。
5. 检查工况步:OptiStruct的SUBCASE → Abaqus的*STEP,确认分析类型与输出请求。
6. 导出INP,在Abaqus中做一次数据检查(Data Check),观察是否有卡片报错。
这个顺序背后的逻辑就是:先处理求解器无关层,再处理求解器专属层;先处理引用链上游,再处理下游。因为属性引用材料,单元引用属性,如果材料或属性没有映射好,后面的载荷和边界条件即使正确,模型也无法正常求解。
四、迁移中的常见误区
第一个误区是把HyperMesh当成“格式转换器”,认为只要导出再导入就能完成迁移。实际上,HyperMesh的强项是在统一环境中管理多求解器数据,而不是无条件地自动翻译所有卡片。求解器专属数据中,有相当一部分需要人工判断和重新定义。
第二个误区是忽略单位制。HyperMesh本身不强制单位制,但求解器模板会隐含单位约定。例如Nastran常用mm-N-s,Abaqus常用m-N-s或mm-N-s,如果迁移时不统一单位,材料参数和载荷数值会整体错位。建议在模型树中显式记录单位制,并在迁移检查表中逐项核对。
第三个误区是只检查“能不能算”,不检查“算得对不对”。迁移完成后,除了做数据检查,还应该用一个简单工况做对比验证,比如悬臂梁端部挠度、平板中心位移,确认迁移前后结果在合理误差范围内。这一步能有效发现材料曲线、属性偏置、约束自由度等隐蔽问题。