Compare commits

...

4 Commits

  1. 33
      CHANGELOG.md
  2. 13
      README.md

33
CHANGELOG.md

@ -2,7 +2,38 @@
> 每周发布一个版本。二进制在 Releases 页下载,本文件只记录每版改动。
## v2026.06.16(示例,按实际日期改)
## v2026.06.15
- 修复(孔压/渗流 HYDRO_MECHANICS):ABAQUS `*Permeability, specific=` 填的是孔隙水
**重度** γ_w = ρ_w·g,转 prj 时液相 `density` 应为**质量密度** ρ_w,旧版误把 γ_w(即
ρg)直接当密度写入,导致重力项多算一个 g。现按 g 还原为 ρ_w(g 优先取模型 GRAV
载荷的量值,无 GRAV 时用标准重力 9.80665)。
- 例:水 γ_w=9810 → density=1000.3(之前错误写成 9810)。
- `permeability`(κ=k/γ_w) 与固相 density 不受影响;无重力载荷的算例结果不变。
- 注意:cems.exe 本次无改动,已有 cems.exe 的同事只需更新 inp2cems.exe。
## v2026.06.14
- 修复:自动区分"面集合"与"体区域"。只有几何上构成实心三维体(存在内部节点)的
`*Elset` 才导出 `*_volume.vtu`;单层薄面集合(如底面约束面 dimian、各侧约束面)
不再导出带厚度的 volume——它们由对应的边界子网格 `模型名_集合名.vtu` 表示。
解决了同事反馈的"dimian 是面集合却被导成带厚度的体"问题。
- 说明:判据基于几何(是否有内部节点),不依赖 inp 里集合是否叫"面"。若某个 elset
本身就是多层实体(如散热影响区 sanremian 的体单元集合),仍会导出 volume。
- 注意:cems.exe 本次无改动,已有 cems.exe 的同事只需更新 inp2cems.exe。
## v2026.06.12 — 格聂山隧道子网格两大问题修复
- 修复【问题1:用集合(set)导出的分区是二维面片/空心壳,不是三维实体】:
旧版把集合只提取成表面面片,中间是空的。现在每个命名 `*Elset` 直接导出
**三维实体**子网格 `模型名_集合名_volume.vtu`(带 MaterialIDs),是真正实心
的三维体,可剖切、测体积。**检查材料分区/体区域请看这个文件。**
- 修复【问题2:排水管之间、衬砌与垫层交界处本有空隙,转换后却"黏在一起"】:
根因是旧版"面汤"算法把内部重复面、跨空隙的"搭桥面"也收了进来,糊住了空隙。
现在只保留唯一的域边界面与区域交界面(格聂山验证:搭桥面 4350 → 0,
体积对标 gmsh 误差 0.21%,排水管方形空洞完整保留)。
- 保障:体集合用作 Dirichlet 边界(如 `*Boundary, 11, 11`)时,集合内部节点
以顶点单元补回子网格,约束仍作用于全部节点,与 ABAQUS 语义一致。
- 注意:cems.exe 本次无改动,已有 cems.exe 的同事只需更新 inp2cems.exe。
## v2026.06.09
- 新增 `*Boundary, amplitude=` 支持:温度/位移 Dirichlet 边界可随时间幅值曲线变化
(核废料储库衰变热案例已验证,CEMS 与 ABAQUS 高度吻合)。

13
README.md

@ -30,6 +30,19 @@ bin/
- 边界/载荷:位移/温度 Dirichlet、CLOAD、DLOAD、DFLUX、FILM
- 时间相关幅值:`*DFLUX, amplitude=`(热流)、`*Boundary, amplitude=`(温度/位移 Dirichlet)
- 装配结构:Part / Instance / Assembly,nset/elset 自动解析
- 材料分区导出:每个命名 `*Elset` 输出三维实体 `模型名_集合名_volume.vtu`(带 MaterialIDs)
## 输出文件说明
| 文件 | 用途 |
| --- | --- |
| `模型名_domain.vtu` | 完整计算域(求解器主网格),按 MaterialIDs 着色看整体材料分布 |
| `模型名_集合名_volume.vtu` | 三维实体分区,**检查材料分区/体区域看这个**,空隙真实保留。仅对几何上是实心三维体的集合生成 |
| `模型名_集合名.vtu` | 边界条件子网格(表面/节点),求解器内部使用,不代表实体。**面集合(如底面约束面)只有这个文件,没有 volume** |
| `模型名.prj` | CEMS 工程文件,`cems.exe 模型名.prj` 直接求解 |
> 建模建议:每个材料分区同时建 `*Elset`(体单元集合),转换器靠它生成
> `*_volume.vtu` 和材料编号;只建 `*Nset` 只能得到表面子网格。
## 未支持(已知)

Loading…
Cancel
Save