code design

Jianing Shi jianings at
Thu Feb 15 13:46:15 CST 2007

So follow up my puzzles for code design, do I have the same problem if
I want to use SUNDIALS control script, and link it to Petsc library?

I am trying to building up my own C++ library, handle it over to PVODE
control script, and solve the underlying system using Petsc.


> > I have a question which is more about code design using Petsc.
> >
> > Suppose I need to implement a C++ library to provide an interface for
> > users to set up the ODE and/or PDE systems, which I will solve on
> > parallel computers using Petsc.  Since Petsc has defined its own data
> > type (in fact, a lot), PetscInt, PetscScalar, etc.  I would like to
> > link my own C++ library to the Petsc library.  I imagine there are two
> > solutions:
> >
> > 1) write an interface between my library and Petsc, i.e., between my
> > own data structure (object-oriented) with the DA structure of Petsc.
> > This requires translation between all the data type, for instance, int
> > and PetscInt....
> OO is really orthogonal to the introduction of new types.
> > 2) use templated programming in my own library, so that when I link to
> > the Petsc library, I can easily reuse my own code to set up the Right
> > hand side, Jacobian and so on.
> Yes, this is the correct way to handle .it.
>   Matt
> > Just wondering what is a good solution for an efficient and neat design?
> >
> > Thanks,
> >
> > Jianing

More information about the petsc-users mailing list