如何在Linux/mac上安装SUNDIALS/CVODE
How to Install Sundials 5.x or Cvode on Mac Linux System
2019-11-19
SUNDIALS: SUite of Nonlinear and DIfferential/ALgebraic Equation Solvers
SUNDIALS (https://computing.llnl.gov/projects/sundials) 是一个很强大的数学库,用于求解工程和科学上的数学问题。CVODE是其中重要工具之一,用于求解常微分方程(Ordinary Differential Equation, ODE),由C语言写成.
SHUD模型(Simulator of Hydrologic Unstructured Domains)使用有限体积法求解流域控制方程,即理查德方程(Richard Equation)和圣维南方程(Saint Venant Equation)。
当前最新的SUNDIALS是其v5.x版本,2019年11月发布.
本文介绍如何在Mac/Linux上安装SUNDIALS/CVODE。
本安装过程以及在 Mac 10.13 and **Ubuntu 18.04.3 LTS (GNU/Linux 4.15.0-66-generic x86_64)**上进行测试。
- 下载 SUNDIALS,地址:https://computing.llnl.gov/projects/sundials/sundials-software. 或者也可以从github上获取最新源代码:
git clone https://github.com/LLNL/sundials.git
此刻,你应该已经在你的目录中有sundials的源码了,请进入该目录。假设你已经进入了 sundials
所在的目录.
- 创建安装目录
安装目录名称为:installSundials
执行以下命令:
mkdir installSundials
cd installSundials
rm -rf builddir instdir srcdir
mkdir builddir
mkdir instdir
mkdir srcdir
cd builddir/
- 利用
CCMAKE
配置SUNDIALS安装参数.
有两种方式配置其安装参数,一种是图像界面(GUI),另一种是直接命令行参数赋值。
- 方法1:, 键入命令:
ccmake ../../sundials/
你将看到类似的界面:
移动光标到此行CMAKE_INSTALL_PREFIX,该行是SUNDIALS的安装路径。键入回车,即可开始编辑此行内容。修改该行内容为:/usr/local/sundials。
注意:此处/usr/local/sundials
即为SUNDIALS的安装目录,未来编译SHUD/PIHM时,需要配置正确的SUNDIALS安装路径,方能成功编译SHUD/PIHM。
另外,你也可以改变SUNDIALS例子代码的安装路径。 EXAMPLES_INSTALL_PATH.
接下来,你需要选择打算安装的求解器,可选项包括 ARKODE
, CVODE
, CVODES
, IDA
, IDAS
, KINSOL
等. 利用回车可以打开(enable)或者关闭(disable)其安装.
因为SHUD/PIHM仅仅需要CVODE求解器,因此,我们仅仅打开了BUILD_CVODE。
如果你的电脑支持OpenMP并且已经安装了OpenMP,你也可以将OPENMP_ENABLE打开至ON
状态.
编辑完成后,按C开始配置文件。再按一次C。当下部出现g时,按下g
则开始生产配置文件。
- 方法2: 你也可以使用一下命令,完成cmake配置文件。
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sundials \
-DEXAMPLES_INSTALL_PATH=../example \
-DBUILD_CVODE=ON \
-DBUILD_CVODES=OFF \
-DBUILD_ARKODE=OFF \
-DBUILD_CVODES=OFF \
-DBUILD_IDA=OFF \
-DBUILD_IDAS=OFF \
-DBUILD_KINSOL=OFF \
-DOPENMP_ENABLE=ON \
../../sundials/
以上命令也将SUNDIALS安装在了路径*/usr/local/sundials*, 例子程序安装在了*../example*;且只安装了*CVODE*求解器,并开启了OpenMP支持。
如果你没有OpenMP或者打开OpenMP后报错,请使用以下命令:
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/sundials \
-DEXAMPLES_INSTALL_PATH=../example \
-DBUILD_CVODE=ON \
-DBUILD_CVODES=OFF \
-DBUILD_ARKODE=OFF \
-DBUILD_CVODES=OFF \
-DBUILD_IDA=OFF \
-DBUILD_IDAS=OFF \
-DBUILD_KINSOL=OFF \
-DOPENMP_ENABLE=OFF \
../../sundials/
- 编译和安装
超简单,执行以下命令:
make
make install
有时候,你的系统要求你具有更高的访问权限,则可以使用一下命令:
make
sudo make install
如果没有报错,那么你的SUNDIALS/CVODE已经安装成功。
- 编译SUNDIALS例子
进入到例子程序目录: ../example
![example](example.png)
编译所有例子程序:
cd ../example/cvode/serial/
ls
make
编译成功后,你看的文件类似于下图:
-
测试例子程序
./cvAdvDiff_bnd ./cvKrylovDemo_ls
至此,你已经成功安装了SUNDIALS/CVODE到你的计算平台。接下来,你可以开始使用了。
请保持耐心,因为接下来的挑战更大:-)。
Be patient, you will meet more challenges.