问题标签 [petsc]

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.

0 投票
1 回答
61 浏览

c++ - 使用 MPI 时 KiFMM 的带有 operator() 的段错误

我正在为我的代码使用 KiFMM 和 PETSc。串行版本没有问题,但是当我尝试将 MPI 与 2 个节点一起使用时,我现在收到一个错误(*trgPos)(j,i),其类型DblNumMat如下所示: http ://www.mrl.nyu.edu/~harper /kifmm3d/documentation/common/html/nummat_8hpp_18ed51e81f911a23442591467d7a83ca.html

gdb 的回溯显示了这一点:

任何人都知道为什么会发生这种情况以及我能做些什么?

0 投票
1 回答
141 浏览

c - PETSC_VIEWER_DRAW_WORLD 什么也不显示

我刚开始使用 PETSC,我正在尝试使用 matView 绘制矩阵。我的代码是这样的:

当我以这种方式使用 MatView 时:

我可以看到一个包含行的列表。但是当我把它改成

什么都没发生。

我看不到有关网络结构的任何信息,甚至看不到列表。

我试图运行这些示例,但它们根本不起作用。此外,PETSC 文档只会让事情变得更糟。有人能帮我吗?我不想看到行列表,而是矩阵(以图形方式)。


评论中的更多上下文:

  • X windows 运行正常——能够用gvimxlogoxeyes等进行确认。
  • 库已使用 中--with-x的选项重建configure。仍然没有出现。
0 投票
1 回答
337 浏览

shared-libraries - PETSC 3.3 - 如何编译并拥有所有 libpetscSOMETHING.so 文件?

我尝试使用此配置编译 PESTC:

但是在编译我的使用 petsc 的库时,即使我链接了所有 petsc 库,它也会在运行undefined symbol: _Z10VecGetSizeP6_p_VecPilibpetscvec.so抱怨libpetscsnes.so

我还发现它会生成一些.mod与这些非生成库同名的库(例如:)/tmp/petsc-3.3-p7/arch-linux2-c-debug/include/petscsnes.mod

所以我不确定我是否缺少一个标志,该标志应该告诉编译器不给我库模块,或者它们是否在某些外部包中,并且我应该使用--download-SOMEPACKAGE.

这是在.so中生成的库$PETSC_DIR/$PETSC_ARCH/lib

0 投票
0 回答
147 浏览

c++ - PETSC。不使用 mpiexec 运行程序

我如何在没有的情况下在多个线程中运行使用 PETSC 编写的程序./mpiexec -n <>

也许我需要单独初始化MPI?在这种情况下,您可以参考示例如何使用 init MPI吗?PetscInitialize()

谢谢!

0 投票
0 回答
168 浏览

python - 如何将 pyop2.petsc_base.Mat 矩阵转换为任何 scipy\numpy 稀疏格式?

假设我有一个矩阵 M:

文档https://op2.github.io/PyOP2/user.html说, M.sparsity.colidx持有“ CSR 数据结构的列索引数组”,而M.sparsity.rowptr持有“ CSR 数据结构的行指针数组” ",好的,所以我已经有了所有需要的坐标来重建 CSR 矩阵,但是这个CSR 数据结构在哪里?

0 投票
2 回答
12889 浏览

c++ - mpi.h 的位置

我的计算机上有一个代码,Petsc它依赖于mpi. 在我的电脑上它运行良好。我把它放在集群上,导出路径gccPetscopenmpi(虽然我mpich在我的电脑上使用我希望openmpi也能工作)到LD_LIBRARY_PATHPATH。我还更改了makefile中的路径。Petsc、gcc、openmpi 在集群上都可用,所以我没有配置任何东西。当我这样做时make,编译器给出了错误:

fatal error: mpi.h: No such file or directory

我知道我没有提供完整的信息,但如果需要我可以提供更多信息。我怎样才能Petsc知道在哪里mpi.h

0 投票
1 回答
134 浏览

matrix - 用鬼线构建 PETSc 矩阵?

由于 VecCreateGhost() 或 VecMPISetGhost() 函数,我知道 PETSc 允许其向量携带幻影值。有谁知道是否有类似的功能可以创建带有鬼线的矩阵?谢谢,米里亚姆

0 投票
0 回答
99 浏览

c - PETSc 中具有不规则形状的结构化网格(DM 上下文)

我在结构化网格中有一个有限差分问题PETScDM上下文帮助我非常容易地创建矩阵,DM给我一个矩形域的整个矩阵,这对我很好,因为我正在使用这个参考系统,但我有一个不规则的形状在我的问题中,这意味着我没有在这个矩阵中使用很多条目。如何在矩阵组装中不分配此空间并告诉KSP上下文不要使用此条目来解决问题?

我的代码是这样的:

0 投票
1 回答
465 浏览

module - PETSC 标头 #include'd 在模块中

我有一个包含全局变量的模块。要声明一些全局变量,我需要使用 HDF5。我也在使用一个库,所以我还需要包含一个头文件。所以 global_variable.F90 的序言看起来像这样。

Vec是在头文件中定义的数据类型,HID_T是在 HDF5 模块中定义的数据类型。

现在,我有一个包含 I/O 子例程的文件。该文件还使用 HDF5 和 global_variables.F90 中使用的相同库。所以 IO.F90 看起来像这样。

问题1:编译器在编译IO.F90时返回错误,说Vec是未定义的数据类型。但它并没有抱怨HID_T。我认为 global_variables 模块已经包含 HDF5 模块和头文件,使用 IO.F90 中的 global_variables 模块将处理每个数据类型声明,但似乎没有。你能帮我理解我理解错了吗?

问题2:有没有办法将#include的效果限制在声明它的模块上?

PS。如果我包含#include "finclude/petscvec.h"在声明Vec的 IO.F90 中,那么它编译得很好。

0 投票
1 回答
2135 浏览

c - 为什么 Valgrind 在 PETSc 中分配 char* 时报告大小为 8 的无效写入?

我在 PETSc 中的申请被终止了。我检查了 Valgrind 的情况,但我不明白它的报告:

在 tsresil.c:525(我在 PETSc 中的实现)中:

在继承.c 中:

PetscObject 是一个指向:

因此,问题似乎与 的分配有关char* descr,但我不明白为什么。大小 8 会通知指针错误,不是吗?