【一起学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 ...
随机推荐
- js学习笔记:操作iframe
iframe可以说是比较老得话题了,而且网上也基本上在说少用iframe,其原因大致为:堵塞页面加载.安全问题.兼容性问题.搜索引擎抓取不到等等,不过相对于这些缺点,iframe的优点更牛,跨域请求. ...
- ABP文档 - Mvc 视图
文档目录 本节内容: 简介 AbpWebViewPage 基类 简介 ABP通过nuget包Abp.Web.Mvc集成到Mvc视图里,你可以像往常那样创建常规的视图. AbpWebViewPage 基 ...
- 轻量级“集合”迭代器-Generator
Generator是PHP 5.5加入的新语言特性.但是,它似乎并没有被很多PHP开发者广泛采用.因此,在我们了解PHP 7对Generator的改进之前,我们先通过一个简单却显而易见的例子来了解下G ...
- WPF 微信 MVVM 【续】修复部分用户无法获取列表
看过我WPF 微信 MVVM这篇文章的朋友,应该知道我里面提到了我有一个小号是无法获取列表的,始终也没找到原因. 前两天经过GitHub上h4dex大神的指导,知道了原因,是因为微信在登录以后,web ...
- [APUE]系统数据文件与信息
一.口令文件 UNIX口令文件包含下表中的各个字段,这些字段包含在 由于历史原因,口令文件是/bin/passwd,而且是一个文本文件,每一行都包括了上表中的七个字段,字段之间用":&quo ...
- [C#] 简单的 Helper 封装 -- SecurityHelper 安全助手:封装加密算法(MD5、SHA、HMAC、DES、RSA)
using System; using System.IO; using System.Security.Cryptography; using System.Text; namespace Wen. ...
- 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~
最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...
- C# 程序中嵌入百度地图
本例是对WinForm中使用百度地图的简要介绍.百度地图目前支持Android开发,IOS开发,Web开发,服务接口,具体可以参照'百度地图开放平台'. [动态加载百度地图]涉及到的知识点: WebB ...
- BPM任务管理解决方案分享
一.方案概述任务是企业管理者很多意志的直接体现,对于非常规性事务较多的企业,经常存在各类公司下达的各种任务跟进难.监控难等问题,任务不是完成效果不理解,就是时间超期,甚至很多公司管理层下达的任务都不了 ...
- 机器指令翻译成 JavaScript —— No.5 指令变化
上一篇,我们通过内置解释器的方案,解决任意跳转的问题.同时,也提到另一个问题:如果指令发生变化,又该如何应对. 指令自改 如果指令加载到 RAM 中,那就和普通数据一样,也是可以随意修改的.然而,对应 ...