Skip to content
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

Merged
merged 1 commit into from
Aug 17, 2024
Merged

Aerosol activation in parcel #429

merged 1 commit into from
Aug 17, 2024

Conversation

amylu00
Copy link
Member

@amylu00 amylu00 commented Jul 29, 2024

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?

Copy link

codecov bot commented Jul 30, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 96.77%. Comparing base (2e18da2) to head (6a898b1).
Report is 3 commits behind head on main.

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           
Components Coverage Δ
src 98.72% <ø> (ø)
ext 69.79% <ø> (ø)

@trontrytel
Copy link
Member

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.

Copy link
Member

@trontrytel trontrytel left a 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

@amylu00
Copy link
Member Author

amylu00 commented Aug 12, 2024

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.

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

@trontrytel
Copy link
Member

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.

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.

@amylu00 amylu00 force-pushed the al/aero_act_parcel branch 2 times, most recently from f9462dc to 7fa1ab1 Compare August 13, 2024 20:24
@amylu00 amylu00 requested a review from trontrytel August 13, 2024 20:25
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
Copy link
Member

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?

Copy link
Member Author

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?

Copy link
Member

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

@trontrytel trontrytel self-requested a review August 15, 2024 17:17
Copy link
Member

@trontrytel trontrytel left a 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!

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
Copy link
Member

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?

@amylu00 amylu00 force-pushed the al/aero_act_parcel branch from 11e71c2 to c8b1fbd Compare August 16, 2024 23:43
@amylu00 amylu00 force-pushed the al/aero_act_parcel branch from c8b1fbd to 6a898b1 Compare August 16, 2024 23:43
@amylu00 amylu00 enabled auto-merge August 16, 2024 23:44
@amylu00 amylu00 merged commit 962f75a into main Aug 17, 2024
8 checks passed
@amylu00 amylu00 deleted the al/aero_act_parcel branch October 22, 2024 17:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants