ClimateMachine.jl icon indicating copy to clipboard operation
ClimateMachine.jl copied to clipboard

Shallow atmosphere configuration

Open simonbyrne opened this issue 5 years ago • 1 comments

Description

It would be useful to run the Atmosphere model using the Shallow Atmosphere assumption, especially for DCMIP comparisons (#1193)

Additional context

From what I can tell, the main changes we would need to make are:

  1. modify the Jacobians and metric terms used in the grid: currently these are computed via the computemetric! function which assumes a Cartesian layout, which would no longer be the case.
  2. change how the Coriolis and Gravity sources are computed.

Useful references:

  • https://rmets.onlinelibrary.wiley.com/doi/pdf/10.1256/qj.04.49

For CLIMA Developers

  • [x] This feature can be added (if it cannot be, explain why in a comment below -- lack of technical expertise, not relevant to the scope of this project, too ambitious)
  • [ ] There is a timeline for when this feature can be implemented
  • [ ] The feature has been (or will be) implemented (Please link the PR)

simonbyrne avatar Jun 22 '20 18:06 simonbyrne

The key thin-shell approximation is replacing the Coriolis force source.ρu -= SVector(0, 0, 2 * _Omega) × state.ρu by source.ρu -= f*vertical_unit_vector × state.ρu, with Coriolis parameter f=2\Omega sin(latitude) (\Omega being the scalar angular velocity of planetary rotation). Just making this one-line change will suffice for testing, e.g., gravity waves.

To get a consistent angular momentum balance, additional small changes are necessary. The thin-shell approximation comes from approximating, in the definition of angular momentum, the distance from any point in the atmosphere to the barycenter of the planet by a constant (Earth's mean radius). To recover a consistent (approximate) angular momentum balance from the momentum equations, it is additionally necessary to approximate what people call metric terms (these really arise from differentiating the definition of angular momentum with the moment arm, r cos(latitude), multiplying the velocity). One easy way to implement this consistently is to use u r cos(latitude) as a prognostic variable, and set r=a in the thin-shell approximation. We discussed this early on. We can come back to it (and one day probably should, to offer a consistent shallow-atmosphere approximation). But I don't think we need it right now.

Changing the prognostic variables has the additional advantage that it would guarantee discrete global conservation of angular momentum, which right now we do not have.

tapios avatar Jun 23 '20 16:06 tapios