首页/文章/ 详情

访谈转载 | TFluid 这条路

1月前浏览370

我前阵子和俞博士在线上聊了 35 分钟。他是港科大的 PhD,上个与刚入职高校,手里有一款叫 TFluid 的国产 CAE 软件——他和一个发小,两个人做的。

刚毕业没几年,已经被央企采购了。公 众号上发版本发布、招博士后,B 站偶尔出科普视频。我和他约了挺久,这次终于聊上了。

聊到一半的时候他说了一句让我印象很深的话:

这两年做国产 CAE 的非常多,包括很多高校、甚至院士、杰青的团队,他们有大的团队来做,把曾经的代码做一些封装、封装成软件在做推广。从我自身的角度来说,我才刚毕业没几年,我是不可能跟他们竞争过的。所以如果想走出差异化,就必须结合我博士期间的那些东西,做一个多场的耦合。

这是我整场对话里听到最锋利的一句话。"我才刚毕业没几年,我是不可能跟他们竞争过的"——这不是一句谦虚,是一句生存策略。

上一篇是平台,这一篇是垂直

上一篇我写过卢老师的北太天元——一款北大数学老师做的 MATLAB 替代品。卢老师走的是平台路:四年多打磨一个通用的国产数学软件,让河北师大、复旦、中科院的老师都来写插件,把数值方法做成北大核心通识课,把"备胎心态"当成对外的姿态。

俞博士走的是另一条路。

他不做通用平台,不和院士、杰青的大团队比拼"封装大而全"。他做的是 CFD-CAE 里一个很窄、很垂直的位置——多场耦合:流体力学 + 颗粒力学 + 断裂力学,统一一套有限体积法,再用离散元法(DEM)做颗粒,再把这三者全耦合。架在上面的是 4 个垂直行业模块:岩土水动力、相场断裂、增材制造、二次开发。

同样是"现有的商业软件不能替代我"——卢老师把它做成"暴风雨来时手里要有那一招"的大平台保险;俞博士把它做成"客户在 FLUENT、ABAQUS 那边做不了的事我能做"的多场耦合产品。

两条路都成立。同款工程实用主义,不同形状的国产替代

一些具体技术 anchor 和数字

不展开公式,但给几个能让有 CFD 背景的朋友抓住坐标的细节。

底层是非结构化网格。曾经我读过他们的 paper,所以我先问了他确认。他说"是非结构化"。然后他主动展开了一段我觉得是这次对话里另一个特别有水准的地方——他说一般如果追求空气动力学那边、追求大规模多卡机群的并行,那么用规则化的结构化网格肯定是更好的。但对他们这个岩土模块来说,地形复杂,结构化并不占优

颗粒走全分辨——每个颗粒和颗粒之间的碰撞力都精确捕捉,不是 FLUENT 那个 DPM 的被动标量。他们在非结构化网格上还实现了类似八叉树自适应网格加密,公众 号 上已经发过对应的 paper。

数字 anchor 一个就够:

350 万网格 + 18 万颗粒 + V100(淘 宝大概 4000 块钱可以买到)+ 计算时间两个小时。

我们课题组以前用 OpenFOAM 做这个算例,至少需要两到三天。

两到三天对两个小时。一个工程师听到这个对比是不需要解释的。

网格设计哲学他还讲了一段,我觉得有点意思:他刻意避开复杂的贴体网格。原因很务实——做一个高级的贴体网格工具难度非常高,他们 2 个人精力不够。所以他用的是台阶型网格——但台阶型有一个问题,计算精度跟贴体不一致。他正在写一篇论文:基于浸没边界法,让台阶型网格逼近贴体网格的精度。

避开复杂 mesh,用算法补回精度。这是一个 2 人团队不得不有的品味。

客户驱动 — "他们能用商软就不会找我们"

让我意外的不是技术 anchor,是嘉宾对自己处境很冷静的描述。他说:

至少从我这商业化的过程来看,我们并没有去主动到外面做推广营销什么的。一般就是公众 号、小红书上发推广。有些用户或者已经有的客户,他们会看到这个功能来联系我们。他们一般会说,他们在现有的商业软件上他们做不了,所以才会考虑用我们的软件来做。如果他们现有的软件都可以用了,就绝对不会来联系我们的。

我反复想这段话。"如果他们现有的软件都可以用了,就不会来联系我们的"——这不是 self-deprecation,是 niche product 在大池子里活下来的 self-aware truth。能做 FLUENT、ABAQUS、COMSOL 能做的事,没人有动力换 vendor、换信任链、换工程师习惯。能不能活下来,取决于你能不能做他们做不了的那 1%

