$ svn checkout http://kingkong.amath.washington.edu/svn/clawpack
Since the code will have a very high flux over the summer, make sure to update often:
$ cd
$ svn update
About a month ago, Randy, Kyle, and I outlined Clawpack's new design. We aimed to accomplish several things:
- greater use of Python in installation, experimental setup, and data IO,
- updated source code organization to match that of common software projects,
- library packaging of core Fortran code,
- use of advanced f2py features. (Available by the end of the summer courtesy of the Cython team.)
claw1: main loop
b4step - user-supplied pre-step setup
src1 - sub-solver if using Strang splitting
step1 - perform a "step"
rp1 - the algorithm's Riemnan solver
src1 - another Strang splitting step
src1 - sub-solver if using Godunov splititng
Our question, in this situation, then becomes "Does the Python interface simply wrap claw1 or does it dive into that subroutine and execute the main loop itself, calling the subroutines listed above?"
The short answer is that for now we'll simply wrap claw1. However, our plan is to experiment and eventually run some performance analyses. Adding Cython to the mix expands the possibilities at hand for software design. We also look forward to the additions to f2py and Cython-Fortran integration that are currently being implemented by the Cython developers and funded by Google Summer of Code. I encourage you to check out Cython for yourself and see what they have planned for the summer.
As for my work on this project, I'm currently "library-atizing" the core, Fortran-based Clawpack code. It's current configuration requires the user to compile against the full source producing a "new Clawpack program" for each set of parameters you feed it. Hopefully having the code in library form will not only make it easier to use but also boost the relevance and importance of having Python serve as the means of operation. I suspect this sub-project to be a helpful one in exposing me to more of the core Clawpack code and familiarizing myself with gfortran's advanced compilation and linking features.

0 comments:
Post a Comment