<div class="gmail_quote">On Thu, Feb 2, 2012 at 13:03, gouarin <span dir="ltr">&lt;<a href="mailto:loic.gouarin@math.u-psud.fr">loic.gouarin@math.u-psud.fr</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">It seems that I have forgotten to initialize DMSetInitialGuess,
    DMSetFunction, DMSetJacobian. <br>
    <br>
    I don&#39;t understand what is the best way to use 4Q1-Q1 elements for
    the Stokes problem:<br></div></blockquote><div><br>src/ksp/ksp/examples/tutorials/ex43.c (2D) and ex42.c (3D) use these elements for variable-viscosity Stokes.<br> </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
    <br>
    - Construct the matrices for each DM in the DMComposite<br>
    - Construct the global matrix and the global preconditioner <br>
    - Use MatNest<br></div></blockquote><div><br>DMComposite can allocate for AIJ or Nest. Just set the matrix type, e.g. -dm_mat_type nest, ex28.c does this (see runex28_3).<br><br>But preallocation for off-diagonal blocks (of MatNest or AIJ) is still messy and I haven&#39;t figured out a good API other than to write an efficient dynamic preallocation to make it unnecessary. A lot of users like Jacobian-free Newton-Krylov with the true Jacobian applied by finite differencing (-snes_mf_operator) in which case the current code is fine because we only assemble diagonal blocks.<br>
 </div><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">
    <br>
    There are a lot of possibilities with PETSc with new add-ons and it
    is difficult to find our way with only the documentation.</div></blockquote></div><br>