On Tue, May 8, 2012 at 11:15 AM, Lisandro Dalcin <span dir="ltr">&lt;<a href="mailto:dalcinl@gmail.com" target="_blank">dalcinl@gmail.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On 8 May 2012 12:04, Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>
&gt; On Tue, May 8, 2012 at 11:00 AM, Christian Staudt<br>
&gt; &lt;<a href="mailto:christian.staudt@ira.uka.de">christian.staudt@ira.uka.de</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Matthew Knepley &lt;<a href="mailto:knepley@gmail.com">knepley@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; a) Is there an easy and efficient way to convert a numpy.ndarray to a<br>
&gt;&gt;<br>
&gt;&gt; PETSc.Vec or PETSc.Mat (and vice-versa)?  (A PETSc.Vec.getArray() returns<br>
&gt;&gt; a<br>
&gt;&gt;<br>
&gt;&gt; numpy.ndarray, though I have found no such method for PETSc.Mat yet. )<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; If you are using dense matrices (MATDENSE) then MatGetArray() works.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; I don&#39;t think this is implemented in petsc4py: At least, there&#39;s no method<br>
&gt;&gt; PETSc.Mat.getArray()<br>
&gt;<br>
&gt;<br>
&gt; If you ask Lisandro for it, he will put it in.<br>
&gt;<br>
<br>
Matt, I&#39;ve never put that in just because I&#39;m not sure how to make it<br>
general. PETSc have many different matrix formats, and MatGetArray()<br>
call is like a hack, where you can get very different things (the &quot;1D&quot;<br>
values of an AIJ matrix, the &quot;2D&quot; values of a dense matrix in Fortran<br>
order). What about MPIAIJ, what should I return to users? Can you<br>
suggest some approach or API to implement this (I mean, how to get<br>
arrays for the various matrix types)?</blockquote><div><br></div><div>I think the whole point is that you should not do it. However, that has never stopped us from giving users</div><div>what they ask for. We are not int he business of reforming computing practices, which is why we have</div>
<div>MatGetArray(). I would make a wrapper that failed unless the type was MATDENSE.</div><div><br></div><div>  Matt</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<span class="HOEnZb"><font color="#888888"><br>
--<br>
Lisandro Dalcin<br>
---------------<br>
CIMEC (INTEC/CONICET-UNL)<br>
Predio CONICET-Santa Fe<br>
Colectora RN 168 Km 472, Paraje El Pozo<br>
3000 Santa Fe, Argentina<br>
Tel: <a href="tel:%2B54-342-4511594" value="+543424511594">+54-342-4511594</a> (ext 1011)<br>
Tel/Fax: <a href="tel:%2B54-342-4511169" value="+543424511169">+54-342-4511169</a><br>
</font></span></blockquote></div><br><br clear="all"><div><br></div>-- <br>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<br>