<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" xmlns:ns0="urn:schemas-microsoft-com:office:smarttags"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><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;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
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;}
p.MsoAcetate, li.MsoAcetate, div.MsoAcetate
        {mso-style-priority:99;
        mso-style-link:"Balloon Text Char";
        margin:0cm;
        margin-bottom:.0001pt;
        font-size:8.0pt;
        font-family:"Tahoma","sans-serif";}
span.BalloonTextChar
        {mso-style-name:"Balloon Text Char";
        mso-style-priority:99;
        mso-style-link:"Balloon Text";
        font-family:"Tahoma","sans-serif";
        mso-fareast-language:EN-GB;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
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=EN-GB link=blue vlink=purple><div class=WordSection1><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Just my thoughts&#8230;.I&#8217;m sure you&#8217;ve thought about this already&#8230;.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>1)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>It would need to be <i>compiled</i> by a c++ compiler, but could be used as can other c++ functions by other languages given the export of the function and suitable wrapping&#8230;.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'> <o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>2)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>I agree on seeing the code, need to think about that.&nbsp; Although technically of course you could actually write a programme and compile it with the purpose of writing out a header file with a function in it, in that case you would use pre-processor boost magic. The idea would be to compile that code before petsc is compiled, run that code before petsc is compiled and that would produce a file with the function in it, say for block size 20 , then include that file and use that generated function when petsc is compiled.&nbsp; That way you <i>would</i> see the automated code&#8230;..<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>3)<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Using the pre-processor boost method probably produces close to the most optimal in-lined code you can get in my (personal) opinion&#8230;.<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Something like python to do the code-gen&#8230;<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Cheers,<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'>Andy<o:p></o:p></span></p><p class=MsoNormal><span style='font-size:11.0pt;font-family:"Calibri","sans-serif";color:#1F497D'><o:p>&nbsp;</o:p></span></p><p class=MsoNormal><b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>From:</span></b><span lang=EN-US style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> petsc-users-bounces@mcs.anl.gov [mailto:petsc-users-bounces@mcs.anl.gov] <b>On Behalf Of </b>Matthew Knepley<br><b>Sent:</b> 07 December 2011 09:37<br><b>To:</b> PETSc users list<br><b>Subject:</b> Re: [petsc-users] MATBDIAG in &gt; 3.1<o:p></o:p></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><span style='font-family:"Courier New"'>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *** WARNING ***<br><br>&nbsp; This message has originated outside your organisation,<br>&nbsp; either from an external partner or the Global Internet. <br>&nbsp; &nbsp; &nbsp; Keep this in mind if you answer this message.<br></span>On Wed, Dec 7, 2011 at 2:54 AM, Parker, Andrew (UK Filton) &lt;<a href="mailto:Andrew.Parker2@baesystems.com">Andrew.Parker2@baesystems.com</a>&gt; wrote:<o:p></o:p></p><div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal>Legends, nice one!<br><br>Got to that point in the souce code yesterday, saw that 7 was missing<br>from the switch statement, and got worried.<br><br>Is there any symmetry between the code in block size 5-&gt;6-&gt;7-&gt;8? &nbsp;I've<br>asked that without looking, so could be stupid question. &nbsp;The reason I<br>ask is that if there is this is a classic use of something like<br>boost-preprocessor macros or a bit of templating, as in the compiler<br>would expand it all out given a pattern at compile time? &nbsp;Just<br>interest....<o:p></o:p></p></blockquote><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>This is the kind of thing you could do with templates. However, that would mean<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp; 1) It only works in C++, and the logic is convoluted<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp; 2) You can't see the generated code<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp; 3) Its impossible to debug (and usually optimize)<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>We are looking at other approaches.<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp; Thanks,<o:p></o:p></p></div><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><div><p class=MsoNormal>&nbsp; &nbsp; Matt<o:p></o:p></p></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><blockquote style='border:none;border-left:solid #CCCCCC 1.0pt;padding:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><p class=MsoNormal style='margin-bottom:12.0pt'>Cheers again,<br>Andy<br><br>-----Original Message-----<br>From: <a href="mailto:petsc-users-bounces@mcs.anl.gov">petsc-users-bounces@mcs.anl.gov</a><br>[mailto:<a href="mailto:petsc-users-bounces@mcs.anl.gov">petsc-users-bounces@mcs.anl.gov</a>] On Behalf Of Satish Balay<br>Sent: 06 December 2011 19:31<br>To: PETSc users list<br>Subject: Re: [petsc-users] MATBDIAG in &gt; 3.1<br><br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*** WARNING ***<br><br>&nbsp;This message has originated outside your organisation,<br>&nbsp;either from an external partner or the Global Internet.<br>&nbsp; &nbsp; &nbsp;Keep this in mind if you answer this message.<br><br><br>On Tue, 6 Dec 2011, Matthew Knepley wrote:<br><br>&gt; On Tue, Dec 6, 2011 at 7:43 AM, Parker, Andrew (UK Filton) &lt;<br>&gt; <a href="mailto:Andrew.Parker2@baesystems.com">Andrew.Parker2@baesystems.com</a>&gt; wrote:<br>&gt;<br>&gt; &gt; So having got petsc 3.2 install and all its deps, I now get<br>&gt; &gt; this....****<br>&gt; &gt;<br>&gt; &gt; ** **<br>&gt; &gt;<br>&gt; &gt; [0]PETSC ERROR: PCSetUp_PBJacobi() line 207 in<br>&gt; &gt; src/ksp/pc/impls/pbjacobi/pbjacobi.c not supported for block size<br>&gt; &gt; 7****<br>&gt; &gt;<br>&gt; &gt; ** **<br>&gt; &gt;<br>&gt; &gt; ** **<br>&gt; &gt;<br>&gt; &gt; Any thoughts?<br>&gt; &gt;<br>&gt;<br>&gt; Sorry about that. There was confusion on our end. I have added the<br>&gt; code you need to 3.2. It will go out with the next patch release.<br>&gt; Alternatively, you can retrieve the source tarball from the repository<br><br>&gt; site or use the repository directly.<br><br><br>I'm attaching this change as a patchfile - which can be applied to the<br>current<br>petsc-3.2 sources you have.<br><br>cd petsc-3.2<br>patch -Np1 &lt; bpjacobi.patch<br><br>Satish<br><br>********************************************************************<br>This email and any attachments are confidential to the intended<br>recipient and may also be privileged. If you are not the intended<br>recipient please delete it from your system and notify the sender.<br>You should not copy it or use it for any purpose nor disclose or<br>distribute its contents to any other person.<br>********************************************************************<o:p></o:p></p></blockquote></div><p class=MsoNormal><br><br clear=all><o:p></o:p></p><div><p class=MsoNormal><o:p>&nbsp;</o:p></p></div><p class=MsoNormal>-- <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<o:p></o:p></p></div></body></html>