YAC
YAC is a coupling library for Earth system models.
Documentation
An extensive documentation with:
- user guide
- interface reference
- release information
- building instructions
- detailed information on interpolation options
- ...
can be found here:
https://dkrz-sw.gitlab-pages.dkrz.de/yac/
Requirements
- MPI
- LAPACK (a bundled, limited CLAPACK fallback is used if no external implementation is found)
- libfyaml (only required for the MCI library)
- yaxt
- NetCDF (optional; without it, features like reading/writing weight files are disabled)
- libmtime (bundled version included; only required for the MCI library)
See the documentation for the full list of requirements, including those only needed for building from a non-release checkout or building the documentation itself.
Getting YAC
git clone https://gitlab.dkrz.de/dkrz-sw/yac.git
To get only the code for a specific release:
git clone --depth 1 --branch <release_tag> https://gitlab.dkrz.de/dkrz-sw/yac.git
Installing the Python bindings from PyPI
The Python bindings can be installed directly from PyPI:
pip install yac
By default, pip install automatically detects available MPI compilers and
builds YAC with Python bindings from source. See the
Python bindings documentation
for optional extras (pip install yac[full]) and how to point the build at a
specific MPI, yaxt, or NetCDF installation via CMAKE_ARGS.
[!TIP] On HPC systems it is recommended to pass
--no-binary=yacto thepip installcommand, so that YAC is always built from source against the locally available MPI installation and other system libraries, instead of a prebuilt wheel:pip install --no-binary=yac yac
Building YAC
YAC can be built either with Autotools or with CMake. Detailed, system-specific build instructions (Levante, macOS, Ubuntu, Windows/WSL, ...) are provided in the documentation.
Autotools
./autogen.sh
mkdir build && cd build
../configure ...
make
CMake
YAC also provides CMake support as an alternative build system, supporting all of the same features (building the core, utils and MCI libraries with C and Fortran interfaces, Python bindings, tools, examples and tests). It requires CMake 3.18 or later.
mkdir build_cmake && cd build_cmake
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DBUILD_TESTING=ON \
-DYAC_ENABLE_PYTHON=ON \
-Dyaxt_ROOT=<yaxt_inst_dir> \
-DCMAKE_INSTALL_PREFIX=<yac_inst_dir> \
..
cmake --build . --parallel 8
Note that cmake --install installs the YAC libraries, headers and tools, but
not the Python bindings. See the
CMake documentation for
details, including configuration options and how to consume YAC from a
downstream CMake project via find_package(YAC).
Testing YAC
With Autotools, the following runs the test suite:
make -j8 check
```sh
ctest --output-on-failure --parallel 8
Examples
The examples directory contains a number of C, Fortran, and Python use
case examples, which can be used as a reference on how to use the YAC'
interfaces. Each example therein contains its own README describing its
purpose and how to use it. We also provide examples to test the
coupling between realistic grids. These examples can also be used to
study the behaviour of the various interpolations and the
interpolation stack.
Contact
- Moritz Hanke - hanke at dkrz.de
- Nils-Arne Dreier - dreier at dkrz.de
- Benjamin Rodenberg - rodenberg at dkrz.de
License
BSD License
- see copyright notice in files.
- for mtime source code see COPYING within
mtimedirectory.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yac-3.21.0.tar.gz.
File metadata
- Download URL: yac-3.21.0.tar.gz
- Upload date:
- Size: 8.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d08266fd0105dcf2b1649dd780ed82f74f90847b3fc79cd1fbd381229af6d79d
|
|
| MD5 |
f8dd419fe970e4fdc8c99f956a7e45fd
|
|
| BLAKE2b-256 |
53f32de237be99ab29cd8e410d5c8471bf4f21940d717ca41796ea6ebe229c81
|
File details
Details for the file yac-3.21.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: PyPy, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a39d7dc1df950f36e646e40b8dcacfe3ae7c12908b1675cf091cff5c2cbecaf3
|
|
| MD5 |
44d17af466d3a7ec5f3975e975da1400
|
|
| BLAKE2b-256 |
b6a8d5f5e0b069eec60687bcc14a6e4d2cb33598e9f5b6b468357ddc0054099e
|
File details
Details for the file yac-3.21.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.15t, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16636a729b56c5410d9cf161c3a6bf796b445ccd21777a1a37ce90c66c1490db
|
|
| MD5 |
20253eb4909219788c55296a23b84cef
|
|
| BLAKE2b-256 |
d7f1c3cb377a0deec59e02605bfa429a16f7f5abe43b44929136bcb42c8e8824
|
File details
Details for the file yac-3.21.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.15, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a4a5bca35e7f015fb9299ae73925a6556ccd6b02e21c32c06ac9562c62d6570f
|
|
| MD5 |
bace17ffd745ab3127788c0e34799966
|
|
| BLAKE2b-256 |
db027647c53d7b8427f10fcf97ae897a95dc1ba26233c892ad11179c227ae3af
|
File details
Details for the file yac-3.21.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.2 MB
- Tags: CPython 3.14t, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03d4d0fc43d7db20a18d450a204f4a939dcab69ac5e417f47f66e8876e2414d5
|
|
| MD5 |
bc8b67668e7f45267de24e35f2a0234e
|
|
| BLAKE2b-256 |
cc27bab909814bf8f96c8fba4b973aeddc42e2db9e92bdccb7b4f976fc0d31c7
|
File details
Details for the file yac-3.21.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.14, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9be1ef578488e53cfba0cae7b9463e9983f4f97aef35027916d8042b30713f46
|
|
| MD5 |
74e488bc57c645fff24d2154f10dbe86
|
|
| BLAKE2b-256 |
ff305f1b137b55364e6e18df86295440e6868c1492a01ca562d28700ef4bab13
|
File details
Details for the file yac-3.21.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.13, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e1c6b75dc5d4cf11f339c12f318e9f742faf95a1ff1ede4576a83bedd297add
|
|
| MD5 |
3f5eb716f3ba66effe1c220d66d4eb9c
|
|
| BLAKE2b-256 |
372d403b4c14406d233accb972e0555533dae103d7b0d9cbf80efb6f5659da8b
|
File details
Details for the file yac-3.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.12, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e9f009342dae302183d33636a0414762db4ad0a1a4976930b31bc37568228a81
|
|
| MD5 |
38d6eddbb1bc3d9dbd6b00c5033c19db
|
|
| BLAKE2b-256 |
bea1ebf55d36de277b8d905d7b5c73d2e734fafef5e0c852476aa2ae7d7a4dff
|
File details
Details for the file yac-3.21.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.11, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9cb155e7b4fcc95d0aa1d6516f0016e5d737c8852e8ef448fe25e974343ffc4d
|
|
| MD5 |
b8e4ef593303819cb46583b92fb033f4
|
|
| BLAKE2b-256 |
e78db403e6875a453d20cff0e2c272c4bde574404d5ec80bb1fdd59e06af2f2a
|
File details
Details for the file yac-3.21.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.10, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3690f3d941345a9f8502a3c9adc7f955f1d34bfbb85e6f4a0a364926e86f7bb1
|
|
| MD5 |
6717d8143389947173f325d2a3055492
|
|
| BLAKE2b-256 |
640e684c51363211754e366ba42083ab51eb5a93952816009bcc9151e0767916
|
File details
Details for the file yac-3.21.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.
File metadata
- Download URL: yac-3.21.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
- Upload date:
- Size: 12.3 MB
- Tags: CPython 3.9, manylinux: glibc 2.27+ x86-64, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.10.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
73475f8ef0d192f6b03ee57454c73fdeb9860b58321425e4dc4dddd1d5dc9d47
|
|
| MD5 |
a7eaab6c90963bef3b98b68692f7b004
|
|
| BLAKE2b-256 |
67c7b8c4c4132d57ca6aa0de834bd2b2f35b2e7aa02ec8cb1a4e534f38df9949
|