【一起学OpenFOAM】系列由来
1 为什么要学习OpenFOAM
掐指算起来,接触CFD也差不多有十个年头了,其间一直使用的商用CFD软件,有Fluent、CFX、StarCCM+等,这些商用软件各有其优缺点,都能较好的解决常规的工程问题。然而,最近当我试图往这些软件中添加一些核心求解算法时,发现这是一个不可完成的任务,这些软件的核心计算程序都已经被封装得严严实实,外人连看一眼的资格都没有,更别说去修改了。这时我将目光投向了开源CFD软件OpenFOAM。
其实严格来讲OpenFOAM并不能称之为一款软件,说其是一个C++类库要更合适一些。OpenFOAM提供了CFD计算的一些基础类库,使用者可以在这些基础类库的基础上开发属于自己的CFD求解器。当然,OpenFOAM也预制了一些标准求解器,足以应付一些常规的工程问题。不管从哪个角度来看,OpenFOAM目前在开源CFD领域都是一款非常全面的软件,而且不管使用者熟悉或不熟悉C++,都可以使用它。对于不会编程的人来讲,可以将OpenFOAM当做一款与Fluent类似的求解器;而如果你熟悉程序设计,则可以任意打造OpenFOAM。要知道,如果想要在商用CFD软件中加入新的求解技术,你除了耐心的祈祷软件版本更新之外没有任何的办法,但是你可以利用OpenFOAM加入任何你想要尝试的新技术。
工业
OpenFOAM是免费的,这对于中小型企业来说,吸引力可以说相当的大,只要有一个成熟的前处理GUI,OpenFOAM可以迅速的转化成类似Fluent的CFD软件。科研
OpenFOAM的源代码是公开的,因此可以很方便的修改或增加自己的CFD算法。这对于研究算法的人来讲,OpenFOAM相当于提供了一个算法测试平台,可以省去很多的基础工作。CFD学习
由于OpenFOAM的算法公开,通过研究OpenFOAM的源代码,可以加深的对于CFD内部工作机理的了解。
由于OpenFOAM的适用场合非常广泛,可以预见,OpenFOAM会慢慢的流行起来。
2 为什么有这个系列
说实话,写系列文章是很花费时间的。尤其是对于一些图片插入不容易的编辑器来说。有人说,录视频要比写文章有效率。没错,录视频很简单也很方便,但是写文章视频不可替代的优势,那就是思维整理。
我写这些文章的目的并非给别人看,主要的目的还是方便自己理解和记忆。而将这些学习过程记录下来分享给其他的学习者,若能对他人的学习有所帮助,则是意外的收获了。
3 关于此系列
这个系列主要是讲OpenFOAM的学习之路,并不会涉及到其他的CFD软件。去年寒假期间写的《小白的CFD之旅》是关于FLUENT软件的学习之路,到现在也还没有更新完,我对天发誓会继续更新下去。
OpenFOAM的学习与Fluent软件的学习有很大的不一样的地方,前面提到OpenFOAM不仅可以作为常规的CFD求解器,而且还可以作为一个CFD求解器开发的基础类库,因此我的学习思路是先将OpenFOAM当做基本求解器,熟悉其作为求解器时各种CASE文件的编写方法,后期会涉及到OpenFOAM的程序设计,包括GUI界面开发以及求解器开发。
预计此系列会持续更新50篇。有兴趣的读者可以扫描下方的二维码关注微信公众号。
【一起学OpenFOAM】系列由来的更多相关文章
- 【一起学OpenFOAM】03 OpenFOAM基本使用流程
OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...
- 跟着鸟哥学Linux系列笔记3-第11章BASH学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...
- 跟着鸟哥学Linux系列笔记2-第10章VIM学习
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...
- 跟着鸟哥学Linux系列笔记0-如何解决问题
跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1. 在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...
- 跟着鸟哥学Linux系列笔记1
跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...
- 从头学Android系列
从头学Android系列 http://blog.csdn.net/worker90/article/category/888358
- Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列
- [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念
上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...
- [Python] 文科生零基础学编程系列三——数据运算符的基本类别
上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...
- .net基础学java系列(四)Console实操
上一篇文章 .net基础学java系列(三)徘徊反思 本章节没啥营养,请绕路! 看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频: https://edu.51cto ...
随机推荐
- RPC 使用中的一些注意点
最近线上碰到一点小问题,分析其原因发现是出在对 RPC 使用上的一些细节掌握不够清晰导致.很多时候我们做业务开发会把 RPC 当作黑盒机制来使用,但若不对黑盒的工作原理有个基本掌握,也容易犯一些误用的 ...
- 线性数据结构之栈——Stack
Linear data structures linear structures can be thought of as having two ends, whose items are order ...
- MVC Core 网站开发(Ninesky) 2.1、栏目的前台显示
上次创建了栏目模型,这次主要做栏目的前台显示.涉及到数据存储层.业务逻辑层和Web层.用到了迁移,更新数据库和注入的一些内容. 一.添加数据存储层 1.添加Ninesky.DataLibrary(与上 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- 分页插件--根据Bootstrap Paginator改写的js插件
刚刚出来实习,之前实习的公司有一个分页插件,和后端的数据字典约定好了的,基本上是看不到内部是怎么实现的,新公司是做WPF的,好像对于ASP.NET的东西不多,导师扔了一个小系统给我和另一个同事,指了两 ...
- 14门Linux课程,打通你Linux的任督二脉!
Linux有很多优点:安全.自主.开源--,也正是这些优点使得很多人都在学Linux. 虽说网上有大把的Linux课程资源,但是对很多小白来说网上的课程资源比较零散并不适合新手学习. 正因为此,总结了 ...
- git init和git init -bare区别
1 Git init 和 git init –bare 的区别 用"git init"初始化的版本库用户也可以在该目录下执行所有git方面的操作.但别的用户在将更新push上来的 ...
- DevExpress第三方控件使用实例之ASPxPopupControl弹出子窗体
弹出页面控件:ASPxPopupControl, <dxpc:ASPxPopupControl ID="popubCtr" runat="server" ...
- MySQL数据库罕见的BUG——Can't get hostname for your address
在连接mysql jdbc时候,抛出了 com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Communicat ...
- Linux设备管理(三)_总线设备的挂接
扒完了字符设备,我们来看看平台总线设备,平台总线是Linux中的一种虚拟总线,我们知道,总线+设备+驱动是Linux驱动模型的三大组件,设计这样的模型就是将驱动代码和设备信息相分离,对于稍微复杂一点的 ...