Presentation
The main solver architecture, data management, and composable discretization tools to solve the governing equations of the ESM component models are provided by the dynamical core (dycore) library, ClimaCore.jl. Its high-level API facilitates modularity and composition of differential operators, the definition of flexible discretizations, and reconciliation between different characteristics, such as numerics and physical formulations. In the backend, low-level APIs support different data layouts, specialized implementations, and flexible models for threading, to better face high-performance optimization, data storage, and scalability challenges on modern heterogeneous architectures.
Some distinct design patterns in the CliMA ecosystem, such as modularity, extensibility, and interoperability translate across the different packages in the CliMA’s codebase. For example, they are evident in the ClimaCoupler.jl: the package responsible for coupling the different component models comprising the ESM (e.g., atmosphere, ocean, land, etc).


