On Thu, 21 Aug 2008, Lisandro Dalcin wrote:
> On Thu, Aug 21, 2008 at 1:23 PM, Boyce Griffith > <griffith at courant.nyu.edu> wrote: >> Is there any way to associate a context with a MFFD matrix? It seems like >> the Otherwise, it seems like the implementation of MatGetVecs would need to >> use global variables in order to create the appropriate vectors. > > You can use a PetscContainer (see PetscContainerCreate() and friends) > to save your user data and then you can set put that container in any > PETSc object with PetscObjectCompose(), and next retrieve the > container with PetscObjectQuery(), and finally recover your user data > with PetscContainerGetPointer(). Sounds like that should do the trick. >> Or is it possible to get access to the solution and right-hand-side vectors >> used by an associated SNES and use VecDuplicate on them? > > You can use SNESGetRhs() and SNESGetSolution(). At least in petsc-dev > (not so sure in last public release, I do not remember), you will get > back a reference to the 'b' and 'x' Vec's you passed to > 'SNESSolve(snes, b, x)'. You can even SNESGetSolutionUpdate() for > getting the Vec where the solution update for the Newton step is > formed. Right, but if all I have is the Mat, is there a userland function which will return the corresponding SNES? Thanks, -- Boyce
