TECHNOLOGY SELECTION · DOMESTIC CONTROL

数值模拟仿真软件桌面前端
技术选型与自主可控方案对比报告

面向 CentOS 7 → 银河麒麟、海光 x86-64 → 飞腾/鲲鹏 aarch64 的原生 CAE 前后处理工作台。结论基于严格国产来源与宽松源码可控双口径。

首选 Qt Widgets + VTK6 条路线许可证说明OpenGL 3.3 / 软件渲染离线可审计
阅读一页纸结论

数值模拟仿真软件桌面前端技术选型与自主可控方案对比报告

版本:v2.0(选型评审稿)
编制日期:2026-08-16
适用范围:Linux 原生桌面 CAE 前后处理软件(非 Web)

一句话结论: 在“CentOS 7 起步、后续适配银河麒麟、百万级流畅/千万级可开”的约束下,首选 Qt Widgets + VTK + Qwt + HDF5:CentOS 7 以 Qt 5.15.19 + VTK 9.4.x 作为待验证组合,银河麒麟另建 Qt 6 + 对应 VTK 构建线;所有第三方软件都要留存源码、许可证和构建记录。严格国产方案应作为独立路线保留,不能用“国产外壳仍依赖 Qt/VTK”冒充全栈国产。

重要边界: 本报告中的“自主可控率”是项目内部决策模型,不是测评机构结果。当前尚未取得客户或测评方的正式评分表,任何方案均不能据此承诺“必然过审”。正式投标前必须让评审方书面确认:国产框架是只看直接依赖,还是穿透到底层 Qt、VTK、Mesa、GCC、HDF5。


0. 一页纸结论摘要

0.1 选型结论

排名 路线 定位 结论
1 A:Qt Widgets + VTK + Qwt + HDF5 成熟宽松口径 首选实施。功能完整、技术成熟、维护风险相对最低;Qt 按官方开源许可要求使用,CentOS 7 固定 Qt 5.15.19 源码构建线
2 B:wxWidgets + VTK 去 Qt 备选 协议简洁,但 VTK 集成、中文体验和工业界面完善难度较高;作为采购方拒绝 Qt 时的技术预案
3 D:FastCAE 精简改造 条件式国产底座 只有当评审接受“国产上层框架 + 国外开源底层”时才有答辩价值;主仓最新提交停留在 2024-05-16,且依赖面明显超出 V1
4 E:DTK/UKUI 混合栈 国产桌面风格适配 DTK 明确映射到 Qt 5/6;UKUI 是桌面环境而非通用工业 GUI 框架,不能独立承载本项目
5 C:GTK/gtkmm + VTK Linux 原生备选 许可可接受,但 Dock、属性面板及 VTK 嵌入均缺少 Qt 路线的成熟组合,实施难度无优势
6 F:自研 GUI + 自研 OpenGL 管线 字面严格国产 应用层国产率最高,但仍建立在 Linux、Mesa、GCC 等开源底座上;开发和长期维护范围过大,不建议作为 V1 路线

0.2 推荐技术基线

V1 推荐 关键理由
语言 C++17 兼顾 CentOS 7 冻结线和新版 VTK;先不把 C++20 作为公共基线
GUI Qt Widgets 5.15.19 开源版 2026-05 发布的 Qt 5 最终开源版;适合 CentOS 7 兼容线,Dock/树/表格成熟
工作台 QMainWindow + QDockWidget + QTreeView;属性面板自研 满足 VS/SolidWorks 范式,同时把高业务价值控件掌握在自己手中
3D CentOS 7:VTK 9.4.x;新系统:对应当前稳定版 VTK 9.5 已不再以 CentOS 7 为最低兼容环境;具体版本须在目标机验证后锁定
曲线 Qwt 6.3.0 Qwt 许可证允许按规定用于闭源产品;避开采用 GPLv3 或商业许可的 Qt Charts
数据 HDF5 1.14.6 + 自研文件结构 保守、成熟、兼容性好;文件结构由项目自行定义并带版本号
构建 GCC 8+ / CMake / Ninja,按 OS×CPU 分别构建 CentOS 7 默认编译器过旧;使用固定工具链和 Linux 基础运行库兼容基线
软件渲染 系统 Mesa 软件驱动,运行时自动识别 llvmpipe 是使用 CPU 绘图的软件渲染器;飞腾/鲲鹏需实机验证并保留受限模式
交付 RPM/DEB + 免管理员权限安装包 + 第三方软件清单 + 源码归档 兼顾离线安装、审计、可重复构建和不同国产 OS 包管理体系

