taichi debug方式总结

今天听了刘天添老师的课,总结一下taichi debug的方法

1 ti.init的设置(开启debug mode)

进行如下设置

ti.init(arch=ti.cpu, debug=True, excepthook=True, cpu_max_num_threads=1, advanced_optimization=False)

第一个表示用cpu
第二个表示debug mode,意味着开启断言
第三个表示使得报错更加美观
第四个表示单核运行
第五个表示关闭高级的编译优化

如图为更美观的报错
taichi debug方式总结如图为一般的报错
taichi debug方式总结

2 print使用方法

  1. taichi不能使用格式化输出(如format等),只能用最基本的print
  2. taichi的变量需要转为numpy数据才能输出

例子
(要import csv)

np.savetxt("out.csv", position.to_numpy(), delimiter=',')

这代表我有一个taichi的field,表示粒子的位置,名为position
把他输出到一个叫out.csv的文件里,用逗号分割,每行换行
用excel就可以打开
如图
taichi debug方式总结

3 使用GUI看流场

例如我要看SPH结果的粒子

gui = ti.GUI("SPHDamBreak")
while gui.running: 
    gui.circles(position.to_numpy(),
                radius=1.5,
                )

即可

4 使用断言

例如对一个数x求根号,那么当x输入为负数的时候自动报错。即将x断言为>=0

@ti.kernel
def sqroot(x:ti.f32)->ti.f32:
    assert x>=0
    sq=ti.sqrt(x)
    return sq
        
sqroot(-99.1)

那么我传入了负数,就会如下报错
taichi debug方式总结

上一篇:Jmeter 5.0 遇见connection reset问题


下一篇:【Matlab图像融合】小波变换CTI与MRI图像融合【含源码 782期】