[petsc-users] PCGASMSetLocalSubdomains
Hui Zhang
mike.hui.zhang at hotmail.com
Mon Feb 20 11:13:18 CST 2012
Hi,
attached is an example modified from ksp/ex11.c. I found even I do not modify
matrices there are problems.
Just make and run with
mpirun -np 1 gasm_test -ksp_monitor -n 64
and
mpirun -np 2 gasm_test -ksp_monitor -n 64
You will see how the ASM gives the same result in the two runs.
Then, do a replacement for ASM->GASM, make and run again like before.
I saw different results from two runs.
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/20120220/0a3b7348/attachment.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gasm_test.c
Type: application/octet-stream
Size: 10102 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120220/0a3b7348/attachment.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120220/0a3b7348/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: makefile
Type: application/octet-stream
Size: 162 bytes
Desc: not available
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120220/0a3b7348/attachment-0001.obj>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20120220/0a3b7348/attachment-0002.htm>
More information about the petsc-users
mailing list