在PETSC 中有很多xxxSetyyy 方法,例如MatSetLocalToGlobalMapping(A,rmap,cmap)。我想知道指向的 rmap 和 cmap (或者通常是 yyy,设置为 xxx)的内容是否被复制到 A(或 xxx)中的某个地方。换句话说,我应该在设置为'xxx'之后销毁'yyy'还是在'xxx'中完成使用'yyy'之前不应该?
其他示例包括 KSPSetPC、PCCompositeAddPC(PC pc,PCType type)、ISCreateGeneral、PCASMSetLocalSubdomains。我发现对于 PCASMSetLocalSubdomains,定义子域的 IS 被复制,因此我们可以在之后销毁它。另一方面,ISCreateGeneral 转发一个参数让用户指定 PetscCopyMode(Own_Pointer 或 Copy_Values)。
这些事情有什么一般规则吗?谢谢!