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

homogeneous nucleation of liquid droplets & expansion chamber example #1492

Draft
wants to merge 23 commits into
base: main
Choose a base branch
from

Conversation

claresinger
Copy link
Collaborator

@claresinger claresinger commented Jan 7, 2025

Copy/pasting the notes @slayoo added from our conversation with @AgnieszkaZaba this morning.

  • the laboratory paper uses a Normal distribution rather than Lognormal - perhaps worth adding to PySDM
  • a new ExpansionChamber environment (featuring perfect gas expansion, but not featuring hydrostatics) instead of using Parcel would help in making the code readable
  • an Injection (or NewParticle, NewParticleFormation, SuperParticleCreation?) base-class could be best to derive from two dynamics: Seeding and HomogeneousLiquidNucleation
  • could we construct a simple adaptive substepping logic by comparing the nucleation rate and the timestep?
  • test idea: J_homogeneous table from S&P
  • test idea: long vs. short timestep
  • test idea: S_max for short vs. long timestep

The expansion chamber example is aimed to mimic the laboratory experiments described here: https://arxiv.org/abs/2501.01467

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@slayoo I modeled this after the parcel.py file, but trying to change such that things are defined in terms of the pressure profile (dp_dt), not the vertical velocity (w) and altitude profile (dz_dt). I retain the ideal gas assumption but remove the hydrostatic assumption. I'd appreciate if you can look at this and see if it's sensible. I wasn't sure if it's better to specify the fixed chamber volume and then probably I need to add in the computation of mass_of_dry_air rather than the opposite way how it's done for the parcel. I also currently have it hard coded with an initial and final pressure (p0 and pf) and final time (tf) with an assumed linear profile, but maybe we want to let the user specify a dp_dt functional form instead?

@claresinger
Copy link
Collaborator Author

@AgnieszkaZaba @slayoo - Any status update on the super class NewParticle and code restructure to inherit Seeding dynamic from there? Probably with that structure in place I can easily extend to make the HomogeneousLiquidNucleation dynamic. Let me know if you want to call to discuss further!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants