<div dir="ltr">Thanks Jed.<br></div><br><div class="gmail_quote"><div class="gmail_attr" dir="ltr">On Mon, Aug 31, 2020 at 11:22 PM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;padding-left:1ex;border-left-color:rgb(204,204,204);border-left-width:1px;border-left-style:solid">Karl Lin <<a href="mailto:karl.linkui@gmail.com" target="_blank">karl.linkui@gmail.com</a>> writes:<br>
<br>
> Thanks for the feedback. What about if I build A to have as many rows as A<br>
> and B and then later on use MatGetRow and MatSetValues to add B matrix<br>
> entries to A? Can MatGetRow and MatSetValues be used after MatAssembly is<br>
> called? B is much much smaller than A so the number of rows can be added to<br>
> just the portion of A on one process. Will this work? Thanks. Regards.<br>
<br>
That would work fine, you'll just need to MatAssembly after your new MatSetValues.<br>
<br>
Note that you'll likely want to think about the distribution of B relative to A; you may not want B to come "at the end" because it'll all be on the last rank, versus dispersed over the ranks.  This is especially true if those rows are heavier.<br>
<br>
> On Mon, Aug 31, 2020 at 11:00 PM Jed Brown <<a href="mailto:jed@jedbrown.org" target="_blank">jed@jedbrown.org</a>> wrote:<br>
><br>
>> Karl Lin <<a href="mailto:karl.linkui@gmail.com" target="_blank">karl.linkui@gmail.com</a>> writes:<br>
>><br>
>> > I guess another way to look at this is if I already build matrix A and<br>
>> > MatAssembly has been called. Can I populate more rows to matrix A later<br>
>> on?<br>
>> > With the number of columns and column ownership pattern not changed of<br>
>> > course. Thank you.<br>
>><br>
>> No.<br>
>><br>
</blockquote></div>