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】系列由来的更多相关文章

  1. 【一起学OpenFOAM】03 OpenFOAM基本使用流程

    OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...

  2. 跟着鸟哥学Linux系列笔记3-第11章BASH学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 跟着鸟哥学Linux系列笔记2-第10章VIM学习 认识与学习bash 1. ...

  3. 跟着鸟哥学Linux系列笔记2-第10章VIM学习

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 跟着鸟哥学Linux系列笔记1 常用的文本编辑器:Emacs, pico, nano, joe, vim VI ...

  4. 跟着鸟哥学Linux系列笔记0-如何解决问题

    跟着鸟哥学Linux系列笔记0-扫盲之概念 在发生问题怎么处理: 1.  在自己的主机.网络数据库上查询How-To或FAQ -Linux 自身的文件数据: /usr/share/doc -CLDP中 ...

  5. 跟着鸟哥学Linux系列笔记1

    跟着鸟哥学Linux系列笔记0-扫盲之概念 跟着鸟哥学Linux系列笔记0-如何解决问题 装完linux之后,接下来一步就是进行相关命令的学习了 第五章:首次登录与在线求助man page 1. X ...

  6. 从头学Android系列

    从头学Android系列 http://blog.csdn.net/worker90/article/category/888358

  7. Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列

    Spring Web MVC中的页面缓存支持 ——跟我学SpringMVC系列

  8. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  9. [Python] 文科生零基础学编程系列三——数据运算符的基本类别

    上一篇:[Python] 文科生零基础学编程系列二--数据类型.变量.常量的基础概念 下一篇: ※ 程序的执行过程,就是对数据进行运算的过程. 不同的数据类型,可以进行不同的运算, 按照数据运算类型的 ...

  10. .net基础学java系列(四)Console实操

    上一篇文章 .net基础学java系列(三)徘徊反思 本章节没啥营养,请绕路! 看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频: https://edu.51cto ...

随机推荐

  1. 一看就懂的ReactJs入门教程-精华版

    现在最热门的前端框架有AngularJS.React.Bootstrap等.自从接触了ReactJS,ReactJs的虚拟DOM(Virtual DOM)和组件化的开发深深的吸引了我,下面来跟我一起领 ...

  2. ExtJS 4.2 业务开发(二)数据展示和查询

    本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统 ...

  3. Android raw to bmp

    Android raw 格式转 bmp 图像 raw 保存的为裸数据,转换时都需要把它转成RGBA 的方式来显示.其中: 8位RAW: 四位RGBA 来表示一位灰度; 24位RAW: 三位RGB相同, ...

  4. load和initialize方法

      一.load 方法什么时候调用: 在main方法还没执行的时候 就会 加载所有类,调用所有类的load方法. load方法是线程安全的,它使用了锁,我们应该避免线程阻塞在load方法. 在项目中使 ...

  5. 来吧,HTML5之基础标签(上)

    什么是html5 HTML 5 是下一代的 HTML.HTML5 仍处于完善之中.然而,大部分现代浏览器已经具备了某些 HTML5 支持. 学习过程中标签的理解 <a>标签  定义超链接, ...

  6. ASP.NET Core 中文文档 第四章 MVC(4.6)Areas(区域)

    原文:Areas 作者:Dhananjay Kumar 和 Rick Anderson 翻译:耿晓亮(Blue) 校对:许登洋(Seay) Areas 是 ASP.NET MVC 用来将相关功能组织成 ...

  7. scala练习题1 基础知识

    1, 在scala REPL中输入3. 然后按下tab键,有哪些方法可以被调用? 24个方法可以被调用, 8个基本类型: 基本的操作符, 等:     2,在scala REPL中,计算3的平方根,然 ...

  8. 【从零开始学BPM,Day1】工作流管理平台架构学习

    [课程主题] 主题:5天,一起从零开始学习BPM [课程形式] 1.为期5天的短任务学习 2.每天观看一个视频,视频学习时间自由安排. [第一天课程] Step 1 软件下载:H3 BPM10.0全开 ...

  9. SSIS 包部署 Package Store 后,在 IS 中可以执行,AGENT 执行却报错

    可以执行 SSIS Package ,证明用 SSIS Package 的账户是可以执行成功的.SQL Server Agent 默认指定账号是 Network Service. 那么可以尝试一下将 ...

  10. (转载) Linux IO模式及 select、poll、epoll详解

    注:本文是对众多博客的学习和总结,可能存在理解错误.请带着怀疑的眼光,同时如果有错误希望能指出. 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的上下文下给出的答案 ...