schemes.py 文件源码

python
阅读 22 收藏 0 点赞 0 评论 0

项目:triflow 作者: locie 项目源码 文件源码
def _fixed_step(self, t, fields, dt, pars,
                    hook=null_hook):
        fields = fields.copy()
        fields, pars = hook(t, fields, pars)
        J = self._model.J(fields, pars)
        Id = self.__cache__(fields.uflat.size)
        self._A = A = Id - self._gamma[0, 0] * dt * J
        luf = sps.linalg.factorized(A)
        ks = []
        fields_i = fields.copy()
        for i in np.arange(self._s):
            fields_i.fill(fields.uflat +
                          sum([self._alpha[i, j] * ks[j]
                               for j in range(i)]))
            F = self._model.F(fields_i, pars)
            ks.append(luf(dt * F + dt * (J @ sum([self._gamma[i, j] *
                                                  ks[j]
                                                  for j
                                                  in range(i)])
                                         if i > 0 else 0)))
        U = fields.uflat.copy()
        U = U + sum([bi * ki for bi, ki in zip(self._b, ks)])

        U_pred = (U + sum([bi * ki
                           for bi, ki
                           in zip(self._b_pred, ks)])
                  if self._b_pred is not None else None)
        fields.fill(U)

        return t + dt, fields, (norm(U - U_pred, np.inf)
                                if U_pred is not None else None)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号