【一起学OpenFoam】01 OpenFoam的优势
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的优势的更多相关文章
- 【OpenFOAM】——OpenFOAM入门算例学习
1 明确目标——为啥费老大劲儿学习OpenFOAM 学习OpenFOAM主要出于课题需要,希望实现以下几个目标: l [ ]学会用SnappyHexMesh生成高质量网格: l [ ]学习使用O ...
- 和李洪强一起学设计01 PS第一天
和李洪强一起学设计01 PS第一天
- 女生学java是否真的没有优势
随着女性越来越独立,我们可以看到再以前我们认为不适合女性朋友从事的工作,也出现了越来越多的女生,例如对IT行业也不再跟之前一样畏惧.虽然当下很多人所持的观点依旧是,女生不适合IT行业,但是很多女生已经 ...
- 谷哥的小弟学前端(01)——HTML常用标签(1)
探索Android软键盘的疑难杂症 深入探讨Android异步精髓Handler 详解Android主流框架不可或缺的基石 站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架 ...
- [从产品角度学EXCEL 01]-EXCEL是怎样运作的
这是<从产品角度学EXCEL>系列第二篇. 前言请看:从产品角度学EXCEL-系列0-为什么要关注EXCEL的本质 本文不接受无授权转载,如需转载,请先联系我,非常感谢. 1.EXCEL是 ...
- 从零开始学JAVA(01)-JAVA开发环境安装
写在前面: 本人没有JAVA基础(包括语法.开发环境),未使用开发工具开发过程序,如果有不对或误导的地方,欢迎指正. 本系列所有文章使用Eclipse,JDK是Version 7 Update 51, ...
- 1094:零起点学算法01——第一个程序Hello World!
Description 题目很简单 输出"Hello World!"(不含引号),并换行. Input 没有输入 Output 输出"Hello World!" ...
- 【Django】不知道为什么就是想学一下 01
1. Django安装.项目创建及服务器连接 系统:Ubuntu 14.04.4 > cat /etc/issue //查看系统版本 安装Django > sudo pip install ...
- 优雅哥学 Webpack - 01 - Webpack 5 快速体验
程序员优雅哥简介:十年程序员,呆过央企外企私企,做过前端后端架构.分享vue.Java等前后端技术和架构 本文摘要:主要讲解 webpack 5 初体验.从webpack 5 初识到便写代码.优雅哥将 ...
随机推荐
- C# DateTime与时间戳转换
C# DateTime与时间戳的相互转换,包括JavaScript时间戳和Unix的时间戳. 1. 什么是时间戳 首先要清楚JavaScript与Unix的时间戳的区别: JavaScript时间戳: ...
- Angular2入门系列教程3-多个组件,主从关系
上一篇 Angular2项目初体验-编写自己的第一个组件 好了,前面简单介绍了Angular2的基本开发,并且写了一个非常简单的组件,这篇文章我们将要学会编写多个组件并且有主从关系 现在,假设我们要做 ...
- ASP.NET Core 中文文档 第四章 MVC(3.8)视图中的依赖注入
原文:Dependency injection into views 作者:Steve Smith 翻译:姚阿勇(Dr.Yao) 校对:孟帅洋(书缘) ASP.NET Core 支持在视图中使用 依赖 ...
- 使用 .NET WinForm 开发所见即所得的 IDE 开发环境,实现不写代码直接生成应用程序
直接切入正题,这是我09年到11年左右业余时间编写的项目,最初的想法很简单,做一个能拖拖拽拽就直接生成应用程序的工具,不用写代码,把能想到的业务操作全部封装起来,通过配置的方式把这些业务操作组织起来运 ...
- Linux CentOS 配置Tomcat环境
一.下载Tomcat 下载Tomcat方式也有两种,可以参考我的前一篇博文Linux CentOS配置JDK环境,这边就不再赘述. 二.在Linux处理Tomcat包 1.创建tomcat文件夹 mk ...
- 用FSM一键制作逐帧动画雪碧图 Vue2 + webpack
因为工作需要要将五六十张逐帧图拼成雪碧图,网上想找到一件制作工具半天没有找到,就自己用canvas写了一个. 写成之后就再没有什么机会使用了,因此希望有人使用的时候如果遇到bug了能及时反馈给我. 最 ...
- HTML5轻松实现搜索框提示文字点击消失---及placeholder颜色的设置
在做搜索框的时候无意间发现html5的input里有个placeholder属性能轻松实现提示文字点击消失功能,之前还傻傻的在用js来实现类似功能... 示例 <form action=&quo ...
- isEmpty和isNull()区别
isEmpty和isNull()区别一个NULL字符串一定是一个空串,一个空串未必是一个NULL字符串例如:QString().isNull(): //结果为trueQString().isEm ...
- python10作业思路及源码:类Fabric主机管理程序开发(仅供参考)
类Fabric主机管理程序开发 一,作业要求 1, 运行程序列出主机组或者主机列表(已完成) 2,选择指定主机或主机组(已完成) 3,选择主机或主机组传送文件(上传/下载)(已完成) 4,充分使用多线 ...
- (翻译)FIFO In Hardware
翻译一些自己觉得有价值的材料,工作中碰到英语大多数是读,基本没有写或者翻的,翻得不好不到位的敬请指摘. 同时也附原文以供参考. http://electronics.stackexchange.com ...