CloudMicrophysics.jl provides a library of cloud microphysics and aerosol parameterizations for the CliMA Earth System Model. It implements bulk microphysics schemes for cloud formation, precipitation, and aerosol processes, designed for high-performance climate simulations.
| Documentation | |
| Docs Build | |
| GHA CI | |
| Code Coverage | |
| Downloads |
using Pkg
Pkg.add("CloudMicrophysics")
Pkg.add("ClimaParams")import CloudMicrophysics as CM
import CloudMicrophysics.Microphysics1M as CM1
import CloudMicrophysics.Parameters as CMP
# Create microphysics parameters
rain = CMP.Rain(Float64)
vel = CMP.Blk1MVelType(Float64).rain
# Compute rain terminal velocity
ρ = 1.2 # air density [kg/m³]
q_rai = 1e-3 # rain specific content [kg/kg]
v_term = CM1.terminal_velocity(rain, vel, ρ, q_rai)- 0-moment scheme: Simple precipitation removal
- 1-moment scheme: Marshall-Palmer distributions for rain and snow
- 2-moment scheme: Seifert & Beheng (2006) with mass and number concentration
- P3 scheme: Predicted particle properties for ice
- Heterogeneous nucleation: Deposition, immersion freezing (ABIFM)
- Homogeneous nucleation: Koop et al. (2000) parameterization
- INP distributions: Frostenberg et al. (2023)
- Aerosol activation: Abdul-Razzak & Ghan (2000) parameterization
- Aerosol nucleation: H₂SO₄ and organic nucleation pathways
- Aerosol model: Modal distributions with κ-Köhler theory
- Type-stable and GPU-compatible (CUDA.jl, AMDGPU.jl)
- AD-compatible (ForwardDiff.jl) for differentiable physics
- Optimized for minimal allocations
- Getting Started - Installation and first steps
- API Reference - Detailed function documentation
- Microphysics Schemes - Scheme descriptions
CloudMicrophysics.jl is used throughout the CliMA ecosystem:
- ClimaAtmos - Atmospheric model
- KinematicDriver - 1D/2D kinematic framework
- Thermodynamics - Moist thermodynamics
For questions, check the documentation or open an issue on GitHub.