<div dir="ltr"><div dir="ltr">On Tue, Apr 4, 2023 at 4:02 PM Nicolas Barnafi <<a href="mailto:nbarnafi@cmm.uchile.cl">nbarnafi@cmm.uchile.cl</a>> wrote:<br></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Hi Matt,<br>
<br>
One further question on this. I am working on the code now, but have one <br>
issue.<br>
<br>
The IS I grab from all fields need to be set to the sub PCs, but they <br>
will have a local ordering of the dofs. Is there a tool in PETSc to make <br>
this coherent? I.e. if I will set the IS fields '0,4,7' to a a subPC <br>
object within the Fieldsplit structure, how to build a new PC such that <br>
setting<br>
<br>
PCSetFieldIS(pc, '0', field[0])<br>
PCSetFieldIS(pc, '1', field[4])<br>
PCSetFieldIS(pc, '2', field[7])<br>
<br>
makes sense in the new subPC?<br></blockquote><div><br></div><div>I am not understanding yet. What might go wrong? Oh, do you mean that if you do a nested FieldSplit, then</div><div>the indices you supply for splits in the subproblem are relative to the subproblem numbering?</div><div><br></div><div>Naively, you would have to search the original ISes, but if you are using whole sets, you could search for the</div><div>first entry. If you are using fields from a DM, the the CreateSubDM() calls do this map automatically.</div><div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Thanks for the help.<br>
<br>
Best,<br>
NB<br>
<br>
On 22-02-23 14:54, Nicolas Barnafi wrote:<br>
> Hi Matt,<br>
> <br>
> Sorry for the late answer, it was holiday time.<br>
> <br>
>> Just to clarify, if you call SetIS() 3 times, and then give<br>
>><br>
>>   -pc_fieldsplit_0_fields 0,2<br>
>><br>
>> then we should reduce the number of fields to two by calling <br>
>> ISConcatenate() on the first and last ISes?<br>
> <br>
> Exactly<br>
> <br>
>> I think this should not be hard. It will work exactly as it does on <br>
>> the DM case, except the ISes will come from<br>
>> the PC, not the DM. One complication is that you will have to hold the <br>
>> new ISes until the end, and then set them.<br>
>><br>
>>    Thanks,<br>
>><br>
>>      Matt<br>
> <br>
> Nice, then it is exactly what I want. I will work on it, and create a PR <br>
> when things are starting to fit in.<br>
> <br>
> Best,<br>
> NB<br>
<br>
</blockquote></div><br clear="all"><div><br></div><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div><div><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div></div>