CFD软件国产化

熟悉我的朋友应该知道我在逐步渗入这方面工作。本文采用问答的形式,针对相关问题做详细的说明。我个人一直在CFD前线,同时也接触了大量的企业,多多少少知道一些企业的需求。本文均为我个人的观点。认可不认可,都可以推荐给朋友们。

Q: 为什么要做CFD软件国产化?

CFD软件国产化需求,与所有工业软件国产化、芯片国产化等各类重工业设备的国产化替代需求是同步的。自从18年中美贸易战之后,为了提升我国在国际上的综合实力,对这些严重依赖于西方国家的产品做自主化替代是非常有必要。从这一次俄乌战争也可以看出,美国欧洲等国家在软件上做禁用的制裁已经可以上升到战略地位。为了防止在未来受到西方国家的经济压制甚至战略压制,对国外软硬件的国产化替代迫在眉睫。据我了解,很多国有企业已经在一步一步的推进相关工作,具有代表性的比如使用国产数据库、国产办公软件、开源操作系统、国产浏览器、国产Email等等。并且,中央政府以及地方政府都发布了很多政策,来对进行相关国产化替代研发的科研单位以及企业提供大力支持。2021年之后,软件国产化方向在以后将是非常重要的赛道。从经济意义上来讲,CFD软件国产化可以提高内需,提升我国在工业软件上的国际影响力,在未来不在受制于人。同时结合目前台湾局势、中美摩擦、以及俄乌战争带来的启示,国产工业软件开发需求具有相当的国家战略地位。

Q: 如何定义CFD软件国产化?

据我跟企业方沟通来看,做CFD软件国产化替代,最主要的目的就是不受制于国外,做到对某CFD软件的自主、可控。因此我个人认为,国产CFD软件应该是在我国企事业单位发布的,自主、可控的CFD软件。

  • 我国企事业单位发布:产品归属的企业,服从于我国法律法规。

  • 自主:软件开发不需要依赖别人。具有自主开发能力。

  • 可控:不受制于人,不存在封禁风险,不存在“卡脖子”风险。

国外的CFD商业软件,不服从于我国法律法规、不自主、不可控。

Q: 我们组有自己的CFD代码,可以做CFD软件国产化么?

很多研究生说,我们课题组有自己研发的CFD代码,都是自己写的,别的课题组也都有自己的CFD代码,拿出来给大家,这不就是国产化了么?

从定义上来讲,这就是CFD软件国产化。1)属于我国企事业单位,2)自主,3)可控。

但是实施起来是难上加难甚至是不可能的。要注意,国外的相关CFD软件,任何一款拿得出手的产品,都开发了几十年。如何在短短3至5年、甚至10年20年弯道超车需要在路线上做好关键性的考量。这一定是路线问题。路一开始走错了,想回头就晚了。CFD软件国产化并不是简单流出一套CFD求解器就可以。软件国产化需要的是一整套的生态。CFD软件国产化有几个关键问题要处理,这些问题不仅仅涉及到国产化替代,也与相关的市场行为有关系。比如:

  • 技术上:能否算得准?算的快?UI设计是否合理?用户是否友好?

  • 市场上:能否让国人接受?能否卖的出去?口碑能否做到与国外商软同级的程度?

  • 生态上:配套是否齐全?接口是否足够多?培训、销售、技术支持、用户文档、上下游软件是否完善?用户如何互相交流?人才培养以及行业解决方案以及结合紧密程度?

简单来说,就是技术够硬、用户友好、配套齐全。三者也通常是穿插结合在一起互相捆绑。我不觉得来自实验室的代码能解决上面所有问题。总体来说,实验室的CFD代码可以做CFD国产化,但若没有团队付出相当的精力解决这些问题,做不到国产化的高度。

一个团队很屌,产品很屌,但死在了生态上的实例就是微软的Windows Mobile操作系统。

Q: 如何做CFD软件国产化?

CFD软件主要分为两大部分,第一部分是内核,第二部分是界面。内核部分处理CFD的方程求解,界面部分处理用户交互。一些CFD软件仅仅包含内核,如开源CFD软件OpenFOAM等。仅仅具有内核的CFD软件只能使用命令行的方式去运行,因为没有界面去处理用户交互。界面主要负责前处理,一些软件的界面还可以进行后处理。界面可以极大的简化使用人员的工作量,极大的增加用户友好度。但要做到用户友好最大化,还需要从CFD内核上去适配。

