CloudMicrophysics.jl
CloudMicrophysics.jl copied to clipboard
P3 melting + F_liq
This PR modifies melting for liquid fraction and adds a P3Rates struct similar to the one in Microphysics2M.
See the docs build for further explanations, and here are some notes:
- I have a doubt in the code that I'd like to highlight: physically, should we be using the ice core fall speed or the whole (mixed-phase) particle fall speed to calculate the melting rates?
- Also, a small TODO before or after merging: the codecov is missing one line because the tests don't cover the case when the integration bound for the PSD is below D_th, and I can't write tests for that line since
get_ice_bound()
returns a constant. Also, the rest of the tests are failing because I changed the thresholds solver to allow rime density of 0 but did not change the tests to match. - One larger issue I'm thinking about with the code is I'm wondering if we can use the same function called
ice_melt
to also compute (re)freezing ofL_liq
. In Cholette (2019), the freezing rate (eq. A5 p. 578) is almost identical to the melting rate, except for a sign change and using the latent heat of sublimation, and for freezing we care about the mixed-phase particle mass contentL_p3_tot
as well as the mixed-phase particle PSD instead of only caring about ice like we do for melting. Since we switch between melting and freezing based on temperature, maybe it would be nicest to implement them both in one function? - Finally, for catching cases when we have no particles over which to compute melting, I have currently implemented to compute melting if
L > eps && N > eps
but am unsure whether the condition should be that orL > eps || N > eps
.