Skip to content

Commit

Permalink
Add predicting properties from the p3 scheme
Browse files Browse the repository at this point in the history
  • Loading branch information
Rowan Orlijan-Rhyne authored and trontrytel committed Aug 14, 2023
1 parent abec798 commit 11b790f
Show file tree
Hide file tree
Showing 13 changed files with 879 additions and 2 deletions.
1 change: 1 addition & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ CUDAKernels = "72cfdca4-0801-4ab0-bf6a-d52aa10adc57"
DocStringExtensions = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae"
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
NonlinearSolve = "8913a72c-1f9b-4ce2-8d82-65094dcecaec"
SpecialFunctions = "276daf66-3868-5448-9aa4-cd146d93841b"
Thermodynamics = "b60c26fb-14c3-4610-9d3e-2d17fe7ff00c"

Expand Down
66 changes: 66 additions & 0 deletions docs/bibliography.bib
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,17 @@ @article{Beheng1994
doi = {10.1016/0169-8095(94)90020-5}
}

@article{BrownFrancis1995,
title = {Improved Measurements of the Ice Water Content in Cirrus Using a Total-Water Probe},
author = {Philip R. A. Brown and Peter N. Francis},
journal = {Journal of Atmospheric and Oceanic Technology},
volume = {12},
number = {2},
pages = {410--414},
year = {1995},
doi = {10.1175/1520-0426(1995)012<0410:IMOTIW>2.0.CO;2}
}

