The same is happening with "-pc_type hypre -pc_hypre_type boomerang" and
with "-pc_type ilu".
I tried with,
ierr =
KSPSetTolerances(ksp,1.e-10,PETSC_DEFAULT,PETSC_DEFAULT,PETSC_DEFAULT);CHKERRQ(ierr);
this also.
Getting higher values of error even then.
Any suggestion to go over this issue?
Shall I send the code? It's not a large script (single routine, less than
100 lines except comment).
Thank you.
Sincerely,
Huq
On Fri, Jun 5, 2020 at 12:53 PM Matthew Knepley <[email protected]> wrote:
> On Fri, Jun 5, 2020 at 12:32 PM Fazlul Huq <[email protected]> wrote:
>
>> Input string:
>> mpiexec -np 1 ./poisson_m -n 10000000 -pc_type cholesky -ksp_view
>> -ksp_converged_reason -ksp_monitor_true_residual
>>
>> Output is attached herewith.
>>
>
> Solving the problem...
>
> 0 KSP preconditioned resid norm 9.741453255800e+07 true resid norm
> 1.802775638200e+01 ||r(i)||/||b|| 1.000000000000e+00
>
> 1 KSP preconditioned resid norm 5.796040438920e+00 true resid norm
> 3.146946078273e-05 ||r(i)||/||b|| 1.745611606675e-06
>
> Your Cholesky preconditioner is crap, probably because the system is
> either not symmetric or nearly singular. You can see this
> because the preconditioned residual is 6 orders of magnitude greater than
> the true residual. Also, if you want to evaluate convergence, you
> should probably use a lower tolerance like
>
> -ksp_rtol 1e-10
>
> Thanks,
>
> Matt
>
> Thank you.
>> Sincerely,
>> Huq
>>
>> On Fri, Jun 5, 2020 at 10:16 AM Matthew Knepley <[email protected]>
>> wrote:
>>
>>> On Fri, Jun 5, 2020 at 11:04 AM Fazlul Huq <[email protected]> wrote:
>>>
>>>> Hello All,
>>>> I'm trying to calculate the norm_2 error of a solution.
>>>> Here, vector s: Analytical solution
>>>> vector x: Numerical solution
>>>>
>>>> ierr = VecView(s,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
>>>> ierr = VecView(x,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
>>>>
>>>> ierr = VecAXPY(x,-1.0,s);CHKERRQ(ierr);
>>>> ierr = VecNorm(x,NORM_2,&norm);CHKERRQ(ierr);
>>>> ierr = VecView(x,PETSC_VIEWER_STDOUT_WORLD);CHKERRQ(ierr);
>>>> ierr = KSPGetIterationNumber(ksp,&its);CHKERRQ(ierr);
>>>> if (norm > tol) {
>>>> ierr = PetscPrintf(PETSC_COMM_WORLD,"Second Norm of error %g\n",
>>>> double)norm);CHKERRQ(ierr);
>>>> ierr = PetscPrintf(PETSC_COMM_WORLD,"Iterations
>>>> %D\n",its);CHKERRQ(ierr);
>>>> }
>>>>
>>>> Am I calculating the "Norm_2" error correctly or making any mistake?
>>>> Unfortunately, for large sized matrix, say 10^6, I am getting very high
>>>> value of "Norm_2" error.
>>>>
>>>
>>> 1) I am guessing x comes from a KSPSolve(). It is only as accurate as
>>> your tolerance
>>>
>>> 2) This is the l_2 norm, not the L_2 norm, so if you are using a
>>> continuum method like FEM, this is likely wrong.
>>>
>>> Thanks,
>>>
>>> Matt
>>>
>>>
>>>> Thank you.
>>>> Sincerely,
>>>> Huq
>>>>
>>>> --
>>>>
>>>> Fazlul Huq
>>>> Graduate Research Assistant
>>>> Department of Nuclear, Plasma & Radiological Engineering (NPRE)
>>>> University of Illinois at Urbana-Champaign (UIUC)
>>>> E-mail: [email protected]
>>>>
>>>
>>>
>>> --
>>> What most experimenters take for granted before they begin their
>>> experiments is infinitely more interesting than any results to which their
>>> experiments lead.
>>> -- Norbert Wiener
>>>
>>> https://www.cse.buffalo.edu/~knepley/
>>> <http://www.cse.buffalo.edu/~knepley/>
>>>
>>
>>
>> --
>>
>> Fazlul Huq
>> Graduate Research Assistant
>> Department of Nuclear, Plasma & Radiological Engineering (NPRE)
>> University of Illinois at Urbana-Champaign (UIUC)
>> E-mail: [email protected]
>>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/
> <http://www.cse.buffalo.edu/~knepley/>
>
--
Fazlul Huq
Graduate Research Assistant
Department of Nuclear, Plasma & Radiological Engineering (NPRE)
University of Illinois at Urbana-Champaign (UIUC)
E-mail: [email protected]
Total time starting......
Preparing and assigning values in matrix and vectors...
Allocation is completed in 4.340090 sec.
Solving the problem... 0 KSP preconditioned resid norm 9.660207389609e+07 true resid norm 1.802775638200e+01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 4.503532539794e+05 true resid norm 1.482299010613e-01 ||r(i)||/||b|| 8.222315518384e-03
2 KSP preconditioned resid norm 1.294189457141e+00 true resid norm 1.361533905992e-05 ||r(i)||/||b|| 7.552431246252e-07
3 KSP preconditioned resid norm 1.248502652604e-05 true resid norm 2.920496315686e-08 ||r(i)||/||b|| 1.619999878966e-09
Linear solve converged due to CONVERGED_RTOL iterations 3
KSP Object: 1 MPI processes
type: gmres
restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-10, absolute=1e-50, divergence=10000.
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: hypre
HYPRE BoomerAMG preconditioning
Cycle type V
Maximum number of levels 25
Maximum number of iterations PER hypre call 1
Convergence tolerance PER hypre call 0.
Threshold for strong coupling 0.25
Interpolation truncation factor 0.
Interpolation: max elements per row 0
Number of levels of aggressive coarsening 0
Number of paths for aggressive coarsening 1
Maximum row sums 0.9
Sweeps down 1
Sweeps up 1
Sweeps on coarse 1
Relax down symmetric-SOR/Jacobi
Relax up symmetric-SOR/Jacobi
Relax on coarse Gaussian-elimination
Relax weight (all) 1.
Outer relax weight (all) 1.
Using CF-relaxation
Not using more complex smoothers.
Measure type local
Coarsen type Falgout
Interpolation type classical
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
total: nonzeros=29999998, allocated nonzeros=50000000
total number of mallocs used during MatSetValues calls=0
not using I-node routines
Problem solved by 21.329104 sec.
Total time 25.669220 sec.
KSP Object: 1 MPI processes
type: gmres
restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-10, absolute=1e-50, divergence=10000.
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: hypre
HYPRE BoomerAMG preconditioning
Cycle type V
Maximum number of levels 25
Maximum number of iterations PER hypre call 1
Convergence tolerance PER hypre call 0.
Threshold for strong coupling 0.25
Interpolation truncation factor 0.
Interpolation: max elements per row 0
Number of levels of aggressive coarsening 0
Number of paths for aggressive coarsening 1
Maximum row sums 0.9
Sweeps down 1
Sweeps up 1
Sweeps on coarse 1
Relax down symmetric-SOR/Jacobi
Relax up symmetric-SOR/Jacobi
Relax on coarse Gaussian-elimination
Relax weight (all) 1.
Outer relax weight (all) 1.
Using CF-relaxation
Not using more complex smoothers.
Measure type local
Coarsen type Falgout
Interpolation type classical
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
total: nonzeros=29999998, allocated nonzeros=50000000
total number of mallocs used during MatSetValues calls=0
not using I-node routines
Second Norm of error 9.7378e+07
Iterations 3
Total time starting......
Preparing and assigning values in matrix and vectors...
Allocation is completed in 4.313934 sec.
Solving the problem... 0 KSP preconditioned resid norm 9.741419186704e+07 true resid norm 1.802775638200e+01 ||r(i)||/||b|| 1.000000000000e+00
1 KSP preconditioned resid norm 4.767085064402e+01 true resid norm 3.158285622856e-05 ||r(i)||/||b|| 1.751901654279e-06
2 KSP preconditioned resid norm 7.018030464764e-05 true resid norm 2.606059370354e-08 ||r(i)||/||b|| 1.445581643735e-09
Linear solve converged due to CONVERGED_RTOL iterations 2
KSP Object: 1 MPI processes
type: gmres
restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-10, absolute=1e-50, divergence=10000.
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: ilu
out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1., needed 1.
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
package used to perform factorization: petsc
total: nonzeros=29999998, allocated nonzeros=29999998
total number of mallocs used during MatSetValues calls=0
not using I-node routines
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
total: nonzeros=29999998, allocated nonzeros=50000000
total number of mallocs used during MatSetValues calls=0
not using I-node routines
Problem solved by 5.766347 sec.
Total time 10.080312 sec.
KSP Object: 1 MPI processes
type: gmres
restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
happy breakdown tolerance 1e-30
maximum iterations=10000, initial guess is zero
tolerances: relative=1e-10, absolute=1e-50, divergence=10000.
left preconditioning
using PRECONDITIONED norm type for convergence test
PC Object: 1 MPI processes
type: ilu
out-of-place factorization
0 levels of fill
tolerance for zero pivot 2.22045e-14
matrix ordering: natural
factor fill ratio given 1., needed 1.
Factored matrix follows:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
package used to perform factorization: petsc
total: nonzeros=29999998, allocated nonzeros=29999998
total number of mallocs used during MatSetValues calls=0
not using I-node routines
linear system matrix = precond matrix:
Mat Object: 1 MPI processes
type: seqaij
rows=10000000, cols=10000000
total: nonzeros=29999998, allocated nonzeros=50000000
total number of mallocs used during MatSetValues calls=0
not using I-node routines
Second Norm of error 9.7378e+07
Iterations 2