[petsc-users] Shell matrix MatCreateVecs

Barry Smith bsmith at mcs.anl.gov
Fri Aug 25 00:05:12 CDT 2017


> On Aug 24, 2017, at 7:42 PM, Jed Brown <jed at jedbrown.org> wrote:
> 
> "Jose E. Roman" <jroman at dsic.upv.es> writes:
> 
>>> El 24 ago 2017, a las 22:51, Greg Meyer <gregory.meyer at gmail.com> escribió:
>>> 
>>> Hi,
>>> 
>>> I have written a shell matrix for non-standard vectors (CUDA to be specific) that works great. MatMult and MatNorm perform as they should. However, when I try to use it in a SLEPc algorithm, it breaks because MatCreateVecs yields standard vectors even if I set "-vec_type cuda". Looking through the source etc. it seems that MatShellSetOperation can't be used to implement a new MatCreateVecs function (MATOP_CREATEVECS does not exist). Is there a way to change the type of vector that comes from MatCreateVecs for shell matrices?
>>> 
>>> Thanks in advance,
>>> Greg
>> 
>> It is MATOP_GET_VECS. If you implement this operation, most SLEPc functionality should work with CUDA.
>> 
>> PETSc developers: shouldn't MATOP_GET_VECS be renamed to MATOP_CREATE_VECS ?
> 
> Yes, in their eagerness to rename interfaces,

  You mean, eagerness to improve PETSc

> people often forget to
> complete all parts of the job.  The MATOP interface has shown itself to
> be high maintenance.



More information about the petsc-users mailing list