-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Aerosol activation in parcel #429
Conversation
eb6c621
to
4289c66
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #429 +/- ##
=======================================
Coverage 96.77% 96.77%
=======================================
Files 41 41
Lines 1425 1425
=======================================
Hits 1379 1379
Misses 46 46
|
I'm not sure if thats the way to use the ARG2000 scheme in parcel. - ARG2000 parameterizes the maximum supersaturation ever achieved by an adiabatic parcel and then uses it to compute the number of activated aerosol particles at the cloud base (not throughout the whole cloud). Maybe if we want to stay close to the assumptions of the derivation we would only apply that tendency once when we first reach supersaturation? Not sure how stable numerically it would be, but probably doable in parcel. I think a much better approach is to use the supersaturation we are solving for in parcel. And follow the ARG2000 math to compute the number of activated aerosol particles at each time step. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I left some longer comment. I would vote to either
- keep ARG2000 as a cloud base only activation scheme
- rewrite it to use our supersaturation as input
I agree. I've already implemented using supersat from the parcel in a local branch and it's stable! I'll update that in this branch this week |
Thats awesome! Thank you. |
f9462dc
to
7fa1ab1
Compare
parcel/ParcelModel.jl
Outdated
dqₗ_dt_v2l = dqₗ_dt_ce | ||
dqᵢ_dt_l2i = dqᵢ_dt_imm + dqᵢ_dt_hom | ||
dqᵢ_dt_v2i = dqᵢ_dt_dep + dqᵢ_dt_ds | ||
|
||
# Update the tendecies | ||
dqᵢ_dt = dqᵢ_dt_v2i + dqᵢ_dt_l2i | ||
dqₗ_dt = dqₗ_dt_v2l - dqᵢ_dt_l2i | ||
dqₗ_dt = dqₗ_dt_v2l - dqᵢ_dt_l2i + dqₗ_dt_a2l |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should there be a corresponding sink to water vapor as well?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Because we are neglecting the condensation onto the aerosol, the dqₗ_dt_a2l
term only accounts for the aerosol and not any of the water vapor. So technically what it's doing there is converting a prescribed volume of soluble aerosol into a volume of liquid water. A corresponding sink would be a decrease in "q_a" but since mass of aerosols is not tracked, it's not in the parcel anywhere. I could add it though if that's something we want?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In that case, shouldn't it be multiplied by the aerosol density and not liquid water?
dqₗ_dt_act = dNₗ_dt_act * 4 * FT(π) / 3 * r_nuc^3 * ρₗ / ρ_air
Maybe it would be better to not mix the aerosol mass and water mass. We could assume some sort of initial cloud droplet size after activation, and compute the corresponding sink of water vapor based on that
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Left some small comments - mostly unsure about the water budget. I think there is a sink term missing for water vapor. Also, it would be nice to run the example for a little longer, to test if we are getting the expected behavior.
Thank you for adding it!
parcel/ParcelModel.jl
Outdated
dqᵢ_dt_l2i = dqᵢ_dt_imm + dqᵢ_dt_hom | ||
dqᵢ_dt_v2i = dqᵢ_dt_dep + dqᵢ_dt_ds | ||
|
||
# Update the tendecies | ||
dqᵢ_dt = dqᵢ_dt_v2i + dqᵢ_dt_l2i | ||
dqₗ_dt = dqₗ_dt_v2l - dqᵢ_dt_l2i | ||
dqᵥ_dt = -dqᵢ_dt - dqₗ_dt | ||
dqₗ_dt = dqₗ_dt_v2l - dqᵢ_dt_l2i + dqₗ_dt_a2l |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are now counting dqₗ_dt_a2l
twice? You already added it to dqₗ_dt_v2l
?
11e71c2
to
c8b1fbd
Compare
c8b1fbd
to
6a898b1
Compare
Adding simple aerosol activation in parcel. Takes in one aerosol type at a time (no mixing) and one mode of aerosols only. Should try to replace S_max with the parcel S_l, but will do so in separate PR?