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