在 DiffEqPhysics Julia 中进行一些收敛测试后终止 ode 的集成

terminating the integration of ode after some convergence test in DiffEqPhysics Julia

最近开始熟悉Julia的DiffEqPhysics和DifferentialEquations包。我想知道是否有一种方法(如回调函数)可以在某些输出收敛条件下终止求解器。例如,如果在上一步(或之前一系列步骤)中获得的结果与当前步骤的解决方案没有阈值差异,则在当前步骤之后结束该过程。

是的,您可以使用回调来执行此操作。在回调中,执行 terminate!(integrator) 将停止集成。在文档中 this example shows using callbacks with terminate! in more detail.

但是,为了在稳定状态下终止,您可以使用回调库中的 TerminateSteadyState,而不是自己构建。回调库只是一组预先构建的回调,当导数足够小时,这个回调就会终止。