<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="Generator" content="Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.E-MailFormatvorlage17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:70.85pt 70.85pt 2.0cm 70.85pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="DE" link="blue" vlink="purple">
<div class="WordSection1">
<p class="MsoNormal">Hi!<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span lang="EN-US">I'm rather new to PETSc and got along on my own so far. However, I've now run into the situation that the tutorial does not provide enough detail and on the other side going through every example found by grep with the
 possibly right command would take almost forever. So I would be very happy to get some hints where to start.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">My problem: read in a matrix in a special format, partition and redistribute it, solve.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">So far, I've read in my matrix, transformed it according to the input of MatCreateMPIAIJWithSplitArrays() and finally, for a start, KSPSolve.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">Here comes the 'but': my matrix does have a "block" format:<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|a ... a|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|a ... a|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|b ... b|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|b ... b|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|c ... c|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">|c ... c|<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">The matrix is sparse (by far not every x is set), every a, b, c, ... is a small 5x5 block, each 25 double data values of a block are saved consecutively, processor 1 holds every a, #2 every b and so on.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">PETSc tutorial says (as far as I understood) that PETSc's blocks are _logically_ different, but are stored just this way. And: in some sense DMDA could be the right way to access matrix data layout as PETSc uses it (would
 be good to achieve best possible performance).<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US">This said, my precise questions are: Is DMDACreate2D the right way to go? Does it match my data layout best with PETSc's layout? Which example file is suited best to read up on? Does this really speeds up time to solution
 or should I stick with the transformed non-block variant?<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US"><o:p> </o:p></span></p>
<p class="MsoNormal">TIA,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Gregor Matura<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal" style="punctuation-wrap:simple;text-autospace:none"><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:dimgray;mso-fareast-language:DE">——————————————————————————<o:p></o:p></span></p>
<p class="MsoNormal" style="punctuation-wrap:simple;text-autospace:none"><b><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:dimgray;mso-fareast-language:DE">Deutsches Zentrum für Luft- und Raumfahrt</span></b><span style="font-size:10.0pt;font-family:"Arial","sans-serif";color:dimgray;mso-fareast-language:DE">
 e.V. (DLR)<o:p></o:p></span></p>
<p class="MsoNormal" style="punctuation-wrap:simple;text-autospace:none"><a name="Institut"></a><span lang="EN-GB" style="font-size:10.0pt;font-family:"Arial","sans-serif";color:dimgray;mso-fareast-language:DE">German Aerospace Center</span><span lang="EN-US" style="mso-fareast-language:DE"><o:p></o:p></span></p>
</div>
</body>
</html>