https://github.com/clima/thermodynamics.jl
A package containing a library of moist thermodynamic relations.
Science Score: 36.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
✓Committers with academic emails
3 of 10 committers (30.0%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (13.6%) to scientific vocabulary
Keywords from Contributors
Repository
A package containing a library of moist thermodynamic relations.
Basic Info
- Host: GitHub
- Owner: CliMA
- License: apache-2.0
- Language: Julia
- Default Branch: main
- Homepage: https://clima.github.io/Thermodynamics.jl/dev/
- Size: 16.3 MB
Statistics
- Stars: 74
- Watchers: 9
- Forks: 5
- Open Issues: 11
- Releases: 61
Metadata Files
README.md
Thermodynamics.jl
A comprehensive Julia package for Earth system thermodynamics, providing consistent and accurate thermodynamic functions for moist air including all phases of water (vapor, liquid, and ice).
|||
|-----------------------------:|:-------------------------------------------------|
| Documentation | |
| Docs Build |
|
| GHA CI |
|
| Code Coverage |
|
| Downloads |
|
Quick Start
Installation
julia
using Pkg
Pkg.add("Thermodynamics")
Pkg.add("ClimaParams")
Basic Usage
```julia import Thermodynamics as TD using ClimaParams
Create thermodynamic parameters
params = TD.Parameters.ThermodynamicsParameters(Float64)
Create a thermodynamic state
ρ = 1.0 eint = -7.e4 qtot = 0.01 ts = TD.PhaseEquilρeq(params, ρ, eint, q_tot)
Compute thermodynamic properties from state
T = TD.airtemperature(params, ts) p = TD.airpressure(params, ts) q = TD.PhasePartition(params, ts) ```
Key Features
🌟 Comprehensive Thermodynamics
- Complete moist air thermodynamics including all water phases (vapor, liquid, ice)
- Consistent formulation for use across all Earth system model components
- Precipitation included in the atmospheric working fluid for full thermodynamic consistency
- Calorically perfect gas approximation enabling closed-form expressions for saturation vapor pressure
⚡ High Performance
- Type-stable implementations for optimal Julia performance
- GPU-compatible implementations
- Differentiable implementation compatible with Julia's automatic differentiation capabilities
- Efficient saturation adjustment with Newton's method and analytical derivatives
🔧 Flexible Design
- Multiple thermodynamic state constructors for different use cases
- Direct function access for efficient single calculations
- Equilibrium and non-equilibrium phase partitioning
- Extensible parameter system for different planetary atmospheres
Core Design Principles
Working Fluid Definition
The working fluid includes moist air with precipitation, ensuring mass and energy conservation across all phases and thermodynamic consistency throughout the system.
Consistent Formulation
All thermodynamic quantities are derived from a single fundamental approximation of calorically perfect gases with constant specific heat capacities, providing accuracy within 1-3% for atmospheric conditions.
Thermodynamic State Abstraction
Optionally, given two (or more) independent intrinsic thermodynamic properties, we can establish a thermodynamic state from which any thermodynamic property can be computed.
Documentation
- Mathematical Formulation - Complete theoretical framework and equations
- API Reference - Complete function documentation
- How-To Guide - Practical usage examples and patterns
Integration with Climate Models
Thermodynamics.jl is used by several CliMA components:
Getting Help
For questions and issues, please check the documentation or open an issue on the GitHub repository.
Owner
- Name: Climate Modeling Alliance
- Login: CliMA
- Kind: organization
- Email: clima@caltech.edu
- Website: https://clima.caltech.edu
- Repositories: 67
- Profile: https://github.com/CliMA
An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling
Committers
Last synced: over 2 years ago
Top Committers
| Name | Commits | |
|---|---|---|
| Charles Kawczynski | k****s@g****m | 139 |
| Anna Jaruga | a****a@c****u | 8 |
| yairchn | y****n@c****u | 4 |
| CompatHelper Julia | c****y@j****g | 3 |
| Zhaoyi Shen | 1****1 | 3 |
| ilopezgp | i****p@g****m | 3 |
| nefrathenrici | n****i@g****m | 2 |
| github-actions[bot] | 4****] | 2 |
| odunbar | o****r@c****u | 1 |
| Gregory Wagner | w****g@g****m | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 10 months ago
All Time
- Total issues: 44
- Total pull requests: 235
- Average time to close issues: over 1 year
- Average time to close pull requests: 21 days
- Total issue authors: 13
- Total pull request authors: 20
- Average comments per issue: 2.05
- Average comments per pull request: 2.46
- Merged pull requests: 182
- Bot issues: 0
- Bot pull requests: 10
Past Year
- Issues: 11
- Pull requests: 59
- Average time to close issues: 5 days
- Average time to close pull requests: 8 days
- Issue authors: 8
- Pull request authors: 15
- Average comments per issue: 0.91
- Average comments per pull request: 2.07
- Merged pull requests: 40
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- charleskawczynski (22)
- glwagner (4)
- Sbozzolo (3)
- trontrytel (3)
- tapios (3)
- jty53 (2)
- sriharshakandala (1)
- jbphyswx (1)
- simone-silvestri (1)
- szy21 (1)
- simonbyrne (1)
- aramirezreyes (1)
- JuliaTagBot (1)
Pull Request Authors
- charleskawczynski (116)
- trontrytel (20)
- Sbozzolo (14)
- szy21 (12)
- dennisYatunin (11)
- glwagner (11)
- github-actions[bot] (10)
- nefrathenrici (9)
- yairchn (6)
- jty53 (4)
- oalcabes (4)
- juliasloan25 (3)
- odunbar (3)
- tapios (3)
- navidcy (2)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 231 total
- Total dependent packages: 11
- Total dependent repositories: 0
- Total versions: 60
juliahub.com: Thermodynamics
A package containing a library of moist thermodynamic relations.
- Homepage: https://clima.github.io/Thermodynamics.jl/dev/
- Documentation: https://docs.juliahub.com/General/Thermodynamics/stable/
- License: Apache-2.0
-
Latest release: 0.14.0
published 11 months ago
Rankings
Dependencies
- actions/checkout v2.2.0 composite
- codecov/codecov-action v1.0.7 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2 composite
- actions/checkout v2.2.0 composite
- dorny/paths-filter v2.9.1 composite
- julia-actions/setup-julia latest composite
- styfle/cancel-workflow-action 0.4.0 composite
- JuliaRegistries/TagBot v1 composite
- actions/cache v1 composite
- actions/checkout v2 composite
- codecov/codecov-action v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- actions/checkout v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-invalidations v1 composite
- julia-actions/setup-julia v1 composite