0.3 许可证与缩写说明

许可证决定“别人的代码能不能放进我们的闭源产品、需要履行什么义务”。它不直接决定软件是不是国产,也不等于软件安全等级。

下表覆盖本项目候选组件直接涉及的许可证,以及评审中常见的对照类型;它不是全部开源许可证目录。

名称 主要含义 对本项目的结论 官方说明
BSD-3-Clause(三条款 BSD 许可) 很宽松:允许商业使用、修改、闭源发布。需要保留原版权、许可文本和免责声明,不能借原作者名义为产品背书 VTK、CMake 可采用;仍需记录版本和来源 许可证正文(OSI) · VTK · CMake
MIT 许可 宽松:允许商业使用、修改、合并和闭源发布,发布时保留原版权和许可文本 Mesa 中许多代码采用此类许可;仍须逐文件、逐软件包核验,不能把整个 Mesa 简化为单一 MIT 许可 许可证正文(OSI) · Mesa 许可说明
Apache License 2.0(Apache 许可证第 2 版) 宽松,并明确授予专利许可;发布修改版时需要保留许可、版权、变更说明及适用的 NOTICE 文件,不授予商标使用权 LLVM 采用 Apache-2.0 并附带 LLVM 例外;软件渲染链随操作系统逐包核验 许可证正文(Apache) · LLVM 许可政策
HDF5 License(HDF5 许可证) HDF Group 制定的宽松许可证,允许源代码和二进制再发布,但须保留版权、条件和免责声明 HDF5 可用于闭源产品;归档准确版本、许可证和源码 许可证正文(HDF Group) · HDF5 官方说明
LGPLv3(宽松通用公共许可证第 3 版) 允许闭源程序使用开源库,但用户必须能替换该库;若修改了库本身,修改部分通常也要按 LGPL 提供源码。动态链接最容易满足要求 Qt 核心模块可按此路线使用:动态链接、附许可证、提供对应 Qt 源码,并允许替换库 许可证正文(GNU/FSF) · Qt 官方许可说明
GPLv3(通用公共许可证第 3 版) 传播要求强:如果把 GPL 代码直接并入或链接到产品,通常会触发整个组合程序按 GPL 提供源码 闭源 V1 不直接采用 GPL-only 组件,例如 Qt Charts 开源版和 Gmsh 许可证正文(GNU/FSF) · Qt Charts · Gmsh
GPL + GCC Runtime Library Exception GCC 编译器本身是 GPL,但带有“运行库例外”:正常使用 GCC 编译自己的程序,不会仅因此要求自己的程序按 GPL 开源 GCC 工具链可采用;锁定版本并保留许可声明,发布前复核实际运行库 例外条款(GNU/FSF) · GCC 运行库说明
MPL-2.0(Mozilla 公共许可证第 2 版) 以文件为边界:修改过的 MPL 文件通常要继续按 MPL 提供源码,但可与闭源自研文件组合发布 当前 V1 核心栈没有必须采用的 MPL 组件;如后续引入,隔离第三方文件并保存修改记录 许可证正文(Mozilla)
wxWindows Library Licence(wxWidgets 库许可证) 以 LGPL 为基础并增加例外,允许按规定链接后以自有条款发布应用程序 wxWidgets 路线可用于闭源产品;仍需保留许可证并核验实际使用版本 许可证正文与官方说明
Qwt 例外许可 Qwt 在 LGPL 基础上增加额外例外,允许应用按规定链接而不要求公开应用源码 可用于闭源 XY 曲线窗口,仍要标明使用 Qwt Qwt License 1.0 正文

“第三方软件清单”不是许可证,而是记录产品所用外部软件名称、版本、来源、许可证和处理方式的审计材料。

以上是工程选型解释,不代替正式法律意见。最终发布前仍需按实际使用模块和链接方式复核。

0.4 双口径结果

