Thursday, January 15, 2026

生成CalculiX求解器的接触与边界条件

CalculiX 是一款著名的开源有限元分析(FEA)软件,主打结构力学(静力、动力、非线性)与热分析,适用于科研、教学和中小型工程场景。CalculiX的核心优势有:开源免费。个人、企业、科研机构均可自由使用、修改和分发代码,遵循 GNU GPL 许可证。兼容支持 Abaqus 的 INP 输入文件格式,多数 Abaqus 模型也可直接导入 CalculiX 求解,减少学习曲线。求解器代码精简,对硬件资源要求低于商业软件,适合中小型模型的快速计算。对第三方前后端软件支持也非常好,易于前后处理器与求解器的整合。 Image 笔者曾在《使用WELSIM生成CalculiX求解器文件》一文中,介绍了如何快速地生成CalculiX输入文件。目前,WELSIM已经可以很好的作为CalculiX的前处理器生成输入文本,极大的方便用户使用CalculiX进行有限元分析。本文以更详细的方式介绍生成接触与边界条件的命令。 接触 在多体有限元结构分析中,接触是必要的设置之一。本章节描述生成两种常见的接触类型:绑定接触和可分离接触。 绑定接触 绑定接触是一种用于模拟多体之间完全刚性连接的接触条件,适用于部件间无相对滑移、无分离、无间隙的工况(如焊接、胶粘、过盈配合后固化、螺栓紧固的刚性连接)。绑定接触会强制接触界面的节点位移完全一致,等同于将多个独立部件 “融合” 为一个整体结构。 绑定接触设置如下图所示, Image 转换成CalculiX命令时,使用*TIE 命令。生成的输入命令如下 *Tie, Name=ID_15, Position tolerance=0.01, Adjust=No Target_Surface_15, Master_Surface_15 在网格文件中,定义的表面单元如下: ** Box_to_Box_1 *SURFACE, TYPE=ELEMENT, NAME=Master_Surface_15 70, S2 63, S2 74, S2 61, S2 66, S1 69, S2 ** Box_to_Box_1 *SURFACE, TYPE=ELEMENT, NAME=Target_Surface_15 166, S3 185, S2 160, S3 173, S2 171, S4 169, S3 可分离接触 可分离接触是一种用于模拟多体接触界面允许接触、滑移、分离三种状态的非线性接触条件,核心特点是接触界面仅传递法向压力,无拉力作用,且切向可自由滑移或黏着,适用于部件间存在动态接触与分离的工况(如齿轮啮合、冲压成型、轴承滚动、机械碰撞)。根据摩擦力假设,又分为无摩擦接触和有摩擦接触。 WELSIM设置接触如下图所示, Image 转换成CalculiX命令时,使用CONTACT命令。这里值得注意的是,CalculiX规定,主接触面又称作独立接触面,必须是以单元定义的表面。被动接触面又称作是依赖接触面,可以是单元定义的表面,也可以是节点定义的表面。 生成对应的CalculiX命令为 ** Box_to_Box 1 *Surface interaction, Name=SurfaceInteraction_15 *Surface behavior, Pressure-overclosure=Hard *Friction 0.15 *Contact Pair, Interaction=SurfaceInteraction_15, Type=Surface to surface Target_Surface_15, Master_Surface_15 结构分析中的边界条件 设置边界条件是有限元分析中重要的步骤,也是前处理软件生成求解器命令的重要部分。WELSIM支持大量CalculiX的边界条件。本章节演示前处理器生成结构分析中的边界条件,并显示对应的求解器命令。 1. 固定边界或位移 位移边界条件是用于约束模型节点位移自由度的本质边界条件,其作用是限制结构的刚体运动、模拟实际支撑约束(如固定支座、铰支座),是结构静力、动力分析的基础条件。 3维模型中,对于实体单元,可以施加X/Y/Z方向的平移(Ux/Uy/Uz),对于壳单元,可以施加额外的绕 X/Y/Z 轴转动的转动(Rx/Ry/Rz)。 Image 对应生成的CalculiX求解器命令是, ** BC Name: Displacement *Boundary ID_22, 1, 1, 1 *Boundary ID_22, 2, 2, 2 *Boundary ID_22, 3, 3, 3 *Boundary ID_22, 6, 6, 0.523599 2. 压力 压力边界条件是一种作用于结构表面的面载荷,属于分布载荷,其本质是通过指定单位面积上的法向力来模拟流体压力、接触压力、气体载荷等工程场景(如压力容器内壁压力、风载荷、土壤侧压力)。 压力是结构有限元分析中常见的边界条件之一。压力的符号规则决定载荷方向:正压力:载荷方向指向表面内侧,对结构产生压缩效应(如压力容器内壁压力);负压力:载荷方向背离表面外侧,对结构产生拉伸效应(如真空容器外壁的大气压力)。压力边界条件如图所示, Image 对应生成的求解器命令是, ** BC Name: Pressure *DLOAD ID_20, P, 123 3. 力 力边界条件是作用于几何关键点、线、或者面的载荷,用于模拟工程中局部位置的受力工况(如螺栓预紧力、吊环拉力、销钉作用力)。 力是结构力学中最常见的边界条件,然而, 对于有限元数值方法中,几何面上的力边界条件的施加并不简单,通常是将多个节点的自由度耦合到一个参考节点,常用于将集中载荷分散到节点组(如把力加在参考节点,自动分配到耦合组)。 如图所示,在前处理器的力设置中,用户可以选定几何体的面,线,或点,并给定三个方向上的力大小。 Image 得到力的求解器命令如下, *COUPLING, REF NODE=46, SURFACE=ID_17, CONSTRAINT NAME=c17 *KINEMATIC 1 3 ** BC Name: Force *CLOAD, OP=NEW 46, 1, 100 *CLOAD, OP=NEW 46, 2, 200 *CLOAD, OP=NEW 46, 3, 300 4. 节点力 节点力边界条件是直接作用于单个或多个节点的集中力载荷,是有限元离散化后最基础的载荷施加形式,与之前提到的集中力边界条件高度关联,但更偏向于网格离散后的直接操作,常用于精细化载荷控制或特殊工况模拟。 节点力是直接施加在网格节点上的力,根据节点数量大小,综合施加的力会叠加。 Image 生成的求解器命令也非常简单明了,根据所选的节点,施加CLOAD载荷。 ** BC Name: Nodal Force *CLOAD ID_18, 1, 10 *CLOAD ID_18, 2, 20 *CLOAD ID_18, 3, 30 ** Nodal_Force *NSET, NSET=ID_18 82, 84, 86, 88, 95, 96, 103, 104, 107, 108, 111, 112, 145, 146, 147, 148, 149, 150 5. 重力 重力边界条件属于体积力(Body Force) 范畴,用于模拟地球引力场对结构的作用,是通过给模型的每个单元分配与质量成正比的惯性力,适用于几乎所有包含自重影响的结构分析(如建筑梁板、机械部件、航天器地面工况)。 重力的本质是加速度场作用下的体积力,其大小与单元的质量直接相关。前处理器设置如下, Image 生成的求解器命令如下图所示。 ** DC Name: Earth Gravity *Dload Eall, Grav, 9.807, 0, 0, -1 6. 旋转角速度 旋转角速度边界条件用于模拟结构绕某一轴做匀速转动的工况,会在结构内部产生离心力和科里奥利力(高速转动时需考虑),属于惯性载荷范畴,广泛应用于旋转机械分析(如飞轮、叶轮、离心机、涡轮转子)。 输入的参数有旋转轴,旋转原点,和角速度的大小。输入界面如下图所示。 Image 生成的求解器命令如下所示。 ** DC Name: Rotational Velocity *Dload ID_21, CENTRIF, 100, 5, 5, 0, 0, 0, 1 热分析中的常见边界与初始条件 1. 温度 在有限元热分析中,温度边界条件是直接定义模型特定区域温度值的约束条件,属于本质边界条件(Dirichlet 边界条件),适用于已知表面或节点温度的场景(如恒温水箱壁面、与大热源接触的部件、温控设备的设定温度面)。 在热传导控制方程中,温度边界条件是强制约束,会直接固定边界节点的温度自由度,求解时优先满足该约束,再计算内部温度场分布。 前处理器设置如下, Image 生成的CalculiX求解器命令如下, ** BC Name: Temperature *Boundary, op=New ID_23, 11, 11, 0 2. 热流密度 热流密度(Heat Flux)边界条件是直接定义单位面积上通过固体表面的热流量的边界设置,属于热载荷的一种,适用于已知表面热流输入 / 输出的场景(如电加热器表面、太阳能集热板、高温燃气冲刷壁面)。 热流密度是核心参数,正方向为热量流入固体,负方向为热量流出。输入界面如下: Image 生成的CalculiX求解器命令如下: ** BC Name: Heat Flux *Dflux ID_24, S, 0.5 3. 体热流密度 体积热流是一种体载荷,用于模拟物体内部热源产生或消耗热量的过程,区别于作用在表面的热流密度边界条件,它直接作用于模型的体单元,适用于内热源驱动的温度场分析。 体积热流密度,SI单位为 W/m3(正号表示生成热量,负号表示消耗热量),用户输入界面如下: Image 生成的CalculiX求解器命令如下, *DFLUX ID_31,BF,10. 4. 对流 对流(Convection)边界条件又称膜(Film)边界条件。是用于模拟固体表面与相邻流体(气体或液体)之间对流换热的边界设置,是工程热分析中最常用的边界条件之一,广泛应用于电子设备散热、管道换热、汽车发动机冷却等场景。 对流换热系数是表征对流换热强度的核心参数,环境温度参数是远离固体表面的主流流体温度。前处理器中的输入界面如下, Image 生成的CalculiX求解器命令如下: ** BC Name: Convection *Film, op=New ID_29_S1, F1, 80, 123 ID_29_S2, F2, 80, 123 ID_29_S3, F3, 80, 123 ID_29_S4, F4, 80, 123 5. 热辐射边界条件 辐射边界条件是用于模拟物体表面与周围环境(或其他物体表面)之间通过热辐射方式传递热量的边界设置,其核心遵循斯蒂芬–玻尔兹曼定律,适用于真空、气体等介质的热交换场景(如航天器热控、高温设备散热)。辐射边界条件,是一种非线性边界条件,热流与温度的四次方成正比,求解时需要迭代计算。 用户需要输入的参数为发射率(Emissivity),介于0-1之间的数值,和环境温度。输入界面如下, Image 生成的热辐射边界条件命令如下, ** BC Name: Radiation *Radiate, op=New ID_30_S1, R1, 30, 0.9 ID_30_S2, R2, 30, 0.9 ID_30_S3, R3, 30, 0.9 ID_30_S4, R4, 30, 0.9 总结 有限元分析中,边界条件的类型较多,涉及了条件的参数本身,也涉及到所选择的单元,或节点。对于前处理器来说,生成各种边界条件的命令,是一项复杂的工程。 WELSIM已经可以很好的设置各种边界条件,能够快速生成CalculiX求解器所需要的输入文件,并可以直接用于计算。用户可以使用WELSIM作为CalculiX的前处理器。 CalculiX还有少量边界条件,如Constraint和Equation等, 由于常规分析中较少使用,本文未作讨论。 CalculiX与Abaqus的输入文件格式有着很大的相似性,因此,本文所描述的内容,也可以用于Abaqus求解器。 WelSim与作者不隶属于CalculiX, Abaqus。和CalculiX与Abaqus开发团队与机构没有直接关系。这里引用开源软件的名称和图片仅用作技术博客文章与软件使用的参考。

No comments:

Post a Comment