OpenFOAM Knowledge Share Step 2

OKSS2 | OpenFOAM中级课

OKSS2简介

相对于商软,OpenFOAM最大的优点在于可任意的编程。因此,学习OpenFOAM的最终目的都是编程自由。由于OpenFOAM可以说已经脱离原有的C++语言(完全由自己的类型编写),因此用户需要熟悉OpenFOAM的大量自定义类型(如fvScalarFieldcorrectBoundaryConditions())。同时,在写OpenFOAM代码的时候,需要充分的了解C++面向对象编程的概念。在2018年,学员应该拥抱面向对象,摒弃面向过程思想(如UDF)。另外,CFD编程不仅需要编程技能,还应知悉CFD作业流程。例如,什么时候应该更新边界条件(correctBoundaryConditions())?怎样对通量进行debug?如何在代码内任性的调用各种场?

在传统的编程课程中,讲师通过slides分析代码。这种方式现场不会出现任何尴尬问题,最为安全,且省时省力。但对于学员来说,无实践式教学效果较差。OKSS2抛弃这种方式:讲师现场写代码,学员一起实践。代码靠看是看不懂的,只有真正去写才能有所进步。理论和实践总是不一致。学员可在OKSS2中一起愉快的写代码。

OKSS2力图让学员掌握OpenFOAM最常用的代码来植入自己的数学模型、必要的CFD语句来确保收敛性,争取学完后可立马上手进行模型自定义。

  • 课程时间:8.30-18.00,共1.5天,不需早起、酌情压堂
  • 学员必须有OpenFOAM基础:或参加OKSS1,或有过使用经验
  • 学员必须预习C++,建议参考C++ Primer Plus

简要目录(2018.04.03版)

  • C++简单复习
  • 基于OpenFOAM编写简单的纯C++小程序
  • OpenFOAM代码分析
  • 面向过程植入粘度模型
  • 面向对象
  • 如何更改OpenFOAM的模型
  • 面向对象植入粘度模型
  • 面向过程、面向对象植入标量传输方程
  • 面向对象植入速度压力耦合
  • 植入拉格朗日粒子库
  • 编写自己的class
  • 在代码中任性的调用场
  • 代码风格和文本编辑器

以上为课程简要目录。随着我每天CFD的进行,课程内容将有所增加或删减,以最终课堂为准