0

我正在使用netlib的dvode ODE 求解器来求解一个僵硬的稀疏系统(应用程序是大气化学)。子程序的第一次调用完成了一组初始化任务,并将因变量的初始值数组作为输入。在随后的调用中,例程执行实际的积分,并且数组仅用作输出。dvodeyy

由于各种原因,我需要y在集成过程中修改依赖数组的一个元素。Asy用作除第一次调用之外的所有输出,忽略dvode对 的输入值的修改。y相关数据似乎存储在工作区数组中。

有没有办法强制dvode让我在集成期间更改依赖数组的值?我不想弄乱求解器的内部结构,如果可能的话,我想避免更改工作区数组,因为可能存在各种难以预见的依赖关系。我尝试在初始化和集成调用之间交替,但这会使事情变慢

如果没有明确的解决方案,我还会考虑尝试另一个(与 Fortran 兼容的)求解器来解决僵硬、高度非线性的 ODE。

4

0 回答 0