1

関数 MatSetValues で「-nan+iG の挿入エラー」が発生しました。

私のコードは次のようになります。

最初に以下のコードを使用して double を PETScScalar に変更します (Complex バージョンを使用しています)。

for(i=0;i<nz;i++)temp[i] = Ax[i] + Az[i] * PETSC_i;

次に、以下のコードを使用して値をマトリックスに挿入します。

ierr = MatSetValues(A,n,Conlumn_ptr,n,Ai,temp,INSERT_VALUES);

問題は次のとおりです。

PETSc コードを .so lib にコンパイルし、プログラムの他の部分とリンクします。

しかし、それは私に言い続けます

行列のエントリ (2,3) に -nan+iG を挿入!

(2,3) は実際にはゼロであり、 std::cerr で印刷でき、ゼロであることがわかります。そこで、マトリックスを画面からファイルにコピーし、オプションを付けてコンパイルします。

g++ test.cpp -L. -leigen_slepc -lstdc++ -I/home/altria/software/slepc-3.4.4/include -I/home/altria/software/slepc-3.4.4/arch-linux2-c-debug/include -I/home/altria /software/petsc-3.4.4/include -I/home/altria/software/petsc-3.4.4/arch-linux2-c-debug/include

今回はパスしました。ということで、コンパイル処理の違いが問題を引き起こしたのかもしれません。誰かが私の問題について何か知っていますか?

4

0 に答える 0