[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