新学期开始了。
萌新们经常问的一些问题包括:
其实在问这些问题之前,萌新们有必要自问一些问题:
经常有人抱怨CFD是个坑,因为他花了大量的时间和精力去学习CFD,到最后发现老板给的薪资待遇完全匹配不上他为CFD付出的努力。
这类人和话题我见过很多次,每次都能引起一番激烈的争论。
有时候觉得这种争论实在是毫无意义,因为CFD在工业生产过程中只是作为一种工具,它并不能直接产生价值,真正产生价值的是利用CFD的人。所以与其抱怨CFD是坑,还不如抱怨老板眼瞎。
CFD就好比是厨子手中的菜刀,菜做得不好吃能怪菜刀太坑么?
首先要弄清楚啥叫入门,并没有一个明确的标准来衡量你是否已经入门。
再说快速。多快叫快速?六个月?三个月还是三个星期?
在这些问题都不明确的情况下,实在是不容易给出明确的建议。
这里只能给出一些粗略的看法,个人觉得最快上手的方式:
这里面要分清楚问题中的CFD到底指的是什么。
一般情况下可以将CFD分成两类:
对于 CFD 应用者来讲,需要学习的内容包括流体力学与专业理论。如你要做的问题涉及到传热,那就补充传热学;涉及到多相流,那就补充多相流相关理论。对于 CFD 应用来讲,学习计算流体力学相关理论属于锦上添花,并不会 对CFD 应用有太大的增益。这里要提一句,对于 CFD 应用来说,不妨找点儿试验设计及试验分析相关的理论看看,帮助挺大的。
对于 CFD 开发来讲,需要学习的内容主要包括计算流体力学及一些数值计算方面的相关理论。除了计算流体力学外,一些比较典型的需要学习的内容包括:数值分析、矩阵计算、数理方程等。另外想要开发算法或软件,可能还需要补充一些计算机程序设计相关的内容。
随便翻阅一本计算流体力学教材,就会发现计算流体力学并非是一门教人们怎么使用 CFD 软件的课程。
计算流体力学是一门介于数学、流体力学和计算机之间的交叉学科,主要研究内容是通过计算机和数值方法来求解流体力学的控制方程,对流体力学中的气动、传热、燃烧、噪声等问题进行模拟和分析。计算流体力学大体分三个部分:流体力学、数值计算理论、计算机编程。
鉴于流体力学已经有非常成熟的理论体系,计算流体力学的核心实际上落在了计算上。因此当前市面上的计算流体力学教材,无不是直接拉出流体力学控制方程,然后一步步的去讲方程离散方法和计算机求解方法。因此如果不是做 CFD 算法开发的话,学不学习计算流体力学并不会有多大的影响。
举个简单的例子。假设你是一个厨子,了解菜刀的制造工艺是否会对你的厨艺有非常重要的影响?当然,熟悉菜刀的制造方法有助于选择合适的刀具,从而提高切菜效率。
计算流体力学对于 CFD 应用来说是个锦上添花的东西,学了当然没有坏处,不学其实影响也不是很大。时间充足还是建议学一学。
对于 CFD 开发来讲,计算流体力学是核心理论,不仅需要学,还必须学透才行。
其实开源 CFD 软件并不多,大部分开源的 CFD 代码都只能称之为程序库,这包括名气较大的 OpenFOAM、PyFR、SU2 等。
程序和软件的区别,按照网络上的描述:
程序是一组计算机指令的集 合,它是为了完成特定的任务而编写的代码。程序通常由程序员使用编程语言编写,并包含了算法、数据结构等元素。程序可以理解为一种抽象的概念,它描述了如何通过计算机执行一系列操作来实现特定的功能。软件是程序的集 合,是由多个程序组成的。软件不仅包括了程序代码,还包括了文档、资源文件等辅助材料。软件的目的是为了解决用户的需求,提供特定的功能和服务。常见的软件有操作系统、办公软件、游戏软件等。
”
商业软件和开源软件的区别主要在于核心程序代码是否可读写。
CFD 工业应用首选商业软件,因为我们要解决的是工业问题,而不是 CFD 软件的问题。当前有一些开源代码可以用来解决一些工业问题,不过效率都比较低(不一定是软件的效率,也可能是人的效率)。CFD 应用使用开源代码多见于一些高校、科研机构和买不起正版的企业。其实对于 CFD 应用来说,使用开源程序要么是装逼,要么是经济原因,没有更多的原因。
CFD 开发一般不会使用商业软件,要用也是用于借鉴别人的操作逻辑或界面。但我见过不少宣称 CFD 开发的人热衷于折腾开源 CFD 代码,毕竟眼前现成能跑的代码的吸引力是无与伦比的。
当然,做 CFD 应用的如果空余时间比较充足的话,不妨尝试一下使用开源程序,有助于提升对 CFD 运作流程的了解。
使用商业软件和开源软件的区别,就好像是你准备参加飙车大赛,是买现成的车子还是买零部件自己组装。
另外,作为萌新,选择商业软件还是开源软件,还需要看自身的工作环境。就比如说团队里面一直使用的是开源代码,你总不能自己个另类地使用商业软件吧。
(完)