[petsc-users] Condition number of matrix

Florian Lindner mailinglists at xgm.de
Tue Aug 30 09:03:23 CDT 2016


Hi,

Am 30.08.2016 um 14:05 schrieb Barry Smith:
> 
>    The format of .petscrc requires each option to be on its own line
> 
>> -ksp_view
>> -pc_type none
>> -ksp_type gmres
>> -ksp_monitor_singular_value
>> -ksp_gmres_restart 1000

Oh man, didn't know that. Sorry! Is using a hash # ok for comments in .petscrc?

I added the option accordingly:

-ksp_view
-pc_type none
-ksp_type gmres
-ksp_monitor_singular_value
-ksp_gmres_restart 1000

petsc outputs a line like:

550 KSP Residual norm 1.374922291162e-07 % max 1.842011038215e+03 min 6.509297234157e-04 max/min 2.829815526858e+06

for each iteration. Sorry about my mathematical illerateness, but where can I see the condition number of the matrix?

Thanks,
Florian

> 
> 
> 
>> On Aug 30, 2016, at 7:01 AM, Florian Lindner <mailinglists at xgm.de> wrote:
>>
>> Hello,
>>
>> there is a FAQ and a Stackoverflow article about getting the condition number of a petsc matrix:
>>
>> http://www.mcs.anl.gov/petsc/documentation/faq.html#conditionnumber
>> http://scicomp.stackexchange.com/questions/34/how-can-i-estimate-the-condition-number-of-a-large-sparse-matrix-using-petsc
>>
>> Both tell me to add:
>>
>> -pc_type none -ksp_type gmres -ksp_monitor_singular_value -ksp_gmres_restart 1000
>>
>> to my options.
>>
>> I add the line to .petscrc but nothing happens, no additional output at all. I added -ksp_view, so my .petscrc looks
>> like that:
>>
>> -ksp_view
>> -pc_type none -ksp_type gmres -ksp_monitor_singular_value -ksp_gmres_restart 1000
>>
>> The complete output is below, but something I wonder about:
>>
>> GMRES: restart=30, shouldn't that be 1000
>>
>> And where can I read out the condition number approximation?
>>
>> Thanks,
>> Florian
>>
>>
>> KSP Object: 1 MPI processes
>>  type: gmres
>>    GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
>>    GMRES: happy breakdown tolerance 1e-30
>>  maximum iterations=10000
>>  tolerances:  relative=1e-09, absolute=1e-50, divergence=10000.
>>  left preconditioning
>>  using nonzero initial guess
>>  using PRECONDITIONED norm type for convergence test
>> PC Object: 1 MPI processes
>>  type: none
>>  linear system matrix = precond matrix:
>>  Mat Object:  C   1 MPI processes
>>    type: seqsbaij
>>    rows=14403, cols=14403
>>    total: nonzeros=1044787, allocated nonzeros=1123449
>>    total number of mallocs used during MatSetValues calls =72016
>>        block size is 1
>> (0) 13:58:35 [precice::impl::SolverInterfaceImpl]:395 in initialize: it 1 of 1 | dt# 1 | t 0 of 1 | dt 1 | max dt 1 |
>> ongoing yes | dt complete no |
>> (0) 13:58:35 [precice::impl::SolverInterfaceImpl]:446 in advance: Iteration #1
>> KSP Object: 1 MPI processes
>>  type: gmres
>>    GMRES: restart=30, using Classical (unmodified) Gram-Schmidt Orthogonalization with no iterative refinement
>>    GMRES: happy breakdown tolerance 1e-30
>>  maximum iterations=10000
>>  tolerances:  relative=1e-09, absolute=1e-50, divergence=10000.
>>  left preconditioning
>>  using nonzero initial guess
>>  using PRECONDITIONED norm type for convergence test
>> PC Object: 1 MPI processes
>>  type: none
>>  linear system matrix = precond matrix:
>>  Mat Object:  C   1 MPI processes
>>    type: seqsbaij
>>    rows=14403, cols=14403
>>    total: nonzeros=1044787, allocated nonzeros=1123449
>>    total number of mallocs used during MatSetValues calls =72016
>>        block size is 1
> 


More information about the petsc-users mailing list