If you define the MATOP_CREATE_VECS operation in your shell matrix so that it creates a ghost vector, then all vectors within EPS will be ghost vectors, including those that are received as arguments of MatMult(). Not sure if this will work.
A simpler solution is that you store a ghost vector in the context of your shell matrix, and then in MatMult() you receive a regular parallel vector x, then update the ghost points using the auxiliary ghost vector, do the computation and store the result in the regular parallel vector y. Jose > El 21 sept 2022, a las 14:09, feng wang <snails...@hotmail.com> escribió: > > Thanks for your reply. > > For GMRES, I create a ghost vector and give it to KSPSolve. For Slepc, it > only takes the shell matrix for EPSSetOperators. Suppose the shell matrix of > the eigensolver defines MatMult(Mat m ,Vec x, Vec y), how does it know Vec x > is a ghost vector and how many ghost cells there are? > > Thanks, > Feng > From: Matthew Knepley <knep...@gmail.com> > Sent: 21 September 2022 11:58 > To: feng wang <snails...@hotmail.com> > Cc: petsc-users@mcs.anl.gov <petsc-users@mcs.anl.gov> > Subject: Re: [petsc-users] Slepc, shell matrix, parallel, halo exchange > > On Wed, Sep 21, 2022 at 7:41 AM feng wang <snails...@hotmail.com> wrote: > Hello, > > I am using Slepc with a shell matrix. The sequential version seems working > and now I am trying to make it run in parallel. > > The partition of the domain is done, I am not sure how to do the halo > exchange in the shell matrix in Slepc. I have a parallel version of > matrix-free GMRES in my code with Petsc. I was using VecCreateGhostBlock to > create vector with ghost cells, and then used VecGhostUpdateBegin/End for > the halo exchange in the shell matrix, would this be the same for Slepc? > > That will be enough for the MatMult(). You would also have to use a SLEPc EPS > that only needed MatMult(). > > Thanks, > > Matt > > Thanks, > Feng > > > > > -- > 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 > > https://www.cse.buffalo.edu/~knepley/