问题标签 [sundials]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
matlab - 在 Matlab 2014a 中编译 mex 失败
我试图在 Windows 7(64 位)机器上编译 Matlab 2014a 中的 .c 文件。编译器是一个 Mingw-w64 gcc:
然后它给了我一些错误:
首先,我很确定“sundials_nvecserial.lib”和“sundials_cvode.lib”在“C:/sundials/lib/”文件夹下,在 -L 选项后的命令中指示。
其次,我知道我的机器中没有 libm.lib。我需要该选项,因为 .c 文件“#include”。虽然我没有使用它,但我安装了 Visual Studio。我可以在其中找到“math.h”但找不到“libm.lib”。所以我想问题是,如何调整/避免 Windows 机器上的“-lm”选项。
先感谢您,
约翰
c - 使用 C 和 MATLAB 求解刚性常微分方程
我有 2*m+3 个STIFF常微分方程要求解。我尝试使用 MATLAB ode15s for m=1 解决它,它工作正常。但我想使用 Sundials 包 CVODE 来求解方程。在尝试这样做时,我使用了“向后微分公式”和牛顿迭代。我不提供雅可比并允许以数字方式计算它。但它不起作用并显示错误:
- 我相信 CVODE 使用与 ode15s 相同的反向微分。那为什么它不起作用?
- 我应该尝试在 CVODE 中使用带有预处理的 Krylov 求解器吗?
期待任何帮助。谢谢你。
c++ - 链接到 ac/c++ 库
我有一些关于链接C/C++
库的基本问题。我试图了解使用两种不同用法-L/usr/local/lib -lm
用法和/usr/local/lib/libm.a
用法的区别。例如,当我从[SUNDIALS]
库中编译和链接一个示例时,以下两项工作
或者
但是,要编译和链接库 中的示例[libsbml]
,以下工作
但这不是
如果需要,我可以发布我得到的完整错误消息,但消息的最后一行如下
我的问题如下:
在(第一个示例的)第二种链接样式中,没有关于在哪里找到
include
文件(头文件)的信息,编译器如何知道-I/usr/local/include
第一个示例的第一种样式中提供的信息?在第一个示例的第二种样式中没有
/usr/local/lib/libm.a
(如果我尝试包含它,它实际上会给出一个libm.a
无法找到的错误消息),那么为什么-lm
第一种样式需要?如何以第二种风格(即使用
/usr/local/lib/libsbml.a
)编译第二个示例?我确实看到有文件 -libsbml.a
并且libsbml-static.a
在/usr/local/lib
文件夹中,但它们都不起作用。
如果有帮助,我在OS X
机器上。
如果有人能在这方面提供帮助,我将不胜感激。
只是一个更新-我试过了
并且编译和链接得很好。
谢谢 SN
sundials - 日晷已安装但未在带有 assimulo 的 python 中运行
干杯,
我正在尝试使用 Assimulo 2.9。在 Mac OS X 上。为此,我通过 cmake 下载并安装了日晷,方法是为下载文件创建 builddir 并运行 ../Downloads/sundials-2.7.0
这应该将所有内容安装在 /usr/local 中。执行此操作时,它不会给我任何错误警告。但是当我尝试在 python 中使用 assimulo 时,会出现以下错误消息:
有什么建议么?
非常感谢。
matlab - SimBiology 模拟不起作用
我正在尝试在 MATLAB 中模拟模型(使用日晷求解器),但出现以下错误:
CVODES returned -4 from module CVODES function CVode: At t = 0 and h = 1.3093e-009, the corrector convergence test failed repeatedly or with |h| = hmin.
我在互联网上找不到有关此错误的任何信息。
这个错误是什么意思?我怎样才能解决这个问题?
c++ - 日晷 ODE_vector 到犰狳的转换以进行 ODE 近似
我正在尝试使用 Sundials ODE 求解器库来近似扩展多物种 Lotka-Volterra 竞争方程的动力学。例如在两个物种的情况下
dx1/dt = r1 * x1 * (1 - (x1 + a12 * x2))
dx2/dt = r2 * x2 * (1 - (x2 + a21 * x1))
或者...
d x /dt = r * x * (1 - A * x )
(其中 K = a11 = a22 = 1)
据我了解,日晷 ODE 求解器需要一个 ODE_vector 类的对象,其元素代表系统的各种状态变量,在本例中为 x1 和 x2,让求解器近似这两个物种的轨迹没有问题' 如果我将每个参数 (r1, r2, a12, a21) 编程为唯一对象,如下面的代码所示:
... 在哪里time_derivative
,state
是日晷班的成员ODE
。
谁能告诉我如何修改代码以将 ODE 系统转换为矩阵形式,即 r1、r2、a12 和 a21 的形式为r和A?我被告知要使用“高级构造函数”(例如1)从 ODE_vector 转换为犰狳矢量/矩阵对象,但知道这一点是一回事,而要成功实现它又是另一回事!
谢谢!
java - 带有 Hibernate 对象的 Dropwizard Sundial 计划任务
我的 dropwizard 项目中有这个日晷任务:
我尝试在 Sceduler 任务中使用我的 DAO,我想按照日晷文档如何加载对象,但它似乎不起作用。在我的日晷任务中使用休眠项目的正确方法是什么?
谢谢
python - 如何在 Python 3.X 上安装 scikits.odes
我正在尝试除 SciPy 的 odeint 之外的其他 ODE 求解器。我找到了一个可能的 scikits.odes 包。要求包括 C 和 FORTRAN 编译器(我下载了 MinGW-w64,没有问题)、LAPACK(下载、构建、测试,看起来不错)和 SUNDIALS(LAPACK 问题)。如果 SUNDIALS 中未启用 LAPACK,则安装和运行 scikits.odes.test() 将出现几个错误。任何可以帮助我解决这个问题的人。
在 Python 3.5.5 上安装 scikits.odes 并运行后:
我有以下输出:
根据https://scikits-odes.readthedocs.io/en/latest/installation.html#troubleshooting中的 scikits.odes 故障排除程序,这是由于 SUNDIALS 未链接到 LAPACK 造成的。
我按照https://icl.cs.utk.edu/lapack-for-windows/lapack/#build中描述的过程使用 MinGW-w64 进行了简单的 Windows LAPACK 构建。当我运行时:
在命令提示符下测试 LAPACK 构建它工作正常(所有测试都通过)。
要安装 SUNDIALS 2.7.0,我遵循类似的过程。使用 CMake 我选择源文件夹,我选择不同的构建文件夹,使用配置并选择 LAPACK_ENABLE。当我再次配置时,我收到以下错误。
CMake 错误:
顺便说一句,我是编程新手,我正在 Windows 10、Python 3.5.5、LAPACK 3.8.0、SUNDIALS 2.7.0、CMake 3.11.4 上尝试所有这些。
cmake - 使用 MKL 构建日晷
我需要在仅提供 MKL 作为 BLAS 和 LAPACK 支持的 Linux 集群上构建日晷(作为另一个 C/C++ 库的依赖项)。
据我所知,与其他版本不同,MKL BLAS 和 LAPACK 包装器在链接时不是自包含的,但也需要链接到 MKL 核心和/或其他库。
那么我如何(如果有的话)告诉 CMake 为了成功构建日晷要包括什么?使用像这样的标志是否可能和安全
什么是正确的语法?