路线 宽松自主可控分 严格国产来源分 严格门槛 工程综合分 建议
A Qt+VTK 83 38 不通过 90 首选
B wxWidgets+VTK 82 36 不通过 80 去 Qt 备选
C GTK/gtkmm+VTK 81 34 不通过 76 不推荐
D FastCAE 精简改造 72 52 需评审确认 77 条件式备选
E DTK/UKUI+VTK 77 54 需评审确认 68 仅做外观/适配层
F 全自研 90 85 应用层可通过;全栈仍非 100% 国产 56 长期专项,不进入 V1

分数是基于第 5 章公开公式得到的内部评估值。严格分低不代表软件不安全,也不代表无法进入信创市场;它只表示在“穿透审查原始权利主体”的定义下,国外开源底层不会被算作国产。

0.5 立即决策

  1. 立项采用方案 A,V1 统一使用 C++17。
  2. CentOS 7 以 Qt 5.15.19 + VTK 9.4.x 作为候选组合,目标机验证通过后再定版;银河麒麟版本明确后另建 Qt 6 + 对应 VTK 构建线。
  3. 必须取得一台海光 x86-64 和一台飞腾/鲲鹏 aarch64 实机;没有实机,不宣称已适配。
  4. FastCAE 只做代码和架构审计,不作为 V1 运行时底座;若招标明确要求国产 CAE 底座,再启动精简改造评估。
  5. 将“框架国产”与“源码可控”分别作答,不用一个模糊百分比掩盖底层依赖。

1. 需求边界与验收基线

1.1 产品边界

1.2 运行与数据基线

维度 已确认要求 报告采用的工程解释
OS 当前 CentOS 7;未来银河麒麟 每个 OS/架构独立构建,不强求单二进制通吃
CPU 海光 x86-64;飞腾/鲲鹏 aarch64 共享源代码,建立两条构建与测试流水线
GPU OpenGL 3.3 硬件;CPU 软件渲染降级 硬件路径以交互性能为目标;软件路径只保证基本查看
数据规模 百万级流畅、千万级可开 采用按需读取、分区、只提取可见表面和分级精度显示
文件 HDF5 科学数据文件 建立带版本号、单位和网格关系说明的自研文件结构
求解器 独立进程 HDF5 传大数据;Unix domain socket/状态文件/标准输出传控制与进度
脚本 V1 不嵌 CPython 动作层与 UI 分离;先提供 CLI 批处理和命令清单

1.3 建议验收指标

以下是立项指标,不是当前已实测数据:

场景 建议指标 前提
100 万混合单元加载 冷启动后 10 秒级 绑定样例 HDF5、磁盘与目标整机
100 万单元旋转 硬件路径中位数不低于 25 FPS 固定窗口、分辨率、着色与测量方法
1000 万单元 能打开、能查看;交互期间降低显示精度 不承诺全量透明、全量边线同时流畅
CPU 软件渲染 小数据集完成云图、切平面、拾取 关闭抗锯齿、高级透明和阴影,限制箭头、边线数量
内存 建立峰值内存预算并记录数据复制次数 VTK/HDF5 之间优先零拷贝或单拷贝

2. “开源 ≠ 自主可控”的判定边界

2.1 官方信息能支持什么

中国信息安全测评中心 2026-06 发布的《安全可靠测评工作指南 V4.0》当前主要面向 CPU、AI 芯片、操作系统、数据库和打印机主控芯片,并强调研发环境、代码数据、知识产权、开源许可履行、供应链持续性和可追溯性。该公开范围不直接等同于本桌面应用的采购评分表。官方指南

因此:

2.2 两套项目口径

口径 通过条件 适合回答的问题
严格口径 核心 GUI 框架、控件层、三维可视化的直接权利主体必须为境内组织或本项目自研;国外开源底层按穿透审查扣分 “是不是国产框架”“关键代码著作权归谁”
宽松口径 无必须采购的国外商业授权;源码可获得、可离线构建、可审计、可合法修改/分发;有内部维护和替换路线 “断供后能否继续构建”“是否存在许可证锁死”

严格口径并不自动等于更安全。一个名义国产但停止维护、无法重复构建的项目,实际可控性可能低于一个许可清晰、源码完整且可由内部继续维护的国外开源项目。