这一段我后来想了想,跟我自己在另一篇文章里写过的"工程师真正的护城河是 verification database + 把领域 judgement 编码成 AI 可读"是同一个方向。真正的护城河永远不是"我会的他也会",是"我会的他不会"

两个人的团队 — "宣传是我做,客服也是我做"

聊到团队规模我先没问出口,他就主动说了:

现在我们团队一共是两个人。你看到的那些模块、算法都是我自己一个人写的。我们还有个人是我的发小,专门帮助我做 UI 的开发。因为我并不熟悉那些偏计算机层面的事情。我做所有的底层算法,我的发小做 UI 的开发——他会帮我搭建网站,他会负责软件的加密和在线激活这些功能。

后面问到前后处理的时候他笑着说:

我现在身兼数职——宣传也是我做,客服也是我做,基本上都是我在操控。但是这样我确实在这段时间里面学到了特别多的东西。

我听完之后想到的是卢老师团队的形状——张平文院士开放北大资源、河北师大复旦中科院的老师跨校来写插件、数值方法学生考核做 B 站视频——那是一个靠跨机构 social network 织起来的 fabric。而俞博士这边,整个产品的两条腿一条是他、一条是他的发小,他亲自做客服、亲自做宣传、亲自写算法、亲自和客户对接。两种 social model,都在做国产 CAE,都活了下来。

值得一提的是俞博士的前后处理策略——后处理他们提供的就是一个能让客户实时看结果对不对的基础界面;如果要做高级渲染、流道可视化,他直接推荐 ParaView,并且把数据格式做成 ParaView 可读。前处理那边也类似——他们不在自己软件里做 CAD 修改,建议用户用专门的 CAD 软件导出 STL 文件再导入。

"我们就两个人。"这句话是商业策略也是技术决策。

给屏幕前朋友的话 — 师兄弟、信任、年轻人怎么看待技术

我问他,对屏幕前那些手里有一两个核心 feature 代码、想试着商业化的朋友,有什么建议。他说了 5 条。我挑 3 条最有 voice 力量的:

第一条 — 客户会"多等两小时"

如果你的特点不是那么突出,别人为什么要来用你的?可以找一些可能替代的——虽然他可能从技术层面上没有你先进,但是有时候我们可以多等两个小时,让他多算一会。

这一句话里我听到的是一种很真实的商业现实主义——技术优势如果不显著,客户就会选已有信任链 + 多等两小时。这是大多数 indie maker 不愿意承认的真相。

第二条 — 师兄弟人脉

对于我们这种没有家世背景的人来说,最大的人脉其实就是师兄弟之间的关系。你大概可以判断一下你的师门那些师兄弟们愿不愿意帮你早期做一些推广。当然他们不可能你发一条公众 号他们也帮你推。但是在最早期你起步的阶段,他们愿不愿意帮你做一些宣传——如果你觉得连你的师兄们都不愿意帮你,我觉得这个还是比较困难的。

"没有家世背景的人,最大的人脉是师兄弟"——这是一句没有什么修辞、但很难有人能反驳的话。我自己听了之后感慨了好一会儿。

第三条 — 年轻人会认你的技术

当然从另一个角度说,如果你的技术真的非常有优势,那我觉得不需要别人帮你,你自己尝试去做推广也完全没有问题。现在的年轻人对于一些比较厉害的技术、前沿的技术,他们其实是会非常的认可,甚至会去鼓励那些作者。

当然对于老一辈的人来说,他们可能脱离技术一线比较久了,可能对你这个没有什么感知。但是真正走在一线的一些年轻人,他会知道这个技术到底多厉害、到底多么难实现。

这一段尤其打动我。"老一辈脱离一线、年轻人识技术"——这不是一个站队的论断,是一个做技术内容做了几年的人都会有的体感。在 B 站和公 众号上做硬核内容这几年,我最大的感受是真正能 follow 你做的事、真正能识别一段代码或一篇论文里"多么难实现"的那部分含金量的,绝大多数是 20 多岁的年轻人。他们没有什么社会光环可以给你,但他们的认可是真的认可。

AI — 既怕被取代,又找到了"做 AI 数据服务商"那条路

我后来问了他对 AI 的看法。他给的回答是这次对话里我最喜欢的一段。

第一反应是焦虑:

