I have the following MatView output: 

row 0: (0, -0.0351719 - 0.638814 i) (1, -0.517586 - 0.617823 i) (4, -0.517586 - 
0.617823 i) (1, -1.03517)  (5, -0.508793) 

Note that there are two values for the column 1, is this normal?

The above matrix is obtained from PCASMGetSubKSP(pc,subksp) and 
KSPGetOperators(subksp[0], ...).

Thanks!



On May 11, 2012, at 7:17 PM, Dmitry Karpeev wrote:

> You can call PCSetUp(pc) on either ASM or GASM, and that will destroy and 
> recreate the matrices (including calling 
> your modification subroutine), but not the subdomains or the subdomain 
> solvers. 
> If you just want to modify the submatrices, you can call 
> PC(G)ASMGetSubmatrices() and modify the matrices it returns
> (in the same order as the subdomains were set). That's a bit of a hack, since 
> you will essentially be modifying the PC's internal data structures.  As long 
> as you are careful, you should be okay, since you already effectively have 
> the same type of access to the submatrices through the Modify callback.
> 
> Dmitry.
> 
> On Fri, May 11, 2012 at 11:52 AM, Hui Zhang <mike.hui.zhang at hotmail.com> 
> wrote:
> 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/20120520/9b755d30/attachment.html>

Reply via email to