2.3 五项判据

  1. 许可权利:可否闭源分发、静态/动态链接条件、修改公开义务、专利和商标限制。
  2. 源码与构建:是否能获得完整源码、依赖、构建脚本、补丁和哈希;是否能在断网环境复现。
  3. 治理归属:主要版权与维护决策由谁掌握,是否存在单一境外商业主体改变节奏的风险。
  4. 内部接管能力:是否真正具备读懂、修改、测试和维护自有分支的能力;“源码可下载”不等于“能接管”。
  5. 可替代性:是否存在稳定边界、数据标准和第二实现;替换范围是否可控制。

2.4 Qt 的合规边界

Qt 同时提供商业许可和开源许可。首选方案使用的是开源许可:大多数核心模块允许闭源应用以动态库方式使用,但必须让用户能够替换 Qt 动态库,并提供许可证文本、所用 Qt 库的对应源码或受控获取方式。如果某个模块只有 GPL 许可,则闭源产品不能直接采用,除非另购商业许可。Qt 的大部分版权与控制权仍由芬兰 The Qt Company 掌握。Qt 开源义务 · Qt 许可总览 · Qt 控制主体说明

项目落地要求:

2.5 行业先例如何正确使用

证据 能证明 不能证明 证据等级
WPS 官方第三方许可清单列出 Qt 5 及金山修改源码;WPS/麒麟官方材料证明产品进入国产 OS/CPU 生态 采用 Qt 不必然阻止具体产品完成国产平台适配 WPS 全部 UI 均基于 Qt;Qt 是国产框架;本项目可继承其认证 A/B:WPS 法律声明 · WPS Linux · 麒麟政务方案
DTK 官方 CMake 将 DTK5/DTK6 对应到 Qt 主版本 DTK 是国内维护的 Qt 上层工具包 底层已去 Qt;存在完整 CAE 工业控件 A:DTK CMake
UKUI 官方仓库列出 qt5-ukui-platformtheme UKUI 桌面生态明确使用 Qt 平台主题 UKUI 是可替代 Qt 的通用 C++ GUI 框架 A:UKUI 官方仓库
FastCAE 官方仓库是国产 BSD-3 CAE 集成平台,CMake 明确依赖 Qt、VTK、OCCT、HDF5、Gmsh 等 国产 CAE 底座可以建立在国外开源组件上 FastCAE 在严格穿透口径下是全国产;其所有依赖都适合闭源直接链接 A/B:FastCAE Gitee

答辩时建议使用“公开证据表明存在兼容和国产项目实践”,不要使用“某软件已经过信创,所以同技术栈自动过审”的跳跃推理。


3. GUI 与控件候选矩阵

3.1 GUI 框架

候选 许可/归属 Dock/树/属性能力 VTK 集成 CentOS 7 / aarch64 自主可控判断 结论
Qt Widgets Qt 官方许可说明:核心多采用 LGPLv3;闭源动态链接仍须履行声明、对应库源码和可替换机制 QDockWidget、QTreeView、Model/View 完整;属性面板自研 VTK 官方提供 Qt 集成模块 CentOS 7 非 Qt 6 官方目标;Qt 5.15.19 源码线可验证;aarch64 需实机 宽松通过,严格不通过 首选
wxWidgets 3.2 wxWindows Library Licence 3.1;允许专有二进制 wxAUI、wxPropertyGrid、DataView 可用 无与 Qt 同等级的官方 VTK 小部件,需要自持桥接 Linux 经 GTK;双架构需验证 宽松通过,严格不通过 去 Qt 备选
GTK 3/gtkmm GTK 官方法律与许可说明;采用 LGPL 许可 树表可用;标准 Dock/工业属性面板不足 当前 VTK 主线无同等级官方 GTK 集成 Linux 原生,但 GTK4 与老系统冲突 宽松通过,严格不通过 不推荐
DTK 国内维护;官方仓库许可证为 LGPLv3,底层仍是 Qt 桌面风格控件;仍需 Qt Dock/Model/View 或自研 仍走 Qt+VTK 更偏 deepin/UOS;CentOS/麒麟需额外打包 直接层国产,穿透后混合 只作外观层
UKUI 麒麟/Ubuntu Kylin 社区 是桌面环境及组件集合,不是独立通用 GUI SDK 仍需 Qt/GTK/VTK 适合 UKUI 桌面,不等于跨发行版框架 不应单独按 GUI 框架计分 排除主体方案
FastCAE 国产平台;官方仓库标明本体采用 BSD-3-Clause 已有 CAE 主窗口和插件结构 内置 VTK 路线 官方主仓需自行验证现代平台 顶层国产,底层混合 条件式精简改造
自研 自有版权 全部自建 自研上下文/事件桥 每个平台都要补适配 应用层严格口径最高 基础设施范围过大,不作为 V1 路线

