<div dir="ltr">Thanks for the response. I'll take a look at the code to see if I can get it to work for fieldsplit decomposition.</div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 25, 2016 at 11:17 PM, Barry Smith <span dir="ltr"><<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class=""><br>
> On Nov 25, 2016, at 7:02 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:<br>
><br>
> On Fri, Nov 25, 2016 at 3:13 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov">bsmith@mcs.anl.gov</a>> wrote:<br>
><br>
> > On Nov 25, 2016, at 2:38 PM, Arthur Besen Soprano <<a href="mailto:arthursoprano@gmail.com">arthursoprano@gmail.com</a>> wrote:<br>
> ><br>
> > Hi,<br>
> ><br>
> > I was just recently checking some of snes sources code and found a src\snes\impls\multiblock\<wbr>multiblock.c which seemed to be a Non-linear (SNES) equivalent of the fieldsplit for linear problems (KSP).<br>
><br>
> Yes it was an attempt to be something similar.<br>
><br>
> > However I was not able to use it and did not see any options available with the "-help " argument.<br>
> ><br>
> > My question is: Is this module disabled? If not, how can I use it?<br>
> ><br>
> > (using -snes_type multiblock or -npc_snes_type multiblock does not work...)<br>
><br>
> It is not really functional at the moment. The only way for you to use it is to dig through the code to understand it and likely "fix it", that is change the code to do what it should do (note that it may not be clear what it should do). It also might be simpler to write a new SNESFIELDSPLIT that mimics PCFIELDPLIT We always welcome contributions.<br>
><br>
> A reason not to base it on FieldSplit is that this serializes the partitions, but we really want them to run in parallel, which is why<br>
> I used ASM as a model for MultiBlock.<br>
<br>
</span> This isn't clear when the code has things like<br>
<br>
PetscInt nfields; /* If block is defined on a DA, the number of DA fields */<br>
PetscInt *fields; /* If block is defined on a DA, the list of DA fields */<br>
<br>
Perhaps multiblock was too ambitious since it seems to encompass both subdomain and fieldsplit decompositions inside it. Perhaps they belong in separate SNESXXX.<br>
<br>
From multiblock.c<br>
<br>
char *name; /* Block name */<br>
PetscInt nfields; /* If block is defined on a DA, the number of DA fields */<br>
PetscInt *fields; /* If block is defined on a DA, the list of DA fields */<br>
IS is; /* Index sets defining the block */<br>
VecScatter sctx; /* Scatter mapping global Vec to blockVec */<br>
SNES snes; /* Solver for this block */<br>
Vec x;<br>
BlockDesc next, previous;<br>
};<br>
<br>
typedef struct {<br>
PetscBool issetup; /* Flag is true after the all ISs and operators have been defined */<br>
PetscBool defined; /* Flag is true after the blocks have been defined, to prevent more blocks from being added */<br>
PetscBool defaultblocks; /* Flag is true for a system with a set of 'k' scalar fields with the same layout (and bs = k) */<br>
PetscInt numBlocks; /* Number of blocks (can be fields, domains, etc.) */<br>
PetscInt bs; /* Block size for IS, Vec and Mat structures */<br>
PCCompositeType type; /* Solver combination method (additive, multiplicative, etc.) */<br>
BlockDesc blocks; /* Linked list of block descriptors */ I'm not sure where MultiBlock fits in<br>
<br>
Note there are SNESNASM and SNESASPIN which appear to be other approaches to ASM for nonlinear problems.<br>
<span class="HOEnZb"><font color="#888888"><br>
Barry<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
><br>
> Matt<br>
><br>
><br>
> Barry<br>
><br>
> ><br>
> > Thanks,<br>
> ><br>
> > Arthur<br>
> ><br>
> > --<br>
> > Arthur B. Soprano<br>
><br>
><br>
><br>
><br>
> --<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<br>
<br>
</div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><font color="#333333">Arthur B. Soprano</font></div>
</div>