[petsc-users] MatCreateShell with VecCreateGhost

Timothée Nicolas timothee.nicolas at gmail.com
Tue Dec 1 19:56:39 CST 2015


Btw,

If the vector X is created via a DMDA, then the vector localX and the
pointer lx obtained via

call DMGetLocalVector(da,localX,ierr)
call DMGlobalToLocalBegin(da,X,INSERT_VALUES,localX,ierr)
call DMGlobalToLocalEnd(da,X,INSERT_VALUES,localX,ierr)
call VecGetArrayReadF90(localX,lx,ierr)

are automatically ghosted, right ?

Thx

Timothee


2015-12-02 10:00 GMT+09:00 Barry Smith <bsmith at mcs.anl.gov>:

>
>   Sorry, I could not control myself.
>
>   So long as you pass vectors created with VecCreateGhost() to KSPSolve()
> the vectors passed to the multiply inside the solver will also be ghosted
> vectors.
>
>    Send all output messages etc if it doesn't work for you
>
>   Barry
>
>
>
> > On Dec 1, 2015, at 6:47 PM, Barry Smith <bsmith at mcs.anl.gov> wrote:
> >
> >
> >> On Dec 1, 2015, at 5:18 PM, Bikash Kanungo <bikash at umich.edu> wrote:
> >>
> >> Hi,
> >>
> >> I want to implement a matrix-free KSP solve using user-defined
> MATOP_MULT and MATOP_MULT_TRANSPOSE. Each of these user-defined functions
> take in  Mat A, Vec x and Vec y as arguments and store A*x in y. To perform
> A*x in the user defined fashion, each processor requires access to some
> non-local nodes of x. So, is there a way I can create these two vectors (x
> and y) using VecCreateGhost?
> >
> >   Yes, use VecCreateGhost().
> >
> >   Barry
> >
> >
> >>
> >> Thanks,
> >> Bikash
> >>
> >> --
> >> Bikash S. Kanungo
> >> PhD Student
> >> Computational Materials Physics Group
> >> Mechanical Engineering
> >> University of Michigan
> >>
> >
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20151202/d2617998/attachment.html>


More information about the petsc-users mailing list