wxWidgets 的官方许可允许基于库生成的二进制按自己的条款分发;Qt 路线的合规义务更多,但工程生态明显更成熟。wxWidgets 许可

3.2 Dock、树、属性与图表

子系统 首选 备选 不采用/原因
Dock QMainWindow + QDockWidget + saveState/restoreState 后期单独评估高级 Dock 库 V1 不为 VS 式动画和复杂拖拽引入额外许可证
特征树 QTreeView + 自研 QAbstractItemModel 不把业务对象直接绑到控件节点
属性面板 自研 PropertyModel + Delegate + EditorFactory 参考 QtPropertyBrowser 思路 这是自主可控得分点;不引入停更的完整第三方属性库
表格 QTableView + 自研模型 大数据不使用逐单元格 QWidget
XY 曲线 Qwt 6.3.0 VTK Charts;极简需求可 QPainter 自绘 Qt Charts 官方许可为 GPLv3 或商业许可;QCustomPlot 也需单独核验许可
色标/Colormap VTK LookupTable + 自研编辑器 业务预设、单位和区间逻辑归自研

Qwt 的许可证允许应用按规定链接而不要求公开应用源码,但仍需在产品中标明使用了 Qwt。Qwt 许可

3.3 属性面板自研边界

自研的是业务控件,不是重新造 GUI 框架。建议结构:


4. 三维渲染方案对比

维度 VTK 全管线 自研 OpenGL 3.3 混合/渐进替换
V1 功能 等值面、切平面、拾取、云图、分级精度显示均有算法与数据结构 所有算法、数据结构、拾取和图例都要实现 V1 仍以 VTK 为主
性能 经过大量科学可视化场景验证,可进一步启用并行过滤器 上限高,但前期很难超过成熟 VTK 可把特定热点替换为自研 mapper/filter
软件渲染 依赖 Mesa/llvmpipe;可通过质量配置降级 同样依赖 Mesa/llvmpipe,除非连光栅器也自研 同左
许可 VTK 官方许可:BSD-3-Clause 自有代码;Mesa 官方许可说明显示其包含多种许可证 取决于保留的组件
严格国产 不通过 应用渲染层可通过 部分通过
建议 V1 首选 严格专项或长期替换 产品成熟后按性能热点推进

VTK 官方将其定位为跨平台科学可视化、3D 图形和图像处理工具包,采用宽松的 BSD 风格许可:可以商业使用、修改和闭源发布,但要保留版权、许可文本和免责声明。Qt 支持模块属于 VTK 官方模块。VTK 概览与许可 · VTK Qt 支持模块

4.1 推荐 VTK 数据/渲染路径

  1. HDF5 Reader 只读取当前工况、字段和时间步需要的数据块。
  2. 将拓扑和字段转换为 vtkUnstructuredGrid;明确所有权,避免多次深拷贝。
  3. 表面显示使用 Geometry/Surface Filter,不把全部体单元直接送入边线渲染。
  4. 云图使用 Mapper + LookupTable;等值面使用 Contour Filter;切平面使用 Cutter/Plane。
  5. 拾取先走屏幕/包围盒粗选,再用 Cell Locator 精确查值。
  6. 交互中切换到降采样/低质量 representation,停止交互后恢复目标精度。
  7. 千万级数据按区域/块维护缓存,并设置可配置的内存高水位。

4.2 硬件与 CPU 软件渲染降级策略

