<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">I have a new problem: the results from ASM and GASM are different and it seems<div>GASM has something wrong with SetModifySubMatrices. Numerical tests are with&nbsp;</div><div>each subdomain supported only by one subdomain. There are no problems when</div><div>I did not modify submatrices. &nbsp;But when I modify submatrices, there are problems</div><div>with GASM but no problems with ASM.&nbsp;</div><div><br></div><div>For example, I use two subdomains. In the first case each subdomain is supported by</div><div>one processor and&nbsp;there seems no problem with GASM. But when I use run my program&nbsp;</div><div>with only one proc.&nbsp;so that it supports both of the two subdomains, the iteration&nbsp;</div><div>number is different from the first&nbsp;case and is much larger. &nbsp;On the other hand</div><div>ASM has no such problem.</div><div><div><br><div><br><div><div>On Feb 15, 2012, at 6:46 PM, Dmitry Karpeev wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div bgcolor="#FFFFFF"><div>You should be able to.&nbsp;</div><div>This behavior is the same as in PCASM,</div><div>except in GASM the matrices live on subcommunicators.</div><div>I am in transit right now, but I can take a closer look in Friday.</div><div><br></div><div>Dmitry<br><br><br></div><div><br>On Feb 15, 2012, at 8:07, Hui Zhang &lt;<a href="mailto:mike.hui.zhang@hotmail.com">mike.hui.zhang@hotmail.com</a>&gt; wrote:<br><br></div><div></div><blockquote type="cite"><div><div>On Feb 15, 2012, at 11:19 AM, Hui Zhang wrote:</div><div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Hi Dmitry,<div><br></div><div>thanks a lot! Currently, I'm not using ISColoring. Just comes another question</div><div>on PCGASMSetModifySubMatrices(). The user provided function has the prototype</div><div><br></div><div><span class="Apple-style-span" style="font-family: monospace; white-space: pre; ">    func (</span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><a href="file:///Users/huizhang/Documents/petsc/docs/manualpages/PC/PC.html#PC">PC</a></span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "> pc,</span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><a href="file:///Users/huizhang/Documents/petsc/docs/manualpages/Sys/PetscInt.html#PetscInt">PetscInt</a></span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "> nsub,</span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><a href="file:///Users/huizhang/Documents/petsc/docs/manualpages/IS/IS.html#IS">IS</a></span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "> *row,</span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><a href="file:///Users/huizhang/Documents/petsc/docs/manualpages/IS/IS.html#IS">IS</a></span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "> *col,</span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><a href="file:///Users/huizhang/Documents/petsc/docs/manualpages/Mat/Mat.html#Mat">Mat</a></span><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "> *submat,void *ctx);</span></div><div><span class="Apple-style-span" style="font-family: monospace; white-space: pre; "><br></span></div><div><span class="Apple-style-span" style="white-space: pre; ">I think the coloumns from the parameter 'col' are always the same <font class="Apple-style-span" face="monospace">as the rows </font></span></div><div><span class="Apple-style-span" style="white-space: pre; "><font class="Apple-style-span" face="monospace">from the parameter 'row'. Because PCGASMSetLocalSubdomains() only accepts </font></span></div><div><span class="Apple-style-span" style="white-space: pre; "><font class="Apple-style-span" face="monospace">index sets but not rows and columns. Has I misunderstood something?</font></span></div></div></blockquote><div><br></div><div>As I tested, the row and col are always the same.&nbsp;</div><div><br></div><div>I have a new question. Am I allowed to SetLocalToGlobalMapping() for the submat's</div><div>in the above func()?</div><div><br></div><div>thanks,</div><div>Hui</div><br><blockquote type="cite"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><span class="Apple-style-span" style="white-space: pre; "><font class="Apple-style-span" face="monospace"><br></font></span></div><div><span class="Apple-style-span" style="white-space: pre; "><font class="Apple-style-span" face="monospace">thanks,</font></span></div><div><span class="Apple-style-span" style="white-space: pre; "><font class="Apple-style-span" face="monospace">Hui</font></span></div><div><br></div><div><br><div><div>On Feb 11, 2012, at 3:36 PM, Dmitry Karpeev wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Yes, that's right.<div>There is no good way to help the user assemble the subdomains at the moment beyond the 2D stuff.</div><div>It is expected that they are generated from mesh subdomains.</div><div>Each IS does carry the subdomains subcomm.</div>

<div><br></div><div>There is ISColoringToList() that is supposed to convert a "coloring" of indices to an array of ISs,</div><div>each having the indices with the same color and the subcomm that supports that color. It is</div>

<div>largely untested, though. &nbsp;You could try using it and give us feedback on any problems you encounter.</div><div><br></div><div>Dmitry.</div><div><br><br><div class="gmail_quote">On Sat, Feb 11, 2012 at 6:06 AM, Hui Zhang <span dir="ltr">&lt;<a href="mailto:mike.hui.zhang@hotmail.com"></a><a href="mailto:mike.hui.zhang@hotmail.com">mike.hui.zhang@hotmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">About PCGASMSetLocalSubdomains(), in the case of one subdomain supported by<br>
multiple processors, shall I always create the arguments 'is[s]' and 'is_local[s]'<br>
in a subcommunicator consisting of processors supporting the subdomain 's'?<br>
<br>
The source code of PCGASMCreateSubdomains2D() seemingly does so.<br>
<br>
Thanks,<br>
Hui<br>
<br>
</blockquote></div><br></div>
</blockquote></div><br></div></blockquote></div><br></div></blockquote></div></blockquote></div><br></div></div></div></body></html>