#8346·taichi

建议太极库添加对 Python 中 lambda 函数的支持。

作者: YongYahn创建于 2023年9月5日更新于 2026年5月9日
标签feature requestwelcome contribution

当我再次使用taichi库来加速代码时,结果是taichi库不支持lambda函数。下面是我代码的一部分示例: @ti.func def coefficient_Qn(self, n: int): """Qn表达式""" theta = ti.var(ti.f32) Qn_func = lambda theta: ((self.alphaS0 / 2 - theta) ** (-1 / 3) - (self.alphaS0 / 2 + theta) ** (-1 / 3)) * sin( n * self.Ns * theta) Qn = ti.quad(Qn_func, (0, self.alphaS0 / 2), max_num_intervals=10) # print('Qn =', Qn) self.Qn = Qn return self.Qn @ti.kernel def calculate_lambda_a(self, theta: ti.f32):

    Qn = lambda n: self.coefficient_Qn(n)
    Ra = lambda n: self.parameter_Ra(n)
    g1 = self.Rs - self.Rr  # 参数系数
    kc = self.ts * (5 * g1 + self.bs) / (self.ts * (5 * g1 + self.bs) - self.bs ** 2) 
    
    func_a = lambda n: (g1 * self.K0 * self.Ns + g1 * self.Ns * (kc - 1) * Qn(n) * Ra(n) * cos(
        n * self.Ns * theta)) / (self.K0 * self.Ns *
         self.R0 * log(self.Rs / self.Rr) + self.Rs * (kc - 1) * (-1) ** n * Qn(n) / n)
    # lambda_a = mp.nsum(func_a, [1, N], method="richardson + shanks")
    lambda_a = ti.nsum(func_a, [1, N])
    self.lambda_a = lambda_a
    return self.lambda_a

运行程序的结果:

内容来源: taichi-dev/taichi