llvmpipe 是 Mesa 提供的 CPU 软件渲染器:没有可用显卡驱动时,可用 CPU 完成基本三维绘制。官方公开目标只列 x86、x86-64 和 ppc64le,未列 aarch64。因此海光 x86-64 可进入实测,飞腾/鲲鹏必须核验目标系统实际提供的软件渲染器,并准备受限模式;不能预先承诺同等功能和性能。Mesa llvmpipe 文档 · Mesa Systems

启动时记录:

进入软件渲染后,自动关闭抗锯齿、阴影、高级透明、全量边线和大量箭头/符号;限制同时显示区域,必要时只显示外表面与选中区域。若 aarch64 上无法获得满足 OpenGL 3.3 的软件驱动,则进入受限模式并明确提示。禁止把“能启动”写成“千万级可流畅使用”。


5. 六条方案的双口径评分

5.1 评分方法

严格国产来源分(100):自研业务 25、GUI 框架 20、Dock/属性/树控件 10、三维可视化 20、数据/IO 10、工具链 5、国产 OS/CPU/GPU 10。国外开源组件即使许可宽松,也不计为国产来源;国产外壳包装国外底层只获部分分。

宽松自主可控分(100):许可权利 25、源码与离线构建 20、治理分散/可接管 20、替代边界 15、国产平台证据 10、持续维护能力 10。

工程综合分(100):自主可控 35%、功能覆盖 20%、性能 15%、实施复杂度 15%、维护生态 10%、跨平台 5%。

5.2 评分明细

方案 严格分 宽松分 工程分 关键解释
A Qt+VTK 38 83 90 直接依赖均为国外开源,但源码、许可、生态和工程成熟度最好
B wxWidgets+VTK 36 82 80 去掉 Qt 商业治理风险,但 VTK/GUI 集成与中文界面适配更复杂
C GTK/gtkmm+VTK 34 81 76 Linux 原生但工业工作台控件与 C++/VTK 组合不够深
D FastCAE 精简改造 52 72 77 国产宽松许可上层加分;依赖链重、当前维护连续性弱、精简与升级复杂
E DTK/UKUI+VTK 54 77 68 国产直接层加分,但 Qt/VTK 仍在;跨发行版与控件完备性较弱
F 全自研 85 90 56 应用层最高,但工具链、Mesa/HDF5 等仍非国产;实现和长期维护范围过大

5.3 严格门槛解释

项目建议使用“国产自研代码占比”“国产直接依赖占比”“宽松可控分”“严格来源分”四个独立指标,禁止把它们合并成一个没有公式的“国产率”。


6. FastCAE 专项结论

2026-08-16 对 FastCAE 官方 Gitee 主仓进行只读审计,得到:

6.1 两种口径

判断 结论
宽松口径 FastCAE 本体采用 BSD-3-Clause,允许建立自有修改分支;但需要逐一审计传递依赖,尤其不能因为顶层许可宽松就忽略 Gmsh 官方许可说明对闭源集成的限制
严格口径 顶层项目为国产,但 Qt/VTK/OCCT/HDF5/Gmsh 等核心底层不是国产;穿透审查不通过
工程可行性 功能多不等于节省总成本。删除几何、网格生成、Python等模块,升级 Qt/VTK,重做 HDF5 Schema 和国产平台验证都需要投入

6.2 如果必须选 FastCAE

只保留必需模块:MainWindow/Plugin 基础、结果显示和少量公共设施;彻底移除 Gmsh、OCCT、TecIO、Python 等 V1 非必要组件;将自动联网下载依赖改为离线依赖仓;补齐测试、第三方软件清单和正式版本标记。先完成“可删除性/可升级性技术验证”,验证通过后再决定是否采用。

本报告最终建议仍是:把 FastCAE 当作国产架构参考和条件式备选,不作为方案 A 的运行时依赖。


7. 推荐架构

