CG solver and preconditioner

Matt Funk mafunk at nmsu.edu
Thu Jul 6 11:44:03 CDT 2006


Hi,

In the html web manual for PETSc:

KSPCG is described as the preconditioned conjugate gradient iterative method 
with: The PCG method requires both the matrix and preconditioner to be 
symmetric positive (semi) definite.

For KSPCG do you need to specify a preconditioner type ie: Jacobi or is there 
a default the KSPCG uses.

Reason for question is that for the system I am solving I need to specify 
-pc_type none for KSPCG to run.  If I do not turn the PC off then the solver 
does not run.  Other KSP types like BiCG and GMRES work fine when I specify a 
PC.




On Monday 03 July 2006 11:29, Matt Funk wrote:
> Thanks for the reponse.
>
> I am just starting to use PETsC so it might be a little while. But
> eventually i think it might be useful to have (for myself and maybe other
> people might find it useful as well).
>
> The reason i need it, is that i have old codes that store the matrices in
> this format and i just wanted to "plug in" PETsC solvers. The old codes use
> solvers that we wrote ourselves.
>
> Anyway, thanks for the pointers. I have to see how i'll proceed.
>
> thanks
> mat
>
> On Friday 30 June 2006 19:04, Barry Smith wrote:
> >    Mat,
> >
> >      There is no routine like this. It would be possible for you or
> > someone else to provide a routine that worked for a particular matrix
> > format such as MatCreateSeqAIJFromCoordinates(comm,nz,i,j,values,&mat)
> > It likely would be essentially like the code you have written except it
> > would put the values directly into the data structure without having to
> > use calls to MatSetValues()[You would need to look at
> > MatSetValues_SeqAIJ() to see one way of getting the data directly in].
> >
> >     Similar code could be written for MPIAIJ though it gets more
> > complicated because of the more complicated structure and if you place
> > values off-processor. It could also be written for only PETSc matrix
> > formats, BAIJ, SBAIJ, Bdiag etc.
> >
> >    We haven't written this codes because we haven't needed them and much
> > prefer to simply put the matrix values into the matrix WHEN they are
> > generated rather then store them in some data-structure that has to be
> > then converted into the PETSc format.
> >
> >   If you would like to provide a routine like this we'd be glad to add it
> > to PETSc and maintain it.
> >
> >      Barry
> >
> > On Fri, 30 Jun 2006, Matt Funk wrote:
> > > Hi,
> > >
> > > i have a matrix stored in the matrix free format. I.e. an array
> > > indicating the row number, an array storing the column number and the
> > > array of corresponding values.
> > >
> > > I was wondering what the best way is to build the PETsC matrix using
> > > this. I was hoping that there is call to some sparse matrix assembler
> > > function to which is simply pass these three arrays and it builds the
> > > matrix for me.
> > >
> > > However, i did not find anything that simple. So i guess i need to do
> > > it row by row using the MatSetValues fcn() after allocating the memory
> > > for the matrix (i.e. pretty much as the procedure described on p.54 of
> > > the user manual)?
> > >
> > > mat
> > >
> > > On Friday 30 June 2006 14:30, Satish Balay wrote:
> > >> Added to petsc-dev now.
> > >>
> > >> Satish
> > >>
> > >> On Fri, 30 Jun 2006, Barry Smith wrote:
> > >>>    Mathieu,
> > >>>
> > >>>     Cool, thanks.
> > >>>
> > >>>    Satish,
> > >>>
> > >>>     Could you please apply the diff to petsc-dev now and then push
> > >>> so any future changes anyone makes will be combatiable with the new
> > >>> code.
> > >>>
> > >>>     Thanks
> > >>>
> > >>>      Barry
> > >>>
> > >>> On Fri, 30 Jun 2006, Mathieu Taillefumier wrote:
> > >>>> Good morning everybody,
> > >>>>
> > >>>> I finished to modify the code of the library in order to compile the
> > >>>> complex version with a C compiler. A few numbers of files have been
> > >>>> modified. This modifications include a modification of the file
> > >>>> language.py where I put in comment two lines forcing to compile the
> > >>>> library with a c++ compiler. Since I don't really know python, I
> > >>>> just put them as a comment, but i think it is better to put a
> > >>>> message indicating that compiling the complex version of Petsc needs
> > >>>> a C90 compliant compiler (gcc 3.4 and after work, it works also with
> > >>>> icc) and is experimental. Actually I am working with this
> > >>>> modifications and it seems to work like a charm (I had no problem
> > >>>> with it).
> > >>>> I still need some time to convert the example programs which do not
> > >>>> compile but it will be done soon.
> > >>>> Note for all of us :
> > >>>>    Don't use the name I as a variable anymore. It is a reserved word
> > >>>> of the language.
> > >>>>    For most of us, the modifications must be transparent.
> > >>>>
> > >>>> Regards
> > >>>>
> > >>>> Mathieu




More information about the petsc-users mailing list