实际推广角度来看,不具备界面的CFD软件,大多被用于科研。例如,大量的OpenFOAM用户,包括国内外的,都将其作为一种科研工具去植入自己的模型以及算法并做验证。因此,不具备界面的CFD软件,在国内这个已经被“点点点”的使用方式占领的大环境下,绝对做不到工程应用的高度。因此,能做到一定高度的国产化CFD软件,一定是内核+界面的形式。

那么,简单介绍CFD软件的组成之后,我们看CFD软件如何国产化。这大体上有两条路:

  • 埋头苦干型:自己一行一行写内核,一行一行写界面。

  • 借力发力型:基于开源的内核,基于开源的界面。

很明显,二者工作量是完全不一样的。我再次强调,这二者一定也是路线问题。选择了一个之后,无法回头。

Q: 如何评价埋头苦干,一行一行写代码这一条路?

首先我们来看第一种,埋头苦干一行一行写内核。简单一个字,就是“难”。

要结合上文谈到的技术够硬、用户友好、配套齐全三点来看。埋头苦干一行一行写,要做到CFD软件国产化这个高度非常难。这一条路,就是国外在1960年代开始走的路,我们就是从2022年开始,重新走一遍国外的路。当然了,一些人手头有自己的代码,有了一些工作基础。但据我观察,自己的代码有几个特点:

  • 一些自己写的CFD代码起始于20年前,使用很老的编程语言,有些语言已经过了生命周期,在2022年还使用这些语言,总感觉不太对劲。

  • 这些CFD代码基本是一届一届学生搭起来的,学生的目的并不是把代码写好,而是毕业。因此,代码不规范,bug多,无人处理,反正能跑出数据就行,毕业要紧。

  • 不具有普适性,比如A老师那面仅仅做高超音速激波,那代码就只能算这个,不可压缩算不了。B老师做建筑风场,代码只能算这个,多相流算不了。

  • 功能不全面。不说学术前沿,单说已经开发了几十年的算法,目前这种几十年的湍流模型少说也有三四十个,一些离散格式甚至有上百个。自己一行一行写的话,很难把他们都进行包含。

要在这一条路上去走,要在2022年走一遍欧美国家上世纪60年代开始的路,这个团队从人数上来讲要非常的充分,经费也要非常的富裕,时间也不能苛求太多。毕竟自己一行一行写,可能一个模型就要植入3天。重要的是,不可能能找到一个人,精通所有的算法。总之,这一条路,干出来,那一定是惊天地泣鬼神,每个人都会说你是No.1。但是难度绝非想象。中途若遇到各种外部因素,如经费断了、人员流失、各种不可抗了,可能会严重耽搁软件开发进度。

重复一遍,一行一行自己写,我相信很多人都写得出来,我可以,你也可以。但要写出能做到工业软件的高度。难难难。

Q: 如何评价借力发力这一条路?

我个人比较看好这一条路。虽然这被很多业界的人不耻。说“你们要做CFD软件国产化,就要全部自己写,否则就不是国产化!”接下来我们看这一条路为什么会更容易的来实现弯道超车。

首先我们看一下同行业的参考。举几个例子。在操作系统层面,国人基本人人都用windows,咱也不知道这东西有没有后台进程木马之类,不清楚会不会把信息泄露出去。因此国家一直要做国产化替代。因此我国出现了大量的国产操作系统。

这几十种国产操作系统,都是基于linux做深度定制,如优麒麟、华为的EulerOS。由于linux是开源的,因此可以实现自主(只要企业有技术人员熟悉linux开发)、可控(开源linux不存在不可以用的情况)。

再说浏览器。国产浏览器大家熟知的,360浏览器、QQ浏览器、搜狗浏览器,都是基于Chromium内核,也并不是一行一行写的。同样可以实现自主、可控。

类似手机操作系统,小米MIUI、魅族FlyMe,都是基于安卓内核,做的深度定制。同样可以实现自主、可控。

更直接的,甚至连安卓,都是基于linux开发的,也没有另起炉灶埋头苦干一行一行写。中望CAD,起始于当时收购美国VX公司。总之,通过借力发力弯道超车的例子,还真不少。甚至我自己的CFD中文网,也是基于开源nodebb做起来的。如果不借力发力,我觉得我这个论坛这辈子都做不起来。

因此个人觉得,CFD软件国产化替代,走借力发力是一条可以走的通的路子。

Q: 为什么借力发力做CFD软件?

借力发力做CFD软件国产化替代,就是使用某一个CFD内核,使用某一个界面内核,做国产化开发,实现CFD软件的自主、可控。