┌───────────────────────────────────────────────────────────┐
│ Application Shell:菜单 / 工具栏 / Dock / 布局持久化       │
├───────────────────────────────────────────────────────────┤
│ 自研业务层:Project / Case / Region / Field / Selection    │
│ ActionRegistry / Command / Undo / Batch CLI                │
├───────────────────┬───────────────────┬───────────────────┤
│ Tree & Property   │ 2D Curve Service  │ View/Selection    │
│ 自研模型与编辑器   │ Qwt Adapter       │ VTK Adapter       │
├───────────────────┴───────────────────┴───────────────────┤
│ Visualization Core:VTK filters / mapper / LOD / picking  │
├───────────────────────────────────────────────────────────┤
│ Data Core:HDF5 Schema / Cache / Unit / Result Repository  │
├──────────────────────┬────────────────────────────────────┤
│ Solver Gateway       │ Platform Services                  │
│ process/file/UDS     │ path/process/GL probe/package       │
├──────────────────────┴────────────────────────────────────┤
│ CentOS 7 / 银河麒麟;x86-64 / aarch64;OpenGL / llvmpipe  │
└───────────────────────────────────────────────────────────┘

7.1 不建议做“万能 GUI 抽象层”

Qt 和 wxWidgets 的对象模型、事件、布局、Model/View 与 OpenGL 上下文差异很大。把每个控件抽成统一接口会制造一个新的不成熟 GUI 框架。正确的可替换边界是:

7.2 HDF5 Schema 建议

/meta/schema_version
/meta/producer
/mesh/points              float64[N,3]
/mesh/cells/connectivity   int64[M]
/mesh/cells/offsets        int64[C+1]
/mesh/cells/types          uint8[C]
/mesh/regions/<id>/...
/results/<case>/<step>/point_fields/<name>
/results/<case>/<step>/cell_fields/<name>
/history/residuals/<name>

要求:字段带单位、分量名、位置(node/cell)、时间/工况索引;大数组 chunked;Schema 有主版本和兼容迁移器;Reader 独立于 GUI/VTK,转换层负责构造 VTK 对象。

7.3 求解器集成


8. 版本、构建与发布策略

8.1 CentOS 7 兼容线

CentOS 官方已于 2024-06-30 结束 CentOS Linux 7 生命周期;这意味着系统基线本身不再获得正常维护。CentOS 官方生命周期

推荐固定:

不能把“源码可编译”当作既成事实:Qt 6.8 官方支持列表从 RHEL 8 等现代系统起步,Linux 二进制最低基于 glibc 2.28;CentOS 7 不在支持表内。因此方案 A 在立项第 0 阶段必须先完成源码构建与测试。Qt 6.8 支持平台

8.2 银河麒麟与 aarch64

在版本未知前只制定流程,不承诺兼容:

  1. 确认桌面/服务器版、版本号、X11/Wayland、glibc、GCC、包格式、GPU 驱动。
  2. 海光 x86-64 与飞腾/鲲鹏 aarch64 各选一台验收整机。
  3. 共用领域层、动作层、HDF5 Schema 与可视化抽象;新系统优先建立 Qt 6 + 对应 VTK 构建线。
  4. 同时测试硬件 OpenGL 3.3 和目标系统实际可用的软件驱动;aarch64 不预设 llvmpipe 已可用。
  5. 获取 OS/CPU 厂商兼容认证需要的真实材料清单。

Qt 6.8 官方已经列出 Linux arm64 参考平台,但国产 CPU/麒麟组合不在其明确测试矩阵中,因此仍属项目实测责任。Qt 6.8 支持平台

8.3 离线与可复现


9. 风险与对策

风险 概率/影响 对策 决策门
客户把“国产框架”穿透到 Qt/VTK 中/高 投标前提交依赖树和两套口径,书面确认 未确认不得宣称严格通过
Qt 开源许可义务履行不完整 中/高 动态链接、完整对应源码、替换机制、声明、法律复核 发布前许可证审计
CentOS 7 已停止官方维护、工具链老化 高/高 固定可重复构建的工具链;规划迁移到现代麒麟 首轮技术验证必须跑通
国产 GPU 驱动差异 高/高 只依赖 GL 3.3 Core;运行时探测;硬/软双配置 每台验收整机冒烟
CPU 软件渲染性能不足 高/中 小数据保证、分级精度显示、关闭昂贵效果;不承诺千万级流畅 明确降级验收表
VTK/HDF5 数据多次复制 中/高 所有权规范、块读取、缓存、表面提取、内存剖析 百万/千万样例测量
FastCAE 接管难度被低估 高/中 做精简与升级技术验证;列出可删除依赖和升级补丁 验证不通过即退出
“UI 可替换”被过度抽象 中/中 只抽语义服务,不抽每个 Widget 架构评审检查依赖方向
AI 生成代码混入未知许可 中/高 三方白名单、来源记录、扫描和人工复核 CI 阻断未知许可证
银河麒麟版本未知 高/高 把版本/架构/GPU 作为采购前置项 未拿到实机不承诺

