CFD技术发展到今天,已经超过了大半个世纪了,已经涌现出非常多的CFD软件可供人们使用。通用商业CFD软件譬如Fluent、CFX、Star CCM+等在工业上得到了广泛的应用,另外一些专用的软件(如旋转机械领域Numeca、电子散热领域的Flotherm等)也以其专业性牢牢占据着各自领域的市场。这些软件都具有良好的前后处理、众多的物理模型、较高的并行求解效率及可靠性。

但是细数起来,这些软件仍然具有一些劣势,可以简单的归纳为:

  • 价格很贵。这些商用软件,价格一个比一个贵,少则好几万,高则几十万上百万。对于工业巨头来说没有经济压力,但是对于中小型企业、个人用户来说,无疑是一笔巨大的经济开销。
  • 黑箱操作。商用软件的内部运作原理是不会对用户公开的。一些数学物理模型的处理细节,用户没有任何途径可以了解。虽然说商用软件这么做可以在一定程度上使软件的操作更简单,减少软件使用者的学习时间,但是对细节的掩盖也会造成一些问题调试上的麻烦。
  • 功能扩展麻烦。仍然是由于程序代码的封闭造成的后果。用户想要扩展现有商用软件的功能是一件非常麻烦的事情。当前商用软件的所谓二次开发,实际上能够扩展的功能非常有限,一般只能扩展一些外壳,对于核心算法基本上没法更改。

有人说,可以采用自己编程来进行CFD计算。这当然可以,自己编程的最大好处是可以对程序的所有细节进行控制,大到计算流程、GUI界面,小到离散算法、网格布置等都可以自己设置。但是不知道动不动就说自己编程的人有多少是真正自己动手编程求解过CFD问题的,如果真的动手编过CFD程序的人,自然会知道从零开始进行CFD程序的开发,是一件多么需要时间和经历的事情(有不信邪的童鞋可以自己动手尝试,不需要尝试很复杂的程序,就动手编一个方腔顶盖流计算的程序就好,在很多的参考书中都有该程序的源代码,可以动手抄一遍试试)。

OpenFoam其实就是一种解决这种手动编程麻烦的程序包。其主要具有一些优点:

  • 代码开源。什么叫“开源”?开源的意思就是所有的代码都是可以打开看的。还不明白么?换句话说,你可以修改代码中的任何地方,也可以将代码用到其他的地方。OpenFoam对于手工编写CFD代码的人来说,其提供了一个非常好的平台。基础代码实际上已经为我们搭建了一个框架,我们要做的只是针对自己特定的问题在已有框架的基础上做小幅的修改或增加。
  • 定制求解器。OpenFoam提供了一些标准的求解器,完全满足常用的CFD计算。至于提供了哪些标准求解器,我们后面再慢慢的掰。由于代码是开源的,因此我们也可以开发自己的求解器,这是商用软件所无法提供的功能。

    当然,OpenFoam也有一些麻烦的地方:
  • 没有成熟的GUI前处理器。这个其实不能称之为缺点,虽然说没有前处理GUI会给初学者带来一些麻烦,但是使用惯了其实也没什么,无非就是那么几个文本文件,修改起来也挺快。当然目前也有一些商用的或开源的OpenFoam前处理器,商用的前处理器功能比较强大,使用起来和商用的CFD软件并没有多大的区别,开源的前处理器界面比较朴素。当然,如果熟悉了OpenFoam的使用,完全可以自己开发一个前处理器,难度并不大。
  • 学习曲线比较陡峭。对于初学者来说,OpenFoam的学习曲线要比商用CFD软件陡峭得多,需要花费更多的时间和经历。就算是利用标准求解器来解决工程问题,由于没有前处理GUI,因此需要使用者熟悉OpenFoam中一些常用的关键字,不过其实也并不难,OpenFoam计算文件中所涉及的关键字命名还是比较有规律。

本系列以OpenFoam的学习过程为主线,讲述如何从完全不了解OpenFoam到开发自己的求解器求解工程问题的完全学习路径。

