Skip to content

Commit

Permalink
🔖 发布0.2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
yanang007 committed Jul 13, 2024
1 parent ff5aa7d commit 299e397
Show file tree
Hide file tree
Showing 2 changed files with 215 additions and 0 deletions.
62 changes: 62 additions & 0 deletions docs/changelog/0.2.0-changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,62 @@

## 0.2.0 (2024-07-13)

### Added

- 👷‍♂️ 实现Github Actions下的自动打包与测试 [[969003f](https://github.com/MetallyInduced/metalpy/commit/969003f87619728f0aa96794894ecfa5876fe2ad)]
- ✨ 实现基于BCE加速的退磁求解器BCESolver,提高规则网格退磁效应求解效率 [[d952e30](https://github.com/MetallyInduced/metalpy/commit/d952e30675cc80d28dfcd57b751d4c0c3519a27e)]
- ✨ ModelledMesh实现MeshZ格式用于持久化存储 [[d904dd4](https://github.com/MetallyInduced/metalpy/commit/d904dd4a4d8c10abeff0f9135a0c64502b62588e)]
- ✨ CompressedSolver实现cutoff参数,将超出截断距离的元素设置为0 [[62e2dda](https://github.com/MetallyInduced/metalpy/commit/62e2ddaa07ffdeef459724af5021a49d7d69024b)]
- ✨ Demaged插件新增cutoff参数,用于指定退磁效应求解的截断距离 [[0c45fa3](https://github.com/MetallyInduced/metalpy/commit/0c45fa35826e768644dc7d5b37b5383fcad9cb1f)]
- ✨ file_cached新增serializer参数,支持指定缓存文件格式 [[3bdc9a8](https://github.com/MetallyInduced/metalpy/commit/3bdc9a8babda9133c47b2942206e0a2b6c83b7d4)]
- ✨ AerialSurvey.to_polydata实现支持指定输出PolyData的点数据(以实现自定义着色) [[3172e42](https://github.com/MetallyInduced/metalpy/commit/3172e429e015b9aa444f84ade7e59c144b66d34c)]
- ✨ 实现基于关系索引的退磁求解器IndexedSolver,实现任意大小网格的退磁计算 [[e3bf199](https://github.com/MetallyInduced/metalpy/commit/e3bf19995e50d94d22b4cbea8a935ce04200d20a)]
- ✨ 实现Scene.build_tree支持多model场景 [[d46d687](https://github.com/MetallyInduced/metalpy/commit/d46d687c22524b0a4453e6449aabaff70e13cb12)]
- ✨ ModelledMesh完善对稀疏索引的支持 [[94f55a4](https://github.com/MetallyInduced/metalpy/commit/94f55a474a932eb0101263d002ffca0b09deb5e3)]
- ✨ 实现Scene.build_tree支持自顶向下或自底向上地构建八叉树网格 [[c87d2e7](https://github.com/MetallyInduced/metalpy/commit/c87d2e7bdc313b661295531c89b7e906a735a3e1)]
- ✨ Scene.build_active添加指定截断有效位数的容差参数 [[2a108e6](https://github.com/MetallyInduced/metalpy/commit/2a108e6cd03fbfd2f3ca1cda07256468c44a497f)]
- ✨ Prism实现重相交算法拆解复杂多边形 [[8a9d031](https://github.com/MetallyInduced/metalpy/commit/8a9d031d704fa1e6e4ef6b3df10671c4f263a960)]
- ✨ 实现SimPEG代数多重网格求解器 [[e501bad](https://github.com/MetallyInduced/metalpy/commit/e501bad0ee350956e4a35af09b962e9970cc86e0)]
- ✨ Tied实现初步支持Simulation3DDifferential [[4530f61](https://github.com/MetallyInduced/metalpy/commit/4530f61bce51db1768593157c4b4332d08f6df9b)]
- ✨ 实现DispatcherMixin以抽象Mixin根据宿主类匹配具体实现的范式 [[bbb9108](https://github.com/MetallyInduced/metalpy/commit/bbb9108f6782064cd79abacc9008a49028340200)]
- ✨ Progressed实现支持单进程模式下的BasePFSimulation [[9b49e78](https://github.com/MetallyInduced/metalpy/commit/9b49e7844064cf67214bfb3346535c2c1d4f8520)]
- ✨ 扩展taichi_lazy为ti_lazy模块,实现缓式加载taichi和构建ti.kernel [[19dcdf4](https://github.com/MetallyInduced/metalpy/commit/19dcdf45db80a173d645aebed6ec1e30651b79c1)]
- ✅ 添加SimulationBuilder相关测试 [[5e915b7](https://github.com/MetallyInduced/metalpy/commit/5e915b7e820f1009b404555a533d40174b83fa29)]
- ✨ Obj2添加reset_origin和keep_origin_transform参数来控制局部坐标系的行为 [[71b4a5a](https://github.com/MetallyInduced/metalpy/commit/71b4a5a817ccf62e5a6e7cac80e76ec297f4b072)]
- ✨ Taichi磁正演和退磁求解器支持指定核矩阵数据类型(Tied和Demaged插件) [[be24917](https://github.com/MetallyInduced/metalpy/commit/be24917100075894e4cb685f941524a897ba40b3)]
- ✨ 实现Simulation3DDipoles以支持磁偶极子正反演 [[6c05622](https://github.com/MetallyInduced/metalpy/commit/6c05622e821d77e1840adf46d305a8f4149ae9cd)]
- ✨ ModelledMesh添加expand方法用于通过变长网格扩张或收缩网格边界 [[79dd744](https://github.com/MetallyInduced/metalpy/commit/79dd744447addbf6916dc95bd090c09b28ba3f73)]
- ✨ 实现Formatted插件支持将正演结果格式化为更直观的矩阵形式 [[2d797aa](https://github.com/MetallyInduced/metalpy/commit/2d797aacf0d88020f2071df2cf91362c8aed616a)]
- ✨ 实现Simulation3DDifferentialBuilder用于构建差分方程正演 [[1de323c](https://github.com/MetallyInduced/metalpy/commit/1de323cc9e13f0f2e34efe842af6858b7ed63746)]
- ✨ Cuboid实现高性能do_compute_implicit_distance方法 [[887376a](https://github.com/MetallyInduced/metalpy/commit/887376a50eb68301607c6c3eaa82d35c24cdfdff)]
- ✨ Scene.of改为classmethod实现,以支持Scene继承 [[e9c8993](https://github.com/MetallyInduced/metalpy/commit/e9c8993a2a2a2da76f03a96b618921aa4cc14657)]

### Changed

- ♻️ 将int类型显式指定为np.intp(size_t) [[ff5aa7d](https://github.com/MetallyInduced/metalpy/commit/ff5aa7d81eea70ab5587984df2dd7687d998e863)]
- ♻️ 分离BCESolver的torch和numpy原语 [[f9d13ac](https://github.com/MetallyInduced/metalpy/commit/f9d13ac53a13a19b696cc47e2bb1f964dd2661e5)]
- 🚸 优化dispatch_solver中退磁求解器默认选择分配逻辑 [[9f94888](https://github.com/MetallyInduced/metalpy/commit/9f948885c7b61d1709c8bf49a586ca1802bcb078)]
- ⚡ DemagSolverContext改为采用CachedProperty实现,减少不必要的内存消耗 [[5fadb63](https://github.com/MetallyInduced/metalpy/commit/5fadb6353358188e400ae2ebda778be8d9a0f597)]
- ⚡ IndexedSolver实现细粒度并行,优化计算效率 [[6da13fb](https://github.com/MetallyInduced/metalpy/commit/6da13fb9eef868f7d00dcfb1ba619fda01dd7358)]
- ⚡ 优化IndexedSolver以支持仅求解有效网格退磁效应 [[3520da0](https://github.com/MetallyInduced/metalpy/commit/3520da0d59b48e44a3d32f8f6912f2c56d193a5e)]
- ⚡ 实现跳过TreeMesh.refine构造八叉树,提高构造效率 [[d14d5e2](https://github.com/MetallyInduced/metalpy/commit/d14d5e2d884441444351857a5965992a2619cb06)]
- ♻️ 优化PTOPO格式,允许省略上下底面高度,并精简嵌套结构 [[b9c3589](https://github.com/MetallyInduced/metalpy/commit/b9c3589d3eb77de30159b26b7eb7afb002d35ccd)]
- ♻️ 重写Distributed插件,改为基于DispatcherMixin实现 [[0bfac3d](https://github.com/MetallyInduced/metalpy/commit/0bfac3d03a836d64941428091ef0a094ecd4027e)]
- ♻️ 重构Shape3D的默认实现设计 [[4da63a3](https://github.com/MetallyInduced/metalpy/commit/4da63a338c303f86c1b85298eb02b5008cce00aa)]
- ♻️ 优化ti_solvers的空间分配逻辑,将x和b的分配细节移至求解器内 [[b36da60](https://github.com/MetallyInduced/metalpy/commit/b36da606415020eb0ff38f615b4d2638bc47de44)]
- ♻️ Scene.create_mesh改为返回ModelledMesh实例以实现更灵活地网格优化操作 [[6898778](https://github.com/MetallyInduced/metalpy/commit/6898778a6c082f9630aac8bb4d5ac4d1de92efc9)]

### Breaking changes

- 💥 为实现更一致的接口,织入模式修饰器移至Mixin内作为静态函数存在(mixin.xxx -> Mixin.xxx)(涉及replaces/before/after/ignores) [[bbb9108](https://github.com/MetallyInduced/metalpy/commit/bbb9108f6782064cd79abacc9008a49028340200)]
- 💥 由于明显的使用倾向,Shape3D.rotate现在默认使用角度制 [[4da63a3](https://github.com/MetallyInduced/metalpy/commit/4da63a338c303f86c1b85298eb02b5008cce00aa)]

### Fixed

- 🐛 修复AerialSurvey.to_polydata错误判断参数z类型的问题 [[cb04f9f](https://github.com/MetallyInduced/metalpy/commit/cb04f9f9f3576184a58d90d31fac9e1164ecc9fc)]
- 🐛 修复FixedShapeNDArray中__array_ufunc__接收不同类型的数组时意外返回NotImplemented的问题 [[8935a7b](https://github.com/MetallyInduced/metalpy/commit/8935a7b86342148109f7b4e8eb9f40b6d1dfae93)]
- 🐛 修复Obj2中split_models_in_memory缓存模型错误的问题 [[08f8985](https://github.com/MetallyInduced/metalpy/commit/08f8985151bcf6f27859d96ae07aaa8d5f5b03f4)]
- 🐛 修复耳切法三角化多边形时错误处理共线外点的问题 [[fe6577b](https://github.com/MetallyInduced/metalpy/commit/fe6577b7b0501751ab55855d573cd04d432cfa7c)]
- 🐛 修复GPU版Integrated退磁求解器分配显存失败的问题 [[ac3cb92](https://github.com/MetallyInduced/metalpy/commit/ac3cb92b0f0ca555161c1c7d6c8d58a5805b3632)]


153 changes: 153 additions & 0 deletions docs/release/0.2.0-notes.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@

## METALpy 0.2.0 Release Notes

发布 METALpy 0.2.0.

主要更新内容为完善Demaged插件、Scene支持构建八叉树、ModelledMesh支持扩张边界、
实现PDE正演Simulation3DDifferential和磁偶极子正演Simulation3DDipoles等。

**Demaged**

引入采用BCE算法的 `BCESolver` ,支持任意大小的规则网格,并将核矩阵乘法的时间复杂度优化为线性复杂度O(n),有效提高退磁的效应求解效率。

`BCESolver` 在规则网格上的求解效率显著优于传统方法,现已作为规则网格上退磁效应的默认求解器。

```python
builder = SimulationBuilder.of(magnetics.Simulation3DIntegral)
builder.patched(
Tied(arch='gpu'),
Progressed(),
Demaged(progress=True) # 规则网格上现在默认采用BCE求解器
)
```

**Simulation3DDifferential**

实现了适用于 `Simulation3DDifferential` 的builder,支持构建差分方程正演。

同时基于 `PyAMG` (CPU) / `PyAMGX` (CUDA) 实现代数多重网格法求解器 `AMGSolver` ,加速微分方程求解效率。

```python
builder = SimulationBuilder.of(magnetics.Simulation3DDifferential)
builder.patched(Formatted(), Fixed()) # 修复并格式化dpred函数的输出结果
builder.solver(AMGSolver, progress=True)
builder.receivers(rxLoc, components)
builder.chi_map() # 将磁化率映射为磁导率
builder.active_mesh(model_mesh) # 自动将有效网格上的模型嵌入到完整网格空间中

builder.build().dpred(susc_model)
```

**Simulation3DDipoles**

实现磁偶极子正演 `Simulation3DDipoles` 以及对应的builder,支持磁偶极子的正演计算。

```python
builder = SimulationBuilder.of(Simulation3DDipoles)
builder.sources(dipole_location) # 设置磁偶极子位置
builder.receivers(rx_loc, components)
builder.build().dpred(moment_model) # 输入磁矩模型,计算磁偶极子正演响应
```

**Formatted**

新增 `Formatted` 插件,支持将正演结果格式化为更直观的矩阵或表格形式。

```python
builder = SimulationBuilder.of(magnetics.Simulation3DIntegral)
# ...
builder.patched(Formatted(pandas=True, locations=True)) # 将预测结果格式化为pd.DataFrame,并和测点坐标关联
# ...
```

```shell
<<< builder.build().dpred(susc_model)
>>> x y z ... byy byz bzz
>>> 0 -3.0 -3.000000 20.0 ... -26.565485 -18.380489 53.915525
>>> 1 -3.0 -2.866667 20.0 ... -27.014855 -17.717098 54.499417
>>> 2 -3.0 -2.733333 20.0 ... -27.449319 -17.036763 55.063062
>>> ... ... ... ... ... ... ... ...
>>> 2115 3.0 3.000000 20.0 ... -27.137554 17.432963 54.230056
>>> [2116 rows x 13 columns]
```

**Scene.build_tree**

新增 `Scene.build_tree` 方法,支持自顶向下或自底向上地构建八叉树网格。

```python
bunny = pyvista.examples.downloads.download_bunny()
bunny.flip_normals()
scene = Scene.of(Obj2(bunny, surface_range=[None, 0]))

octree_mesh = scene.build_tree(n_cells=[64, 62, 48]) # 会自动扩展为2的幂次方个网格
```

**ModelledMesh**

新增 `ModelledMesh.expand` 方法,支持对网格进行扩张或收缩操作。

```python
new_bounds = model_mesh.bounds.expand(proportion=0.5) # 设置新网格区域边界为原边界在各个方向扩张50%
model_mesh = model_mesh.expand(new_bounds, ratio=1.2) # 采用指数扩大网格,将网格扩张到覆盖新边界区域
```

### Added

- 👷‍♂️ 实现Github Actions下的自动打包与测试 [[969003f](https://github.com/MetallyInduced/metalpy/commit/969003f87619728f0aa96794894ecfa5876fe2ad)]
- ✨ 实现基于BCE加速的退磁求解器BCESolver,提高规则网格退磁效应求解效率 [[d952e30](https://github.com/MetallyInduced/metalpy/commit/d952e30675cc80d28dfcd57b751d4c0c3519a27e)]
- ✨ ModelledMesh实现MeshZ格式用于持久化存储 [[d904dd4](https://github.com/MetallyInduced/metalpy/commit/d904dd4a4d8c10abeff0f9135a0c64502b62588e)]
- ✨ CompressedSolver实现cutoff参数,将超出截断距离的元素设置为0 [[62e2dda](https://github.com/MetallyInduced/metalpy/commit/62e2ddaa07ffdeef459724af5021a49d7d69024b)]
- ✨ Demaged插件新增cutoff参数,用于指定退磁效应求解的截断距离 [[0c45fa3](https://github.com/MetallyInduced/metalpy/commit/0c45fa35826e768644dc7d5b37b5383fcad9cb1f)]
- ✨ file_cached新增serializer参数,支持指定缓存文件格式 [[3bdc9a8](https://github.com/MetallyInduced/metalpy/commit/3bdc9a8babda9133c47b2942206e0a2b6c83b7d4)]
- ✨ AerialSurvey.to_polydata实现支持指定输出PolyData的点数据(以实现自定义着色) [[3172e42](https://github.com/MetallyInduced/metalpy/commit/3172e429e015b9aa444f84ade7e59c144b66d34c)]
- ✨ 实现基于关系索引的退磁求解器IndexedSolver,实现任意大小网格的退磁计算 [[e3bf199](https://github.com/MetallyInduced/metalpy/commit/e3bf19995e50d94d22b4cbea8a935ce04200d20a)]
- ✨ 实现Scene.build_tree支持多model场景 [[d46d687](https://github.com/MetallyInduced/metalpy/commit/d46d687c22524b0a4453e6449aabaff70e13cb12)]
- ✨ ModelledMesh完善对稀疏索引的支持 [[94f55a4](https://github.com/MetallyInduced/metalpy/commit/94f55a474a932eb0101263d002ffca0b09deb5e3)]
- ✨ 实现Scene.build_tree支持自顶向下或自底向上地构建八叉树网格 [[c87d2e7](https://github.com/MetallyInduced/metalpy/commit/c87d2e7bdc313b661295531c89b7e906a735a3e1)]
- ✨ Scene.build_active添加指定截断有效位数的容差参数 [[2a108e6](https://github.com/MetallyInduced/metalpy/commit/2a108e6cd03fbfd2f3ca1cda07256468c44a497f)]
- ✨ Prism实现重相交算法拆解复杂多边形 [[8a9d031](https://github.com/MetallyInduced/metalpy/commit/8a9d031d704fa1e6e4ef6b3df10671c4f263a960)]
- ✨ 实现SimPEG代数多重网格求解器 [[e501bad](https://github.com/MetallyInduced/metalpy/commit/e501bad0ee350956e4a35af09b962e9970cc86e0)]
- ✨ Tied实现初步支持Simulation3DDifferential [[4530f61](https://github.com/MetallyInduced/metalpy/commit/4530f61bce51db1768593157c4b4332d08f6df9b)]
- ✨ 实现DispatcherMixin以抽象Mixin根据宿主类匹配具体实现的范式 [[bbb9108](https://github.com/MetallyInduced/metalpy/commit/bbb9108f6782064cd79abacc9008a49028340200)]
- ✨ Progressed实现支持单进程模式下的BasePFSimulation [[9b49e78](https://github.com/MetallyInduced/metalpy/commit/9b49e7844064cf67214bfb3346535c2c1d4f8520)]
- ✨ 扩展taichi_lazy为ti_lazy模块,实现缓式加载taichi和构建ti.kernel [[19dcdf4](https://github.com/MetallyInduced/metalpy/commit/19dcdf45db80a173d645aebed6ec1e30651b79c1)]
- ✅ 添加SimulationBuilder相关测试 [[5e915b7](https://github.com/MetallyInduced/metalpy/commit/5e915b7e820f1009b404555a533d40174b83fa29)]
- ✨ Obj2添加reset_origin和keep_origin_transform参数来控制局部坐标系的行为 [[71b4a5a](https://github.com/MetallyInduced/metalpy/commit/71b4a5a817ccf62e5a6e7cac80e76ec297f4b072)]
- ✨ Taichi磁正演和退磁求解器支持指定核矩阵数据类型(Tied和Demaged插件) [[be24917](https://github.com/MetallyInduced/metalpy/commit/be24917100075894e4cb685f941524a897ba40b3)]
- ✨ 实现Simulation3DDipoles以支持磁偶极子正反演 [[6c05622](https://github.com/MetallyInduced/metalpy/commit/6c05622e821d77e1840adf46d305a8f4149ae9cd)]
- ✨ ModelledMesh添加expand方法用于通过变长网格扩张或收缩网格边界 [[79dd744](https://github.com/MetallyInduced/metalpy/commit/79dd744447addbf6916dc95bd090c09b28ba3f73)]
- ✨ 实现Formatted插件支持将正演结果格式化为更直观的矩阵形式 [[2d797aa](https://github.com/MetallyInduced/metalpy/commit/2d797aacf0d88020f2071df2cf91362c8aed616a)]
- ✨ 实现Simulation3DDifferentialBuilder用于构建差分方程正演 [[1de323c](https://github.com/MetallyInduced/metalpy/commit/1de323cc9e13f0f2e34efe842af6858b7ed63746)]
- ✨ Cuboid实现高性能do_compute_implicit_distance方法 [[887376a](https://github.com/MetallyInduced/metalpy/commit/887376a50eb68301607c6c3eaa82d35c24cdfdff)]
- ✨ Scene.of改为classmethod实现,以支持Scene继承 [[e9c8993](https://github.com/MetallyInduced/metalpy/commit/e9c8993a2a2a2da76f03a96b618921aa4cc14657)]

### Changed

- ♻️ 将int类型显式指定为np.intp(size_t) [[ff5aa7d](https://github.com/MetallyInduced/metalpy/commit/ff5aa7d81eea70ab5587984df2dd7687d998e863)]
- ♻️ 分离BCESolver的torch和numpy原语 [[f9d13ac](https://github.com/MetallyInduced/metalpy/commit/f9d13ac53a13a19b696cc47e2bb1f964dd2661e5)]
- 🚸 优化dispatch_solver中退磁求解器默认选择分配逻辑 [[9f94888](https://github.com/MetallyInduced/metalpy/commit/9f948885c7b61d1709c8bf49a586ca1802bcb078)]
- ⚡ DemagSolverContext改为采用CachedProperty实现,减少不必要的内存消耗 [[5fadb63](https://github.com/MetallyInduced/metalpy/commit/5fadb6353358188e400ae2ebda778be8d9a0f597)]
- ⚡ IndexedSolver实现细粒度并行,优化计算效率 [[6da13fb](https://github.com/MetallyInduced/metalpy/commit/6da13fb9eef868f7d00dcfb1ba619fda01dd7358)]
- ⚡ 优化IndexedSolver以支持仅求解有效网格退磁效应 [[3520da0](https://github.com/MetallyInduced/metalpy/commit/3520da0d59b48e44a3d32f8f6912f2c56d193a5e)]
- ⚡ 实现跳过TreeMesh.refine构造八叉树,提高构造效率 [[d14d5e2](https://github.com/MetallyInduced/metalpy/commit/d14d5e2d884441444351857a5965992a2619cb06)]
- ♻️ 优化PTOPO格式,允许省略上下底面高度,并精简嵌套结构 [[b9c3589](https://github.com/MetallyInduced/metalpy/commit/b9c3589d3eb77de30159b26b7eb7afb002d35ccd)]
- ♻️ 重写Distributed插件,改为基于DispatcherMixin实现 [[0bfac3d](https://github.com/MetallyInduced/metalpy/commit/0bfac3d03a836d64941428091ef0a094ecd4027e)]
- ♻️ 重构Shape3D的默认实现设计 [[4da63a3](https://github.com/MetallyInduced/metalpy/commit/4da63a338c303f86c1b85298eb02b5008cce00aa)]
- ♻️ 优化ti_solvers的空间分配逻辑,将x和b的分配细节移至求解器内 [[b36da60](https://github.com/MetallyInduced/metalpy/commit/b36da606415020eb0ff38f615b4d2638bc47de44)]
- ♻️ Scene.create_mesh改为返回ModelledMesh实例以实现更灵活地网格优化操作 [[6898778](https://github.com/MetallyInduced/metalpy/commit/6898778a6c082f9630aac8bb4d5ac4d1de92efc9)]

### Breaking changes

- 💥 为实现更一致的接口,织入模式修饰器移至Mixin内作为静态函数存在(mixin.xxx -&gt; Mixin.xxx)(涉及replaces/before/after/ignores) [[bbb9108](https://github.com/MetallyInduced/metalpy/commit/bbb9108f6782064cd79abacc9008a49028340200)]
- 💥 由于明显的使用倾向,Shape3D.rotate现在默认使用角度制 [[4da63a3](https://github.com/MetallyInduced/metalpy/commit/4da63a338c303f86c1b85298eb02b5008cce00aa)]

### Fixed

- 🐛 修复AerialSurvey.to_polydata错误判断参数z类型的问题 [[cb04f9f](https://github.com/MetallyInduced/metalpy/commit/cb04f9f9f3576184a58d90d31fac9e1164ecc9fc)]
- 🐛 修复FixedShapeNDArray中__array_ufunc__接收不同类型的数组时意外返回NotImplemented的问题 [[8935a7b](https://github.com/MetallyInduced/metalpy/commit/8935a7b86342148109f7b4e8eb9f40b6d1dfae93)]
- 🐛 修复Obj2中split_models_in_memory缓存模型错误的问题 [[08f8985](https://github.com/MetallyInduced/metalpy/commit/08f8985151bcf6f27859d96ae07aaa8d5f5b03f4)]
- 🐛 修复耳切法三角化多边形时错误处理共线外点的问题 [[fe6577b](https://github.com/MetallyInduced/metalpy/commit/fe6577b7b0501751ab55855d573cd04d432cfa7c)]
- 🐛 修复GPU版Integrated退磁求解器分配显存失败的问题 [[ac3cb92](https://github.com/MetallyInduced/metalpy/commit/ac3cb92b0f0ca555161c1c7d6c8d58a5805b3632)]


0 comments on commit 299e397

Please sign in to comment.