Skip to content

CliMA/CloudMicrophysics.jl

Repository files navigation

CloudMicrophysics.jl

A package containing a library of cloud microphysics and aerosol parameterizations. See our documentation for the list of available schemes.

Docs Build docs build
Documentation dev
GHA CI gha ci
Code Coverage codecov

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 ClimaParams.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> dev .

pkg> instantiate

julia> include("test/runtests.jl")

See the Pkg docs for an overview of basic package manager features.

Contributing

CloudMicrophysics.jl 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!

  • CloudMicrophysics.jl 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 adiabatic parcel setup, or testing the 1-moment microphysics parameterization against PySDM in an 1-dimensional or 2-dimensional prescribed flow setups. 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.

  • The CloudMicrophysics.jl package should be tested against observations. We are focusing on the ice-free precipitation first. The tests include comparisons against CFODDs and against Stratocumulus LWP(N) patterns.

  • Adding an aerosol model and coupling it with the aerosol activation parameterization. MAM4 could be the aerosol model to implement, but we are also searching for some simpler alternatives first. This is a big project and an opportunity for a more long term contribution.