[petsc-users] Solving Linear Systems with Scalar Real and Complex

Smith, Barry F. bsmith at mcs.anl.gov
Fri Jul 27 11:32:15 CDT 2018



> On Jul 27, 2018, at 3:26 AM, Pierpaolo Minelli <pierpaolo.minelli at cnr.it> wrote:
> 
> 
> Finally, I have a question. In my simulation I solve the two systems at each step of the calculation, and it was my habit to use the following option after the first resolution and before solving the system in the second time step:
> 
> call KSPSetInitialGuessNonzero(ksp,PETSC_TRUE,ierr)
> 
> Since this option was incompatible with the use of MUMPS or SuperLU_Dist, I commented on it and noticed, to my surprise, that iterative methods were not affected by this comment, rather they were slightly faster. Is this normal? Or do I use this command incorrectly?

   Presuming this is a linear problem?

   You should run with -ksp_monitor_true_residual and compare the final residual norms (at linear system convergence). Since KSP uses a relative decrease in the residual norm to declare convergence what you have told us isn't enough to determine if one is converging "faster" to the solution then the other.

   Barry


> 
> Thanks
> 
> Pierpaolo
> 
>> Il giorno 23 lug 2018, alle ore 15:43, Mark Adams <mfadams at lbl.gov> ha scritto:
>> 
>> Note, as Barry said, GAMG works with native complex numbers. You can start with your original complex build and use '-pc_type gamg'.
>> Mark
>> 
>> On Mon, Jul 23, 2018 at 6:52 AM Pierpaolo Minelli <pierpaolo.minelli at cnr.it> wrote:
>> 
>> 
>> > Il giorno 20 lug 2018, alle ore 19:58, Smith, Barry F. <bsmith at mcs.anl.gov> ha scritto:
>> > 
>> > 
>> > 
>> >> On Jul 20, 2018, at 7:01 AM, Pierpaolo Minelli <pierpaolo.minelli at cnr.it> wrote:
>> >> 
>> >> Hi,
>> >> 
>> >> in my code I have to solve both a system in the field of real numbers and in the field of complex numbers.
>> >> My approach has been as follows.
>> >> First I configured PETSc with the --with-scalar-type=complex option.
>> >> Using this option I have unfortunately lost the possibility to use the two preconditioners ML and Hypre.
>> > 
>> >    You should still be able to use the PETSc PCGAMG algebraic multigrid solver. Have you tried that? If there are issues let us know because we would like to continue to improve the performance of PCGAMG to get it to be closer to as good as ML and hypre.
>> > 
>> >   Barry
>> > 
>> 
>> I will try to convert, as suggested by Matthew, my complex system in a system twice as large in real numbers. When i finish, i will try to use ML, Hypre and GAMG and i let you know if there are any performance differences.
>> 
>> Thanks
>> 
>> Pierpaolo
>> 
>> 
>> >> I later created two subspaces of Krylov and tried to solve the two systems as I used to when solving the only equation in the real numbers field.
>> >> In order to correctly solve the system in the field of real numbers I had to transform the coefficients from real to complex with an imaginary part equal to zero.
>> >> 
>> >> Is there a possibility to use a different and better approach to solve my problem?
>> >> 
>> >> Perhaps an approach where you can continue to use ML and Hypre for system solving in the real numbers field or where you don't need to use complex numbers when real numbers would actually suffice?
>> >> 
>> >> Thanks in advance
>> >> 
>> >> Pierpaolo
>> >> 
>> > 
>> 
> 



More information about the petsc-users mailing list