[petsc-users] SNES Multblock type
Arthur Besen Soprano
arthursoprano at gmail.com
Mon Nov 28 05:26:19 CST 2016
Thanks for the response. I'll take a look at the code to see if I can get
it to work for fieldsplit decomposition.
On Fri, Nov 25, 2016 at 11:17 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
>
> > On Nov 25, 2016, at 7:02 PM, Matthew Knepley <knepley at gmail.com> wrote:
> >
> > On Fri, Nov 25, 2016 at 3:13 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> > > On Nov 25, 2016, at 2:38 PM, Arthur Besen Soprano <
> arthursoprano at gmail.com> wrote:
> > >
> > > Hi,
> > >
> > > I was just recently checking some of snes sources code and found a
> src\snes\impls\multiblock\multiblock.c which seemed to be a Non-linear
> (SNES) equivalent of the fieldsplit for linear problems (KSP).
> >
> > Yes it was an attempt to be something similar.
> >
> > > However I was not able to use it and did not see any options available
> with the "-help " argument.
> > >
> > > My question is: Is this module disabled? If not, how can I use it?
> > >
> > > (using -snes_type multiblock or -npc_snes_type multiblock does not
> work...)
> >
> > 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.
> >
> > 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
> > I used ASM as a model for MultiBlock.
>
> This isn't clear when the code has things like
>
> PetscInt nfields; /* If block is defined on a DA, the number of DA
> fields */
> PetscInt *fields; /* If block is defined on a DA, the list of DA
> fields */
>
> Perhaps multiblock was too ambitious since it seems to encompass both
> subdomain and fieldsplit decompositions inside it. Perhaps they belong in
> separate SNESXXX.
>
> From multiblock.c
>
> char *name; /* Block name */
> PetscInt nfields; /* If block is defined on a DA, the number of DA
> fields */
> PetscInt *fields; /* If block is defined on a DA, the list of DA
> fields */
> IS is; /* Index sets defining the block */
> VecScatter sctx; /* Scatter mapping global Vec to blockVec */
> SNES snes; /* Solver for this block */
> Vec x;
> BlockDesc next, previous;
> };
>
> typedef struct {
> PetscBool issetup; /* Flag is true after the all ISs and
> operators have been defined */
> PetscBool defined; /* Flag is true after the blocks have
> been defined, to prevent more blocks from being added */
> PetscBool defaultblocks; /* Flag is true for a system with a set
> of 'k' scalar fields with the same layout (and bs = k) */
> PetscInt numBlocks; /* Number of blocks (can be fields,
> domains, etc.) */
> PetscInt bs; /* Block size for IS, Vec and Mat
> structures */
> PCCompositeType type; /* Solver combination method (additive,
> multiplicative, etc.) */
> BlockDesc blocks; /* Linked list of block descriptors */
> I'm not sure where MultiBlock fits in
>
> Note there are SNESNASM and SNESASPIN which appear to be other approaches
> to ASM for nonlinear problems.
>
> Barry
>
> >
> > Matt
> >
> >
> > Barry
> >
> > >
> > > Thanks,
> > >
> > > Arthur
> > >
> > > --
> > > Arthur B. Soprano
> >
> >
> >
> >
> > --
> > What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> > -- Norbert Wiener
>
>
--
Arthur B. Soprano
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20161128/970ff374/attachment-0001.html>
More information about the petsc-users
mailing list