不懂产品的工程师不懂仿真
刚入职的小李问我,“陆姐,这个仿真用多少网格是正确的?”我瞪了他一眼,“用多少网格正确,你说了不算,我说了也不算,谁说了都不算。”别和我说,某知名学术论文上发表的算例用了多少网格;
别和我说,你的知名导师告诉你应该要用多少网格;
别和我说,你的网格无关性测试发现需要多少网格;
你没有三五年的时间,慢慢寻找全行业最精准的计算结果。你只有三五天时间,立即找到个凑合能用的计算结果。老板告诉你下周交数据,你告诉老板,你要“认真”地花三年时间做出最准确的数据。让老板告诉投资人,三年后才能出产品,因为我们有个认真的小李,他要用三年时间做仿真。你觉得老板会像你的导师那样,夸奖你做事认真吗?产品的时间和成本决定一切,包括你用多少网格,选什么算法,做什么试验。也没有确定的网格无关性。工程师不能再用做博士论文的方法,苦心研究网格无关性,希望证明自己用了五千万网格后,能保证结果正确。什么意思?你必须要用五千万网格,一个月出一套数据,以后要你三天出一套数据,你就不会了?你义正言辞地拒绝这么快交数据,你不参与产品初期设计了吗?如果你是学生,你只要知道这一种“正确”的方法就够了。但是,工程师的必须知道很多种“正确”方法,从最慢到最快,从最准确到最粗糙。你知道五千万网格可以算出误差小于5%的数据,达到行业较高水平。你还知道,五百万网格可以算出误差小于20%的数据,用于选择部件的尺寸足够了,但是优化形状还需要高精度数据。你还知道,如何用计算器估算出误差小于50%的数据,当场可以确定产品的形式。这才是成熟工程师的标志,从一分钟出大概的方案,到一年出精细的设计,都有相应的方法。学生有一个“正确”方法,
工程师有一百个“正确”方法,
你确定一个网格点,你设定一个算法,你测量一个状态,都要与产品的需求联系到一起。你选定用五百万网格,因为产品对比几个方案的优劣,数据只需要保证定性准确。你在喉道加密网格,因为这种产品的主要困难是流动堵塞。你选择只测量一个速度,因为你知道用户一般不会改变速度。工程师做好仿真的核心是懂得产品。一个实际的产品可以复杂到没有准确数据,一个成熟的工程师不单纯追求准确,而是追求最大效益。在有限的时间、有限的经费、一定的误差、敏感的性能这些矛盾中,寻找到可行的道路。你要有丰富的知识。你闭上眼睛可以看到产品的使用场景,从中你看到哪里会有风险,哪里会有设计余量;你识别出什么数据是性命攸关,什么数据不过是看看好看;你知道用什么算法误差是多少,用什么网格可以保证关键数据。其中有一步你想错了,你就会做出错误的选择。其中有一步你想不明白,你就不敢信任你的数据。没有人可以告诉你,什么是“正确”,只有产品出来的那一天,才会用事实回答你。没有人可以替你找到道路,只有你成为经验丰富的工程师,才能够从种种风险和限制中摸索到“合适”的道路。