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

Reply via email to