虚拟实验:检索、接手与复现
从虚拟实验目录选择实验。机器入口为 simulations/registry.json:使用稳定的 experiment_id 定位课程,再由 resources 读取页面、物理模型、观测、文献和验证记录。各实验的模型函数及测量规则保存在独立模块中。
按问题定位
表 1 文件入口与核对内容
| 任务 | 入口 | 核对内容 |
|---|---|---|
| 解释模型 | resources.model_evidence |
方程、假设、初始与边界条件、适用范围 |
| 追溯文献 | resources.references_json、references_bibtex |
书目信息、DOI、正文定位、全文哈希和用途 |
| 读取参数 | resources.simulation_model,以及实验提供的 model-spec.json |
默认值、开放范围、单位、原记录或教学场景身份 |
| 核对观测 | resources.simulation_observations |
原字符、规范数值、派生量及规范输入哈希 |
| 检查算法 | 登记项的 tests 与 validator |
解析算例、极限、独立算法、收敛性及容差 |
| 检查实际运行 | resources.simulation_validation、frontend_validation |
模型与资源哈希、运行环境、数值结果、交互和截图 |
| 维护页面 | simulation_html、simulation_controller、绘图模块与样式 |
控件、状态恢复、图轴、题注、公式和窄屏 |
| 维护发布与检索 | build_pages.py、agent_catalog.py |
登记状态、资源白名单、项目子路径和生成目录 |
仿真入口见各实验 README。模型使用的单位、方向约定与数据结构按实验声明;例如光学输入常用纳米或毫米,内部传播统一换算后计算。先检查这些约定,再比较跨语言的未修约结果。
文献检索与证据
公共理论按振动波动、电路、电磁场、几何光学、波动光学和力热测量组织;具体实验核对自己的装置关系、修正项与材料参数。复用文献时为本实验另建方程及参数映射。
- 在 Chrome 延续维护者已登录的两校 WebVPN 会话,交叉检索同一目标全文,记录检索式、数据库、日期与获取状态。
- 核对题名、作者、年卷期页码和 DOI,下载原文到本地
archive/literature/,计算 SHA-256。 - 实际阅读正文,定位页码、章节或公式号;数学页同时核看原页,区分排印与文本提取问题。
- 分别记录模型依据、参数来源、适用范围和验证方法。发现公式问题时保存原式、推导及核查算例。
- 两校均未取得目标全文时使用读秀文献传递,记录申请、接收与核读状态,收到文件后补充哈希。
公开书目提供稳定 DOI 或出版机构入口、研究摘要和证据定位。本地归档保存全文与访问记录,archive/ 由 Git 忽略。数据库会话地址及账号信息保留在浏览器会话中。
数据身份与测量解释
表 2 数据类别
| 类别 | 用途 | 分析规则 |
|---|---|---|
| 原报告观测 | 复算既有实验记录 | 沿用原批次、单位和已知测量条件 |
| 文献或校准参数 | 建立具体装置或材料关系 | 保存来源、温度、波长与适用条件 |
| 独立教学参数 | 探索可验证的物理关系 | 在模型证据中声明数值、范围与教学身份 |
| 自动模型记录 | 检验确定性前向计算及反演 | 保留完整参数、版本与生成方式 |
| 用户操作读数 | 练习定位、计时、调零与采样 | 保存操作条件、原始读数及来源类别 |
按实验规定筛选可比较的记录,保持拟合所需条件一致。用于确定参数的数据与独立验证数据分别标记。回归标准误、仪器分辨率和系统不确定度分别解释;缺少仪器信息时保留分析边界。
执行独立验证
从仓库根目录准备 Python 项目依赖与 Node.js,按稳定标识运行:
python scripts/validate_simulations.py --experiment course-03/rlc-resonance
python scripts/validate_simulations.py --all
python -m pytest
总验证器执行运行模块语法检查、Node 模型测试及各实验的 Python 独立参考计算,结果保存在 .build/simulation-checks/<运行编号>/。单项原命令继续有效,例如:
node --test tests/pendulum-model.test.mjs
python scripts/validate_pendulum_simulation.py
单摆周期的椭圆积分以模数 $k=\sin(\theta_0/2)$ 表示,SciPy ellipk 使用参数 $m=k^2$。其他实验分别采用节点方程、数值求根、独立积分、几何或复振幅计算作为参考;方法与容差写入本实验验证记录。
核验一次运行时同时检查执行状态、退出码、失败项、参数组、容差、输入与代码哈希。只生成参考值的运行按脚本约定保留 not_run 等浏览器对照状态。
前端与发布
使用 HTTP 预览构建后的站点,保留 /general-physics-lab/ 项目子路径。数学资源由构建注入本地 MathJax,源页面维护标准 LaTeX。
表 3 实际浏览器验收
| 对象 | 核验行为 |
|---|---|
| 参数与操作 | 默认、边界、非法输入、操作次序及读数变化 |
| 时间演化 | 播放、暂停、复位、实际标签切换后的计时与恢复 |
| 记录与反演 | 采样、分组条件、拟合、已知关系和操作读数 |
| 保存与导出 | 刷新恢复、清空、真实 CSV/JSON 文件、单位及模型版本 |
| 公式与视觉 | 宋体、Times New Roman、上下标、轴标、图下题与表上题、桌面及窄屏 |
| 资源 | 实际 HTTP 返回、模块和源文件 SHA、引用与数据链接 |
数值验证与浏览器验收分别记录。源码或页面变化后,更新受影响阶段及下游记录;共同资源变更触发已上线实验回归。前端记录的 source_hashes 绑定当时实际验收的资源版本。
python scripts/build_simulation_scientific_index.py --require-all-ready
python scripts/build_simulation_scientific_index.py --check
python scripts/agent_catalog.py build
python scripts/agent_catalog.py build --check
python scripts/check_agent_docs.py
python scripts/build_pages.py
python scripts/check_pages.py --report .build/pages/verification.json
登记表中通过科学与前端验收的页面进入正式站点。目录、README 在线入口及 llms.txt 系列随登记结果同步。
原成稿回归
在独立运行目录保存原报告、Jupyter、Wolfram、规范数据、代码及结果的 SHA-256 基线。平台构建后按同一路径集合复核;README 导航与新增网页资源单独审阅。原实验科学内容修订按双端计算与三稿验收流程建立新基线。
接手时先读登记状态、最新验证记录和模型证据中的待核事项,再处理对应实验。引用计算结果时附实验标识、模型版本、参数及单位、适用条件和 Git 提交。