【一起学OpenFoam】01 OpenFoam的优势的更多相关文章

  1. 【OpenFOAM】——OpenFOAM入门算例学习

    1  明确目标——为啥费老大劲儿学习OpenFOAM 学习OpenFOAM主要出于课题需要,希望实现以下几个目标: l  [ ]学会用SnappyHexMesh生成高质量网格: l  [ ]学习使用O ...

  2. 和李洪强一起学设计01 PS第一天

    和李洪强一起学设计01 PS第一天

  3. 女生学java是否真的没有优势

    随着女性越来越独立,我们可以看到再以前我们认为不适合女性朋友从事的工作,也出现了越来越多的女生,例如对IT行业也不再跟之前一样畏惧.虽然当下很多人所持的观点依旧是,女生不适合IT行业,但是很多女生已经 ...

  4. 谷哥的小弟学前端(01)——HTML常用标签(1)

    探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架 ...

  5. [从产品角度学EXCEL 01]-EXCEL是怎样运作的

    这是<从产品角度学EXCEL>系列第二篇. 前言请看:从产品角度学EXCEL-系列0-为什么要关注EXCEL的本质 本文不接受无授权转载,如需转载,请先联系我,非常感谢. 1.EXCEL是 ...

  6. 从零开始学JAVA(01)-JAVA开发环境安装

    写在前面: 本人没有JAVA基础(包括语法.开发环境),未使用开发工具开发过程序,如果有不对或误导的地方,欢迎指正. 本系列所有文章使用Eclipse,JDK是Version 7 Update 51, ...

  7. 1094:零起点学算法01——第一个程序Hello World!

    Description 题目很简单 输出"Hello World!"(不含引号),并换行. Input 没有输入 Output 输出"Hello World!" ...

  8. 【Django】不知道为什么就是想学一下 01

    1. Django安装.项目创建及服务器连接 系统:Ubuntu 14.04.4 > cat /etc/issue //查看系统版本 安装Django > sudo pip install ...

  9. 优雅哥学 Webpack - 01 - Webpack 5 快速体验

    程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构 本文摘要:主要讲解 webpack 5 初体验.从webpack 5 初识到便写代码.优雅哥将 ...

随机推荐

  1. 游戏编程系列[1]--游戏编程中RPC协议的使用[3]--体验

    运行环境,客户端一般编译为.Net 3.5 Unity兼容,服务端因为用了一些库,所以一般为4.0 或往上.同一份代码,建立拥有2个项目.客户端引用: WindNet.Client服务端引用: OpL ...

  2. Android Ormlite 学习笔记1 -- 基础

    Ormlite 是一个开源Java数据实体映射框架.其中依赖2个核心类库: 1.ormlite-android-4.48.jar 2.ormlite-core-4.48.jar 新建项目,引用上面2个 ...

  3. ASP.NET Core project.json imports 是什么意思?

    示例代码: "frameworks": { "netcoreapp1.0.0": { "imports" : "portable- ...

  4. html5 canvas常用api总结(二)--绘图API

    canvas可以绘制出很多奇妙的样式和美丽的效果,通过几个简单的api就可以在画布上呈现出千变万化的效果,还可以制作网页游戏,接下来就总结一下和绘图有关的API. 绘画的时候canvas相当于画布,而 ...

  5. 利用注册表在右键添加VS15的快捷方式打开文件夹

    1.简介 最近安装VS15 Preview 5,本版本可以打开"文件夹" 是否可以向Visual Studio Code一样在文件夹或文件右键菜单添加"Open with ...

  6. 【JQ基础】数组

    each() 方法规定为每个匹配元素规定运行的函数.

  7. Java 进阶 hello world! - 中级程序员之路

    Java 进阶 hello world! - 中级程序员之路 Java是一种跨平台的语言,号称:"一次编写,到处运行",在世界编程语言排行榜中稳居第二名(TIOBE index). ...

  8. RMS:Microsoft Office检测到您的信息权限管理配置有问题。有关详细信息,请与管理员联系。(转)

    原文:https://zhidao.baidu.com/question/435088233.html RMS有两种方式: 1.使用微软的服务器,这个是连接到微软的服务器上面做权限控制,在今年5月份之 ...

  9. VPN连接常见错误汇总

    提示远程服务器没有响应. 这种情况有两种情况,一种是远程服务器出现故障.另一种是自己的电脑出现问题,具体原因我还没有找到,但是可以肯定的是注册表除了问题,一个终极的解决办法就是把注册表替换了.先将HK ...

  10. slf4j

    Simple Logging Facade for Java (SLF4J) slf4j可以看成是对各个日志框架的一种抽象,它提供了一套通用的日志使用接口. 下面是slf4j的几个版本比较: 1.6. ...