- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Dear all,
I'm using PARDISO to do the following:
1) Solve a linear system for a given matrix A using a direct method
I'm using the following options:
for (i = 0; i < 64; i++) {
iparm = 0;
}
iparm[0] = 1; /* No solver default */
iparm[1] = 2; /* Fill-in reordering from METIS */
iparm[2] = 1;
iparm[3] = 0; /* No iterative-direct algorithm */
iparm[4] = 0; /* No user fill-in reducing permutation */
iparm[5] = 0; /* Write solution into x */
iparm[6] = 0; /* Not in use */
iparm[7] = 2; /* Max numbers of iterative refinement steps */
iparm[8] = 0; /* Not in use */
iparm[9] = 13; /* Perturb the pivot elements with 1E-13 */
iparm[10] = 1; /* Use nonsymmetric permutation and scaling MPS */
iparm[11] = 0; /* Not in use */
iparm[12] = 1; /* Maximum weighted matching algorithm is switched-on (default for non-symmetric) */
iparm[13] = 0; /* Output: Number of perturbed pivots */
iparm[14] = 0; /* Not in use */
iparm[15] = 0; /* Not in use */
iparm[16] = 0; /* Not in use */
iparm[17] = -1; /* Output: Number of nonzeros in the factor LU */
iparm[18] = -1; /* Output: Mflops for LU factorization */
iparm[19] = 0; /* Output: Numbers of CG Iterations */
iparm[26]=1; /*Check matrix consistency*/
2) Modify slightly the matrix A, (only the values are changed, not the structure of the matrix)
3) Solve a new linear system by using an iterative method :
iparm[3] = 41;
The steps 1 and 2 are working well however I've a problem with step 3.
The call to PARDISO ends with an error code - 4. The value of iparm[19] is -16. It means that cgs_error is equal to 6. However in the PARDISO documentation only the values 1 to 5 are documented.
What does cgs_error = 6 means ?
Thanks in advance,
Link kopiert
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Bertrand,
This is an unexpected result. Could you give us the example for reproducing the problem?
--Gennady
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Unfortunatley I'm not allowed to post the matrix on which the problem has been identified (due to confidentiality restriction).
I've tried to reproduce the problem on a smaller matrix but without success.
However I've found the origin of the "problem". When I modified the matrix, I was using the following code:
M->x = M->x * (1 + (rand()-0.5)/100.0 );
I've forgot to divide by RAND_MAX. It means that I was modifying my matrix much more than expected. My matrix was quite large (around 130,000 variables) and very sparse (+/- 8 elements per line). Maybe you can reproduce the same problem on one of your testcase.
Dividing by RAND_MAX I obtain more reasonable results (either convergence or an error explained in the PARIDISO documentation).
- Als neu kennzeichnen
- Lesezeichen
- Abonnieren
- Stummschalten
- RSS-Feed abonnieren
- Kennzeichnen
- Anstößigen Inhalt melden
Bertrand,
I wasn't able to do that on my side. The 130K of nnz is not very big task, I believe ( < 1.5 Mb) . Can you give us the testcase and attached it to this post? If it's the private data, then you can submit the private post.
--Gennady

- RSS-Feed abonnieren
- Thema als neu kennzeichnen
- Thema als gelesen kennzeichnen
- Diesen Thema für aktuellen Benutzer floaten
- Lesezeichen
- Abonnieren
- Drucker-Anzeigeseite