各位老师好:
我现在希望定义粒子的邻域粒子,所以我在这里增加了一个neighbor属性
particle_field = ti.Struct.field({
"pos": ti.types.vector(3, ti.f32),
"vel": ti.types.vector(3, ti.f32),
"acc": ti.types.vector(3, ti.f32),
"mass": ti.f32,
"neighbor":ti.types.vector(10, ti.f32)
}, shape=(n,))
但是taichi是不支持变量作为vector下标的,所以我每次使用的时候都要遍历所有的10个数字,然后看他们是不是默认值。而且用10维的vector还占用了额外的内存。所以我想,如果能够使用稀疏数据结构就好了,我希望能这样写:
particle_field = ti.Struct.field({
"pos": ti.types.vector(3, ti.f32),
"vel": ti.types.vector(3, ti.f32),
"acc": ti.types.vector(3, ti.f32),
"mass": ti.f32,
"neighbor":ti.types.bitmasked(10, ti.f32)
}, shape=(n,))
但是这样是不可的。
请问有什么方法可以实现相同的效果吗?