问题标签 [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 回答
81 浏览

c++ - 使用带有 INSERT_VALUES 的 MatSetValuesStencil 替换整行

我正在使用 Petsc Ksp 例程。我使用 MatSetValuesStencil 构造了一个运算符,在此函数的每次调用中,我指定一个长度为 5 的行矩阵值。有时我需要将一行从 5 长度模板完全替换为 3 长度模板。INSERT_VALUES 模式会将两个值保留在未更改的位置上还是会将它们丢弃为零?

0 投票
1 回答
175 浏览

haskell - Haskell中PETSc FFI的库设计

我想通过 FFI 接口从 Haskell 提供 PETSc库(的一个子集),以便对用户隐藏内存和错误管理;

  • 使用如下所示的命令使用共享库构建 PETSc 3.5.3,测试套件成功运行
  • 准备了一个 .hsc 文件 #2,其中包含头文件导入、类型和两个示例外部函数接口
  • 准备了一个 Makefile #3 来自动化构建;make test1使用加载的模块传递并启动 GHCi。

由于该库在 MPI 和完全分布式数据结构支持的并行操作上大放异彩,因此不应期望在大多数操作期间使用 Haskell 进行大量数据流量(所有数据组装、计算和解除分配都应由库原语完成),但只能在“数据就绪”。PETSc 相关的 Haskell 函数大多在 IO monad 中有值,因为我们不能保证纯度(例如,返回的 C 错误代码可能因程序外部原因而变化)

  • unsafePerformIO将需要包装内存alloca和错误管理。这种思路正确吗?馊主意
  • 可以使用 GHC 编译的二进制文件执行mpirun吗?是的

我对所有建议和评论持开放态度。先感谢您

-- 注意:我们希望 GHC 生成mpirun可以执行的二进制文件:由于可以将选项从 GHC 命令行传递到带有-optl标志的链接器(在此处参考),因此有人建议我使用ghc -optl-static -lmpich. 我会尽快尝试添加更多关于此的内容。

1)配置命令:

2) PETSC.hsc

3) 生成文件

0 投票
1 回答
67 浏览

c - mpicc 的 PETSc 错误

我正在使用 C 中的代码进行具有辐射传输的水力模拟。需要 PETSc,它是我在本地机器上编译的。但是在编译我的代码时,我收到错误消息:(error: ’__SDIR__’ undeclared首先在此函数中使用)。生成文件有:

任何人都可以提出解决方案吗?

0 投票
1 回答
1141 浏览

python - petsc4py:从 csc_matrix 创建 AIJ 矩阵导致 TypeError

我正在尝试从已经存在的 csc-matrix 中创建一个 petsc-matrix。考虑到一点,我创建了以下示例代码:

只要矩阵只包含实数值,这种方法就可以很好地工作。当矩阵很复杂时,运行这段代码会产生 TypeError: Cannot cast array data from dtype('complex128') to dtype('float64') according to the rule 'safe'. 我试图找出错误发生的确切位置,但无法理解回溯:

有没有一种有效的方法从复杂的 scipy csc 矩阵中创建一个 petsc 矩阵(我想稍后检索一些特征对)?

如果你们能帮我找到我(希望不是太明显)的错误,我会非常高兴。

0 投票
2 回答
207 浏览

c - do..while(0) c2hs 中类似函数的 C 宏包装器

我想在 C 函数中包装一个类似函数的 C 宏(然后用{#fun ... #}块将它包装在 Haskell 中),但是预处理器在语法c2hs上窒息;do.. while(0)这是代码:

这是错误:

我究竟做错了什么?我的目标是包装CHKERRQPETSc 库的宏,定义如下petscerror.h(为了便于阅读,拆分为多行):

0 投票
2 回答
104 浏览

c - 带有 FFI 导入的 MPI 常量的 GHCi 链接器错误(通过 c2hs)

我正在通过重写绑定来弄清楚 haskell-mpi 是如何工作的。我正在尝试重新使用通过安装 PETSc 设置的 MPICH 安装(工作正常)。问题:make main在 GHCi 中给了我一个正确的模块,但是当我请求计算 commWorld 时,链接器抱怨它找不到 MPI_COMM_WORLD 符号(但它在 makefile 的范围内)。

我究竟做错了什么?提前致谢

错误:

主要.chs:

生成文件:

mpi文件

0 投票
1 回答
675 浏览

c++ - 无法为基本 PETSc 程序生成 makefile

我有一个使用 PETSC 的非常基本的程序

但是,当我尝试使用 mpic++ 编译时,我得到了未定义的引用错误PETSC_COMM_WORLD和其他垃圾PetscInitialize

我现在正在尝试使用build和cmake。这是我的尝试CMakeLists

此外,我有一个cmake-modules包含 PETSc 的 cmake-modules的目录

但是,当我尝试通过键入ccmake ..然后生成生成文件时c,我得到了输出

任何人都可以帮忙吗?

0 投票
1 回答
866 浏览

cygwin - PETSC 构建错误:C 编译器不工作

我正在尝试通过调用以下命令在 Cygwin 终端上安装 PETSc。

它使我出现以下错误:

我是 Unix 平台的新手,所以请帮助我。

0 投票
0 回答
69 浏览

c - 结构中的 PETSc C 宏

在 PETSc 中,许多常用结构(例如 Vec、Mat、IS 等)的定义类似,如下面的 4 个片段所示。问题:

  • PETSCHEADER 何时以及如何扩展?我正在用另一种语言编写外来界面,并且想知道是否必须将宏包装在函数中或诸如此类
  • hdr和的范围是ops什么?

提前致谢


petscvec.h

vecimpl.h

petscimpl.h

vecimpl.h

0 投票
1 回答
47 浏览

c - 扩展 C 宏的类型

以下标头中的 PETSC_COMM_WORLD 扩展为什么类型和值?它只是对范围的重新定义MPI_Commextern