将 PetscReal 隐式转换为 PetscComplex 的实部

计算科学 宠物 C 复数
2021-12-09 22:26:43

我机器上安装的 PETSc 版本PetscScalar设置为复杂。我正在制作一个包含所有真实条目的矩阵。

类似以下代码的编译:

PetscScalar value_for_matrix;
value_for_matrix=some_expression*returns_PetscReal;

右侧返回的真实值是否放入 PetscScalar 值的实部?如果这不起作用,我应该如何将 PetscReal 值放入复杂 PetscScalar 的实部?

1个回答

是的,这完全符合您的预期。如果要显式创建复数,可以将实数值乘以PETSC_i. 请注意,您可以使用PetscRealPart()PetscImaginaryPart()PetscAbsScalar()PetscConj()来处理复数。