国产自主数值仿真软件开发平台规格说明
1 GenviX 面向的用户群体
- 核心算法/模块研发者:只需关注核心算法本身,平台完成前后处理、数据交互、文件管理等。
- 模块耦合集成者:无需关注各模块的细节,借助各模块在平台暴露的函数接口及数据,快速实现耦合。
- 行业定制软件开发者:平台支持用户通过MFC、Qt、C#、HTML/JavaScript等开发用户专属界面,支持软件图标、欢迎页面、界面风格的重定义。
- 数值计算教学人员及学生:平台提供满足广泛需求的多物理场架构及大量API,使用者借助JavaScript、Python、C/C++、Fortran等即可轻松开展编程。
- 公司自有开发团队:公司所有自主数值模拟/仿真软件产品都将基于GenviX进行开发。
2 GenviX 的特点
- 支持第三方模块以动态链接库(DLL、SO)的形式加入平台,支持不同动态链接库之间的数据交互;
- 支持参数化几何建模及网格剖分,支持7类主流商业软件的网格导入。支持的网格类型包括:颗粒、杆件、三角形、四边形、四面体、三棱柱、金字塔、六面体等;
- 支持高级几何建模功能,包括并不限于基本几何元素建模、模型的交、并、减等拓扑操作、模型的几何变换、模型的拉伸、放样、镜像、矩阵复制等等;
- 支持平台与核心模块间网格数据的实时交互,用户可从平台下载网格,也可将核心模块的网格推送至平台;
- 支持挂载独立于求解器的本构模型及材料库,这些模型及库可被公司出品的原生求解器以及各种第三方求解器直接调用;
- 提供丰富的选择集功能,通过GUI或JS脚本函数,可实现节点、单元、单元面的精准选择,核心模块可自动获取选择对象并进行个性化的操作(包括并不限于设置材料参数、施加边界条件等);
- 采用核心数据驱动的结果展示模式,提供丰富的结果数据模板,用户可自定义结果名称及结果类型;实现核心模块推送什么数据,云图及监测曲线即展示什么数据;
- 千万量级单元的平移、缩放、旋转、剖切等操作无卡顿现象,支持计算结果的视频及图片输出;
- 支持多模块、多类型计算流程及计算结果的统一存储及管理;
3 几何建模功能
3.1 导入几何模型
支持导入STP/STEP(Standard for the Exchange of Product model data)文件、BREP(Open Cascade下的边界表示格式)文件、STL(3D SYSTEMS公司于1988年制定的一种为快速原型制造技术服务的三维图形文件格式,分为ASCII明码格式,和二进制格式两种,主要描述三角面片的信息单元facet)文件、IGES(Initial Graphics Exchange Specification, 即初始图形交换规范)文件等。
3.2 导出几何模型
支持导出Brep、STP/STEP、GEO等文件格式。
3.3 基本几何元素建模
- 点与一维几何元素:点、线、圆弧、折线、样条曲线;
- 二维(面状)几何元素:多边形、矩形、圆、椭圆;
- 三维(实体)几何元素:长方体、球体、圆锥、圆台、圆柱;
3.4 几何变换建模
3.5 组合式变换建模
- 拉伸变换
- 扫描变换
- 回转变换
- 倒角变换
- 放样
- 线组成面
- 面组成体
3.6 通过布尔操作建模
3.7 其它操作
3.8 网格剖分功能
支持二维、三维网格剖分,剖分方法支持Conformal Delauney、Frontal等,可设定网格总体密度、可设定局部网格密度。
3.9 网格导入功能
支持ANSYS、Abaqus、LS-Dyna、GiD、gmsh 等类型文件的导入。
4 脚本编写和执行
- 内置JavaScript和Python双引擎
- 有内置脚本编辑器,支持语法高亮、自动完成、参数提示、代码折叠、自动缩进
- 内置脚本调试器,支持JavaScript脚本的单步执行、变量监视、代码堆栈、断点设定、即时执行语句等功能
- 支持外部脚本调试器对Python脚本进行调试,调试功能取决于所选第三方调试器
- 有错误定位功能
5 编程接口
5.1 求解器编程接口
- 支持C/C++语言、Fortran77、Fortran90及以上、Delphi/PASCAL等语言,支持各版本Visual C/C++编译器、GCC/G++编译器、CLANG、MinGW等编译器;
- 支持Visual Studio、CMake、QMake、VS Code等项目管理工具;
- 支持求解器从平台抓取网格和边界条件;
- 支持求解器中间结果实时推送到平台进行即时渲染;
- 支持计算时结果回退;
- 支持推送的结果被第三方求解器用来做耦合计算。
- 支持计算结果的导出、导入
5.2 界面编程接口
- 支持MFC、Qt、UWP等原生界面开发框架、WinForms、WPF等托管开发框架、HTML/JavaScript嵌入开发;
- 支持嵌入主视图、自定义边栏、自定义弹出窗口等形式的界面;
- 支持插件类型的界面,支持自定义菜单和工具栏;
- 支持自定义模块数据的序列化存取;
- 支持自定义事件响应,支持自定义回调映射;
- 支持与脚本引擎的互操作;
- 支持跨进程界面交互和通讯、支持数据的跨线程、跨进程通讯、支持执行流程的跨线程、跨进程同步。
6 性能方面
- 支持多线程、支持OpenMP、P-Thread等并行计算框架;
- 三维渲染在市面显卡支持下可实时渲染上亿个三维有限单元和颗粒,渲染规模仅受显存大小和显卡性能制约;
- 大模型的旋转、拖放等操作顺滑流畅;
- 支持内存级的后处理接口,可实时渲染内存中的结果,避免频繁读写硬盘;
- 内存级渲染的同时,支持利用后台空闲将结果保存到磁盘。
7 其他特性
- 完善的文档,包括快捷操作指南、用户手册、技术文档、脚本接口手册、求解器接口开发指南、界面二次开发指南等;
- 在线帮助系统,提供分类浏览、关键字索引、全文搜索、一键自动定位上下文帮助等等;
- 版本检测和在线更新功能;
- 不同操作系统下的安装程序/安装包;
- 入门教程;
- 示例库:包含了脚本示例、求解器接口开发代码示例、界面二次开发示例等。