Repository navigation
Releases: Boki-Lee/MD-Master
Release list
v1.3.0 —— 新增: 新建项目自由能目录优化 + US 窗口清单规则更新 | 修复: 不绑核时命令双空格、改名器外来路径判据
[2026-10-10] 同步参考库 10-10 改动:自由能目录带步骤号 & US 窗口规则②重写
✨ 新增
- 新建项目(
new_project.sh --with-free-energy)里自由能四目录带步骤号:2smd/3extract/4us/5pmf,和2min/3eq/4prod对齐看;库里模板保持不编号(自由能四步是步骤 5 的子步骤) - 生成时自动改写脚本内部的兄弟目录引用(
../smd/→../2smd/、../us/→../4us/,注释里的us/windows.txt、pmf/wham.py一起改),并自检每个../xxx/是否都指到已建目录 —— 实测 5 个文件、10 行引用被改写,自检通过 - 只加
--with-free-energy时不再建空的2min/3eq:最小化+平衡本来就在2smd/eq.conf里(minimize 5000+ 1 ns NVT),产物eq_output.coor/.vel/.xsc直接交给 SMD 续跑;建空目录只会让人以为漏跑步骤 new_project.sh的usage()改用 awk 打印头部注释,以后加注释不会再错位
🔧 修复
- 并行参数在「不绑核」时命令行多出一个双空格(
+p16 +devices 0→+p16 +devices 0)—— 这是用户会照着抄的命令,显示要干净 - 改名器里写死的
"/mnt/share"判据换成通用判断(行内出现绝对路径就整行跳过),行为不变,但库里不再残留任何外来路径
📖 规则说明
- US 窗口清单规则②重写:从「弹簧常数必须统一」改为「混用弹簧可以,但每个接头都要验算重叠」。必要判据是相邻两窗 ±3σ 相交(
Δz ≤ 3(σi+σj),σ = sqrt(RT/k)),但判据过了不代表采得到 —— 要按实测直方图数空隙区每 0.01 Å bin 还剩几个样本(≳5 才算稳) - 实测反例(CNT5,2026-10-10):孔区 k=50(σ=0.11) 接体相 k=10(σ=0.245)、间距 1.0 Å 时,±3σ 判据报「余量 6%、刚过」,但空隙区每 bin 只剩 1.6 个样本 → 约 40% 概率冒 1 个 NaN;改成 k=5(σ=0.346) + 间距 1.5 Å 后最薄接头 9.4 样本/bin,而且 5 个窗口就覆盖 +6~+12(比 k=10/步长 1.0 的 7 个更省)
windows_bulk_to_tube.txt的「已知脆弱点」补上同一条教训(那份 47 窗口方案正是强/弱弹簧混用的典型)- 新增「版本号先问」铁律(
AGENTS.md§7):动手改库前先确认目标版本号,收尾更新VERSION+ 写台账 + 给 Release title/note
📦 涉及文件
- 修改:
new_project.sh、free_energy/us/windows.txt、free_energy/us/windows_bulk_to_tube.txt、README.md、free_energy/README.md、WORKFLOW.md、AGENTS.md、VERSION(0.1.0→1.3.0)、bench_namd.sh、free_energy/us/run_all.sh、free_energy/smd/run_smd.sh、logs/CHANGELOG.md - 未动:
../WORKFLOW(参考库,只读);上游自己的logs/CHANGELOG.md不复制(各记各的台账)
v1.2.0 —— 新增:机器自适应自检 修复:路径去本机化
✨ 新增:机器自适应自检(不再照抄别人的并行参数)
- 新增
bench_namd.sh:首次使用本技能时跑一次,它会实测出这台机器最优的
NAMD 并行参数 —— 线程数扫描(8/16/24/32/40/48,自动按核数裁剪)→ 绑核验证
(+setcpuaffinity到底快不快)→ 并发扫描(2、3 路的合计吞吐),
用的基准体系是自带示例模型models/cnt_crown(23045 原子),每档 5000 步,
指标取 NAMD 日志里的PERFORMANCE: ... ns/day。 - 结果写进全局记忆
~/.config/md-master/machine.conf(纯key=value,可被 source)。
全库脚本自动读它 —— 第一次测过之后不用再测,换项目也不用重测,换机器才需要。 - 命令行:
bash bench_namd.sh(无配置自动开测 / 有配置只打印摘要)、
--show看配置与推荐命令、--print single|conc只输出可直接粘贴的命令、
--retest重测(旧配置自动备份)、--env只看环境探测、
--quick省时间、--steps N调精度、--cpu-only兼容非 CUDA 版 NAMD、
--system a.psf a.pdb换基准体系。 - 安全:全程在用户目录的临时目录里跑(
~/.cache/md-master/bench.*),
不写项目目录、不碰任何现存 conf;没有可用 GPU 时报错退出且不写配置。 - 新增
machine.conf.example:全局记忆的样例与每个键的含义。
🔧 修复
free_energy/extract/run_extract.sh:脚本定义了VMD=却仍然直接调用vmd,
自定义路径从未生效 —— 现在真正使用"$VMD",且找不到 VMD 时给出明确报错。bench_namd.sh自测中修掉三个坑(对使用者是"开箱即对",列在这里备查):
NAMD 日志里性能行是全大写PERFORMANCE:(原来的[Pp]erformance:只认驼峰写法)、
墙钟兜底公式的形参取错位、进度信息误写进 stdout 污染了函数返回值。
♻️ 改造:脚本不再写死并行参数
free_energy/us/run_all.sh、free_energy/smd/run_smd.sh、
free_energy/extract/run_extract.sh、free_energy/pmf/run_wham.sh、
analysis/calCurr.sh全部改为读machine.conf:
NTHREADS/MAX_JOBS/ 绑核 / VMD / Python 都从全局记忆取,环境变量仍可临时覆盖。- 缺配置时降级为保守默认值 + 醒目提示(第三方刚克隆下来也能跑),
设MD_MASTER_STRICT=1则改为硬报错。 us/run_all.sh与smd/run_smd.sh新增DRY_RUN=1:只打印将要执行的命令,不真跑。- 「并发时严禁
+setcpuaffinity」这条经验保留并在注释里加粗警示。
📦 发行化
- 路径去本机化:文档与脚本里的
/home/dell/...、/mnt/data2/...、
/mnt/share/free energy-Ca/...全部换成变量、占位符或说明性文字,换机器不会撞路径。 - 文件权限归一:消除 4 个
600文件,脚本一律755、其余644。 - 新增
VERSION(0.1.0)、LICENSE(MIT)、.gitattributes(仓库内统一 LF);
.gitignore增补*.zip与machine.conf(机器记忆属本机,不进仓库)。 - 示例溶剂化日志
models/cnt_crown/1model/system_solv.log里的本机项目路径已清洗
(-minmax数值原样保留,盒子信息不丢)。
📖 文档
WORKFLOW.md§0 重写为「环境与首次自检」:0.1 自检怎么做/结果放哪/为什么必须做,
0.2 路径自动探测顺序,0.3 NAMD 运行规矩;§4/§5/§7 命令示例与 §8 坑、
§10 排错表(新增"未找到机器配置"一行)、§11 命令速查同步更新。README.md新增「三、怎么用 → 零、第一次用」与「五、安装与许可」,目录索引补新文件。SKILL.md新增首次自检说明与第 4 条铁律;AGENTS.md新增 §4.1「首次自检」;
free_energy/README.md并发说明改指machine.conf;示例模型 conf 的头注释不再写死+p32。new_project.sh:新项目会一并复制bench_namd.sh与machine.conf.example,
生成的TODO.md里命令改为读配置,第一步就是"先做机器自检"。
涉及文件
- 新增:
bench_namd.sh、machine.conf.example、VERSION、LICENSE、.gitattributes - 修改(本次):
README.md、WORKFLOW.md、SKILL.md、AGENTS.md、ARCHIVE.md、
new_project.sh、.gitignore、logs/README.md、logs/log_change.sh、logs/CHANGELOG.md、
free_energy/README.md、free_energy/us/run_all.sh、free_energy/us/template.conf、
free_energy/smd/run_smd.sh、free_energy/smd/smd.conf、
free_energy/extract/run_extract.sh、free_energy/extract/extract.tcl、
free_energy/pmf/run_wham.sh、analysis/calCurr.sh、
models/cnt_crown/0build/build_us_system.tcl、models/cnt_crown/1model/system_solv.log、
models/cnt_crown/2min/min.conf、models/cnt_crown/3eq/eq.conf - 未动:
../WORKFLOW(参考库,只读);models/cnt_crown/1model/*.psf/pdb(结构数据);
logs/CHANGELOG.md的历史条目。
已做验证
- 所有
*.sh过bash -n;所有*.py过py_compile。 - 文件权限检查:只有
644/755,无600。 - 隐私路径检查:
grep -rn "/home/dell\|/mnt/data2\|/mnt/share"只剩logs/CHANGELOG.md历史条目。 - 参考库只读校验:
diff -rq ../WORKFLOW MD-Master的差异全部是本侧的可移植化/新增内容,
WORKFLOW内文件无任何新写入。 bench_namd.sh用「假 NAMD」跑通了完整流程(冒烟 → 线程扫描 → 绑核 → 并发 →
写配置 →--show/--print/--retest/--env→ 换主机名提醒),生成配置可被source且取值正确。- 降级路径:用空
HOME/不存在的配置分别跑了us/run_all.sh、smd/run_smd.sh、
run_extract.sh、calCurr.sh的DRY_RUN/报错分支,行为符合预期。 new_project.sh冒烟:新项目里能看到bench_namd.sh、machine.conf.example,
TODO.md命令已为读配置写法。
v1.1.0 — Changelog System & Skill Sync (SMD / US / PMF)
[2026-10-08] 参考库变更日志系统上线 & 技能同步更新
✨ 新增
变更日志铁律:新增「入库 / 改库必带时间戳」规则,所有归档入库和用户直接改库操作均记录到 logs/CHANGELOG.md(2026-10-08 20:50:36)
新建 logs/ 目录:CHANGELOG.md + log_change.sh + README.md
AGENTS.md 新增 §6,并把「写日志」写入 §1 触发条件
ARCHIVE.md 由 6 步改为 7 步,联动清单与示例同步补充
README.md 索引新增 logs/ 条目,铁律由两条改为三条
WORKFLOW.md §12 新增第 5 步及铁律提示
全局规则同步:将「归档触发 + 改库必记日志」同步至全局 ~/.dsh/AGENTS.md,任何工作区均生效(2026-10-08 20:56:08)
技能同步参考库改动(2026-10-08 21:03:46),来源项目 /home/dell/LBJ/WORKFLOW:
SMD 两步走:新增平衡阶段 free_energy/smd/eq.conf(minimize 5000 + 1 ns NVT,离子三维钉死);run_smd.sh 串起 eq→smd,支持 SKIP_EQ / 断点续跑;smd.conf 改为从 eq_output.coor/.vel/.xsc 续跑
US 双窗口清单:windows.txt 改为窄量程 ±5 Å / 27 窗口(默认、含孔心 0.00);新增 windows_bulk_to_tube.txt 宽量程 47 窗口
PMF 绘图:plot_pmf.py 新增 --bulk-z 体相参考点参数
文档可移植性:文档内 /home/dell/LBJ/WORKFLOW 自引用改为可移植写法,new_project.sh 注释同步上游措辞
🐛 修复
文件权限对齐:将 logs/ 下新建文件权限对齐库内惯例(md=644,sh=755),修正默认 600/711 不一致问题(2026-10-08 20:50:47)
📝 规则说明
记录范围:① 归档入库(ARCHIVE.md 流程)② 用户直接改库
时间戳格式:YYYY-MM-DD HH:MM:SS +0800
本日志只增不改(append-only),写错则追加「更正」条目,不删旧条目
不记录:new_project.sh 建的项目骨架、纯只读操作
📦 涉及文件
logs/CHANGELOG.md、logs/README.md、logs/log_change.sh、AGENTS.md、ARCHIVE.md、README.md、WORKFLOW.md、new_project.sh、SKILL.md、free_energy/README.md、free_energy/smd/、free_energy/pmf/plot_pmf.py、free_energy/us/、models/cnt_crown/0build/build_us_system.tcl