I just have a question about reuse of PCASM or PCGASM. Suppose I have seted up the PCASM and related KSP and I solved one time. Next for the same linear system (matrix and RHS), I just want PCASM modify the submatrices (PCSetModifySubmatrices) in a different way, using the same routine for modifying but with different user context for the modifying routine.
What can I do for this task? Currently, I destroy the KSP and re-construct it. I guess even for PCASM I can re-use it because the partition of subdomains remain the same. Thanks! On May 10, 2012, at 6:37 PM, Dmitry Karpeev wrote: > Hui, > There've been several changes to PCGASM ahead of the new release. > Let me go back and see if it affected the convergence problem. > Dmitry. > > On Thu, May 10, 2012 at 4:16 AM, Hui Zhang <mike.hui.zhang at hotmail.com> > wrote: > Hi Dmitry, > > is there any news about PCGASM? > > thanks, > Hui > > On Feb 20, 2012, at 6:38 PM, Dmitry Karpeev wrote: > >> Okay, thanks. >> I'll take a look. >> >> Dmitry. >> >> On Mon, Feb 20, 2012 at 11:30 AM, Hui Zhang <mike.hui.zhang at hotmail.com> >> wrote: >> For reference, my results are attached. >> >> asm1.txt for asm with 1 process, >> asm2.txt for asm with 2 processes, >> gasm1.txt for gasm with 1 process, (with the iteration numbers different >> from others) >> gasm2.txt for gasm with 2 processes >> >> >> >> >> >> >> thank you, >> Hui >> >> On Feb 20, 2012, at 3:06 PM, Dmitry Karpeev wrote: >> >>> >>> >>> On Mon, Feb 20, 2012 at 12:59 AM, Hui Zhang <mike.hui.zhang at hotmail.com> >>> wrote: >>> >>> On Feb 20, 2012, at 12:41 AM, Dmitry Karpeev wrote: >>> >>>> >>>> >>>> On Sun, Feb 19, 2012 at 3:08 PM, Hui Zhang <mike.hui.zhang at hotmail.com> >>>> wrote: >>>> I have a new problem: the results from ASM and GASM are different and it >>>> seems >>>> GASM has something wrong with SetModifySubMatrices. Numerical tests are >>>> with >>>> each subdomain supported only by one subdomain. There are no problems when >>>> I did not modify submatrices. But when I modify submatrices, there are >>>> problems >>>> with GASM but no problems with ASM. >>>> >>>> For example, I use two subdomains. In the first case each subdomain is >>>> supported by >>>> one processor and there seems no problem with GASM. But when I use run my >>>> program >>>> with only one proc. so that it supports both of the two subdomains, the >>>> iteration >>>> number is different from the first case and is much larger. On the other >>>> hand >>>> ASM has no such problem. >>>> >>>> Are the solutions the same? >>>> What problem are you solving? >>> >>> Yes, the solutions are the same. That's why ASM gives the same results with >>> one or >>> two processors. But GASM did not. >>> Sorry, I wasn't clear: ASM and GASM produced different solutions in the >>> case of two domains per processor? >>> I'm solving the Helmholtz equation. Maybe >>> I can prepare a simpler example to show this difference. >>> That would be helpful. >>> Thanks. >>> >>> Dmitry. >>> >>>> >>>> Dmitry. >>>> >>>> >>>> On Feb 15, 2012, at 6:46 PM, Dmitry Karpeev wrote: >>>> >>>>> You should be able to. >>>>> This behavior is the same as in PCASM, >>>>> except in GASM the matrices live on subcommunicators. >>>>> I am in transit right now, but I can take a closer look in Friday. >>>>> >>>>> Dmitry >>>>> >>>>> >>>>> >>>>> On Feb 15, 2012, at 8:07, Hui Zhang <mike.hui.zhang at hotmail.com> wrote: >>>>> >>>>>> On Feb 15, 2012, at 11:19 AM, Hui Zhang wrote: >>>>>> >>>>>>> Hi Dmitry, >>>>>>> >>>>>>> thanks a lot! Currently, I'm not using ISColoring. Just comes another >>>>>>> question >>>>>>> on PCGASMSetModifySubMatrices(). The user provided function has the >>>>>>> prototype >>>>>>> >>>>>>> func (PC pc,PetscInt nsub,IS *row,IS *col,Mat *submat,void *ctx); >>>>>>> >>>>>>> I think the coloumns from the parameter 'col' are always the same as >>>>>>> the rows >>>>>>> from the parameter 'row'. Because PCGASMSetLocalSubdomains() only >>>>>>> accepts >>>>>>> index sets but not rows and columns. Has I misunderstood something? >>>>>> >>>>>> As I tested, the row and col are always the same. >>>>>> >>>>>> I have a new question. Am I allowed to SetLocalToGlobalMapping() for the >>>>>> submat's >>>>>> in the above func()? >>>>>> >>>>>> thanks, >>>>>> Hui >>>>>> >>>>>>> >>>>>>> thanks, >>>>>>> Hui >>>>>>> >>>>>>> >>>>>>> On Feb 11, 2012, at 3:36 PM, Dmitry Karpeev wrote: >>>>>>> >>>>>>>> Yes, that's right. >>>>>>>> There is no good way to help the user assemble the subdomains at the >>>>>>>> moment beyond the 2D stuff. >>>>>>>> It is expected that they are generated from mesh subdomains. >>>>>>>> Each IS does carry the subdomains subcomm. >>>>>>>> >>>>>>>> There is ISColoringToList() that is supposed to convert a "coloring" >>>>>>>> of indices to an array of ISs, >>>>>>>> each having the indices with the same color and the subcomm that >>>>>>>> supports that color. It is >>>>>>>> largely untested, though. You could try using it and give us feedback >>>>>>>> on any problems you encounter. >>>>>>>> >>>>>>>> Dmitry. >>>>>>>> >>>>>>>> >>>>>>>> On Sat, Feb 11, 2012 at 6:06 AM, Hui Zhang <mike.hui.zhang at >>>>>>>> hotmail.com> wrote: >>>>>>>> About PCGASMSetLocalSubdomains(), in the case of one subdomain >>>>>>>> supported by >>>>>>>> multiple processors, shall I always create the arguments 'is[s]' and >>>>>>>> 'is_local[s]' >>>>>>>> in a subcommunicator consisting of processors supporting the subdomain >>>>>>>> 's'? >>>>>>>> >>>>>>>> The source code of PCGASMCreateSubdomains2D() seemingly does so. >>>>>>>> >>>>>>>> Thanks, >>>>>>>> Hui >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>> >>>> >>> >>> >> >> >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120511/efba433f/attachment.htm>