比较大家可能比较焦虑的一件事情——因为我们现在是做物理仿真,我们现在还是算的比较慢的。万一未来 AI 哪天几秒钟就帮你把一个算题跑完了,那我们这些软件全部都没用了,我们大家都失业了。这是现在令我们感到最焦虑的一件事情。

但接着他给了第二个反应,是衔接:

当然我觉得中间还是有一个比较可以衔接的过程。这个主要是——AI 需要大量的数据。包括像我们做这种多物理场仿真的,它一大特点就是——我们很难获得这样多场仿真的数据,特别是从实验的角度。比如做泥石流这样的大型实验,你根本做不了。

那么在这些多场耦合的过程中,当实验数据比较难获得或者成本比较高的时候,我们完全可以用我们这套工具去生成大量的数据,供 AI 训练。相当于是我们现在变成一个 AI 的服务商了。从这个角度来看,还是可以在 AI 大力发展的今天与 AI 共存的。

我听到这一句的时候点了点头。因为这跟我自己在 cfdqanda.com 和 FoamAgent 那个项目背后的想法是同款 first-principles response。不是去和 AI 抢饭碗——抢不过;是去找一个 AI 短期内拿不掉的位置——多物理场仿真生成数据本身就是一个 AI 拿不掉、又特别需要的位置。软件不是和 AI 竞争的对手,软件是 AI 的上游

俞博士和我没有提前讨论过这个 frame——他从他做仿真的方向走到这个结论,我从我做 AI agent 的方向走到这个结论。在中间相遇的时候,我觉得这是一个很安心的信号。

结尾:技术底层是共通的

整场对话快结束的时候,他说了一段话我想直接引出来作收尾:

对技术底层来说是共通的,不管是用在增材制造模块,还是用在岩土模块。比如现在比较多的冰川泥石流、冰川融化、冻土熔融这些,本质上都是一些传热、相变和颗粒的过程。技术都是通用的。我觉得这是对于仿真来说一个比较大的优势——我们可以把我们的这个工具应用到不同的领域上去

写这一篇之前,我和卢老师那一篇隔了不到两周。再之前是和王洪伟老师聊流体力学科普。连续三次 35-40 分钟的同行对谈——一个数学老师、一个流体力学教授、一个工业软件年轻人——每个人讲的是完全不同的技术内容,但走出来的姿势是相似的。

踏踏实实做工具,慢慢承认自己做不全,找一个 AI 短期内拿不掉的位置,不喊口号,不和大团队竞争通用赛道

愿我们这些写工程代码的人,都能找到自己的那一条窄路。




来源:TFluid多物理场仿真
FluentAbaqusComsolOpenFOAM断裂碰撞二次开发通用增材MATLAB岩土离散元科普渲染
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2026-07-21
最近编辑:1月前
TFluid Group
博士 国产多场仿真软件TFluid
获赞 8粉丝 8文章 7课程 1
点赞
收藏
作者推荐

TFluid外层源码解析:两相流传热模块

本推文将对TFluid的两相流模块的外层源码进行解析,便于用户了解我们的架构与二次开发的实现方式。二次开发模块详见:TFluid二次开发模块|AI+CUDA赋能,让仿真开发更快更自由一、完整外层源码(公开版)下面这段代码,考虑了整个两相流传热耦合计算、自适应网格与PISO压力速度耦合。该求解器使用了半隐式的迭代算法,整体运行框架与OpenFOAM相似,但所有的实现都转移到了GPU上。(1)计算开始前的初始化包含:参数定义、时间信息标签(2)时间循环部分1包含:显存开辟、自适应网格更新(网格更新和参数映射)部分2包含:两相流模块、传热模块、自定义边界、方程显存开辟部分3包含:pimple循环内的动量方程组装部分4包含:piso循环内的压力方程组装、求解,更新压力、通量和速度(3)后处理包含:清理显存、结果输出二、基于基础代码的二次开发下面这段代码,是在公开版的基础上,增加污染物输运扩散模型。用户可以在直接在我们的外层代码中进行:增加模块、结果后处理、增加新的源项等等。(1)计算开始前的初始化包含:定义浓度场和边界条件(2)设置浓度初始值包含:定义浓度的初始区域和初始值(3)计算求解包含:组装浓度方程并求解更新浓度场(4)后处理包含:更新材料参数与所需源项更新(5)结果输出来源:TFluid多物理场仿真

未登录
还没有评论
课程
培训
服务
行家
VIP会员 学习计划 福利任务
下载APP
联系我们
帮助与反馈