Reorganization of Clawpack 5.0

We still need to finalize what default license to use for Clawpack -- leaning towards BSD.

We plan to move to a new structure where Python will eventually be used for the high level user interface for all variants of Clawpack. In particular:

  • Data files such as claw.data (or the older clawNez.data), setprob.data, etc. will be replaced by Python scripts to set parameters,
  • IO will be handled by Python, allowing greater flexibility of formats,
  • Python graphics can be incorporated more easily to plot on the fly during a computation,
  • Python distutils will be used to simplify installation of Clawpack.
       $ python setup.py install
    
    in the top directory and it will automatically (1) compile the core Fortran library (as in .so or .dylib) and place it in /usr/local/lib and (2) compile the Python and Cython and install that wrapper to the user's Python install. (/usr/local/lib/python). Just like a Python application!

See also the ToDoList.

Proposed directory structure of kingkong.amath.washington.edu/svn/clawpack

Proposed directory structure for new subversion repositories:

kingkong.amath.washington.edu/svn/claw would be replaced by kingkong.amath.washington.edu/svn/clawpack.

Most users would checkout using

    svn co http://kingkong.amath.washington.edu/svn/clawpack/trunk  clawpack

and the resulting clawpack directory would have subdirectories src, lib, doc, etc.

clawpack
  tags [stable releases]
  branches [development work]
  trunk
    setup.py [to install everything]
    README
    INSTALL
    LICENSE
    src
      Makefile
      classic [original claw/trunk/claw/clawpack]
        dim1 [instead of "1d" for consistency with Python versions]
        dim2
        dim3
      amrclaw [original claw/trunk/claw/amrclaw]
        dim1 [new specialized driver for 1d case]
        dim2
        dim3
      geoclaw [original claw/trunk/claw/geoclaw]
        dim1
        dim2xy
      eagleclaw [original claw/trunk/claw/eagleclaw]
      rplib  [various Riemann solvers, Fortran and perhaps Python]
        advection
          [rp1ad, rp1advc, rpn2ad, rpt2ad, etc]
        acoustics
        burgers
        etc
      sharpclaw [previously WENOCLAW]
      sageclaw  [Sage interface]

    lib [compiled libraries]

    pyclaw [original claw/trunk/claw/python/pyclaw] 
        [data.py, grid.py, controller.py, etc.]
        io
        plotting
          data.py [for classes used for plotting]
          Iplotclaw.py
          etc.
        evolve
          classic
            dim1
            dim2
          sharpclaw
            dim1
            dim2
          amrclaw [when python version is available]
       utilities
          [startserver.py, fixfiles.py, etc.]

    doc [original claw/trunk/claw/doc]
      sphinx

    examples [original claw/trunk/claw/examples]
      [a few simple illustrative examples]
  
    matlab [original claw/trunk/claw/matlab]
      
    cgi-bin [original claw/trunk/claw/cgi-bin]
      [eagle*.py.cgi scripts for EagleClaw]

    myclaw
      [empty directory for user's working directories]

Applications

Application directories (beyond a few simple examples) will go in a separate repository kingkong.amath.washington.edu/svn/clawapps. Most users will selectively download pieces of this of interest to them. This repository will contain (we hope) contributions from users as well as applications developed locally.

 clawapps  
    extensions [for extensions to the Clawpack code that may be useful for many applications]
    advection
      dim1
        varcoeff
      dim2
        swirl
      dim3
    acoustics
      dim1
      etc
    burgers
    combustion
    debrisflow
    elastic
    euler
    seismic
    shallow
    traffic
    tsunamis
    etc.

Related packages

Do we want to include these? Probably not in short term.

  • BEARCLAW
  • ChomboClaw