MatGetVecs and MATMFFD
Boyce Griffith
griffith at courant.nyu.edu
Thu Aug 21 11:58:58 CDT 2008
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
More information about the petsc-users
mailing list