在刚性求解器中修改因变量(vode)

时间:2014-04-07 07:49:51

标签: fortran numerical ode netlib

我使用来自dvodenetlib ODE解算器来解决一个僵硬的稀疏系统(应用程序是大气化学)。在子例程dvode的第一次调用完成一组初始化任务,并将因变量y的初始值数组作为输入。在后续调用中,例程执行实际集成,而数组y仅用作输出。

由于各种原因,我需要在集成期间修改依赖数组y的一个元素。由于y被用作除dvode的第一次调用之外的所有输出,因此忽略对y的输入值的修改。看来相关数据存储在工作空间数组中。

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

如果没有明确的解决方案,我还会考虑尝试另一种(Fortran兼容的)求解器,用于刚性,高度非线性的ODE。

0 个答案:

没有答案