<div class="gmail_quote">On Tue, Aug 21, 2012 at 10:39 AM, Matthew Knepley <span dir="ltr"><<a href="mailto:knepley@ci.uchicago.edu" target="_blank">knepley@ci.uchicago.edu</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Wolfgang is not wrong here. I was against the name change :)</blockquote><div><br></div><div>I complained about this in May when it was pushed.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br></div><div>   Matt<br><br><div class="gmail_quote">---------- Forwarded message ----------<br>From: <b class="gmail_sendername">Wolfgang Bangerth</b> <span dir="ltr"><<a href="mailto:bangerth@math.tamu.edu" target="_blank">bangerth@math.tamu.edu</a>></span><br>

Date: Mon, Aug 20, 2012 at 10:30 PM<br>Subject: Changes in PETSc<br>To: Matthew Knepley <<a href="mailto:knepley@ci.uchicago.edu" target="_blank">knepley@ci.uchicago.edu</a>>, "Toby D. Young" <<a href="mailto:tyoung@ippt.gov.pl" target="_blank">tyoung@ippt.gov.pl</a>><br>

<br><br><br>
Hi Matt,<br>
I ran across something today that I believe perfectly illustrates the kind of thing that drives everyone completely mad about PETSc's habit of changing everything in every release. I was staring for a long time at a patch by one of our contributors labeled "fix catastrophic typo" that reads like this:<br>


...........................<br>
-    int ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV));<br>
+                                     // set the type of solver.<br>
+    int ierr;<br>
+<br>
+#ifdef DEAL_II_PETSC_VERSION_LT(3,3,<u></u>0)<br>
+    ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYCHEV));<br></div></div></blockquote><div><br></div><div>They can get rid of the const_cast.</div><div><br></div><div>Also, instead of the magic version nonsense, they can write<br>
<br>#ifndef KSPCHEBYSHEV</div><div>#  define KSPCHEBYSHEV KSPCHEBYCHEV</div><div>#endif</div><div><br></div><div>and then always use the new version in their code.</div><div><br></div><div>Also, a package like deal.II would be better off snooping the list of valid parameters using PetscFListGet() so that they would *automatically* support *all* KSPs and PCs in PETSc.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="gmail_quote">
+#else<br>
+    ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV));<br>
+#endif<br>
...........................<br>
It took me minutes to find the difference: before 3.3, the name was spelled chebyChev, after that chebyShev. That's really a completely unnecessary change -- but hugely disruptive because not compatible, incredible difficult to see, and it also has no real value at all: whether you want to spell the name the French or the American way really makes no difference at all. Worst of all, it would have been absolutely trivial to make the change backward compatible by simply doing<br>


  #define KSPCHEBYSHEV KSPCHEBYCHEV<br>
but that didn't happen.<br>
<br>
So why do it? Sorry for venting, but it just doesn't make sense to me...<br>
Best<span><font color="#888888"><br>
 W.<span class="HOEnZb"><font color="#888888"><br>
<br>
-- <br>
------------------------------<u></u>------------------------------<u></u>------------<br>
Wolfgang Bangerth               email:            <a href="mailto:bangerth@math.tamu.edu" target="_blank">bangerth@math.tamu.edu</a><br>
                                www: <a href="http://www.math.tamu.edu/~bangerth/" target="_blank">http://www.math.tamu.edu/~<u></u>bangerth/</a><br>
<br>
</font></span></font></span></div><span class="HOEnZb"><font color="#888888"><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>
</font></span></div>
</blockquote></div><br>