问题标签 [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 投票
2 回答
9080 浏览

ascii - PETSc 中“ASCII”和“二进制”格式之间的区别

我想知道二进制格式和 ASCII 格式有什么区别。问题是我需要使用 PETSc 进行一些矩阵操作,并且我所有的矩阵都存储在文本文件中。

PETSc 有一套不同的规则来处理这些格式。我不知道这些格式是什么,更不用说我的文本文件是什么格式了。

有没有办法将一种格式转换为另一种格式?

这是一个基本问题;详细的答案将真正帮助我理解这一点。

0 投票
1 回答
4477 浏览

parallel-processing - 带 ksp 导轨的 PETSc 求解线性系统

我开始使用 PETSc 库来并行求解线性方程组。我已经安装了所有软件包,构建并成功运行了 petsc/src/ksp/ksp/examples/tutorials/ 文件夹中的示例,例如 ex.c

但是我不明白如何通过从文件中读取它们来填充矩阵 A、X 和 B。

这里我提供 ex2.c 文件中的代码:

有人知道如何在示例中填充自己的矩阵吗?

0 投票
3 回答
5605 浏览

c - PETSc 示例不起作用

我有 Windows 7 操作系统。我已按照PETSc 网页上的说明进行操作;在 VS 2005 的命令提示符中,我打开了 cygwin 并使用以下命令安装了 PETSc:

我尝试从网页运行以下示例:

ex2.c 是交流程序代码。我收到以下错误:

这是什么原因造成的?

(更重要的是)我该如何解决?

*编辑:我也可以使用一般答案,因为目前我什至不知道谷歌是为了什么,而且我不想只是联系 PETSc 支持来解决所有问题。


我决定在 Ubuntu 上工作。所以现在,这就是交易。安装后我写:

gcc -I$PETSC_DIR/include -L$PETSC_DIR/$PETSC_ARCH/lib -libpetsc ex2

在命令行中。我得到错误按摩:

/usr/bin/ld: 找不到 -libpetsc ex2: 在函数_start': (.text+0x1bc4): multiple definition of_start' /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o :(.text+0x0): 首先在这里定义 ex2: In function _fini': (.fini+0x0): multiple definition of_fini' /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o :(.fini+0x0): 这里先定义 ex2:(.rodata+0x0): _IO_stdin_used' /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o:(.rodata.cst4+0x0): first defined here ex2: In function__data_start'的多重定义: (.data+0x0): __data_start' /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crt1.o:(.data+0x0): first defined here ex2: In function__data_start'的多重定义: (.data+0x8): __dso_handle' /usr/lib/gcc/x86_64-linux-gnu/4.6/crtbegin.o:(.data+0x0): first defined here ex2: In function_init的多重定义': (.init+0x0): `_init' 的多重定义 /usr/lib/gcc/x86_64-linux-gnu/4.6/../../../x86_64-linux-gnu/crti.o:( .init+0x0): 这里首先定义 collect2: ld 返回 1 退出状态

0 投票
0 回答
1318 浏览

ubuntu - 信号:Ubuntu 中 PETSc 中的分段错误 (11)

我是 MPI 和 PETSc 的新手。我在我的系统中安装了 PETSc 和 MPICH2 并尝试运行最简单的 Hello World。但是代替预期的输出,出现了很多乱码。

我的制作文件是:

我的程序是:

终端中的“make”没有给出,但以下

“mpiexec -np 4 Exam_petsc1”给出了一长串错误,如下所示....

我的程序有什么问题???

0 投票
2 回答
239 浏览

vector - 检查 PETSc 向量/矩阵是否已被破坏的优雅方法?

对于单元测试,我试图确保 PETSc 向量已被销毁。但是,我似乎找不到合适的命令来优雅地执行此操作。我能做的最好的事情是调用 VecSetType(...) 并查看错误。但是,这个写 PETSC_ERROR 输出,我不想写,特别是因为我期待一个错误。有什么想法或建议吗?

谢谢。

0 投票
0 回答
108 浏览

c++ - PETSc PF 对象和用户定义函数

目前我正在处理一个需要模块化的大型 PETSc 程序。我需要在 PETSc 中使用 PF 对象(至少我猜是因为我需要使用 MPI 向量将函数作为具有足够灵活性的参数传递。还有其他方法吗?)但是 PETSc 网站在这方面没有提供太多帮助,我我被困住了。任何建议或示例将不胜感激。

此外,每当我使用PFApplyor时PFApplyVec,它都会编译但在执行时会给出类似

“ src/vec/pf/interface/pf.c 应用程序中的 PFApplyVec() 第 202 行称为 MPI_Abbort(MPI_COMM_WORLD,-36453747642)”

0 投票
1 回答
2885 浏览

python - scipy 稀疏矩阵作为 petsc4py 的输入

我似乎无法找到一种方法如何有效地将 scipy 稀疏矩阵(例如csr_matrix)加载到 petsc4py 矩阵中,例如PETSc.Mat().createAIJ. 我找到了这个线程,但我无法应用它。

我也很感激一个指针,这些东西实际记录在哪里。目录中的示例 demo只解释了一部分,我看不到任何文档字符串。

0 投票
3 回答
1173 浏览

c++ - 类中的简单 petsc 函数调用

以下问题可能很容易回答,但我在互联网上没有找到任何解决方案。简而言之,我将一些 petsc 函数调用放在一个类中。

以下方程求解器脚本可以正常工作:

但是当我在一个类中外包代码时,它会导致几个错误:

这是调用该类的脚本:

这些是建筑错误:

在 ex2_extern.cc:5 包含的文件中:

问题出在哪里?

亲切的问候,塞巴斯蒂安

0 投票
2 回答
1076 浏览

cuda - 在通过 MPI 协议交互的不同集群节点上的多个 GPU 上求解泊松方程

我正在尝试使用带有 MPI 库的 C/CUDA 中的代码在多 GPU 架构上的实际空间中求解泊松方程。目前,我只对在周期框中解决问题感兴趣。但在未来,我可能想看看球面几何。

是否有现有的例程来解决这个问题?2012 年 8 月的评论似乎表明推力库不适用于多 GPU 架构。那仍然正确吗?

如果例程存在,它使用什么方法(Jacobi、SOR、Gauss-Seidel、Krylov)?请就它的速度和您可能遇到的问题发表您的看法。

谢谢你的时间。

0 投票
1 回答
2235 浏览

c - 使用 CMake 时链接 PETSc 程序时出现的问题

我在 Ubuntu 13.04 64 位上,我正在尝试使用 CMake 在 PETSc 中构建一个“Hello world”程序。

我有以下程序solve1.c(大致基于 PETSc 示例中的 ex1.c),它解决了一个简单的线性方程组:

这是我创建的尝试CMakeLists.txt(基于网上找到的各种 PETSc 教程和项目):

此外,我有一个目录,其中包含我从https://github.com/jedbrown/cmake-modulescmake-modules获得的文件(由PETSc FAQ推荐)。CorrectWindowsPaths.cmakeFindPETSc.cmakeFindPackageMultipass.cmakeResolveCompilerPaths.cmake

我正在以这种方式构建项目(最初位于我项目的根目录中,即/home/ruben/hello):

不幸的是,make 命令因链接器错误而失败。这是 CMake 的输出(看起来不错):

make VERBOSE=1这是(不好的)的输出:

PETSc FAQ建议CMakeLists.txtDohp项目中查看。不幸的是,我发现这个 CMake 文件很难理解(Dohp 不是一个特别小的例子,它还有 PETSc 以外的其他依赖项),我无法使用这个文件来修复我的链接器错误。

我的问题:我有什么问题,我CMakeLists.txt该如何解决?(或者,如果我的 CMake 文件正确:我还犯了哪些其他错误?)

一些附加信息:我正在使用 PETSc 3.4.2(安装在 中/home/ruben/petsc-3.4.2/,与我想使用的 MPI 一起安装)、CMake 2.8.10.1、gcc 4.8.1,全部在 Intel i7-3930k 上的 Ubuntu 13.04 64 位上。我能够使用常规的 makefile 编译和运行上述程序,并且能够编译和运行迄今为止我尝试过的所有 PETSc 示例。