<div dir="ltr">That is the new way to do it. The other way to do it is to have it be a static member function, so that it does not take "this".<div><br></div><div>  Thanks,</div><div><br></div><div>     Matt</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Sep 30, 2021 at 6:11 AM Praveen C <<a href="mailto:praveen@gmx.net">praveen@gmx.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div style="overflow-wrap: break-word;">I have used something like this in similar situation<div><br></div><div><font face="Menlo">auto MatMult = [this](…args…)</font></div><div><font face="Menlo">{</font></div><div><font face="Menlo">   this->MyMatMult(…args…);</font></div><div><font face="Menlo">};<br></font><div><br></div><div><br></div><div>Then pass MatMult to petsc.</div><div><br></div><div><b>this</b> refers to the class Global_Assem and we are assuming you are inside this class when doing the above.</div><div><br></div><div>best</div><div>praveen</div><div><br><blockquote type="cite"><div>On 30-Sep-2021, at 3:25 PM, Michael Wick <<a href="mailto:michael.wick.1980@gmail.com" target="_blank">michael.wick.1980@gmail.com</a>> wrote:</div><br><div><div dir="ltr">Hi:<div><br></div><div>I want to have the shell matrix-vector multiplication written as a class member function and pass it to the shell matrix via MatShellSetOperation. </div><div><br></div><div>MatShellSetOperation(A, MATOP_MULT, (void (*)(void))(&Global_Assem::MyMatMult));<br></div><div><br></div><div>Perhaps I have a wrong understanding of function pointers, and I am constantly getting warnings that say I cannot convert a member function to a void type. The warning indeed makes sense to me, as the function pointer passed in the above manner is independent of an instance. Perhaps there are other ways of passing a member function that I don't know of. If you know how to address this, I would appreciate it a lot!</div><div><br></div><div>Thanks,</div><div><br></div><div>Mike</div></div>
</div></blockquote></div><br></div></div></blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div><div dir="ltr"><div>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><br></div><div><a href="http://www.cse.buffalo.edu/~knepley/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div></div></div>