- Click Use this template.
- Clone your project.
- Run
pnpm installto install dependencies. - Run
npx napi rename -n [name]command under the project folder to rename your package.
- pnpm
- pnpm build
- pnpm test
┌──── L6 表现层 (Presentation) ────┐
│ Electron + AntV X6 + Leptos │
├──── L5 应用层 (Application) ────┤
│ 工程操作 / Undo / Case 管理 │
├──── L4 仿真服务层 (Simulation) ─┤
│ 求解调度 / 收敛策略 / 任务管理 │
├──── L3 领域模型层 (Domain) ─────┤
│ Unit / Stream / Network / Spec │
├──── L2 数学与物性层 (Math):这块有问题 ─────┤
│ 物性 / 数值方法 / 方程求解 │
├──── L1 基础设施层 (Infra) ──────┤
│ DB / 文件 / 日志 / 并发 │
└───────────────────────────────┘
目标:高性能、可扩展的工业级流程交互界面
- 容器:Electron
- UI 框架:Leptos(WASM)
- 流程编辑器:AntV X6
- 构建工具:Vite
-
前端引擎
- Leptos(WASM)承载核心 UI 状态与业务逻辑
-
渲染优化(大规模流程图)
-
AntV X6 启用 Canvas / Virtual DOM
-
引入 LOD(Level of Detail)策略:
- 🔍 高倍率:仅显示节点轮廓
- 🔎 中倍率:显示设备类型
- 🎯 低倍率(聚焦):显示实时流股参数
-
-
状态同步
- 使用 Reactive Storage
- UI 仅订阅当前 Viewport 内节点 的状态变化
角色定位:UI 与仿真内核之间的“语义缓冲区”
-
计算图构建
-
将流程节点转化为:
- Directed Acyclic Graph(DAG)
- 或 Cyclic Graph(含 recycle)
-
-
子系统解耦
-
自动切分大系统为多个 Sub-domain
-
每个子系统:
- 独立 Undo / Redo 栈
- 独立参数事务
-
-
工程语义
- Case 管理
- 参数修改事务
- 操作级 Undo / Redo(非数值级)
目标:高可扩展、高可靠的求解调度系统
- Tearing
- Recycle 处理
- 收敛策略
- 计算顺序管理
- 错误与异常处理
-
求解模式
- 基于 Rust + Tokio 的 Task Worker 模型
- 横向扩展(多核 / 多节点)
-
热启动(Hot Start)
- 保存历史收敛解
- 作为新工况 Initial Guess
-
负载均衡
- 根据子系统规模与非线性程度
- 动态分配计算资源
数字孪生的语义核心
UnitOperationMaterialStreamEnergyStreamSpecificationNetwork
- 强制执行 Unit Model Interface(UMI)
// L3
trait UnitOperation {
fn residual(&self, x: &[f64], r: &mut [f64]);
fn jacobian(&self, x: &[f64], entries: &mut Vec<(usize, usize, f64)>);
}
// L2
trait NonlinearProblem {
fn assemble_residual(&self, x: &[f64], r: &mut [f64]);
fn assemble_jacobian(&self, x: &[f64], j: &mut SparseMatrix);
}- state:可计算变量(自由度)
- spec:约束条件(设计规格)
-
Global Parameter Space
- 支持数万个参数
- 高效索引 / 批量修改
目标:工业级高性能数值内核(HPC)
- 数值方法
- 热物性计算
- 非线性方程组
- Jacobian 生成
-
稀疏矩阵求解
- KLU
- SuperLU
- Intel MKL PARDISO
-
自动微分(AD)
- Rust 自动微分库
- 自动生成 Jacobian
- 相比数值差分:
-
多精度支持
- FP32 / FP64 动态切换
-
外部集成
- Fortran / C 数值库
- 外部 Property Package
目标:稳定、可维护、Rust-native
| 模块 | 技术 |
|---|---|
| DB | SQLite |
| ORM | SeaORM |
| 日志 | tracing |
| 并发 | Rust async + rayon |
| 文件 | serde + 自定义格式 |
-
高速通信总线
- gRPC
- Zenoh(Rust-native,适合高频数据流)
-
数据存储
- Parquet(OLAP / 结果分析)
- RocksDB(临时快照 / 热状态)
- sqlite 本地数据存储