刚接触仿真的人,大概都有过这个疑问:
几何模型有了,材料参数也填了,边界条件也设好了——为什么不能直接点"求解",非要先做一步看起来很麻烦的网格划分?
尤其是在软件里点完"自动划分"之后,看着模型上密密麻麻的小格子,可能会觉得这只是软件的一个固定流程,点过就行。
但其实,网格划分不是一个可有可无的前处理步骤。
它是仿真能够发生的前提。
简单说,网格划分的核心作用有两个:
第一,把无限的真实世界,变成有限的计算问题。第二,把连续的物理方程,变成计算机能解的代数方程组。
理解了这两点,才算真正理解了为什么仿真离不开网格。
拿电池包温度仿真举个例子。
一个真实的电池包,它内部每个位置都有自己的温度。从数学上看,这是一个连续实体,温度也是连续分布的,理论上有无限多个点需要计算。
但计算机只能处理有限数量的数据。它不可能真的去算无限多个点。
所以仿真的第一步,就是把这个连续的实体切分成有限数量的小区域——这些小区域就是网格单元。

这也是"有限元"里"有限"两个字的含义之一。不是直接计算一个连续的无限世界,而是用有限个单元去近似描述它的行为。
没有这一步,仿真问题对计算机来说根本无从下手。
网格划分不仅仅是在切几何。更重要的是,它给计算机指定了在哪些位置上建立未知量。
热仿真里要算温度,流体仿真里要算速度和压力,结构仿真里要算位移和应力——这些物理量在真实世界里是连续分布的,但经过网格划分之后,就变成了在有限的节点或单元上各有一个待求解的值。
计算机就是靠这些有限的值,再通过插值还原出整个区域的物理变化。
再往深一步说,很多仿真的本质是在求解偏微分方程(Partial Differential Equation, PDE)。
热传导方程、Navier-Stokes 方程(流体力学的基本控制方程)、力学平衡方程、麦克斯韦方程……这些方程描述的都是物理量在连续空间中怎么变化。
但在复杂工程问题中,几何形状不规则、边界条件复杂、材料也不均匀,想直接推导出解析解,基本上是做不到的。
网格划分在这一步的作用就出来了:
先把连续空间切成有限的小区域,再在这些小区域上把偏微分方程近似转化成代数方程组。
偏微分方程对计算机来说很难直接处理,但代数方程组恰好是计算机最擅长的——无论是高斯消元还是迭代求解器,处理的都是这类问题。
所以网格划分做的第二件事,是让物理方程从"纸上的连续数学"变成了"计算机可以一步步求解的数字问题"。
仿真模型上的网格通常不是均匀的——有的地方很粗,有的地方很密。
这不是随便设置的,背后的逻辑其实和用小方格估算不规则湖泊面积是类似的道理:
湖泊中间比较规则的区域,用大方格近似就够了,误差不大。但在弯曲明显的边缘,大方格贴合不了复杂边界,就会带来明显偏差,需要切得更细。
仿真里也一样。物理量变化平缓的区域,网格可以粗一些;但在边界层、涡流区、温度梯度大的地方,或者几何上有弯管、狭缝、接触面的位置,变化很剧烈,网格就必须更细。否则计算机会把真正重要的局部变化"平均掉",结果就失真了。
但这不等于越细越好。
网格越细,单元数量就越多,未知量越多,方程组越大,计算时间和内存消耗也越高。一个百万级网格的模型可能几分钟就算完,但如果无脑加密到千万级,跑一个工况可能要几个小时甚至过夜。在实际项目中,通常还有交付时间的压力,不可能无限制地堆网格。
所以网格划分其实是在做一个 Trade-off:用合理的计算量,尽量准确地捕捉关键区域的物理变化。
在工程实践中,通常会做一件事来验证网格是否够用——网格无关性验证(Mesh Independence Study)。简单说就是,先用一版网格算一遍,然后把关键区域的网格加密一倍再算一遍,看结果有没有明显变化。如果两次结果差异很小,基本可以认为当前网格已经够用了。这一步在实际项目里几乎是必做的,否则很难判断结果到底是物理真实还是网格太粗导致的偏差。
网格划分做了三件事:
第一,把无限变成有限。 真实物体里的物理量理论上有无限多个点,网格把它切成有限个单元,让计算机有了可以处理的对象。
第二,把连续方程变成代数方程组。 复杂工程问题的偏微分方程很难直接求解析解,网格让这些方程可以在节点上被离散,转化成计算机擅长处理的形式。
第三,用有限计算量捕捉关键变化。 该细的地方细,可以粗的地方粗,在精度和计算成本之间找到平衡。
所以网格不是仿真前的一个机械步骤,而是连接真实物理世界和计算机求解之间的桥梁。理解了网格划分在做什么,基本上也就理解了仿真计算的起点。
有什么问题或者想聊的,评论区见。