since developing object oriented software is so cumbersome in C and we are all resistent to doing it in C++

Jed Brown jed at
Sat Dec 5 13:06:49 CST 2009

This is an interesting proposal.  Two thoughts:

Residual and Jacobian evaluation cannot be written in Python (though it
can be prototyped there).  After a discretization is chosen, the physics
is usually representable as a tiny kernel (Riemann solvers/pointwise
operation at quadrature points), but if the user is still in charge of
the discretization, it will need services from this new PETSc.  So we
need to be able to provide good debugging support across languages and
concurrency models, i.e. Python/MPI->C/OpenMP->Python->CUDA.

Python is not statically typed.  This is both a strength and a weakness,
but dynamic typing makes debugger support more important because the
compiler can't catch type errors, instead we'll find them when an
exception is thrown in the multi-language hybrid environment.


More information about the petsc-dev mailing list