You should really use MatSetValuesLocal with ADD_VALUES *before* assembling. On Feb 23, 2013 7:28 AM, "Hui Zhang" <mike.hui.zhang at hotmail.com> wrote:
> > On Feb 23, 2013, at 1:37 PM, Matthew Knepley wrote: > > > On Sat, Feb 23, 2013 at 7:35 AM, Hui Zhang <mike.hui.zhang at hotmail.com> > wrote: > > > > On Feb 23, 2013, at 1:32 PM, Matthew Knepley wrote: > > > > > On Sat, Feb 23, 2013 at 7:29 AM, Hui Zhang <mike.hui.zhang at hotmail.com> > wrote: > > > 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. > > > > > > What is the easiest way to do this? Thanks! > > > > > > > http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatDiagonalScale.html > > > > But it seems not what I want. That routine scales all the entries of a > mat. I want to scale only the diagonal entries. > > > > Then use > http://www.mcs.anl.gov/petsc/petsc-dev/docs/manualpages/Mat/MatDiagonalSet.html > > I want to do the following on an already assembled matrix (FINAL_ASSEMBLY). > > MatGetLocalSubMatrix .. to get 'submat', > MatGetDiagonal .. to get diagonal vector 'diag', > VecScale .. to scale 'diag' > MatDiagonalSet .. to set scaled 'diag' to 'submat' > MatRestoreLocalSubMatrix .. to restore 'submat' > > After the above process, do I need MatAssemblyBegin/End again? I do not > know why the penalty method is bad. Maybe because the bad conditioning? I > just want to try out and compare with MatZeroRowsColumns (lift and remove) > method. > > > > > As Jed says, you really really do not want to do this. > > > > Matt > > > > > > > > Matt > > > > > > -- > > > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > > > -- Norbert Wiener > > > > > > > > > > -- > > What most experimenters take for granted before they begin their > experiments is infinitely more interesting than any results to which their > experiments lead. > > -- Norbert Wiener > > -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20130223/dba9508d/attachment.html>
