[petsc-users] Appending to vector / numerical continuation / slepc

Barry Smith bsmith at mcs.anl.gov
Wed Oct 5 16:29:14 CDT 2011


  Kevin,

    The DMCOMPOSITE is designed exactly for this purpose. See the manual page http://www.mcs.anl.gov/petsc/petsc-as/snapshots/petsc-3.0.0/docs/manualpages/DA/DMCompositeCreate.html#DMCompositeCreate and examples it links to. Essentially you create a DMCOMPOSITE and then use DMCompositeAddDM() to put in the DM which will be parallel and DMCompositeAddArray() for the "k" extra things (like continuation parameters).   After you read the manual pages and look at the examples and start your code using the DMCOMPOSITE, feel free to ask specific questions about its usage.

   You definitely should switch to PETSc 3.2 before working because the DM has been markedly improved in places for this type of thing,

   Barry



On Oct 5, 2011, at 12:46 PM, Kevin Green wrote:

> Greetings,
> 
> I was just wondering what the simplest way to create a new N+k dim where the first N come from a DA.  It seems to me that I would have to go the round about way of getting the array, then writing that to the first N components of the new vector... I think there would be a bit of a pain for the parallel case when doing this though, like in managing the change in the local sizes when going from N to N+k... perhaps it's not that tricky.  Also, with DAs I don't have to worry about orderings, correct?
> 
> Essentially I want to get pseudo-arclength continuation working using the SNES solver.  Another option I'm thinking is that rather than using an extended vector, I could use a MatShell where the added components are located within its context, and updated upon matmult...since k is typically small, this seems reasonable.  Do you know of any code/projects that make use of the SNES module for continuation?  Any thoughts on what would be the better or simpler way of doing this?
> 
> I'm using petsc-3.1 right now, as I also need slepc...which hasn't been updated to work with 3.2 yet, as far as I know.  I'm fairly new to petsc/slepc... so I have to ask, what is the timescale like between the release of a new petsc, and update of slepc?  Or is there a way to get slepc working with the new release?
> 
> Cheers,
> Kevin



More information about the petsc-users mailing list