[petsc-dev] PETSc future starting as a new design layer that runs on top of PETSc 3?

Eric Chamberland Eric.Chamberland at giref.ulaval.ca
Tue Jul 26 10:29:20 CDT 2022


Hi,

here we are developing in C++ and using PETSc encapsulated into C++ 
classes since 1997.... I am curious about a kind of survey on "How do 
you use PETSc in your code?"

I would say that bad code in feasible in almost all languages (yes, we 
did that to! :) ): peer code review is there to help prevent that!  We 
enforce unwanted features (i.e. in our case we forbid exceptions) by git 
hooks... Also, some old features are disabled if you use "-std=c++17"  
compiler flag for example.Also clang++ can warn you about deprecated 
features... and we are forcing to compile without warnings in our CI chain.

I absolutely vote for a C++ API over existing PETSc!

If PETSc is at end encapsulated into Julia or Rust for example, is it 
easily callable from C++?

What about the easiness of PETSc++ callable from other languages?

Eric

On 2022-07-25 17:34, Barry Smith wrote:
>
>    A  major problem with writing a completely new version of a large 
> code base is that one has to start with nothing and slowly build up to 
> everything, which can take years. Years in which you need to continue 
> to maintain the old version, people want to continue to add 
> functionality to the old version, and people want to continue to use 
> the old version because the new version doesn't have "the 
> functionality the user needs" ready yet.
>
>   Is there an approach where we can have a new PETSc 
> API/language/paradigm but start with a very thin layer on the current 
> API so it just works from day one?
>
>   * to this would seem to require if PETSc future is not in C, there
>     has to be a very, very easy way and low error-prone way to wrap
>     PETSc current to be called from the new language. For example, how
>     petsc4py wraps seems too manual and too error-prone. C++ can
>     easily and low-error prone call C, any other viable candidates?
>
>
>
-- 
Eric Chamberland, ing., M. Ing
Professionnel de recherche
GIREF/Université Laval
(418) 656-2131 poste 41 22 42
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-dev/attachments/20220726/81ad01cc/attachment.html>


More information about the petsc-dev mailing list