问题标签 [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.
ascii - PETSc 中“ASCII”和“二进制”格式之间的区别
我想知道二进制格式和 ASCII 格式有什么区别。问题是我需要使用 PETSc 进行一些矩阵操作,并且我所有的矩阵都存储在文本文件中。
PETSc 有一套不同的规则来处理这些格式。我不知道这些格式是什么,更不用说我的文本文件是什么格式了。
有没有办法将一种格式转换为另一种格式?
这是一个基本问题;详细的答案将真正帮助我理解这一点。
parallel-processing - 带 ksp 导轨的 PETSc 求解线性系统
我开始使用 PETSc 库来并行求解线性方程组。我已经安装了所有软件包,构建并成功运行了 petsc/src/ksp/ksp/examples/tutorials/ 文件夹中的示例,例如 ex.c
但是我不明白如何通过从文件中读取它们来填充矩阵 A、X 和 B。
这里我提供 ex2.c 文件中的代码:
有人知道如何在示例中填充自己的矩阵吗?
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 退出状态
ubuntu - 信号:Ubuntu 中 PETSc 中的分段错误 (11)
我是 MPI 和 PETSc 的新手。我在我的系统中安装了 PETSc 和 MPICH2 并尝试运行最简单的 Hello World。但是代替预期的输出,出现了很多乱码。
我的制作文件是:
我的程序是:
终端中的“make”没有给出,但以下
“mpiexec -np 4 Exam_petsc1”给出了一长串错误,如下所示....
我的程序有什么问题???
vector - 检查 PETSc 向量/矩阵是否已被破坏的优雅方法?
对于单元测试,我试图确保 PETSc 向量已被销毁。但是,我似乎找不到合适的命令来优雅地执行此操作。我能做的最好的事情是调用 VecSetType(...) 并查看错误。但是,这个写 PETSC_ERROR 输出,我不想写,特别是因为我期待一个错误。有什么想法或建议吗?
谢谢。
c++ - PETSc PF 对象和用户定义函数
目前我正在处理一个需要模块化的大型 PETSc 程序。我需要在 PETSc 中使用 PF 对象(至少我猜是因为我需要使用 MPI 向量将函数作为具有足够灵活性的参数传递。还有其他方法吗?)但是 PETSc 网站在这方面没有提供太多帮助,我我被困住了。任何建议或示例将不胜感激。
此外,每当我使用PFApply
or时PFApplyVec
,它都会编译但在执行时会给出类似
“ src/vec/pf/interface/pf.c 应用程序中的 PFApplyVec() 第 202 行称为 MPI_Abbort(MPI_COMM_WORLD,-36453747642)”
python - scipy 稀疏矩阵作为 petsc4py 的输入
我似乎无法找到一种方法如何有效地将 scipy 稀疏矩阵(例如csr_matrix
)加载到 petsc4py 矩阵中,例如PETSc.Mat().createAIJ
. 我找到了这个线程,但我无法应用它。
我也很感激一个指针,这些东西实际记录在哪里。目录中的示例 demo
只解释了一部分,我看不到任何文档字符串。
c++ - 类中的简单 petsc 函数调用
以下问题可能很容易回答,但我在互联网上没有找到任何解决方案。简而言之,我将一些 petsc 函数调用放在一个类中。
以下方程求解器脚本可以正常工作:
但是当我在一个类中外包代码时,它会导致几个错误:
这是调用该类的脚本:
这些是建筑错误:
在 ex2_extern.cc:5 包含的文件中:
问题出在哪里?
亲切的问候,塞巴斯蒂安
cuda - 在通过 MPI 协议交互的不同集群节点上的多个 GPU 上求解泊松方程
我正在尝试使用带有 MPI 库的 C/CUDA 中的代码在多 GPU 架构上的实际空间中求解泊松方程。目前,我只对在周期框中解决问题感兴趣。但在未来,我可能想看看球面几何。
是否有现有的例程来解决这个问题?2012 年 8 月的评论似乎表明推力库不适用于多 GPU 架构。那仍然正确吗?
如果例程存在,它使用什么方法(Jacobi、SOR、Gauss-Seidel、Krylov)?请就它的速度和您可能遇到的问题发表您的看法。
谢谢你的时间。
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.cmake
FindPETSc.cmake
FindPackageMultipass.cmake
ResolveCompilerPaths.cmake
我正在以这种方式构建项目(最初位于我项目的根目录中,即/home/ruben/hello
):
不幸的是,make 命令因链接器错误而失败。这是 CMake 的输出(看起来不错):
make VERBOSE=1
这是(不好的)的输出:
PETSc FAQ建议CMakeLists.txt
从Dohp项目中查看。不幸的是,我发现这个 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 示例。