<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><div class=""><br class=""></div><div class=""> The easiest way to find implementations on the web is to type the function name MatMult() in google and look at the bottom of the page where it has links to all the implementations. Of course you have to guess which implementation you need based on the shortened names. Here is the one you want</div><div class=""><br class=""></div><a href="https://petsc.org/release/src/mat/impls/sbaij/mpi/mpisbaij.c.html#MatMult_MPISBAIJ" class="">https://petsc.org/release/src/mat/impls/sbaij/mpi/mpisbaij.c.html#MatMult_MPISBAIJ</a><div class=""><br class=""></div><div class="">All you need to do is flip the sign of the transpose multiple.<br class=""><div class=""><br class=""></div><div class="">The creation of the needed VecScatter and work vectors is done here <a href="https://petsc.org/release/src/mat/impls/sbaij/mpi/mmsbaij.c" class="">https://petsc.org/release/src/mat/impls/sbaij/mpi/mmsbaij.c</a> it concatenates the two needed parallel communications into a singe VecScatter. <br class=""><div class=""><br class=""></div><div class=""><br class=""><div class=""><br class=""></div><div class=""><br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jun 2, 2021, at 3:00 PM, Mark Adams <<a href="mailto:mfadams@lbl.gov" class="">mfadams@lbl.gov</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">I guess we still have a MATSBAIJ. <div class="">In theory you could modify the MatVec to do <span style="color:rgb(80,0,80)" class="">skew-symmetric, easily, but this is such a niche operation (never seen it requested in 20+ years) that I would not want to put it in the repo.</span><br class=""><div class="">This would save <2x memory and <2x time. If you have a blocked system then it would be close to 2x.</div><div class="">You could do this in a branch and just rebase over main to update PETSc. Forever, or until you can convince us to merge it.</div></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Jun 2, 2021 at 3:26 PM Matthew Knepley <<a href="mailto:knepley@gmail.com" class="">knepley@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div dir="ltr" class="">On Wed, Jun 2, 2021 at 3:23 PM Yağmur Aksan <<a href="mailto:yagmuraksan@gmail.com" target="_blank" class="">yagmuraksan@gmail.com</a>> wrote:<br class=""></div><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto" class=""><div dir="ltr" class="">Hello,<div class=""><br class=""></div><div class="">I need a function that parallelly multiplies skew-symmetric matrix and vector. Is there any function that Petsc provides? </div><div class="">To do so, I think of using matMult function in Petsc and changing it to work with skew-symmetric matrices. But, I haven't found the implementation of MatMult function. If there isn't any other better option that you can recommend me, could you please tell me the link for the implementation of MatMult function?</div></div></div></blockquote><div class=""><br class=""></div><div class="">Do you want to save memory by using the special format? It will not save computing, and the speed improvement can be very small.</div><div class=""><br class=""></div><div class="">  Thanks,</div><div class=""><br class=""></div><div class="">     Matt</div><div class=""> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto" class=""><div dir="ltr" class=""><div class="">Thank you.</div></div></div></blockquote></div>-- <br class=""><div dir="ltr" class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class=""><div dir="ltr" class=""><div class="">What most experimenters take for granted before they begin their experiments is infinitely more interesting than any results to which their experiments lead.<br class="">-- Norbert Wiener</div><div class=""><br class=""></div><div class=""><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank" class="">https://www.cse.buffalo.edu/~knepley/</a><br class=""></div></div></div></div></div></div></div></div>
</blockquote></div>
</div></blockquote></div><br class=""></div></div></div></div></body></html>