今天听了刘天添老师的课,总结一下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,意味着开启断言
第三个表示使得报错更加美观
第四个表示单核运行
第五个表示关闭高级的编译优化
如图为更美观的报错
如图为一般的报错
2 print使用方法
- taichi不能使用格式化输出(如format等),只能用最基本的print
- taichi的变量需要转为numpy数据才能输出
例子
(要import csv)
np.savetxt("out.csv", position.to_numpy(), delimiter=',')
这代表我有一个taichi的field,表示粒子的位置,名为position
把他输出到一个叫out.csv的文件里,用逗号分割,每行换行
用excel就可以打开
如图
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)
那么我传入了负数,就会如下报错