<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 30, 2020 at 6:47 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;border-left:1px solid rgb(204,204,204);padding-left:1ex">Mark Adams <<a href="mailto:mfadams@lbl.gov" target="_blank">mfadams@lbl.gov</a>> writes:<br>
<br>
> I see that ASM has a DM and can get subdomains from it. I have a DMForest<br>
> and I would like an ASM that has a subdomain for each field. How might I go<br>
> about doing this? (the fields are not coupled in the matrix so this would<br>
> give a block diagonal matrix, and thus exact with LU sub solvers.<br>
<br>
The fields are already not coupled or you want to filter the matrix and give back a single matrix with coupling removed?<br></blockquote><div><br></div><div>They are not coupled. It is is a block diagonal matrix but not stored that way by Plex.</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">
<br>
You can use Fieldsplit to get the math of field-based block Jacobi (or ASM, but overlap with fields tends to be expensive). Neither FieldSplit or ASM can run the (additive) solves concurrently (and most libraries would need something to drive the threads).<br></blockquote><div><br></div><div>No overlap, MPI serial. Very simple. I just want a direct solver and I want to exploit the 10-way parallelism that is just sitting there.</div><div><br></div><div>And I see that PCApply_ASM would need some very particular non-blocking semantics in KSPSolve and VecScatter to work so I would assume that a new driver would be required or just rearrange the current one a bit if you don't mind losing a bit of cache reuse in doing each block all at once.</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">
<br>
> I am then going to want to get these separate solves to be run in parallel<br>
> on a GPU (I'm talking with Sherry about getting SuperLU working on these<br>
> small problems). In looking at PCApply_ASM it looks like this will take<br>
> some thought. KSPSolve would need to be non-blocking, etc., or a new apply<br>
> op might be needed.<br>
><br>
> Thanks,<br>
> Mark<br>
</blockquote></div></div>