<div dir="ltr"><div>Eric</div><div><br></div><div>the python equivalent of a MATSHELL is MATPYTHON, where you are in control of the implementation of the matrix vector product and other operations, see <a href="https://urldefense.us/v3/__https://petsc.org/release/petsc4py/petsc_python_types.html*petsc-python-matrix-type__;Iw!!G_uCfscf7eWS!cBWJhNKIAgapcwHEU8n-DdtvG1b4efLyBq4hz-hD3u12q055vU-37qhdbu7HsyS9_9yUlAmmIPPCBqfdlCsXdy-GASOOnmY$">https://petsc.org/release/petsc4py/petsc_python_types.html#petsc-python-matrix-type</a></div><div><br></div><div>This should cover your needs, let me know if you need methods that are not wrapped<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Il giorno mar 3 dic 2024 alle ore 09:15 Pierre Jolivet <<a href="mailto:pierre@joliv.et">pierre@joliv.et</a>> ha scritto:<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 dir="auto"><div dir="ltr"></div><div dir="ltr"><br></div><div dir="ltr"><br><blockquote type="cite">On 2 Dec 2024, at 11:15 PM, Eric Chamberland via petsc-users <<a href="mailto:petsc-users@mcs.anl.gov" target="_blank">petsc-users@mcs.anl.gov</a>> wrote:<br><br></blockquote></div><blockquote type="cite"><div dir="ltr">

  

    
  
  
    <p>Hello,</p>
    <p>We were exploring the use of the <code>MatCreateComposite</code>
      function with <code>petsc4py</code>, but we noticed that it
      doesn't seem to be available in the Python interface
      (<a href="https://urldefense.us/v3/__https://petsc.org/release/petsc4py/reference/petsc4py.PETSc.Mat.html__;!!G_uCfscf7eWS!fphemsDPNmxHUr-ybYLt_xWUrP575eKuI4xixwypEzd2g7uc6qMilt8etg13o24gU0vloOVrsHDXwqlgoY1T7jrcQUiv83PrXvNSYlNU$" target="_blank">https://petsc.org/release/petsc4py/reference/petsc4py.PETSc.Mat.html</a>).</p>
    <p>We were wondering if this is due to a technical limitation or if
      there is a better alternative to achieve the same result.</p>
    <p>Our goal is to create a matrix representing <span><span><u></u><u></u><u></u><u></u><u></u>P<u></u><u></u>T<u></u><u></u><u></u>A<u></u><u></u>P<u></u><u></u><u></u><u></u></span>
      </span>without explicitly computing the product.</p>
    <p>We also considered using <code>MatShell</code>, but it seems
      that this approach is not supported in <code>petsc4py</code>
      either.</p></div></blockquote><div>What do you mean?</div><div>You can use either a MatShell or a MatPython in petsc4py out of the box.</div><div><br></div><div>Thanks,</div><div>Pierre </div><blockquote type="cite"><div dir="ltr">
    <p>On the other hand, we noticed that <code>MatCreateTranspose</code>
      is implemented, and it aligns somewhat with the kind of operation
      we're aiming for.</p>
    <p>Any insights or advice you could provide would be greatly
      appreciated!</p>
    <p>Thank you,</p>
    <p>Eric</p>
    <pre cols="72">-- 
Eric Chamberland, ing., M. Ing
Professionnel de recherche
GIREF/Université Laval
(418) 656-2131 poste 41 22 42</pre>
  

</div></blockquote></div></blockquote></div><div><br clear="all"></div><br><span class="gmail_signature_prefix">-- </span><br><div dir="ltr" class="gmail_signature">Stefano</div>