[petsc-dev] Fwd: Changes in PETSc

Jed Brown jedbrown at mcs.anl.gov
Tue Aug 21 10:53:24 CDT 2012


On Tue, Aug 21, 2012 at 10:39 AM, Matthew Knepley
<knepley at ci.uchicago.edu>wrote:

> Wolfgang is not wrong here. I was against the name change :)


I complained about this in May when it was pushed.


>
>    Matt
>
> ---------- Forwarded message ----------
> From: Wolfgang Bangerth <bangerth at math.tamu.edu>
> Date: Mon, Aug 20, 2012 at 10:30 PM
> Subject: Changes in PETSc
> To: Matthew Knepley <knepley at ci.uchicago.edu>, "Toby D. Young" <
> tyoung at ippt.gov.pl>
>
>
>
> Hi Matt,
> 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:
> ...........................
> -    int ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV));
> +                                     // set the type of solver.
> +    int ierr;
> +
> +#ifdef DEAL_II_PETSC_VERSION_LT(3,3,**0)
> +    ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYCHEV));
>

They can get rid of the const_cast.

Also, instead of the magic version nonsense, they can write

#ifndef KSPCHEBYSHEV
#  define KSPCHEBYSHEV KSPCHEBYCHEV
#endif

and then always use the new version in their code.

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.


> +#else
> +    ierr = KSPSetType (ksp, const_cast<char *>(KSPCHEBYSHEV));
> +#endif
> ...........................
> 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
>   #define KSPCHEBYSHEV KSPCHEBYCHEV
> but that didn't happen.
>
> So why do it? Sorry for venting, but it just doesn't make sense to me...
> Best
>  W.
>
> --
> ------------------------------**------------------------------**
> ------------
> Wolfgang Bangerth               email:            bangerth at math.tamu.edu
>                                 www: http://www.math.tamu.edu/~**bangerth/<http://www.math.tamu.edu/~bangerth/>
>
>
>
>
> --
> What most experimenters take for granted before they begin their
> experiments is infinitely more interesting than any results to which their
> experiments lead.
> -- Norbert Wiener
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20120821/6eeb7b74/attachment.html>


More information about the petsc-dev mailing list