是否有任何功能可以创建或更改矩阵,具有在PETSc?如果可能的话,它应该与 MPIAIJ 矩阵一起工作,而不仅仅是本地的。
在 PETSc 中获取具有绝对值的矩阵
计算科学
宠物
矩阵
2021-12-22 10:42:06
1个回答
虽然这个问题是关于单个库的特定功能的,但我前段时间偶然发现了同样的问题。
据我所知,PETSc (3.8.3) 中没有现成的矩阵函数可以开箱即用。考虑到以下功能的存在,我很惊讶几年前和现在没有找到解决方案:
VecAbs
这将完全符合您的要求,但仅适用于向量MatImaginaryPart
,MatRealPart
, 和MatConjugate
哪个会执行,, 和, 分别。
考虑到支持矩阵上的元素 Re、Im 和共轭运算,我假设MatAb的所有必要构建块都在那里,但没有正式编码。
从MatRealPart
子程序源代码中,以下摘录正在完成这项工作
(*mat->ops->realpart)(mat);
矩阵上支持和传播的操作列表存储在typedef的include/petscmat.h中。MatOperation
从技术上讲,您可以编写自己的操作并将其传播到您需要的数据类型(也许,甚至通过使用自定义用户矩阵MatOperation
和MatShellSetOperation
)。然而,问题是这样的发展是否值得付出所需的时间和痛苦。
其它你可能感兴趣的问题