<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><div>On Jun 25, 2015, at 6:38 PM, Matthew Knepley <<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Thu, Jun 25, 2015 at 12:32 PM, Stefano Zampini<span class="Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>></span><span class="Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex; position: static; z-index: auto;"><div style="word-wrap: break-word;">pushed a fix<div><a href="https://bitbucket.org/petsc/petsc/commits/ae287a2e7a141494f7c41f9dd537addb63b556e3" target="_blank">https://bitbucket.org/petsc/petsc/commits/ae287a2e7a141494f7c41f9dd537addb63b556e3</a></div><div><br></div><div>However, it appears that the functions below for CUSP, CUSPARSE and VIENNACL are mere copies of the interface.</div><div>What  about defining the type of the Vec in the interface and get rid of these?</div></div></blockquote><div><br></div><div>I think the point here is that the matrix should return Vecs of a compatible type, not a user specified one.</div><div><br></div></div></div></div></div></blockquote><div><br></div>I dont understand your point. If a specific getvecs implementation is not present, why not just testing for the type and return the correct Vec object in the interface, i.e. using VECCUSP instead of VECSTANDARD if the matrix is AIJCUSP?</div><div><br></div><div><br></div><div><blockquote type="cite"><div style="font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px;"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin: 0px 0px 0px 0.8ex; border-left-width: 1px; border-left-color: rgb(204, 204, 204); border-left-style: solid; padding-left: 1ex;"><div style="word-wrap: break-word;"><div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/mpi/mpicusp/<a href="http://mpiaijcusp.cu/" target="_blank">mpiaijcusp.cu</a>:  A->ops->getvecs        = MatCreateVecs_MPIAIJCUSP;</div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/mpi/mpicusparse/<a href="http://mpiaijcusparse.cu/" target="_blank">mpiaijcusparse.cu</a>:  A->ops->getvecs        = MatCreateVecs_MPIAIJCUSPARSE;</div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/mpi/mpiviennacl/mpiaijviennacl.cxx:  A->ops->getvecs        = MatCreateVecs_MPIAIJViennaCL;</div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/seq/seqcusp/<a href="http://aijcusp.cu/" target="_blank">aijcusp.cu</a>:  B->ops->getvecs        = MatCreateVecs_SeqAIJCUSP;</div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/seq/seqcusparse/<a href="http://aijcusparse.cu/" target="_blank">aijcusparse.cu</a>:  B->ops->getvecs          = MatCreateVecs_SeqAIJCUSPARSE;</div><div style="margin: 0px; font-size: 14px; font-family: Menlo;">src/mat/impls/aij/seq/seqviennacl/aijviennacl.cxx:  B->ops->getvecs        = MatCreateVecs_SeqAIJViennaCL;</div></div><div><br></div><div>Stefano</div><div><br></div><div><br></div><div><div><div>On Jun 25, 2015, at 4:34 PM, Barry Smith <<a href="mailto:bsmith@mcs.anl.gov" target="_blank">bsmith@mcs.anl.gov</a>> wrote:</div><br><blockquote type="cite"><br> I think you are right, go ahead and make a pull request or send a patch<br><br> Barry<br><br><blockquote type="cite">On Jun 25, 2015, at 9:43 AM, Stefano Zampini <<a href="mailto:stefano.zampini@gmail.com" target="_blank">stefano.zampini@gmail.com</a>> wrote:<br><br>Why the current interface in MatCreateVecs requires that a matrix has been already either allocated or setup ?<br>Shouldn’t be enough to check if the layout has been already setup?<br><br>Stefano<br><br></blockquote><br></blockquote></div><br></div></div></blockquote></div><br><br clear="all"><div><br></div>--<span class="Apple-converted-space"> </span><br><div class="gmail_signature">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br>-- Norbert Wiener</div></div></div></div></blockquote></div><br></body></html>