在OpenFOAM基础上构建具有前后处理处理功能的软件,实现CFD软件自由。
1 功能描述
-
开发一个OpenFOAM外壳软件
-
软件读取第三方软件生成的网格,解析网格中的边界数据,同时显示网格图形
-
支持用户对网格进行操控(查看、选择等)
-
用户能够选择使用的模型并设置模型参数
-
用户能够选择边界并对边界参数进行设置
-
软件能够对形成的case文件进行检查及确认
-
软件能够分析case文件的内容并筛选出最合适的求解器列表
-
软件能够以并行方式进行计算求解
-
提供计算过程中数据监控
-
软件能够支持基本的后处理数据查看功能
2 核心问题
1、几何与网格创建
-
早期版本的前处理部分不包含包含几何与网格处理功能。这部分开发难度较大,而且如果搞得不好的话非常影响软件的整体性能。如果不包含几何与网格部分,整个软件从网格导入入手(像早期的Fluent那样),那么整个前处理部分实际上就变成了OpenFOAM案例文件的解析工作,软件开发难度将大幅降低。 -
中期版本支持导入几何并使用snappyhexMesh生成计算网格。 -
最终版本支持几何建模及控制,以及进行网格生成。
2、前处理图形显示
-
在将网格读入到OpenFOAM后,利用OpenFOAM提供的工具将读取的网格转换成OpenFOAM网格,并利用 foamToVTK
将网格转换成VTK进行显示和操控。 -
读取vtk文件后,可以选择显示几何或网格。
3、案例文件创建
-
准备案例的过程实际上是对case文件进行修改,考虑使用正则表达式来实现此类功能。 -
需要根据输入参数来确定将要使用的求解器,案例文件根据选用的求解器来准备 -
采用进程调用的方式启动求解器进行求解计算。
4、后处理
利用OpenFOAM自己提供的工具将结果转换为VTK文件,然后对VTK文件进行显示和操控。
3 重点与难点
-
图形显示与交互。这部分非常影响软件的性能和用户体验,需要花费非常多的时间和精力,最好是买成品的商业模块。
-
GUI设计。CFD软件因为输入数据太多且数据类型多样,设计一个好用的GUI比较麻烦。当前商业CFD软件普遍使用树形菜单形式,其实也是不得已之下所做的折中。虽然个人觉得树形菜单式的GUI体验并不算好,但可能最后还是得选择使用这种模式。
4 开发周期
搞着玩儿的化大概要1年。
撸起袖子莽起干大概需要个把月,如果有王多鱼的钞能力加成的话时间还能再减半。
(未完待续)

本篇文章来源于微信公众号: CFD之道
评论前必须登录!
注册