<div dir="ltr">On Fri, Sep 6, 2013 at 1:33 PM, Jed Brown <span dir="ltr"><<a href="mailto:jedbrown@mcs.anl.gov" target="_blank">jedbrown@mcs.anl.gov</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Please send these questions to petsc-dev (Cc'd now) or petsc-users so<br>
that others can comment.<br>
<br>
Lulu Liu <<a href="mailto:lulu.liu@kaust.edu.sa">lulu.liu@kaust.edu.sa</a>> writes:<br>
<br>
> Hi,<br>
><br>
> I want to implement ASPIN-like ideas, but based on field splitting. You<br>
> could find the details in PDF file.<br>
<br>
You are proposing left-preconditioned nonlinear additive fieldsplit.<br>
This is a sensible algorithm that we have discussed before.  The only<br>
part that needs to be implemented is the fieldsplit solve: separation of<br>
G and H, then solving each separately.<br>
<br>
Unfortunately, I think it's kinda tricky to come up with a generally<br>
useful interface.  In particular, many applications cannot partition the<br>
variables like you have done, meaning that the preconditioner is<br>
becomes: change variables, solve in other bases, then change back.  At<br>
this point, I would recommend implementing the solve with \hat F using<br>
SNESShell.<br></blockquote><div><br></div><div>Did we throw away the SNES 'multiblock' code? It was supposed to do this.</div><div><br></div><div>   Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

> My questions:<br>
><br>
> I have a nonlinear system including two equations. In my implementation, I<br>
> need to solve each equation separately, also I need to solve the coupled<br>
> system. I feel confused about ordering:<br>
><br>
> I know the unknowns are ordered as [p1,s1,p2,s2,p3,s3,......] in PETSc,<br>
> however, it seems that I need the variables like [p1,p2,p3,... s1,s2,s3,...]<br>
<br>
No, just use a strided IS to describe each set of variables.  You can<br>
VecScatter from the packed/monolithic global vector to the split space.<br>
<br>
> Is there any example to do the similar things in PETSc?<br>
> Do you have any ideas to implement the algorithm easier?<br>
> How to quickly extract [p1,p2,...p_{N}] or [s1,s2,....] from<br>
> [p1,p2,....s1,s2,s3,...] ?<br>
> How to quickly get the composed [p1,p2,...s1,s2,....] if I have [p1,p2,...]<br>
> and [s1,s2,..]?<br>
><br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>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>