如何从 C++(带有犰狳)代码链接到 PETSc?

Posted

技术标签:

【中文标题】如何从 C++(带有犰狳)代码链接到 PETSc?【英文标题】:How to link to PETSc from a C++ (with armadillo) code? 【发布时间】:2021-03-01 16:49:28 【问题描述】:

我有一段 C++ 代码 (main.cpp),它使用犰狳来准备一个非常大的稀疏矩阵及其 r.h.s,像 x = A\b 一样求解。

问题:在犰狳中,不存在并行迭代线性稀疏求解器。我正在考虑考虑 PETSc,它有许多有能力的求解器。但是,我不知道如何将它链接到我的 main.cpp 代码。

提示: 1-我的代码是串行的,但是,犰狳使用线程进程。 2- PETSc 是基于 MPI 的并行,并且在 C 中。

如何从我的 main.cpp 链接/编译/运行 PETSc?任何帮助都非常感谢...

【问题讨论】:

【参考方案1】:

默认情况下,PETSc 将构建单个库。假设您安装了包,而不是保留在源代码树中。为了编译,你需要-I/path/to/petsc/include,然后链接你需要-L/path/to/petsc/lib -lpetsc。

【讨论】:

以上是关于如何从 C++(带有犰狳)代码链接到 PETSc?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C++ 中使用犰狳在多维数组之间进行按位与?

在 C++ Xcode 中链接犰狳库

犰狳线性系统求解器(带有openblas)

犰狳线性系统求解器(带有openblas)

如何用犰狳加载matlab矩阵?

了解 Makefile。 make 无法链接犰狳库