A package containing a library of cloud microphysics and aerosol parameterizations.
Installation and running instructions
CloudMicrophysics.jl is a Julia registered package. It depends on a couple of standard Julia packages as well as the Thermodynamics.jl and CLIMAParameters.jl (two Julia packages developed at CliMA). See the Project.toml for a full list of CloudMicrophysics.jl's dependencies.
When using the CloudMicrophysics.jl inside your own project,
the easiest way to obtain the latest stable version of the package
and it's dependencies is to use the Julia built-in package manager
(accessed by pressing
] in the Julia REPL):
julia>] pkg> add CloudMicrophysics pkg> instantiate
CloudMicrophysics.jl can be updated to the latest tagged release from the package manager. The package is still under development and changes to API are very possible!
pkg> update CloudMicrophysics
When contributing to the CloudMicrophysics.jl development, the easiest way is to clone the repository and then run it using its project environment. For example, to get all the needed dependencies and then run all the tests you could try:
julia --project=test julia>] pkg> instantiate julia> include("test/runtests.jl")
See the Pkg docs for an overview of basic package manager features.
The CloudMicrophysics.jl package is being actively developed and welcomes contributions and feedback. There is a variety of projects big and small that are available to take up as fun research projects for interested students and other contributors. Below is a list of possible examples, but other suggestions and ideas are always welcome!
The CloudMicrophysics.jl package should be tested against a high-resolution model. We have chosen PySDM as our high-resolution benchmark. PySDM is a package for simulating the dynamics of population of particles and is based on the Super-Droplet algorithm. Possible tasks in this project would include testing the aerosol activation parameterization against PySDM in an adiabatic parcel setup, or testing the 1-moment microphysics parameterization against PySDM in an already implemented 1-dimensional or 2-dimensional prescribed flow setup. This could be extended further into a calibration exercise using the EnsembleKalmanProcesses.jl package. An example pipeline can be seen in the EKP.jl docs where Cloudy.jl parameters are calibrated.
Adding an aerosol model and coupling it with the aerosol activation parameterization. MAM4 could be the aerosol model to implement. This is a big project and an opportunity for a more long term contribution.
Adding the P3 scheme for ice phase microphysics.
Adding more accurate fall speed parameterization based on Chen et. al. 2022.
Adding precipitation susceptibility tests based on Glassmeier and Lohmann 2016.