Hossein Talebi <[email protected]> writes: > Exactly, I personally look for: > > 1) type checking during the function calls. This helps also not looking > into the manual for every single petsc function call. > > 2) low level access to petsc data structure. For example in my own code I > already have my own hadnling of parallel vectors and matrices. When I use > petsc, I have to always copy in/out all the data which is not optimal. So, > it would be great if I can share or be change the petsc data in my Fortran > code i.e. not through the petsc function calls. I understand this might be > dangerous or not duable etc. But, I see no other solution.
1. You really need to profile. Copying a vector is cheap. 2. If you make your functions (to evaluate residuals, etc) take their inputs as explicit arguments, you can just pass the PETSc objects (or get the arrays from PETSc). 3. Parallel matrix assembly is almost certainly not something for which you want to hard-code the data structure. PETSc provides generic interfaces for _incrementally_ assembling matrices, so that there is no extra storage and so the resulting data structure can be chosen at run-time. I challenge you to find evidence that you can do this better. 4. If you really want to use _your_ storage for a Vec or Mat, you can use VecCreateMPIWithArray, MatCreateMPIAIJWithSplitArrays, and the like. All of the above are available through _public_ interfaces that are already available to Fortran callers. Please don't use F2003 to expose the _private_ struct definitions that we do not even offer to C callers. > 3) easy definitions of petsc namespace through the Fortran modules, so I > can choose what to import (using the Fortran 'only' statement). PETSc uses prefixes for namespaces. You can use "only" with the normal modules, but I can't tell if you are suggesting changing the names to avoid the prefix (which I don't think is a good idea and will lead to some collisions). > There is no general automatic interface generation for Fortran, as much as > I'm aware of. The gtk-fortran project, they wrote a python script to > generate this interface automatically and it really works nicely. I could > not imagine writiing such nice GTK GUI with Fortran. Hmm, it may be interesting to look at that script and see if it can be adapted.
pgpyqyFZyNKmp.pgp
Description: PGP signature
