<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">So I did the modification as you
suggested and it works fine.<br>
I tried it on an example where I do two schur complements (on the
global system and then on the A00 term of the global schur) and
solve the A00 and S blocks of the local schur with jacobi sweeps.<br>
I attached the -ksp_view output for info.<br>
<pre class="moz-signature" cols="72">Best,
Luc</pre>
On 03/02/2014 02:33 PM, Matthew Knepley wrote:<br>
</div>
<blockquote
cite="mid:CAMYG4G=Frbr_ve=FkGfOSUdBZ+P7Z=5euuseBXhCMPQAz45nfw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_extra">
<div class="gmail_quote">On Fri, Feb 28, 2014 at 8:18 PM, Luc
Berger-Vergiat <span dir="ltr"><<a
moz-do-not-send="true"
href="mailto:luc.berger.vergiat@gmail.com"
target="_blank">luc.berger.vergiat@gmail.com</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">Hi all,
<div>sorry for the cryptic title but this is a little
complex.</div>
<div>Here is what I am doing:</div>
<div>I created a DMShell that gets four fields passed
from a PetscSection.</div>
<div>Now I am doing this because I want to apply a schur
complement to my problem.</div>
<div>In order to do so I pass the following arguments to
my code:</div>
<div><br>
</div>
<div><font face="'Lucida Console'">-ksp_type gmres</font></div>
<div><font face="'Lucida Console'">-pc_type fieldsplit</font></div>
<div><font face="'Lucida Console'">-pc_fieldsplit_type
schur</font></div>
<div><font face="'Lucida Console'">-pc_fieldsplit_schur_factorization_type
full</font></div>
<div><font face="'Lucida Console'">-pc_fieldsplit_0_fields
2,3 <--- This define A00 for
my schur</font></div>
<div><font face="'Lucida Console'">-pc_fieldsplit_1_fields
0,1</font></div>
<div><font face="'Lucida Console'"><br>
</font></div>
<div>Up to here everything works fine and as expected (I
actually do a -ksp_view to make sure that everything
makes sense).</div>
<div>Now things get tricky, I would like to compute
A00^-1 using another schur decomposition so here are
the commands I issue:</div>
<div><br>
</div>
<div><font face="'Lucida Console'">
-fieldsplit_0_ksp_type preonly</font></div>
<div><font face="'Lucida Console'">
-fieldsplit_0_pc_type fieldsplit</font></div>
<div><font face="'Lucida Console'"> -fieldsplit_0_</font><span
style="font-family:'Lucida Console'">pc_fieldsplit_type
schur</span></div>
<div><span style="font-family:'Lucida Console'"> </span><font
face="'Lucida Console'">-fieldsplit_0_</font><span
style="font-family:'Lucida Console'">pc_fieldsplit_</span><span
style="font-family:'Lucida Console'">schur_factorization_type
full</span></div>
<div><span style="font-family:'Lucida Console'">
-fieldsplit_0_pc_fieldsplit_0_fields 2</span></div>
<div><span style="font-family:'Lucida Console'"> </span><span
style="font-family:'Lucida Console'">-fieldsplit_0_pc_fieldsplit_1_fields
3</span></div>
<div><span style="font-family:'Lucida Console'"><br>
</span></div>
<div>I am almost sure that the 4 first commands are
correct, I am not however sure that the last two are
understood by PETSc.</div>
<div>Actually I am worried that the DMShell that I
created for the first level schur is not passed on the
second level schur.</div>
<div>Here is the error message I get when I run my code:</div>
</div>
</blockquote>
<div><br>
</div>
<div>Sorry, I am really bogged down at the moment. Can you
try this:</div>
<div><br>
</div>
<div> 1) You do not need to specify 2,3 for the inner
fields since it will use them automatically</div>
<div><br>
</div>
<div> 2) Can you try changing
src/dm/impls/shell/dmshell.c:664 to include
DMSetUp(*subdm); ?</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>
<div>[0]PETSC ERROR: --------------------- Error
Message ------------------------------------</div>
<div>[0]PETSC ERROR: Object is in wrong state!</div>
<div>[0]PETSC ERROR: Decomposition defined only after
DMSetUp!</div>
<div>[0]PETSC ERROR:
------------------------------------------------------------------------</div>
<div>[0]PETSC ERROR: Petsc Development GIT revision:
v3.4.3-4597-g3edecfd GIT Date: 2014-02-20 20:43:18
-0600</div>
<div>[0]PETSC ERROR: See docs/changes/index.html for
recent updates.</div>
<div>[0]PETSC ERROR: See docs/faq.html for hints about
trouble shooting.</div>
<div>[0]PETSC ERROR: See docs/index.html for manual
pages.</div>
<div>[0]PETSC ERROR:
------------------------------------------------------------------------</div>
<div>[0]PETSC ERROR:
/home/luc/research/feap_repo/ShearBands/parfeap-petsc34/feap
on a arch-linux2-c-opt named euler by luc Fri Feb 28
20:07:18 2014</div>
<div>[0]PETSC ERROR: Libraries linked from
/home/luc/research/petsc/arch-linux2-c-opt/lib</div>
<div>[0]PETSC ERROR: Configure run at Fri Feb 21
17:31:31 2014</div>
<div>[0]PETSC ERROR: Configure options
--download-cmake --download-hypre --download-metis
--download-mpich --download-parmetis
--with-debugging=0 --with-share-libraries=0</div>
<div>[0]PETSC ERROR:
------------------------------------------------------------------------</div>
<div>[0]PETSC ERROR: DMCreateFieldDecomposition() line
1262 in
/home/luc/research/petsc/src/dm/interface/dm.c</div>
<div>[0]PETSC ERROR: PCFieldSplitSetDefaults() line
336 in
/home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c</div>
<div>[0]PETSC ERROR: PCSetUp_FieldSplit() line 485 in
/home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c</div>
<div>[0]PETSC ERROR: PCSetUp() line 888 in
/home/luc/research/petsc/src/ksp/pc/interface/precon.c</div>
<div>[0]PETSC ERROR: KSPSetUp() line 278 in
/home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c</div>
<div>[0]PETSC ERROR: KSPSolve() line 390 in
/home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c</div>
<div>[0]PETSC ERROR: PCApply_FieldSplit_Schur() line
859 in
/home/luc/research/petsc/src/ksp/pc/impls/fieldsplit/fieldsplit.c</div>
<div>[0]PETSC ERROR: PCApply() line 440 in
/home/luc/research/petsc/src/ksp/pc/interface/precon.c</div>
<div>[0]PETSC ERROR: KSP_PCApply() line 227 in
/home/luc/research/petsc/include/petsc-private/kspimpl.h</div>
<div>[0]PETSC ERROR: KSPInitialResidual() line 64 in
/home/luc/research/petsc/src/ksp/ksp/interface/itres.c</div>
<div>[0]PETSC ERROR: KSPSolve_GMRES() line 234 in
/home/luc/research/petsc/src/ksp/ksp/impls/gmres/gmres.c</div>
<div>[0]PETSC ERROR: KSPSolve() line 432 in
/home/luc/research/petsc/src/ksp/ksp/interface/itfunc.c</div>
</div>
<div><br>
</div>
<div>Let me know if I'm doing something wrong or
misunderstood something.</div>
<div><br>
</div>
<div>Best,</div>
<div>Luc</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>