<p dir="ltr">Use MatSetValues with ADD_VALUES. </p>
<p dir="ltr">The method is used for toy examples because it is the most brain-dead simple thing to implement, not because it is a good method. Much better to lift and remove or to eliminate in-place. Any good book discusses this and there are useful answers on <a href="http://scicomp.stackexchange.com">scicomp.stackexchange.com</a>.</p>

<div class="gmail_quote">On Feb 23, 2013 6:36 AM, "Hui Zhang" <<a href="mailto:mike.hui.zhang@hotmail.com">mike.hui.zhang@hotmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
On Feb 23, 2013, at 1:32 PM, Jed Brown wrote:<br>
<br>
> Add big values to diagonal entries and scale the right hand side appropriately, as per the definition. It is a terrible method.<br>
<br>
Why?  That is what I was taught by textbooks and used by some FEM library like FreeFem++.<br>
<br>
><br>
> On Feb 23, 2013 6:29 AM, "Hui Zhang" <<a href="mailto:mike.hui.zhang@hotmail.com">mike.hui.zhang@hotmail.com</a>> wrote:<br>
> I want to implement diagonal penalty method for enforcing the Dirichlet boundary conditions.  That is, the diagonal entries corresponding to Dirichlet boundary are going to be scaled by a large number.<br>
><br>
> What is the easiest way to do this?  Thanks!<br>
<br>
</blockquote></div>