On Sun, Mar 7, 2010 at 12:20 PM, David sheehan <david.sheehanjr at gmail.com>wrote:
> >I mean Ax =b doesn't have A in explicit form, but in expression > A=B+C1+C2+...+Cn, > >where B is main part of A in an explicit form, C1, C2,... and Cn are small > portions > >comparing with B and they don't have an explicit form. Thus I want to > make a > >preconditioner from B, then apply the preconditioner to Ax=b. Please tell > me how I > >can do by PETSC sentences for PETSC solver, thanks. > > > call KSPSetOperators(ksp,A,B,......) > > However, A doesn't have an explicit matrix form, how to call > call KSPSetOperators(ksp,A,B,......) > Use MATSHELL for A. Matt > ? thanks. > > Based on what I thought, once I got preconditioner of B, I am wondering if > I can > define a special matrix-vector multiplication for A=B+C1+C2+...+Cn from a > PETSC > sentence, such that it can do following > 1) x1=B*x > 2) x2=x1+ C1*x, where C1*x is a sequence of matrix-vector multiplications > 3) x3= x2+C2*x,...... > ..... > 4) xn+1=xn+Cn*x,where Cn*x is a squence of matrix-vector multiplications > > Then select a KSP iterative method such as GMRES to use the above > matrix-vector > multiplication and preconditioner that I made from B. > > Could you please tell me if it is possible? if so (I hope), how can I do it > ? thanks. > > David > > On Sun, Mar 7, 2010 at 11:12 AM, Barry Smith <bsmith at mcs.anl.gov> wrote: > >> >> On Mar 7, 2010, at 10:57 AM, David sheehan wrote: >> >> >First, configure with Hypre . >> You mean, configure for the installation of PETSC with hypre? thanks. >> >> yes, add --download-hypre >> >> >> >Then -pc_type hypre -pc_hypre_type boomeramg >> You mean, without adding any information into code include, just compile >> and link >> the code, to get an excuteable file, e.g. "a.out", then >> a.out -pc_type hypre -pc_hypre_type boomeramg >> is it right? thanks. >> >> >> Yes, >> >> >> >I cannot understand exactly what you mean. However, if you want to create >> a PC >> > based upon a >matrix which is not the system matrix A, you can specify >> it in >> > KSPSetOperators(). >> >> I mean Ax =b doesn't have A in explicit form, but in expression >> A=B+C1+C2+...+Cn, >> where B is main part of A in an explicity form, C1, C2,... and Cn are >> small portions >> comparing with B and they don't have an explicit form. Thus I want to >> make a >> preconditioner from B, then apply the preconditioner to Ax=b. Please tell >> me how I >> can do by PETSC sentences for PETSC solver, thanks. >> >> >> call KSPSetOperators(ksp,A,B,......) >> >> Barry >> >> >> >> >> David >> >> >> On Sun, Mar 7, 2010 at 12:32 AM, Matthew Knepley <knepley at gmail.com>wrote: >> >>> On Sat, Mar 6, 2010 at 11:49 PM, David sheehan < >>> david.sheehanjr at gmail.com> wrote: >>> >>>> Hi, >>>> I need your helps about PETSC as follows: >>>> 1) how can I call boomerAMG of HYPRE through PETSC as a solver and a >>>> preconditioner? >>>> >>> >>> First, configure with Hypre . Then -pc_type hypre -pc_hypre_type >>> boomeramg >>> >>> >>>> 2) how can I make a precondioner from B matrix, but apply the >>>> preconditioner to Ax=b in PETSC? >>>> Thanks in advance. >>>> >>> >>> I cannot understand exactly what you mean. However, if you want to create >>> a PC based upon a matrix >>> which is not the system matrix A, you can specify it in >>> KSPSetOperators(). >>> >>> Matt >>> >>> >>>> David >>>> >>> -- >>> 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 >>> >> >> >> > -- 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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20100307/b986b472/attachment.html>
