问题标签 [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.
c++ - 使用带有 INSERT_VALUES 的 MatSetValuesStencil 替换整行
我正在使用 Petsc Ksp 例程。我使用 MatSetValuesStencil 构造了一个运算符,在此函数的每次调用中,我指定一个长度为 5 的行矩阵值。有时我需要将一行从 5 长度模板完全替换为 3 长度模板。INSERT_VALUES 模式会将两个值保留在未更改的位置上还是会将它们丢弃为零?
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) 生成文件
c - mpicc 的 PETSc 错误
我正在使用 C 中的代码进行具有辐射传输的水力模拟。需要 PETSc,它是我在本地机器上编译的。但是在编译我的代码时,我收到错误消息:(error: ’__SDIR__’ undeclared
首先在此函数中使用)。生成文件有:
任何人都可以提出解决方案吗?
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 矩阵(我想稍后检索一些特征对)?
如果你们能帮我找到我(希望不是太明显)的错误,我会非常高兴。
c - do..while(0) c2hs 中类似函数的 C 宏包装器
我想在 C 函数中包装一个类似函数的 C 宏(然后用{#fun ... #}
块将它包装在 Haskell 中),但是预处理器在语法c2hs
上窒息;do.. while(0)
这是代码:
这是错误:
我究竟做错了什么?我的目标是包装CHKERRQ
PETSc 库的宏,定义如下petscerror.h
(为了便于阅读,拆分为多行):
c - 带有 FFI 导入的 MPI 常量的 GHCi 链接器错误(通过 c2hs)
我正在通过重写绑定来弄清楚 haskell-mpi 是如何工作的。我正在尝试重新使用通过安装 PETSc 设置的 MPICH 安装(工作正常)。问题:make main
在 GHCi 中给了我一个正确的模块,但是当我请求计算 commWorld 时,链接器抱怨它找不到 MPI_COMM_WORLD 符号(但它在 makefile 的范围内)。
我究竟做错了什么?提前致谢
错误:
主要.chs:
生成文件:
mpi文件
c++ - 无法为基本 PETSc 程序生成 makefile
我有一个使用 PETSC 的非常基本的程序
但是,当我尝试使用 mpic++ 编译时,我得到了未定义的引用错误PETSC_COMM_WORLD
和其他垃圾PetscInitialize
我现在正在尝试使用build
和cmake。这是我的尝试CMakeLists
此外,我有一个cmake-modules
包含 PETSc 的 cmake-modules的目录
但是,当我尝试通过键入ccmake ..
然后生成生成文件时c
,我得到了输出
任何人都可以帮忙吗?
cygwin - PETSC 构建错误:C 编译器不工作
我正在尝试通过调用以下命令在 Cygwin 终端上安装 PETSc。
和
它使我出现以下错误:
我是 Unix 平台的新手,所以请帮助我。
c - 结构中的 PETSc C 宏
在 PETSc 中,许多常用结构(例如 Vec、Mat、IS 等)的定义类似,如下面的 4 个片段所示。问题:
- PETSCHEADER 何时以及如何扩展?我正在用另一种语言编写外来界面,并且想知道是否必须将宏包装在函数中或诸如此类
hdr
和的范围是ops
什么?
提前致谢
petscvec.h
vecimpl.h
petscimpl.h
vecimpl.h
c - 扩展 C 宏的类型
以下标头中的 PETSC_COMM_WORLD 扩展为什么类型和值?它只是对范围的重新定义MPI_Comm
吗extern
?