10. 待测评方确认表

在最终方案冻结前,请客户/测评方书面回答:

  1. “国产框架”是否只检查直接 GUI 框架,还是穿透 Qt/VTK/Mesa/HDF5/GCC?
  2. 国外组织主导、采用 BSD/MIT/LGPL 等开源许可、可在内部离线维护的组件是否允许?
  3. Qt 采用 LGPLv3 开源许可并动态链接是否允许;需要提交哪些许可证与源码材料?
  4. 国产化评价是组件数量、代码行、权重还是关键链路门槛?
  5. 目标银河麒麟的产品名称、版本、CPU、GPU、桌面环境和包格式是什么?
  6. 是否要求取得 OS/CPU/GPU 兼容认证证书,还是项目验收测试即可?
  7. “软件渲染可用”的数据规模、帧率和功能降级接受标准是什么?
  8. 是否允许同一源码针对不同平台分别构建和签名?

11. 第三方软件与许可证清单

11.1 首选方案第三方软件清单

组件 建议版本 许可证 原始治理/地域 使用方式 状态 官方说明
Qt Core/Gui/Widgets/OpenGL/PrintSupport 5.15.19 各模块分别核验;只采用可按 LGPLv3 动态链接的模块,不采用只有 GPLv3 的模块 Qt Project / The Qt Company,芬兰 动态链接 采用,需法律复核 Qt 官方许可说明 · 开源许可义务
VTK CentOS 7 候选 9.4.x;新系统经技术验证锁定当前稳定版 BSD-3-Clause(允许闭源商用,保留声明) Kitware/社区,美国主导 动/静态均可,优先动态 采用,分平台锁版 VTK 官方许可说明
Qwt 6.3.0 LGPL2.1 + Qwt 额外例外;允许应用按规定链接而不要求公开应用源码 社区 动态链接 采用 Qwt License 1.0
HDF5 1.14.6 HDF5 License(宽松) The HDF Group,美国 动态链接 采用 HDF5 许可证正文
Mesa llvmpipe 随目标 OS;记录准确包版 多许可证,核心以 MIT 等为主 Mesa/LLVM 社区 系统运行时 采用,逐包审计 Mesa 许可说明 · LLVM 许可政策
GCC/libstdc++ 目标工具链锁定版 GPL + GCC 运行库例外(正常编译不会迫使业务代码开源) GNU/社区 构建与运行时 采用 GCC 运行库许可 · 例外条款
CMake 锁定版 BSD-3-Clause(允许闭源商用,保留声明) Kitware/社区 构建工具 采用 CMake 官方许可说明
Qt Charts GPLv3 或商业许可;开源版直接链接通常会要求组合程序按 GPL 提供源码 Qt 闭源 V1 不采用 Qt Charts 官方许可说明
Gmsh GPL v2 或更高版本并带链接例外;社区版不能集成进计划分发的闭源软件 社区 V1 不引入 Gmsh 官方许可说明
OpenCASCADE LGPL2.1 + 额外例外 Open Cascade SAS,法国 不做几何,V1 不引入 OCCT 官方许可说明

11.2 一手来源

11.3 证据等级

本报告没有直接引用附件中的单位、人员、叶片模型图片和项目细节。附件只用于确认团队已有 C++/Qt 经验,以及本项目应与上游参数化造型职责解耦。


最终建议

现在选 A,架构上保留 B,审计 D,明确拒绝用 E 冒充全栈严格国产;F 只作为预算充足后的长期专项。

方案 A 的真正“自主可控”不是一句“Qt 是开源的”,而是:实际使用版本与补丁全部归档、构建可在断网环境复现、许可证义务可审计、业务和数据模型不被 GUI 锁死、目标国产整机有实测记录,并且团队有能力维护自己的长期分支。