如果使用开源CFD代码做内核,要实现CFD软件的自主,这不成问题。只要技术人员,具有充分的开发实力,在做模型开发的时候,不需要借助国外力量,就可以实现自主。问题的关键,不管用什么内核,一个非常熟悉这一款CFD内核的人,是必须的。实现CFD软件的可控,也不成问题。开源软件不存在不可以用的情况。

因此,只要一个受限于我国法律法规的企业,具有一定的研发人员可以对整个CFD软件做深度开发,就可以实现CFD软件的国产化。

另外一个层面,基于现有的CFD内核,去搭建生态,相对于自己去写,要简单上千倍。以开源CFD代码OpenFOAM举例,目前OpenFOAM是世界上使用率第一的CFD开源软件。这说明了几个问题:1)大家对OpenFOAM已经充分的信任,算得准,算得快。2)有足够的开发人员,人才好找。3)有足够多的交流的人。4)有足够的接口以及上下游软件的对接都游刃有余。

通过OpenFOAM内核,去做一个用户友好的,可用于工程应用的CFD软件。类似于在在linux上开发优麒麟操作系统,在安卓上开发小米操作系统,在Chromium上开发360浏览器。这等于是已经站在了巨人的肩膀上。不管从工作量的角度来考虑、还是用户认可度等方方面面,都完全行得通。

Q: 如何处理开源CFD内核的GPL协议

很多人并不遵守协议。但如果我做这个事情,需要调用开源CFD软件内核。那么相应的产品,也必然遵守CFD内核附带的开源协议。这个毋庸置疑。

Q: 哪些观点值得商榷?

自主可控就是要彻底从头写一个。CFD软件国产化迫在眉睫。这个观点值得商榷。

经济发展都要先富带动后富。一定要有一个像样的产品实现了大体的国产化。才能继续想一行一行从头写一个这个问题。或者,两条路可以同时走。但拿得出手的,短期来看,甚至10年20年,我相信只能是借力发力的产品。

持有这个观点角度的人可以换个角度来想。你要在3年内,做出像样的产品来实现CFD软件国产化替代。做不出来要承担责任。你是自己写,还是借力发力用开源?

重复一句:一行一行自己写,不管是从技术实力来讲,还是客观对这个软件做评价,绝对是No.1。然而工业软件在国内一直都是静悄悄,我们已经落后欧美几十年。如何去赶超,绝对是个问题。

Q: 之前与某国企的合作进行到哪了?

目前已经黄了。

Q: 是否知道同行的看法?

大部分同行认为:

  1. “要自主可控,就要彻底一行一行写。”

  2. “就是套壳,啥技术含量没有。”

  3. “这是完全干不成的事,太难,没钱没人。”

  4. “骗钱骗经费。”

第1个观点我上面已经讨论过。第3个观点我部分赞同,必然是难,也确实不好找人投钱。但如果借力发力的话,这个事我可以干成。第4个观点部分正确,一些同行怎么弄的我不多讲。在我这里,我个人可以领取0年薪。我要把这个事做起来。

主要是第2个观点。同行说的部分正确。如果借力发力做开源,简单来说那就是套壳。但是正如我们上面所说的,我们并没有充足的经费、足够的人才、大量的时间来一行一行自己写。业界这样做的,往往都成功了。小米系统是套安卓的壳,安卓是套linux的壳。360浏览器套Chromium的壳。微软的Edge浏览器也是套Chromium的壳。就是OpenFOAM,也不是完全的一行一行写出来的。并行计算借用scotch,网格生成借助CGAL。OpenFOAM也是C++嘛。那OpenFOAM是不是套壳C++?为啥不自己开发一套计算机语言?

国外也有一些基于OpenFOAM内核的CFD软件,比如美国国家可再生能源实验室爆炸的SOWFA、爱荷华州立大学的OpenQBMM、美国国防部支持并开发的blastFoam等。这些都做的比较大。还有大量的小的衍生产品。在这里无法一一列举。

第2个观点不正确的在于,套壳也需要技术。如何套的好、如何套出来的壳子比原有的CFD内核更流弊,做到极大的精简工作量,同时把整个生态建立起来。如何把这个套壳的产品卖出去,让别人赞赏你的工作,让工程师使用你的软件,让企业付费买你的套壳,让业内认为你的套壳比原生OpenFOAM还流弊。这才是工作的意义。

Q: 可以合作么?

CFD软件开发这个事情,我自己一个人干不来。为什么?1)我时间少。2)一些琐碎的事情也不需要我去弄。3)界面开发我不懂。

