-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
215 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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)] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 -> 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)] | ||
|
||
|