<br><br><div class="gmail_quote">2012/6/11 Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<p>The problem is that you can't factor the subdomain problem directly because it is singular. So you either copy it into a bigger matrix (with Lagrange multipliers) or extract a submatrix (by dropping vertices).</p>
</blockquote>
<div>In my experience, a singular subdomain matrix does not constitute a real problem if you use 0 as tolerance for zero pivots to avoid PETSc errors (zero pivot detection) at runtime ( I always use UMFPACK or SuperLU solvers; even the PETSc solver do the right job). For FETI and NN, if you design a coarse space in the right way, you can always solve for the local problems (at least for the problems I faced). The solution will have a nonzero component on the kernel of the local matrix, but this will be uneffective for the convergence of the global problem.<br>

<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<p>If I assemble a matrix with selected vertices, I can factor it and solve the constrained problems without needing to refactor.</p>
<p>The case with no selected vertices could be a special case, and worked with exactly like MatIS is now.</p></blockquote><div>thus the Mat should have a public flag indicating Assembly or not at preselected vertices during MatAssembly?<br>
<br> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div><div>
<div class="gmail_quote">On Jun 11, 2012 8:35 AM, "Stefano Zampini" <<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


I missed your answer...my e-mail client hid your last email.<br><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="gmail_quote">

<div>

<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Do you mean assembling the matrix on preselected vertices during MatAssemblyBegin/End? Note that this will imply that standard Neumann-Neumann methods will not work (they need the unassembled matrix to solve for the local Schur complements).</blockquote>




</div></div><br><div>I'm not too concerned about that since I consider the classic N-N and original FETI methods to be rather special-purpose compared to the newer generation. I would like to limit the number of copies of a matrix to control peak memory usage.</div>




</blockquote></div><br>Duplicate vertices don't concur so much to memory usage as faces and edge nodes do, so why limit your matrix class? In principle the new class should handle _every_ nonoverlapping method, either belonging to the old or the new generation.<br clear="all">



<br>-- <br>Stefano<br>
</blockquote></div>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Stefano<br>