https://github.com/darothen/coad.jl
Julia-based port of the Bott 1998 flux-based solution to the SCE
Science Score: 49.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 2 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 2 committers (50.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.3%) to scientific vocabulary
Repository
Julia-based port of the Bott 1998 flux-based solution to the SCE
Basic Info
- Host: GitHub
- Owner: darothen
- License: mit
- Language: Julia
- Default Branch: master
- Size: 793 KB
Statistics
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
- Releases: 1
Metadata Files
README.md
Coad.jl
This library is a Julia-based re-implementation of the flux-based numerical solution to the stochastic collection equation developed by Andreas Bott in his well-known 1998 JAS paper (B98). Bott provides legacy FORTRAN implementations on his academic website, and while these are a useful reference, they have a few idiosyncrasies that make them challenging for new researchers in cloud microphysicists:
- They are implemented in legacy FORTRAN 77 conventions with
commonanddatablocks rather than use proper subroutines with clearly declared argument intent. - The variable names and conventions leverage legacy implicit conventions for typing with which contemporary coders may not be familiar.
- The chosen variable names and overall structure of the code can be difficult to relate to the actual equations in B98.
Stochastic Collection Equation
The SCE describes the evolution of a droplets size distribution over time due to random collision events sampled from elements of droplet population:
Julia Implementation
The implementation presented here is a 50/50 re-write of the original FORTRAN. The core algorithm (inner loop) is more-or-less unchanged from the original version. However, we liberally leverage the core features of the Julia language to enable future development and extensibility while retaining very fast computational performance. The end result is an implementation which is about as fast as the original FORTRAN code but far more practically useful.
We expect that the code here could easily be implemented in cloud microphysical or other process models boot-strapped in Julia.
Example Application
We've included a very basic demo program reproducing Figure (3) of B98 in
the script examples/simple.jl. In this example we initialize a basic
exponential droplet size distribution and configure the model to use the Long
(1974) collision kernel. This results in a droplet autoconversion simulation
where a secondary raindrop mode "appears" out of nowhere after about 15 minutes
in the simulation.
The result of this simulation can be visualized (e.g. in the demo Python Jupyter
Notebook at examples/plot_brm_ridgeline.ipynb
to produce a "ridgeline" style plot showing the evolution of the multi-modal
droplet population over time:

Acknowledgments
The core algorithm and basis implementation that inspired this project are originally by Andreas Bott.
Owner
- Name: Daniel Rothenberg
- Login: darothen
- Kind: user
- Location: Frederick, CO
- Company: Waymo
- Website: http://www.danielrothenberg.com
- Twitter: danrothenberg
- Repositories: 72
- Profile: https://github.com/darothen
Tech Lead @ Waymo | Weather/Climate Scientist | Pythonista | ex-Chief Scientist @ ClimaCell/Tomorrow.io | Formerly Postdoc Associate @ MIT EAPS/IDSS/CGCS
GitHub Events
Total
Last Year
Committers
Last synced: 10 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| darothen | d****l@d****m | 18 |
| darothen | d****n@m****u | 18 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0