Skip to content

仿真配置与异步调度中心

CoalBaseLayout.vue 是系统的“控制塔”。它负责收集复杂的化学动力学参数(如 NMR 结构参数、升温速率等),通过 WebSocket-like 轮询机制 监控后端高性能计算引擎状态,并处理计算结果的实时回填与可视化触发。


由于 CPD 动力学模拟涉及高阶微分方程组(ODE)的数值求解,耗时较长,组件采用了“提交-轮询-状态同步”的非阻塞架构。

持久化任务恢复

利用 localStorage 存储 task_id,即使页面意外刷新,onMounted 钩子也能自动找回进度并恢复轮询。

前端降采样保护

在提交至 Redis 消息队列前,对超过 400 点的实验曲线进行等间隔采样,防止网络拥塞与内存溢出。

多模态参数同步

支持理想升温(动力学模式)与实验曲线(使用表格模式)的动态切换,并实时同步 UI 状态至 Payload。

原子级状态回填

计算完成后,支持将后端优化的 13C NMR 参数自动回填至输入框,实现“分析-优化-再分析”的闭环。

  1. 参数序列化:执行 JSON.parse(JSON.stringify()) 深拷贝,消除 Vue Proxy 对 Celery 序列化的干扰。
  2. 任务推送:POST 请求至 /api/simulate,获取后端分发的唯一任务标识 task_id
  3. 状态轮询:开启 2000ms 间隔的定时器,监控 /api/task_status 接口。
  4. 计算计时器:通过 startJobTimer 实时展示计算耗时,增强用户感知。
  5. 数据落地:计算成功后销毁轮询器,同步结果至 simResult 并激活图表模块。

组件内部维护了 20 余个物理参数,分为以下几个核心维度:

维度参数示例物理意义
结构参数 (NMR)p0, c0, sigp1煤结构的配位数、芳香分率等
动力学 (Kinetics)ab, eb0, ag桥键断裂及气体析出的指前因子与活化能
工况 (Operation)press_pa, kT, T_max环境压力、升温速率、最高温度