ClimaCore
Constitutes the dynamical core of the CliMA atmosphere and land models, providing discretization tools to solve the governing equations of the earth system model components.
https://github.com/clima/climacore.jl
Category: Climate Change
Sub Category: Earth and Climate Modeling
Keywords from Contributors
climate data-assimilation climate-change land land-surface-model sciml ordinary-differential-equations ode differentialequations differential-equations
Last synced: about 15 hours ago
JSON representation
Repository metadata
CliMA model dycore
- Host: GitHub
- URL: https://github.com/clima/climacore.jl
- Owner: CliMA
- License: apache-2.0
- Created: 2021-04-09T17:52:53.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2026-05-05T10:27:29.000Z (8 days ago)
- Last Synced: 2026-05-05T12:19:31.896Z (8 days ago)
- Language: Julia
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Size: 65.6 MB
- Stars: 112
- Watchers: 2
- Forks: 18
- Open Issues: 242
- Releases: 137
-
Metadata Files:
- Readme: README.md
- Changelog: NEWS.md
- License: LICENSE
- Notice: NOTICE
README.md
ClimaCore.jl
| Docs Build | |
| Documentation | |
| GHA CI | |
| Buildkite CI | |
| Code Coverage | |
| Downloads | |
| DOI |
The Climate Modelling Alliance (CliMA) is developing a new Earth System Model (ESM), entirely written in the Julia language. The main goal of the project is to build an ESM that automatically learns from diverse data sources to produce accurate climate predictions with quantified uncertainties. The CliMA model targets both CPU and GPU architectures, using a common codebase. ClimaCore.jl constitutes the dynamical core (dycore) of the atmosphere and land models, providing discretization tools to solve the governing equations of the ESM component models.
ClimaCore.jl's high-level application programming interface (API) facilitates modularity and composition of differential operators and the definition of flexible discretizations. This, in turn, is coupled with low-level APIs that support different data layouts, specialized implementations, and flexible models for threading, to better face high-performance optimization, data storage, and scalability challenges on modern HPC architectures.
Technical aims and current support
- Support both large-eddy simulation (LES) and general circulation model (GCM) configurations for the atmosphere.
- A suite of tools for constructing space discretizations.
- Horizontal spectral elements:
- Supports both continuous Galerkin (CG) and discontinuous Galerkin (DG) spectral element discretizations.
- Flexible choice of vertical discretization (currently staggered finite differences)
- Support for different geometries (Cartesian, spherical), with governing equations discretized in terms of covariant vectors for curvilinear, non-orthogonal systems and Cartesian vectors for Euclidean spaces.
Fieldabstraction:- Scalar, vector or struct-valued
- Stores values, geometry, and mesh information
- Flexible memory layouts: Array-of-Structs (AoS), Struct-of-Arrays (SoA),Array-of-Struct-of-Arrays (AoSoA)
- Useful overloads:
sum(integral),norm, etc. - Compatible with
DifferentialEquations.jltime steppers.
- Composable operators via broadcasting: apply a function element-wise to an array; scalar values are broadcast over arrays
- Fusion of multiple operations; can be specialized for custom functions or argument types (e.g.
CuArraycompiles and applies a custom CUDA kernel). - Operators (
grad,div,interpolate) are “pseudo-functions”: Act like functions when broadcasted over aField; fuse operators and function calls. - Add element node size dimensions to type domain
- i.e., specialize on polynomial degree
- important for GPU kernel performance.
- Flexible memory layouts allow for flexible threading models (upcoming):
- CPU thread over elements
- GPU thread over nodes.
Versions before and including ClimaCore.jl v0.11.7 relied on WeakValueDicts.jl, which is not thread-safe and no longer maintained.
These versions are considered unsupported, and newer versions of ClimaCore.jl should be used.
Owner metadata
- Name: Climate Modeling Alliance
- Login: CliMA
- Email: clima@caltech.edu
- Kind: organization
- Description: An alliance of scientists, engineers and applied mathematicians, dedicated to pioneering a new, data-informed approach to climate modeling
- Website: https://clima.caltech.edu
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/43161188?v=4
- Repositories: 67
- Last ynced at: 2023-03-03T21:04:27.588Z
- Profile URL: https://github.com/CliMA
Committers metadata
Last synced: 3 days ago
Total Commits: 2,120
Total Committers: 46
Avg Commits per committer: 46.087
Development Distribution Score (DDS): 0.625
Commits in past year: 124
Committers in past year: 20
Avg Commits per committer in past year: 6.2
Development Distribution Score (DDS) in past year: 0.669
| Name | Commits | |
|---|---|---|
| Charles Kawczynski | k****s@g****m | 795 |
| Simon Byrne | s****e@g****m | 474 |
| Valeria Barra | v****1@g****m | 166 |
| Gabriele Bozzola | s****r@g****m | 118 |
| sriharshakandala | s****s@g****m | 115 |
| Jake Bolewski | j****i@g****m | 107 |
| Dennis Yatunin | d****n@g****m | 56 |
| imreddyTeja | t****5@g****m | 47 |
| Julia Sloan | j****n@c****u | 34 |
| CompatHelper Julia | c****y@j****g | 28 |
| Akshay Sridhar | a****r@c****u | 23 |
| Zhaoyi Shen | p****y@g****m | 22 |
| Jia He | j****h@g****m | 18 |
| Ben Mackay | j****y@c****u | 13 |
| Kevin Phan | 9****v | 10 |
| nefrathenrici | n****i@g****m | 9 |
| Tapio Schneider | t****o@c****u | 8 |
| SimonDanisch | s****h@p****m | 8 |
| Pete Bachant | p****t@c****u | 8 |
| Haakon Ludvig Langeland Ervik | 4****e | 7 |
| K Pamnany | k****y@g****m | 7 |
| Oluchi Nzerem | o****m@g****m | 7 |
| LenkaNovak | l****a@c****u | 4 |
| bischtob | t****f@p****e | 4 |
| Daniel-Huang | d****g@c****u | 4 |
| dependabot[bot] | 4****] | 3 |
| Akshay Sridhar | a****r@c****u | 3 |
| costachris | c****a@g****m | 2 |
| Akshay Sridhar | a****r@A****l | 2 |
| kmdeck | k****k@c****u | 2 |
| and 16 more... | ||
Committer domains:
- caltech.edu: 11
- ec-intl.com: 1
- unr.edu: 1
- wolfson.oxon.org: 1
- clima.gps.caltech.edu: 1
- pm.me: 1
- julialang.org: 1
Issue and Pull Request metadata
Last synced: 5 days ago
Total issues: 347
Total pull requests: 1,132
Average time to close issues: 6 months
Average time to close pull requests: 23 days
Total issue authors: 38
Total pull request authors: 31
Average comments per issue: 2.35
Average comments per pull request: 2.36
Merged pull request: 747
Bot issues: 0
Bot pull requests: 53
Past year issues: 22
Past year pull requests: 98
Past year average time to close issues: about 1 month
Past year average time to close pull requests: 8 days
Past year issue authors: 11
Past year pull request authors: 20
Past year average comments per issue: 1.05
Past year average comments per pull request: 1.29
Past year merged pull request: 43
Past year bot issues: 0
Past year bot pull requests: 9
Top Issue Authors
- charleskawczynski (147)
- Sbozzolo (58)
- simonbyrne (41)
- sriharshakandala (15)
- imreddyTeja (13)
- juliasloan25 (11)
- kmdeck (6)
- nefrathenrici (5)
- szy21 (4)
- dennisYatunin (4)
- waywardpidgeon (4)
- petebachant (4)
- akshaysridhar (3)
- jb-mackay (3)
- ph-kev (2)
Top Pull Request Authors
- charleskawczynski (666)
- Sbozzolo (119)
- simonbyrne (62)
- dennisYatunin (47)
- imreddyTeja (38)
- juliasloan25 (34)
- github-actions[bot] (32)
- sriharshakandala (32)
- dependabot[bot] (21)
- akshaysridhar (15)
- petebachant (9)
- Snowdog85123 (6)
- valeriabarra (5)
- szy21 (5)
- nefrathenrici (4)
Top Issue Labels
- bug (156)
- enhancement (92)
- performance (18)
- GPU (14)
- SDI (8)
- tests (7)
- Inference (5)
- CI (5)
- Allocations (4)
- distributed (3)
- documentation (3)
- Purely single column support (2)
- Latency (2)
- Invalidations (1)
- API (1)
- Quality Assurance (1)
- Release (1)
- Workflow :gear: :ocean: (1)
- Correctness :pencil2: (1)
- Performance monitoring :mag::rocket: (1)
- Dependencies (1)
- feature (1)
- refactor (1)
- Continuous integration :gear: (1)
- Low priority (1)
- unit tests (1)
Top Pull Request Labels
- refactor (90)
- performance (76)
- tests (74)
- Dependencies (54)
- bugfix (54)
- GPU (49)
- Performance monitoring :mag::rocket: (31)
- Inference (26)
- documentation (21)
- Release (18)
- Latency (15)
- feature (10)
- CI (8)
- Workflow :gear: :ocean: (8)
- breaking :boom: (7)
- Defensive programming :crossed_swords: (6)
- House cleaning :broom: (6)
- unit tests (6)
- distributed (5)
- enhancement (5)
- github_actions (5)
- Allocations (4)
- Coverage (3)
- Performance tests (3)
- ClimaCorePlots (3)
- error message (3)
- julia (3)
- remapping (3)
- limiters (2)
- Debugging (2)
Package metadata
- Total packages: 6
-
Total downloads:
- julia: 31,593 last-month
- Total dependent packages: 22 (may contain duplicates)
- Total dependent repositories: 0 (may contain duplicates)
- Total versions: 203
juliahub.com: ClimaCore
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCore/stable/
- Licenses: Apache-2.0
- Latest release: 0.14.50 (published 3 months ago)
- Last Synced: 2026-04-01T04:04:25.581Z (about 1 month ago)
- Versions: 136
- Dependent Packages: 15
- Dependent Repositories: 0
- Downloads: 22,102 Last month
-
Rankings:
- Dependent packages count: 5.841%
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 12.364%
- Forks count: 21.666%
juliahub.com: ClimaCorePlots
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCorePlots/stable/
- Licenses: Apache-2.0
- Latest release: 0.2.11 (published over 1 year ago)
- Last Synced: 2026-04-01T04:03:39.638Z (about 1 month ago)
- Versions: 13
- Dependent Packages: 3
- Dependent Repositories: 0
- Downloads: 1,834 Last month
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 15.052%
- Dependent packages count: 16.592%
- Forks count: 21.666%
juliahub.com: ClimaCoreTempestRemap
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCoreTempestRemap/stable/
- Licenses: Apache-2.0
- Latest release: 0.3.18 (published over 1 year ago)
- Last Synced: 2026-04-01T03:54:01.904Z (about 1 month ago)
- Versions: 21
- Dependent Packages: 3
- Dependent Repositories: 0
- Downloads: 2,020 Last month
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 16.647%
- Forks count: 21.666%
- Dependent packages count: 22.97%
juliahub.com: ClimaCoreVTK
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCoreVTK/stable/
- Licenses: Apache-2.0
- Latest release: 0.7.6 (published almost 2 years ago)
- Last Synced: 2026-04-01T04:02:20.167Z (about 1 month ago)
- Versions: 13
- Dependent Packages: 1
- Dependent Repositories: 0
- Downloads: 1,207 Last month
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 16.647%
- Forks count: 21.666%
- Dependent packages count: 22.97%
juliahub.com: ClimaCoreSpectra
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCoreSpectra/stable/
- Licenses: Apache-2.0
- Latest release: 0.1.4 (published almost 2 years ago)
- Last Synced: 2026-04-01T03:58:09.074Z (about 1 month ago)
- Versions: 5
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 826 Last month
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 20.633%
- Forks count: 21.666%
- Dependent packages count: 38.915%
juliahub.com: ClimaCoreMakie
CliMA model dycore
- Homepage: https://clima.github.io/ClimaCore.jl/dev
- Documentation: https://docs.juliahub.com/General/ClimaCoreMakie/stable/
- Licenses: Apache-2.0
- Latest release: 0.4.7 (published 4 months ago)
- Last Synced: 2026-04-01T03:58:09.625Z (about 1 month ago)
- Versions: 15
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 3,604 Last month
-
Rankings:
- Dependent repos count: 9.94%
- Stargazers count: 12.011%
- Average: 20.633%
- Forks count: 21.666%
- Dependent packages count: 38.915%
Dependencies
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- julia-actions/setup-julia latest composite
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- julia-actions/setup-julia latest composite
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- julia-actions/setup-julia latest composite
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- julia-actions/setup-julia latest composite
- actions/cache v1 composite
- actions/checkout v2 composite
- actions/upload-artifact v2 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2 composite
- actions/checkout v3 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-invalidations v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2.2.0 composite
- dorny/paths-filter v2.9.1 composite
- julia-actions/setup-julia latest composite
- reviewdog/action-suggester v1 composite
- styfle/cancel-workflow-action 0.4.0 composite
- JuliaRegistries/TagBot v1 composite
- actions/checkout v2 composite
- julia-actions/setup-julia latest composite
- actions/checkout v2.2.0 composite
- julia-actions/cache v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- styfle/cancel-workflow-action 0.4.0 composite
- ClimaComms *
- ClimaCore *
- ClimaCorePlots *
- IntervalSets *
- Plots *
- Test *
- ClimaCore *
- WriteVTK *
- ClimaComms *
- ClimaCore *
- CommonDataModel *
- Dates *
- DiskArrays *
- LinearAlgebra *
- NCDatasets *
- PkgVersion *
- TempestRemap_jll *
- ClimaComms *
- ClimaCore *
- ClimaCoreVTK *
- IntervalSets *
- Test *
- BenchmarkTools *
- BlockArrays *
- ClimaComms *
- ClimaCore *
- ClimaCorePlots *
- ClimaCoreTempestRemap *
- ClimaCoreVTK *
- ClimaTimeSteppers *
- Colors *
- DiffEqCallbacks *
- DocStringExtensions *
- ForwardDiff *
- GilbertCurves *
- IntervalSets *
- JLD2 *
- JSON *
- LazyBroadcast *
- LinearAlgebra *
- Logging *
- NCDatasets *
- NVTX *
- PProf *
- Plots *
- PrettyTables *
- Profile *
- ProfileCanvas *
- ProgressLogging *
- QuadGK *
- SciMLBase *
- SnoopCompile *
- SnoopCompileCore *
- StaticArrays *
- TerminalLoggers *
- Test *
- URIs *
- actions/checkout v4 composite
- julia-actions/cache v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/setup-julia v2 composite
- ClimaCore *
- FFTW *
- ClimaCore *
- ClimaCoreSpectra *
- FFTW *
- IntervalSets *
- Plots *
- Test *
- actions/checkout v4 composite
- julia-actions/cache v2 composite
- julia-actions/julia-buildpkg latest composite
- julia-actions/julia-downgrade-compat v1 composite
- julia-actions/julia-runtest latest composite
- julia-actions/setup-julia latest composite
- 365 dependencies
- 311 dependencies
- ClimaComms *
- ClimaCore *
- ClimaCoreMakie *
- GLMakie *
- IntervalSets *
- Makie *
- Test *
- ClimaComms *
- ClimaCore *
- RecipesBase *
- StaticArrays *
- TriplotBase *
- ClimaCore *
- ClimaCoreSpectra *
- ClimaCoreTempestRemap *
- FFTW *
- NCDatasets *
- Plots *
- Adapt *
- Aqua *
- ArgParse *
- AssociatedLegendrePolynomials *
- BandedMatrices *
- BenchmarkTools *
- BlockArrays *
- CUDA *
- ClimaComms *
- ClimaCore *
- ClimaCorePlots *
- ClimaCoreTempestRemap *
- ClimaCoreVTK *
- ClimaParams *
- ClimaTimeSteppers *
- Colors *
- CountFlops *
- CubedSphere *
- DataStructures *
- DiffEqCallbacks *
- DocStringExtensions *
- FastBroadcast *
- ForwardDiff *
- GaussQuadrature *
- GilbertCurves *
- IntervalSets *
- JET *
- JLD2 *
- KrylovKit *
- LazyBroadcast *
- LinearAlgebra *
- Logging *
- MPI *
- NCDatasets *
- NVTX *
- NullBroadcasts *
- OrdinaryDiffEqSSPRK *
- OrdinaryDiffEqTsit5 *
- Plots *
- PrettyTables *
- Profile *
- ProfileCanvas *
- ProgressLogging *
- QuadGK *
- Random *
- RecursiveArrayTools *
- SafeTestsets *
- SciMLBase *
- SnoopCompile *
- SnoopCompileCore *
- SparseArrays *
- StaticArrays *
- Statistics *
- StatsBase *
- TerminalLoggers *
- Test *
- Thermodynamics *
- ThreadsX *
- Adapt *
- BandedMatrices *
- BlockArrays *
- ClimaComms *
- ClimaInterpolations *
- CubedSphere *
- DataStructures *
- ForwardDiff *
- GaussQuadrature *
- GilbertCurves *
- HDF5 *
- InteractiveUtils *
- IntervalSets *
- KrylovKit *
- LazyBroadcast *
- LinearAlgebra *
- MultiBroadcastFusion *
- NVTX *
- PkgVersion *
- RecursiveArrayTools *
- RootSolvers *
- SparseArrays *
- StaticArrays *
- Statistics *
- UnrolledUtilities *
- 254 dependencies
- BenchmarkTools *
- CUDA *
- ClimaComms *
- ClimaCore *
- Colors *
- NVTX *
- BenchmarkTools *
- CUDA *
- ClimaCore *
- Plots *
- CairoMakie *
- ClimaComms *
- ClimaCore *
- ClimaCoreMakie *
- ClimaCorePlots *
- ClimaCoreSpectra *
- ClimaCoreTempestRemap *
- ClimaCoreVTK *
- Documenter *
- DocumenterCitations *
- FFTW *
- IntervalSets *
- LinearAlgebra *
- Literate *
- Makie *
- OrdinaryDiffEqSSPRK *
- Plots *
- ClimaCore *
- Makie *
- ClimaCore *
- ClimaCoreMakie *
- Downloads *
- GLMakie *
- GeoMakie *
- IJulia *
- IntervalSets *
- Makie *
- WGLMakie *
Score: 20.059325280115583