It's stuck in one of the inner solves. <span></span>Turn on the montitors for fieldsplit_2<br><br>On Sunday, 8 September 2013, Umut Tabak wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 09/08/2013 04:19 PM, Jed Brown wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Umut Tabak <<a>u.tabak@tudelft.nl</a>> writes:<br>
</blockquote>
Dear Jed and others,<br>
<br>
Thanks a lot for your help.<br>
<br>
One last question, trying to run with<br>
<br>
./ex3 -pc_type fieldsplit -pc_fieldsplit_type schur -pc_fieldsplit_schur_<u></u>factorization_type diag -fieldsplit_1_pc_type icc -fieldsplit_1_ksp_type minres -fieldsplit_2_pc_type icc -fieldsplit_2_ksp_type minres -ksp_converged_reason -ksp_monitor_short<br>
<br>
With this input, I would expect to see a flow of residual information even if increasing, but no information is being printed on the screen, what could be the reason for this?<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 09/08/2013 03:57 PM, Jed Brown wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
In the second call, ISCreateBlock looks at the array of block indices of<br>
length n2 starting from inputindices+n1. That references<br>
inputindices[n1], which is off the end of the array you created above.<br>
Simply extending that array won't work either because you can't describe<br>
the starting point correctly for one "block" of different length. I.e.,<br>
if inputindices[1] == 1, then the second call above would be creating<br>
the index set<br>
<br>
{sz2, sz2+1,..., 2*sz2-1}<br>
<br>
This should be obvious if you look at ISView().<br>
</blockquote>
Yes, but then there is a problem with my understanding of the block<br>
structure.<br>
<br>
What I would like to do at the end is to create a first block of size<br>
1490 and then create a block of size 2432 and stack these. This is how<br>
the original system is built up.<br>
</blockquote>
Then use the code I sent.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Of what if I use the below code,<br>
<br>
PetscInt sz1 = 1490, sz2 = 2432;<br>
<br>
/* ----- */<br>
<br>
PetscInt n1=1, n2=1,<br>
inputindices1[]={0}, inputindices2[]={1}; /* block size is 2 */<br>
<br>
ISCreateBlock(PETSC_COMM_SELF,<u></u>sz1,n1,inputindices1,<br>
PETSC_COPY_VALUES,&is_row1);<br>
ISCreateBlock(PETSC_COMM_SELF,<u></u>sz2,n2,inputindices2,<br>
PETSC_COPY_VALUES,&is_row2);<br>
<br>
Because if I look at<br>
<br>
<a href="http://www.mcs.anl.gov/petsc/petsc-current/docs/manualpages/IS/ISCreateBlock.html" target="_blank">http://www.mcs.anl.gov/petsc/<u></u>petsc-current/docs/<u></u>manualpages/IS/ISCreateBlock.<u></u>html</a><br>
<br>
I am getting the impression that bs and n are the same and on top idx is<br>
the global block number of the large matrix blocks.<br>
</blockquote>
What gives you this impression?<br>
<br>
ISCreateBlock is meant to describe index sets like the following (bs=2):<br>
<br>
{0,1,8,9,10,11,16,17,20,21}<br>
<br>
via<br>
<br>
ISCreateBlock(comm,2,5,[0,4,5,<u></u>8,10],&is);<br>
</blockquote>
<br>
</blockquote>