-
Notifications
You must be signed in to change notification settings - Fork 5
Description
The LiquidIcePotentialTemperatureState currently defines the Exner function via
Breeze.jl/src/Thermodynamics/dynamic_states.jl
Lines 31 to 38 in d2abe9d
| @inline function exner_function(𝒰::LiquidIcePotentialTemperatureState, constants::ThermodynamicConstants) | |
| q = 𝒰.moisture_mass_fractions | |
| Rᵐ = mixture_gas_constant(q, constants) | |
| cᵖᵐ = mixture_heat_capacity(q, constants) | |
| pᵣ = 𝒰.reference_pressure | |
| p₀ = 𝒰.base_pressure | |
| return (pᵣ / p₀)^(Rᵐ / cᵖᵐ) | |
| end |
or in other words
where
This would seem normal based on an ordinary derivation of potential temperature, which involves integrating the first law; in that process we define
However it is not actually required to define "p at z=0" in the same way for the reference pressure used in the anelastic approximation...
In particular the standard definition of potential temperature uses
regardless of whether there is "another reference pressure" for
For example: https://glossary.ametsoc.org/wiki/Potential_temperature
It's apparently so standard, so so standard that Siebesma et al 2003 don't need to mention it at all. Some people are actually born knowing it, it is said.
This was pointed out by @trontrytel in #21 (comment).
We may really need to use this definition of the Exner function if we want our
In turn this requires either 1) hard-coding 1e5 or 2) introducing a new parameter, like potential_temperature_reference_pressure or something. Probably we want to put the parameter inside ReferenceState, and it also needs to be added to LiquidIcePotentialTemperatureState. Which could sadly have some kind of cost in terms of GPU parameter space, but not sure if it would be a real issue or not.