<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">On 09/08/2013 03:00 PM, Matthew Knepley
wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4G=VOXkn6bzEYrAzmViYa0UN18iH67F2rk5FSUmUi+ac3Q@mail.gmail.com"
type="cite">
<meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote"><br>
<div><br>
</div>
<div>If you want to solve hard systems, you must learn to
debug a solver yourself. What does "just hangs" mean?
Start with a full</div>
<div>Schur complement factorization with LU on block 1 and a
tiny tolerance on block 2. This will converge in 1
iterate. Then</div>
<div>start slowly making the preconditioner weaker.</div>
</div>
</div>
</div>
</blockquote>
<br>
Ok just for reference for future search on the topic for the others,
here is the correct set of options<br>
<br>
./ex3 -pc_type fieldsplit -fieldsplit_1_pc_type lu
-fieldsplit_1_ksp_type preonly -fieldsplit_2_pc_type icc
-fieldsplit_2_ksp_type minres -fieldsplit_2_ksp_rtol 1e-4 -ksp_view<br>
<br>
<blockquote
cite="mid:CAMYG4G=VOXkn6bzEYrAzmViYa0UN18iH67F2rk5FSUmUi+ac3Q@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">
<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">
The system is a symmetric system in this case given as<br>
<br>
A =<br>
A11 C<br>
C^T A22<br>
<br>
C is of size 1490X2432<br>
<br>
Could you please comment on this point for me, do I still
have an error on the problem setup or on the usage of the
options?<br>
<br>
BR,<br>
Umut
<div class="HOEnZb">
<div class="h5"><br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);<br>
ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);<br>
<br>
We could check for this case, but it would require a
little code and<br>
isn't currently done. This is probably what you
wanted:<br>
<br>
diff --git i/ex2.c w/ex2.c<br>
index 94cea2c..0cce3e6 100644<br>
--- i/ex2.c<br>
+++ w/ex2.c<br>
@@ -45,7 +45,7 @@ int main(int argc,char **args)<br>
PetscInt bs = 2, n1=1, n2=1,
inputindices[]={0,1}; /* block size is 2 */<br>
ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);<br>
- ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);<br>
+ ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices+n1,PETSC_COPY_VALUES,&is_row2);<br>
ISView(is_row1,PETSC_VIEWER_STDOUT_SELF);<br>
ISView(is_row2,PETSC_VIEWER_STDOUT_SELF);<br>
</blockquote>
<br>
</div>
</div>
</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
</div>
</div>
</blockquote>
<br>
</body>
</html>