<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Sun, May 6, 2018 at 4:40 AM, Robert Speck <span dir="ltr"><<a href="mailto:r.speck@fz-juelich.de" target="_blank">r.speck@fz-juelich.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi!<br>
<br>
I would like to do a matrix-vector multiplication (besides using linear<br>
solvers and so on) with petsc4py. I took the matrix from this example<br>
(<a href="https://bitbucket.org/petsc/petsc4py/src/master/demo/kspsolve/petsc-mat.py" rel="noreferrer" target="_blank">https://bitbucket.org/petsc/<wbr>petsc4py/src/master/demo/<wbr>kspsolve/petsc-mat.py</a>)<br>
and applied it to a PETSc Vector. All works well in serial, but in<br>
parallel (in particular if ordering becomes relevant) the resulting<br>
vector looks very different.</blockquote><div><br></div><div>You will have to be more specific about "looks different". If you look inside any of</div><div>the solver code, you can see we are just calling MatMult() everywhere.</div><div><br></div><div>   Matt</div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> Using the shell matrix of this example<br>
(<a href="https://bitbucket.org/petsc/petsc4py/src/master/demo/poisson2d/poisson2d.py" rel="noreferrer" target="_blank">https://bitbucket.org/petsc/<wbr>petsc4py/src/master/demo/<wbr>poisson2d/poisson2d.py</a>)<br>
helps, but then I cannot use matrix-based preconditioners for KSP<br>
directly (right?). I also tried using DMDA for creating vectors and<br>
matrix and for taking care of their ordering (which seems to be my<br>
problem here), but that did not help either.<br>
<br>
So, my question is this: How do I do easy parallel matrix-vector<br>
multiplication with petsc4py in a way that allows me to use parallel<br>
linear solvers etc. later on? I want to deal with spatial decomposition<br>
as little as possible. What data structures should I use? DMDA or<br>
PETSc.Vec() and PETSc.Mat() or something else?<br>
<br>
Thanks!<br>
-Robert-<br>
<br>
--<br>
Dr. Robert Speck<br>
Juelich Supercomputing Centre<br>
Institute for Advanced Simulation<br>
Forschungszentrum Juelich GmbH<br>
52425 Juelich, Germany<br>
<br>
Tel: +49 2461 61 1644<br>
Fax: +49 2461 61 6656<br>
<br>
Email:   <a href="mailto:r.speck@fz-juelich.de">r.speck@fz-juelich.de</a><br>
Website: <a href="http://www.fz-juelich.de/ias/jsc/speck_r" rel="noreferrer" target="_blank">http://www.fz-juelich.de/ias/<wbr>jsc/speck_r</a><br>
PinT:    <a href="http://www.fz-juelich.de/ias/jsc/pint" rel="noreferrer" target="_blank">http://www.fz-juelich.de/ias/<wbr>jsc/pint</a><br>
<br>
<br>
<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------<br>
Forschungszentrum Juelich GmbH<br>
52425 Juelich<br>
Sitz der Gesellschaft: Juelich<br>
Eingetragen im Handelsregister des Amtsgerichts Dueren Nr. HR B 3498<br>
Vorsitzender des Aufsichtsrats: MinDir Dr. Karl Eugen Huthmacher<br>
Geschaeftsfuehrung: Prof. Dr.-Ing. Wolfgang Marquardt (Vorsitzender),<br>
Karsten Beneke (stellv. Vorsitzender), Prof. Dr.-Ing. Harald Bolt,<br>
Prof. Dr. Sebastian M. Schmidt<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------<br>
------------------------------<wbr>------------------------------<wbr>------------------------------<wbr>------<br>
<br>
</blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature"><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.caam.rice.edu/~mk51/" target="_blank">https://www.cse.buffalo.edu/~knepley/</a><br></div></div></div></div></div>
</div></div>