9 个版本

0.0.13 2024 年 7 月 30 日
0.0.12 2024 年 7 月 13 日
0.0.11 2024 年 6 月 18 日
0.0.8 2024 年 2 月 16 日
0.0.5 2023 年 12 月 12 日

#770数学

Download history 198/week @ 2024-05-31 145/week @ 2024-06-07 148/week @ 2024-06-14 54/week @ 2024-06-21 41/week @ 2024-06-28 16/week @ 2024-07-05 101/week @ 2024-07-12 2/week @ 2024-07-19 399/week @ 2024-07-26 22/week @ 2024-08-02

424 次每月下载
cellular_raza 中使用

GPL-2.0 许可证

275KB
5K SLoC

cellular_raza 构建块

此包包含可组合以生成完整模拟的构建块。


lib.rs:

cellular_raza - 构建块

构建块允许用户快速构建复杂的细胞代理。最简单的方法是使用完全定义的细胞模型。然而,用户也可以通过组合现有模型来构建自己的复杂模型。

要创建具有物理力学和交互的自己的代理,我们需要将它们的构建块作为我们的代理结构体的字段包含在内。

struct MyAgent {
    mechanics: NewtonDamped2D,
    interaction: BoundLennardJones,
}

此外,我们可以通过使用 CellAgent derive 宏来推导出所需的概念。

#[derive(CellAgent)]
struct MyAgent {
    #[Mechanics]
    mechanics: NewtonDamped2D,
    #[Interaction]
    interaction: BoundLennardJones,
}
#

由于技术原因,在指定要从哪个结构体字段推导时,我们还需要再次指定位置、速度和力的类型。省略了 Interaction 特性中的可选 Inf 泛型参数,因此默认为 ()。在选择具有非平凡交互信息的交互时,它也可以并需要指定。

可选功能

功能守护实现引入了额外的依赖关系。为了简化可用性,我们默认启用常用功能。

  • pyo3 Rust 与 Python 解释器的绑定

依赖关系

~11–19MB
~265K SLoC