Thermodynamics.jl
Thermodynamics.jl copied to clipboard
A package containing a library of moist thermodynamic relations.
We cannot set `print_warning` / `error_on_non_convergence` in local scope, which makes logging errors in ClimaAtmos difficult. #158 is an attempt to fix this. I'm happy with the new functionality (which...
Hi! I am working on a couple packages. In particular [this one](https://github.com/aramirezreyes/TropicalCyclonePotentialIntensity.jl/blob/main/src/physicsfunctions.jl). I was thinking on extracting my physicsfunctions.jl and adding them to a new package, but I discovered Thermodynamics.jl...
We should special case this to avoid non-converging when we a known stable solution and it should be more performant.
A few updates to Thermodynamics and the documentation: - [ ] Update the thermodynamics documentation following the tracked changes in the design doc. - [x] Complete and merge #112 (including...
The unit test file is quite long and, the increased size makes it more prone to leaky tests. It might be nice if we take some time to organize the...
In order to judge the utility of providing an initial guess, it makes sense to compare our two options in a realistic setting (e.g., a moist baroclinic wave). We can...
Computing saturation vapor pressure includes _both_ calls to `exp` and `^` [here](https://github.com/CliMA/Thermodynamics.jl/blob/9a4bd9d145cbfff879f6768e737276ee47951750/src/relations.jl#L927-L929), and based on looking at flame graphs in ClimaAtmos, it seems that this is actually pretty expensive.
It would be good to deprecate (and not export) the default thermo constructors so that only the outer constructors (with appended input variable names) are a part of our API.
I was thinking, we could overload `getproperty` on thermodynamic structs to throw warnings (before calling `getfield`), and internally use `getfield`, so that we can encourage users to follow the API.
It would be nice / convenient if we could ForwardDiff through Thermodynamics. We should probably at least consider relaxing diagonalization to allow this, we could also provide standard promotion rules...