Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
75 changes: 55 additions & 20 deletions proposal.md
Original file line number Diff line number Diff line change
@@ -1,38 +1,52 @@
# Community Software Analysis Proposal
Please edit this file and push to your repository.

## Software: *NAME_OF_PACKAGE_HERE*
## Software: Clawpack

Clawpack stands for Conservation Laws Package. Clawpack is a collection of solvers for linear and nonlinear hyperbolic systems of conservation laws, such as advection or acoustic type problems. Aimed at solving conservation laws, Clawpack naturally employs the finite volume method. The collection includes classic Clawpack: a general hyperbolic PDE solver (written in Fortran), AMRClaw: with adaptive mesh refinement (written in Fortran), GeoClaw: aimed at geophysical flow (written in Fortran), and PyClaw: a version of Clawpack written in Python. Applications sutiable for the suite of Clawpack solvers includes variable-coefficient advection, acoustics, Euler equations, and many more conservation problems. The primary audience varies depending on which solver is used from the collection. In general, Clawpack could be useful to those who study high speed flows because the package was designed to handle hyperbolic equations. Specifically for GeoClaw, it is well suited for people interested in solving geophysics problems.

The key features of the software include:
* Capability to solve general hyperbolic partial differential equations (PDEs)
* Riemann solvers for many common applications are bundled with the software
* A Riemann solver needs to be provided to deal with discontinuities (shocks) at the faces between cells
* AMRClaw and GeoClaw includes adaptive mesh refinement (AMR)
* PyClaw allows for parallelism scalable to the tens of thousands of cores

Summary list of solvers included with Clawpack:
* Classic (single grid solvers in Fortran)
* AMRClaw (adaptive mesh refinement in Fortran)
* GeoClaw (geophysical flows with AMR, in Fortran)
* PyClaw (Python version of solvers)


*Write a paragraph describing what the software does and who its
primary audience is.*

### Stats

| Description | Your answer |
|---------|-----------|
| Repository URL | |
| Main/documentation website | |
| Year project was started | |
| Number of contributors in the past year | `git shortlog -se --since=2021-10-01` may be useful |
| Number of contributors in the lifetime of the project | |
| Number of distinct affiliations | 1, 2-5, 5-10, >10 |
| Where do development discussions take place? | e.g., GitHub/GitLab issues, mailing list, Slack, etc. |
| Typical number of emails/comments per week? | |
| Typical number of commits per week? | |
| Typical commit size | `git log --shortstat` may be useful |
| How does the project accept contributions? | e.g., pull requests, patches on mailing lists |
| Does the project have an automated test suite? | yes/no |
| Does the project use continuous integration? | yes/no |
| Are any legal/licensing steps required to contribute? | no or explain below |
| Repository URL | https://github.com/clawpack/clawpack |
| Main/documentation website | http://www.clawpack.org/ |
| Year project was started | 1994 |
| Number of contributors in the past year | 3 (classic and PyClaw), 1 (GeoClaw), 2 (AMRClaw) |
| Number of contributors in the lifetime of the project | 20 major contributors |
| Number of distinct affiliations | >10 |
| Where do development discussions take place? | Slack, claw-dev Google group (http://groups.google.com/group/claw-dev/), issue trackers on Github, Gitter, Twitter, claw-users Google group |
| Typical number of emails/comments per week? | Last conversation in claw-dev Google group was August 28, 2022 (2 months ago) |
| Typical number of commits per week? | Last commit was 1-2 months ago |
| Typical commit size | Approximately 10-200 additions/deletions per commit (over the past year) |
| How does the project accept contributions? | Pull requests |
| Does the project have an automated test suite? | Yes |
| Does the project use continuous integration? | Yes |
| Are any legal/licensing steps required to contribute? | No |

### Install and run

Check the following boxes when complete or add a note below if you
encountered a problem.

- [ ] I have installed the software
- [ ] I have run at least one example
- [ ] I have run the test suite
- [x] I have installed the software
- [x] I have run at least one example
- [x] I have run the test suite
- [ ] The test suite passes

### Notes/concerns/risks
Expand All @@ -44,6 +58,27 @@ the project requires a contributor license agreement or other
procedural steps, please explain here. "None at this time" is
acceptable for this question.

* The Clawpack community was most active approximately 5-10 years ago and is less active these days. It may not be the best choice going forward for a project.

* PyClaw has the most contributors and lots of documentaiton (would be the best solver of the four to choose for a project).
* GeoClaw had the most changes in the past year, but only one contributor.
* Submitted request to join Clawpack Slack channel but have yet to hear back from them.
Comment on lines +61 to +65

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I bumped one of the developers about their Slack.

I would regard Clawpack as being essentially one project that has chosen to organize into different repositories. The top-level clawpack/clawpack has the others as submodules. So commits may be scattered around, but it operates almost the same as if everything had been merged into a mono-repo.

This is a related package you might find interesting. https://github.com/geoflows/D-Claw


* Travis continuos integration is used (service used to build and test software projects hosted on GitHub and Bitbucket).

* If using either the Fortran or Python installations there is an automated test suite that runs several tests and compares the solution (parts of the soltution) to archived resutls.

* For PyClaw, 46 of 48 tests in the test suite pass and two tests fail. The two tests failed with the error "no such file or directory" for the verification file (the file name for the verificaiton file might be mislabeld for those tests).
* For the calssic solver, all three tests in the test suite failed.
Comment on lines +71 to +72

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hmm, it looks like continuous integration isn't running any more and I see an issue about Travis (which doesn't provide free minutes to open source any more).
https://app.travis-ci.com/github/clawpack/clawpack/builds


* Permissive license: Berkeley Software Distribution (BSD) license (BSD 3-Clause)
* Concern about license: On the Clawpack website the copyright is from 1994-2020, does that mean it is no longer in effect?
* "Copyright (c) 1994–2020, The Clawpack Development Team. All rights reserved."
Comment on lines +74 to +76

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copyright exists whether you write that line or not, for every year you develop it, also whether or not it's written. I personally dislike including the year because it leads to this sort of confusion. Some projects use automation to update the copyright notice on every file each year (but that's technically incorrect if the file hasn't been modified). The fact that copyright nominally has a finite duration seems moot when Congress keeps extending the expiration to appease Disney, which lobbies to protect its characters from entering the public domain.


<!--* In the classic/doc/ directory (after installing) there are no files.-->



#### Note on copyright
Students retain copyright on any work done in completion of a CU
course, so you are authorized to sign a [contributor license
Expand Down