On Wed, 23 Jul 2008, Andrea Hawkins wrote: > I am wondering though if it will work to just change the signature of > the jacobian function because when Petsc calls it, it needs the > current signature. (at least, that's how i understand it...)
Petsc needs the current signature of __libmesh_petsc_snes_residual and the other global functions we define in petsc_nonlinear_solver.C, but we're free to change around the signatures of the user-specified functions they call. We've even got a little leeway with the __libmesh_petsc_ functions, since we could decide to use the catch-all "void *ctx" in a different way. The trouble with changing around PetscNonlinearSolver::jacobian and the like isn't compatibility with PETSc code, it's compatibility with user code. I warned you before that we'd eventually have to change the DiffSystem assembly APIs to work better with threading; now it turns out we're going to have to change the non-DiffSystem nonlinear solver assembly APIs too? I think both changes are worth the annoyance, but (along with Mesh/MeshBase, prefixes in asserts and Makefile constants, etc.) it feels like we're accumulating too many little API changes for our next release. People using 0.6.2 may be upset at all the little thing they'll have to fiddle with to move to 0.6.9. --- Roy ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ Libmesh-users mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/libmesh-users
