<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>
<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>
<div class="gmail_quote">On Jun 11, 2012 8:35 AM, "Stefano Zampini" <<a href="mailto:stefano.zampini@gmail.com">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>