TurbulenceConvection.jl
Docs Build | |
Documentation | |
GHA CI | |
Code Coverage | |
Bors enabled |
TurbulenceConvection (Single Column Atmospheric Model in Julia) provides a framework for testing parameterizations of clouds and turbulence. It is particularly designed to support eddy-diffusivity mass-flux modeling frameworks.
Information about the EDMF parameterization implemented in TurbulenceConvection can be found in:
Tan, Z., Kaul, C. M., Pressel, K. G., Cohen, Y., Schneider, T., and Teixeira, J. (2018) An extended eddy-diffusivity mass-flux scheme for unified representation of subgrid-scale turbulence and convection. Journal of Advances in Modeling Earth Systems. doi
Cohen, Y., Lopez-Gomez, I., Jaruga, A., He, J., Kaul, C., and Schneider, T. (2020) Unified entrainment and detrainment closures for extended eddy-diffusivity mass-flux schemes. Journal of Advances in Modeling Earth Systems, 12, e2020MS002162. doi
Lopez-Gomez, I., Cohen, Y., He, J., Jaruga, A., Schneider, T. (2020) A generalized mixing length closure for eddy-diffusivity mass-flux schemes of turbulence and convection. Journal of Advances in Modeling Earth Systems, 12, e2020MS002161. doi
He, J., Cohen, Y., Lopez-Gomez, I., Jaruga, A., Schneider, T. (2021) An improved perturbation pressure closure for eddy-diffusivity mass-flux schemes, submitted. preprint
The code is written in Julia, and was translated from SCAMPy for the commit 496dad0c2438235684823511cacbf5761d6a237c.
Code Contributors (alphabetical): Yair Cohen (Caltech), Jia He (Caltech), Anna Jaruga (Caltech), Colleen Kaul (PNNL) --initial/primary developer of SCAMPy, Charles Kawczynski (Caltech), Ignacio Lopez-Gomez (Caltech), Kyle Pressel (PNNL),
Additional Acknowledgements: Tapio Schneider (Caltech), Joao Teixeira (JPL).
User Installation
Installation is easy:
(@v1.6) pkg> add TurbulenceConvection
TurbulenceConvection.jl requires Julia 1.6 or higher. If you plan to develop TurbulenceConvection.jl, you may want to clone it instead:
git clone https://github.com/CliMA/TurbulenceConvection.jl
cd TurbulenceConvection.jl
julia --project
julia> ]
pkg> instantiate
Running
$ cd TurbulenceConvection.jl
TurbulenceConvection.jl can be run in the same way that SCAMPy used to, given one of the following cases:
- Bomex
- life_cycle_Tan2018
- Soares
- Rico
- TRMM_LBA
- ARM_SGP
- GATE_III
- DYCOMS_RF01
- GABLS
- SP
with, for example:
julia --project integration_tests/utils/generate_namelist.jl Soares
julia --project integration_tests/utils/main.jl Soares
or, interactively, with
julia --project
julia> include(joinpath("integration_tests", "Soares.jl"))
Automated plotting
Upon running a particular experiment (described above), comparison plots (against SCAMPy) are automatically generated in, for example, Output.Bomex.01/stats/comparison/
.
Table of prognostic and diagnostic variables
- Prognostic [✓]
- Diagnostic [x]
- NA [-]
Variable | Grid-mean | Environment | Updrafts |
---|---|---|---|
u |
[✓] | [x] | [x] |
v |
[✓] | [x] | [x] |
w |
[-] | [x] | [✓] |
θ_liq_ice |
[✓] | [x] | [✓] |
q_tot |
[✓] | [x] | [✓] |
a |
[-] | [x] | [✓] |
tke |
[x] | [✓] | [-] |
θ′θ′ |
[x] | [✓] | [-] |
q_tot′q_tot′ |
[x] | [✓] | [-] |
θ′q_tot′ |
[x] | [✓] | [-] |