@article{Chen2022,
title={Accurate parameterization of precipitation particles' fall speeds for bulk cloud microphysics schemes},
author={Chen, Jen-Ping and Hsieh, Ting-Wei and Lin, Chiu-Yi and Yu, Cheng-Ku},
Expand Down Expand Up @@ -114,6 +125,17 @@ @article{Harrington1995
year = {1995}
}

@article{Heymsfield2003,
title = {Properties of Tropical and Midlatitude Ice Cloud Particle Ensembles. Part II: Applications for Mesoscale and Climate Models},
author = {Andrew J. Heymsfield},
journal = {Journal of the Atmospheric Sciences},
volume = {60},
number = {21},
doi = {10.1175/1520-0469(2003)060%3C2592:POTAMI%3E2.0.CO;2},
pages = {2592--2611},
year = {2003}
}

@article{Karcher2006,
author = {Kärcher, B. and Hendricks, J. and Lohmann, U.},
title = {Physically based parameterization of cirrus cloud formation for use in global atmospheric models},
Expand Down Expand Up @@ -301,6 +323,28 @@ @book{Mason2010
publisher = {Clarendon Press}
}

@article{Mitchell1996,
author = {David L. Mitchell},
title = {Use of mass- and area-dimensional power laws for determining precipitation particle terminal velocities},
journal = {Journal of the Atmospheric Sciences},
year = {1996},
volume = {53},
number = {12},
doi = {10.1175/1520-0469(1996)053<1710:UOMAAD>2.0.CO;2},
pages= {1710--1723}
}

@article{MitchellHeymsfield2005,
author = {David L. Mitchell and Andrew J. Heymsfield},
title = {Refinements in the Treatment of Ice Particle Terminal Velocities, Highlighting Aggregates},
journal = {Journal of the Atmospheric Sciences},
year = {2005},
volume = {62},
number = {5},
doi = {https://doi.org/10.1175/JAS3413.1},
pages= {1637--1644}
}

@article{Mohler2006,
title = {Efficiency of the deposition mode ice nucleation on mineral dust particles},
author = {Möhler, O. and Field, P. R. and Connolly, P. and Benz, S. and Saathoff, H. and Schnaiter, M. and Wagner, R. and Cotton, R. and Krämer, M. and Mangold, A. and Heymsfield, A. J.},
Expand All @@ -323,6 +367,28 @@ @article{Morrison2008
year = {2008}
}

@article{MorrisonGrabowski2008,
title = {A Novel Approach for Representing Ice Microphysics in Models: Description and Tests Using a Kinematic Framework},
author = {Morrison, Hugh and Grabowski, Wojciech W.},
journal = {Journal of the Atmospheric Sciences},
volume = {65},
number = {5},
doi = {10.1175/2007JAS2491.1},
pages = {1528--1548},
year = {2008}
}

@article{MorrisonMilbrandt2015,
author = {Hugh Morrison and Jason A. Milbrandt},
title = {Parameterization of Cloud Microphysics Based on the Prediction of Bulk Ice Particle Properties. Part I: Scheme Description and Idealized Tests},
journal = {Journal of the Atmospheric Sciences},
year = {2015},
volume = {72},
number = {1},
doi = {10.1175/JAS-D-14-0065.1},
pages= {287--311}
}

@article{MurphyKoop2005,
author = {Murphy, D. M. and Koop, T.},
title = {Review of the vapour pressures of ice and supercooled water for atmospheric applications},
Expand Down
1 change: 1 addition & 0 deletions docs/make.jl
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ pages = Any[
"0-moment precipitation microphysics" => "Microphysics0M.md",
"1-moment precipitation microphysics" => "Microphysics1M.md",
"2-moment precipitation microphysics" => "Microphysics2M.md",
"P3 Scheme" => "P3Scheme.md",
"Non-equilibrium cloud formation" => "MicrophysicsNonEq.md",
"Smooth transition at thresholds" => "ThresholdsTransition.md",
"Aerosol activation" => "AerosolActivation.md",
Expand Down
7 changes: 7 additions & 0 deletions docs/src/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,13 @@ Microphysics2M.rain_evaporation
Microphysics2M.conv_q_liq_to_q_rai
```

# P3 scheme

```@docs
P3Scheme
P3Scheme.thresholds
```

# Aerosol model

```@docs
Expand Down
92 changes: 92 additions & 0 deletions docs/src/P3Scheme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
# P3 Scheme

The `P3Scheme.jl` module implements the predicted particle properties
(P3) scheme for ice-phase microphysics developed by [MorrisonMilbrandt2015](@cite)
The P3 scheme is a 2-moment, bulk scheme involving a
single ice-phase category with 4 degrees of freedom: total mass,
rime mass, rime volume, and number mixing ratios.
Traditionally, cloud ice microphysics schemes use various predefined
categories (such as ice, graupel, or hail) to represent ice modes, but the P3 scheme sidesteps the
problem of prescribing transitions between ice categories by adopting
a single ice category and evolving its properties. This simplification
aids in attempts to constrain the scheme's free parameters.

## Assumed particle size distribution (PSD)

Following [MorrisonMilbrandt2015](@cite), the scheme assumes a
gamma distribution for the concentration of particles per unit volume
based on particle size measurements obtained by [Heymsfield2003](@cite)
in tropical and midlatitude ice clouds and implemented by
[MorrisonGrabowski2008](@cite):

```math
N'(D) = N_{0} D^\mu \, e^{-\lambda \, D}
```

where:
- ``N'`` is the number concentration (``m^{-4}``),
- ``D`` is the maximum particle dimension (``m``),
- ``N_0`` is the intercept parameter (``m^{-4}``),
- ``\mu`` is the shape parameter (unitless I believe),
- ``\lambda`` is the slope parameter (``m^{-1}``).

We assume ``\mu \ = 0.00191 \lambda \ ^{0.8} - 2`` for ``\mu \ \in (0,6)``, which occurs only for ``\frac{1}{\gamma} < ~0.17 mm``.

``N_0`` and ``\lambda`` are found using different moments of the PSD, total, cumulative number concentration ``N`` and mass mixing ratio ``q``, where

```math
N = \int_{0}^{\infty} \! N'(D) \mathrm{d}D
```

```math
q = \int_{0}^{\infty} \! m(D) N'(D) \mathrm{d}D
```


## Assumed particle mass relationships

The mass ``m`` of particles as a function of maximum particle dimension ``D``
is a piecewise function with variable breakpoints described
by the following table.

| particle properties | condition(s) | m(D) relation |
|:--------------------|:----------------------|:----------------------|
|small, spherical ice | ``D < D_{th}`` | ``\frac{\pi}{6} \rho_i \ D^3`` |
|large, unrimed ice | ``q_{rim} = 0`` and ``D > D_{th}`` | ``\alpha_{va} \ D^{\beta_{va}}`` |
|dense nonspherical ice | ``q_{rim} > 0`` and ``D_{th} < D < D_{gr}`` | ``\alpha_{va} \ D^{\beta_{va}}`` |
|partially rimed ice | ``q_{rim} > 0`` and ``D > D_{cr}`` | ``\frac{\alpha_{va}}{1-F_r} D^{\beta_{va}}`` |
|graupel (completely rimed, spherical)| ``q_{rim} > 0``and ``D_{gr} < D < D_{cr}`` | ``\frac{\pi}{6} \rho_g \ D^3`` |

with physical constant ``\rho_i \ = 916.7 kg m^{-3}``: see [CliMA Parameters](https://github.com/CliMA/CLIMAParameters.jl)'s `ρ_cloud_ice` ;
empirical coefficients:

- ``\alpha_{va} = 7.38 \times 10^{-11} \times 10^{6 \beta_{va} - 3}`` (``kg m^{-β_va}``), a parameter from [BrownFrancis1995](@cite), derived from measurements of mass grown by vapor diffusion and aggregation in midlatitude cirrus, and modified to agree with CliMA's units of ``kg`` and ``m`` rather than [BrownFrancis1995](@cite)'s ``g`` and ``\mu m``,
- ``\beta_{va} = 1.9``, another parameter from [BrownFrancis1995](@cite);

which together determine ``D_{th} = (\frac{\pi \rho_i}{6\alpha_{va}})^{\frac{1}{\beta_{va} - 3}}`` (``m``), the threshold particle dimension between small spherical and large, nonspherical unrimed ice.
Relevant model state variables here are:

- ``q_{rim}``, rime mass concentration;
- ``q_{ice}``, total ice mass concentration;
- ``B_{rim}``, bulk rime volume;

from which rime mass fraction ``F_r = \frac{q_rim}{q_ice}`` and predicted rime density ``\rho_{r} = \frac{q_rim}{B_rim}`` are derived.
The following four thresholds (``D_{i}``) and densities (``\rho_{i}``) which form a nonlinear system solved by `thresholds(ρ_r, F_r, u0)` , which employs [`NonlinearSolve.jl`](https://docs.sciml.ai/NonlinearSolve/stable/):

- ``D_{gr} = (\frac{6\alpha_{va}}{\pi \rho_g})^{\frac{1}{3 - \beta_{va}}}`` (``m``), a threshold defined to ensure continuity and reasonable masses for smaller D;
- ``D_{cr} = [ (\frac{1}{1-F_r}) \frac{6 \alpha_{va}}{\pi \rho_g} ]^{\frac{1}{3 - \beta_{va}}}`` (``m``), the threshold separating partially rimed ice from graupel;
- ``\rho_g = \rho_r F_r + (1 - F_r) \rho_d`` (``kg m^{-3}``), bulk density of graupel, calculated with the rime mass fraction weighted average of the predicted rime density and the density of the unrimed part, where
- ``\rho_d = \frac{6\alpha_{va}(D_{cr}^{\beta{va} \ - 2} - D_{gr}^{\beta{va} \ - 2})}{\pi \ (\beta_{va} \ - 2)(D_{cr}-D_{gr})}`` (``kg m^{-3}``) is the density of the unrimed part.

Below are graphical representations of the m(D) regime, replicating
Figures 1 (a) and (b) of [MorrisonMilbrandt2015](@cite):

```@example
include("P3SchemePlots.jl")
p3_m_plot1(["cyan2", "cyan4", "midnightblue"], ["hotpink", "magenta3", "purple4"])
p3_m_plot2(["cyan2", "cyan4", "midnightblue"], ["hotpink", "magenta3", "purple4"])
```

![](MorrisonandMilbrandtFig1a.svg)

![](MorrisonandMilbrandtFig1b.svg)
Loading

0 comments on commit 11b790f

Please sign in to comment.