我机器上安装的 PETSc 版本PetscScalar设置为复杂。我正在制作一个包含所有真实条目的矩阵。
类似以下代码的编译:
PetscScalar value_for_matrix;
value_for_matrix=some_expression*returns_PetscReal;
右侧返回的真实值是否放入 PetscScalar 值的实部?如果这不起作用,我应该如何将 PetscReal 值放入复杂 PetscScalar 的实部?
我机器上安装的 PETSc 版本PetscScalar设置为复杂。我正在制作一个包含所有真实条目的矩阵。
类似以下代码的编译:
PetscScalar value_for_matrix;
value_for_matrix=some_expression*returns_PetscReal;
右侧返回的真实值是否放入 PetscScalar 值的实部?如果这不起作用,我应该如何将 PetscReal 值放入复杂 PetscScalar 的实部?
是的,这完全符合您的预期。如果要显式创建复数,可以将实数值乘以PETSC_i. 请注意,您可以使用PetscRealPart()、PetscImaginaryPart()、PetscAbsScalar()和PetscConj()来处理复数。