<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Mar 10, 2016 at 3:23 PM, Chih-Hao Chen <span dir="ltr"><<a href="mailto:chih-hao.chen2@mail.mcgill.ca" target="_blank">chih-hao.chen2@mail.mcgill.ca</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">



<div style="word-wrap:break-word">
<span style="font-size:14px">Hello PETSc members,</span>
<div><span style="font-size:14px"><br>
</span></div>
<div><span style="font-size:14px"><br>
</span></div>
<div><span style="font-size:14px">Sorry for asking for help about the ASM in petsc4py.</span></div>
<div><span style="font-size:14px">Currently I am using your ASM as my preconditioned in my solver.</span></div>
<div><span style="font-size:14px">I know how to setup the PCASM based on the ex8.c in the following link.</span></div>
<div><span style="font-size:14px"><a href="http://www.mcs.anl.gov/petsc/petsc-3.4/src/ksp/ksp/examples/tutorials/ex8.c" target="_blank">http://www.mcs.anl.gov/petsc/petsc-3.4/src/ksp/ksp/examples/tutorials/ex8.c</a></span></div>
<div><span style="font-size:14px"><br>
</span></div>
<div><span style="font-size:14px">But when using the function “getASMSubKSP” in petsc4py, </span></div>
<div><span style="font-size:14px">I have tried several methods, but still cannot get the subksp from each mpi.</span></div></div></blockquote><div><br></div><div>The subKSPs do not have to do with MPI. On each rank, you get the local KSPs.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><span style="font-size:14px">Here is the snippet of the code of the function.</span></div>
<div>
<pre><span style="font-size:14px">def getASMSubKSP(self):
<a name="-9334186_l-266"></a>        cdef PetscInt i = 0, n = 0
<a name="-9334186_l-267"></a>        cdef PetscKSP *p = NULL
<a name="-9334186_l-268"></a>        CHKERR( PCASMGetSubKSP(self.pc, <span>&</span>n, NULL, <span>&</span>p) )
<a name="-9334186_l-269"></a>        return <span>[</span><span>ref_KSP</span><span>(</span><span>p</span><span>[</span><span>i</span><span>]</span>) for i from 0 <span><</span>= i <span><n</span><span>]</span></span></pre>
<div><span style="font-size:14px"><br>
</span></div>
</div>
<div><span style="font-size:14px">In ex8.c, we could use a “FOR” loop to access the indiivdual subksp.</span></div>
<div><span style="font-size:14px">But in python, could I use “FOR” loop to get all the subksps with:</span></div>
<div><span style="font-size:14px"><br>
</span></div>
<div><span style="font-size:14px">subksp[i] = pc.getASMSubKSP[i] </span></div></div></blockquote><div><br></div><div>I do not understand this, but I think the answer is no.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><span style="font-size:14px">Another question is in ex8.c, it seems I don’t need to do any setup to decompose the RHS vector.</span></div>
<div><span style="font-size:14px">But do I need to decompose the RHS vector with any settings if I don’t use PETSc solvers but with your preconditioners?</span></div></div></blockquote><div><br></div><div>I do not understand what you mean by "decompose the RHS vector".</div><div><br></div><div>  Thanks,</div><div><br></div><div>    Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word">
<div><span style="font-size:14px">Thanks very much.</span></div>
<div><span style="font-size:14px"><br>
</span></div>
<div><span style="font-size:14px">Best,</span></div>
<div><span style="font-size:14px">Chih-Hao</span></div>
<div><span style="font-size:14px"><br>
</span></div>
<div><br>
</div>
</div>

</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div>
</div></div>