On Thu, Mar 8, 2012 at 3:17 AM, Klaij, Christiaan <span dir="ltr">&lt;<a href="mailto:C.Klaij@marin.nl">C.Klaij@marin.nl</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
This may be a dumb question (new to c++), well anyway: I&#39;m trying<br>
to get the sub KSP associated with the Schur complement S, in<br>
order to set the null space. This is the code:<br>
<br>
  KSP subksp[2];<br></blockquote><div><br></div><div>Declare this as KSP *subksp;</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">

  PetscInt n=2;<br>
  ierr = PCFieldSplitGetSubKSP(pc,&amp;n,&amp;subksp); CHKERRQ(ierr);<br>
  ierr = KSPSetNullSpace(subksp[1],subnullsp); CHKERRQ(ierr);<br>
<br>
It gives the following compiler error:<br>
<br>
error: argument of type &quot;KSP (*)[2]&quot; is incompatible with parameter of type &quot;KSP **&quot;<br>
    ierr = PCFieldSplitGetSubKSP(pc,&amp;n,&amp;subksp); CHKERRQ(ierr);<br>
                                       ^<br>
So I changed the code to:<br>
<br>
  KSP *subksp[2];<br>
  PetscInt n=2;<br>
  ierr = PCFieldSplitGetSubKSP(pc,&amp;n,subksp); CHKERRQ(ierr);<br>
  ierr = KSPSetNullSpace(subksp[1],subnullsp); CHKERRQ(ierr);<br>
<br>
Now I get the error:<br>
<br>
error: argument of type &quot;KSP *&quot; is incompatible with parameter of type &quot;KSP&quot;<br>
    ierr = KSPSetNullSpace(subksp[1],subnullsp); CHKERRQ(ierr);<br>
                           ^<br>
<br>
What is the proper way to set the null space of the Schur<br>
complement? I already have the null space of the matrix [A00 A01,<br>
A10 A11], the null space of A11 - A10 inv(A00) A01 is clearly<br>
related and could perhaps be deduced somehow?<br>
<br>
<br>
dr. ir. Christiaan Klaij<br>
CFD Researcher<br>
Research &amp; Development<br>
E mailto:<a href="mailto:C.Klaij@marin.nl">C.Klaij@marin.nl</a><br>
T <a href="tel:%2B31%20317%2049%2033%2044" value="+31317493344">+31 317 49 33 44</a><br>
<br>
MARIN<br>
2, Haagsteeg, P.O. Box 28, 6700 AA Wageningen, The Netherlands<br>
T <a href="tel:%2B31%20317%2049%2039%2011" value="+31317493911">+31 317 49 39 11</a>, F <a href="tel:%2B31%20317%2049%2032%2045" value="+31317493245">+31 317 49 32 45</a>, I <a href="http://www.marin.nl" target="_blank">www.marin.nl</a><br>

<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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<br>