<div class="gmail_quote">On Mon, Oct 3, 2011 at 10:13, Jakub Sistek <span dir="ltr">&lt;<a href="mailto:sistek@math.cas.cz">sistek@math.cas.cz</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Dear PETSc developers and users,<br>
<br>
we are using PETSc to solve systems arising from mixed-hybrid FEM applied to Darcy flow. First, the saddle point system is reduced to the Schur complement problem for Lagrange multipliers on element interfaces, which is then symmetric positive definite. Currently, we are using the PCASM preconditioner to solve it. We have very positive experience (also from other projects) with PCASM, but we have observed some worsening of convergence and scalability with going to larger number of processors (up to 64) here. As far as we understand, the increasing number of iterations may be caused by the lack of coarse correction in the implementation of the preconditioner. On the other hand, PCNN should contain such a coarse solve. I have modified our FEM code to support MATIS matrices besides MPIAIJ, but so far have a mixed experience with PCNN. It seems to work on 2 CPUs, but complains about singular local problems (solved by MUMPS) on more. After some time spent by debugging ( though there are probably still many bugs left in my code ) and unsuccessful playing with some of the related options ( -pc_is_damp_fixed,  -pc_is_set_damping_factor_<u></u>floating, etc.) I have decided to ask couple of questions before I will continue in further investigation why PCNN does not work for me for general case:<br>

<br>
1) Am I right that PCNN is the only domain decomposition method exploiting coarse correction readily available in PETSc?<br></blockquote><div><br></div><div>Multilevel Schwarz methods can be used through PCMG. A two-level example, based on the so-called wirebasket coarse spaces, is PCEXOTIC. This code was basically an experiment that only works for scalar problems on structured grids (using DMDA). It could certainly be generalized.</div>
<div><br></div><div>The new PCGAMG is not a DD method per-se, but it is developing a lot of hooks with many ideas that overlap with modern DD methods.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

2) As PCNN seems much less documented (I have found no example or so) than other preconditioners, I would simply like to know if someone else uses it and have positive experience with this implementation?<br></blockquote>
<div><br></div><div>Unfortunately, PCNN was more of a research project than robust or widely used code. The coarse space used by the current code is only suitable for scalar problems. The method uses coarse spaces that are more awkward to generalize than the more recently developed balancing and dual methods like BDDC/FETI-DP.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
3) What may be proper options for stabilizing solutions of the local problems?<br>
4) Are there limitations to the method with respect to nullspace type of subdomain problems, i.e. equation?<br>
5) Do these answers depend on version of PETSc? (I have played with 3.0, would things be different with 3.2 ?)<br></blockquote><div><br></div><div>PCNN specifically is no different in 3.2, but there are many other improvements, so I recommend upgrading. One notable improvement is that now you can use MatGetLocalSubMatrix() as part of assembly, such that exactly the same code can assemble into MATIS, MATAIJ, MATNEST, etc.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
In the long run, I would like to connect the FEM code to an own solver based on BDDC domain decomposition, for which the MATIS matrix seems as a natural format and connection should be straightforward. However, I would like to make it work with PCNN as well.<br>
</blockquote><div><br></div><div>I have been meaning to add BDDC to PETSc for a long time, but it hasn&#39;t worked its way up to top priority yet. I have read some of your papers on the subject and would be happy to work with you on a native PETSc implementation. (My interest is largely on use with mixed discretizations for incompressible problems, so it&#39;s somewhat more delicate than non-mixed elasticity.)</div>
<div><br></div><div>I would not worry about PCNN.</div></div>