这一定是一个团队才能做起来。涉及到团队,那就涉及到钱。这是我个人的想法:

  • 招聘1-2名后端开发人员。年薪30-50万。

  • 招聘1-2名前端开发人员。年薪50-80万。

  • 一间民房当办公室,年租金10万左右。

这个待遇我是真实的了解过市场的,不是随便蒙个数。有人说为什么前端比后端工资还多。1)后端我本身是一个主力,因此对后端的技术需求要大大降低。2)前端需要一个主心骨,工资必然要高。3)前端那面本身行业工资就高。

我个人投入的精力与时间成本怎么算?

  • 0年薪:当然这建立在软件所有权归属于我公司的情况。合作方只需要把其他人的工资安排好就行。合作方可以占股权。

  • 项目合作:如果合作方需要把开发的CFD软件归属于自己公司名下。那就等于是借用我的资源,通过我带团队把这个事干出来。要让大家知道这个是我干出来的事。走合同,比如3年第一期、6年第二期之类。

Q: 做什么产品?

参考几个成功的产品的定义:

产品

所属公司

产品介绍

MIUI

小米

基于开源Android系统深度优化、定制、开发的第三方手机操作系统。

Edge浏览器

微软

基于Chromium开源项目及其他开源软件的网页浏览器。

EulerOS

华为

以Linux内核为基础,华为自主研发的服务器操作系统。

那么我这面要做的,就是:

产品

所属公司

产品介绍

尚未起名

dyfluid

基于开源OpenFOAM深度优化、定制、开发的CFD软件。

这个我会大大方方说出来。是什么就是什么。

Q: 这几个人能干成么?为啥别的公司都是融资几千万?

技术类工作绝对不是劳动密集型。每个公司有每个公司的路。我这面的路线偏开源CFD软件OpenFOAM的发展之路。OpenFOAM发展40多年来,核心人数不超过3个人。

另外,融资路线是另外一条路。能否融资成功有很多方面,其中一个就是公司体量够不够,也就是人够不够多。

Q: 为什么你说你能比别人干的好?你是谁?

我叫李东岳,北京化工大学博士,海外博士后。自2011年读研究生起定下了CFD这个方向。从德国回来后我进入北京某211高校后离职。10年之后,我目前有2家公司。我的特殊之处在于,一直奋战在CFD一线,每天都在做相关的算法开发,不管是项目、还是写sci。我个人可以被认为是半个产品经理,我上线的产品做的都还不错。我目前在北京西山附近。家庭原因无法前往外地工作。

做CFD有一段时间了,在高校期间,我一直想发一些流弊的SCI,后来发出来了一些顶级期刊,现在感觉不过尔尔。后来我逐渐的做了一些商业,最开始的是做CFD课程,目前办了9届。这算是我创业的第一个产品。随后,我做CFD塔式服务器。最多一个月能出20多台。这对于一个新上项目来说,已经很了不起。但现在感觉依然不过尔尔。2022年上线机架式服务器。目前订单已经排到9月。前景非常可观。这算是我设计的第三个产品。虽然营业额能到千万,但还是感觉不过尔尔。不谦虚的说,我推出的产品,定位精准,我一直在创造爆款。这绝对不是运气,这与我一直扎根CFD前线息息相关。

但我还有更大的野心。我想做一些更流弊的事。

CFD行业全业态最重要的就是CFD软件,目前这方面是被欧美掌控的死死的。如果能从CFD软件入手,去真正的做产品、做国内市场,不靠PPT,用产品、订单说话。逐步的实现CFD软件国产化替代。所有国内的汽车企业、风电企业、芯片、手机、建筑暖通、飞机、反应器设计都用我们设计的CFD软件。这是我想干的事。这也绝对是这个领域的No.1。当然这需要投入大量的精力。

雷军曾经说过:“聪明的人、勤奋的人实在是太多了,而真正重要的是顺势而为”。我在CFD行业多年,我清楚CFD软件需求的“势”在哪里。我也清楚在做产品的时候这个“势”在哪里。

在CFD这一个赛道上,我是具有洞见的产品经理,我组建的团队具有极致产品力。

我也可以承诺,我如果参与某一款国产CFD软件的开发,将以实实在在的开发一款CFD产品为目的,小到UI上按钮的设计,大到整个CFD生态的构建,以高标准去实现全部需求,做用市场说话的CFD软件国产化替代。

我这面比较特殊的是,全国那么多个眼睛盯着。不管是对我的期待还是要看我笑话。这个事情都不能胡来。

CFD软件国产化替代合作:点击跳转联系方式