Hysen Labs
Model or dataset
CliMA/CloudMicrophysics.jl avatar
CliMA

CloudMicrophysics.jl

GPU-capable cloud microphysics and aerosol parameterizations for the CliMA Earth System Model

49 stars11 forksJuliaApache-2.0
DEEP OPEN-SOURCE ANALYSIS

Cloud microphysics parameterizations for the CliMA model

CloudMicrophysics.jl provides bulk microphysics and aerosol schemes for the CliMA Earth System Model, with GPU and automatic differentiation support.

What the library implements

CloudMicrophysics.jl provides a library of cloud microphysics and aerosol parameterizations for the CliMA Earth System Model, which is a climate modeling effort at Caltech. It implements bulk microphysics schemes for cloud formation, precipitation, and aerosol processes, and it is designed for high performance climate simulations rather than for teaching examples. The package is written in Julia and fits into a broader ecosystem of climate code. The README frames the library as the piece that turns large scale model state, things like air density and species mass, into concrete physical rates such as terminal velocity of rain or the activation of aerosol into cloud droplets. Because it is a library, other models call into it; it is not a standalone application with a user interface. The documentation badges point to stable and development docs, a version, a license, continuous integration status, code coverage, and download counts, which is the usual sign of a package meant to be depended on by others. At the time of writing the repository showed 49 stars and 51 open issues, a pattern common for scientific software where the issue tracker doubles as a research discussion space. The License is Apache 2.0, which is a permissive choice that lets academic and commercial users build on the code. The installation is the standard Julia workflow of adding the package and its parameter dependency, ClimaParams, through the package manager.

Microphysics and ice schemes

The microphysics side of the library covers several levels of complexity. A zero moment scheme does simple precipitation removal. A one moment scheme uses Marshall Palmer distributions for rain and snow. A two moment scheme follows Seifert and Beheng in 2006 and carries both mass and number concentration, which lets the model distinguish how much material is present from how many particles carry it. A P3 scheme predicts particle properties for ice. Ice nucleation is handled with both heterogeneous and homogeneous paths: heterogeneous nucleation covers deposition and immersion freezing using the ABIFM approach, while homogeneous nucleation uses the Koop and others parameterization from 2000, and ice nucleating particle distributions follow Frostenberg and others in 2023. The aerosol side includes activation after Abdul Razzak and Ghan in 2000, nucleation through sulfuric acid and organic pathways, and a modal aerosol model that uses kohler theory to relate humidity to droplet growth. Each of these is a named, citable parameterization rather than an ad hoc formula, which is what gives the library its scientific weight. The README links the underlying papers by DOI so a user can read the original derivations. This structure lets a modeling team pick the level of detail appropriate to their simulation, trading cost for fidelity as needed.

Performance and integration

Performance and composability are first class concerns in the library. The code is type stable and GPU compatible through CUDA.jl and AMDGPU.jl, so the same routines can run on accelerators when the host model is built for them. It is also automatic differentiation compatible through ForwardDiff.jl, which means the physics can be embedded in differentiable workflows for sensitivity analysis and parameter tuning. The authors note that the code is optimized for minimal allocations, which matters in long climate runs where small per call overhead compounds across millions of steps. Integration with the wider CliMA ecosystem is direct: the README lists ClimaAtmos as the atmospheric model, KinematicDriver as a one and two dimensional kinematic framework, and Thermodynamics as the moist thermodynamics package, all of which use CloudMicrophysics.jl. A quick start in the README shows adding the package, importing it, building microphysics parameters such as rain and a one moment velocity type, and computing a rain terminal velocity from air density and rain specific content. Running the tests locally uses the project flag and the package manager dev mode, then includes the test runner. This tight integration with adjacent packages is the practical proof that the library is not a standalone demo but a working component of a larger Earth system model.

Editorial conclusion

CloudMicrophysics.jl is written in Julia and released under the Apache 2.0 license, with 49 stars recorded on GitHub at its last update on 2026-08-24.

DEEP OPEN-SOURCE ANALYSIS

Official sources

Community notes

Community notes