Skip to main content

YAC

pipeline status PyPI License

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=yac to the pip install command, 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 mtime directory.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

yac-3.21.0.tar.gz (8.2 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

yac-3.21.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded PyPymanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.15tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.15manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.2 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

yac-3.21.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (12.3 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

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

Hashes for yac-3.21.0.tar.gz
Algorithm Hash digest
SHA256 d08266fd0105dcf2b1649dd780ed82f74f90847b3fc79cd1fbd381229af6d79d
MD5 f8dd419fe970e4fdc8c99f956a7e45fd
BLAKE2b-256 53f32de237be99ab29cd8e410d5c8471bf4f21940d717ca41796ea6ebe229c81

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a39d7dc1df950f36e646e40b8dcacfe3ae7c12908b1675cf091cff5c2cbecaf3
MD5 44d17af466d3a7ec5f3975e975da1400
BLAKE2b-256 b6a8d5f5e0b069eec60687bcc14a6e4d2cb33598e9f5b6b468357ddc0054099e

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 16636a729b56c5410d9cf161c3a6bf796b445ccd21777a1a37ce90c66c1490db
MD5 20253eb4909219788c55296a23b84cef
BLAKE2b-256 d7f1c3cb377a0deec59e02605bfa429a16f7f5abe43b44929136bcb42c8e8824

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a4a5bca35e7f015fb9299ae73925a6556ccd6b02e21c32c06ac9562c62d6570f
MD5 bace17ffd745ab3127788c0e34799966
BLAKE2b-256 db027647c53d7b8427f10fcf97ae897a95dc1ba26233c892ad11179c227ae3af

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 03d4d0fc43d7db20a18d450a204f4a939dcab69ac5e417f47f66e8876e2414d5
MD5 bc8b67668e7f45267de24e35f2a0234e
BLAKE2b-256 cc27bab909814bf8f96c8fba4b973aeddc42e2db9e92bdccb7b4f976fc0d31c7

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9be1ef578488e53cfba0cae7b9463e9983f4f97aef35027916d8042b30713f46
MD5 74e488bc57c645fff24d2154f10dbe86
BLAKE2b-256 ff305f1b137b55364e6e18df86295440e6868c1492a01ca562d28700ef4bab13

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8e1c6b75dc5d4cf11f339c12f318e9f742faf95a1ff1ede4576a83bedd297add
MD5 3f5eb716f3ba66effe1c220d66d4eb9c
BLAKE2b-256 372d403b4c14406d233accb972e0555533dae103d7b0d9cbf80efb6f5659da8b

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e9f009342dae302183d33636a0414762db4ad0a1a4976930b31bc37568228a81
MD5 38d6eddbb1bc3d9dbd6b00c5033c19db
BLAKE2b-256 bea1ebf55d36de277b8d905d7b5c73d2e734fafef5e0c852476aa2ae7d7a4dff

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9cb155e7b4fcc95d0aa1d6516f0016e5d737c8852e8ef448fe25e974343ffc4d
MD5 b8e4ef593303819cb46583b92fb033f4
BLAKE2b-256 e78db403e6875a453d20cff0e2c272c4bde574404d5ec80bb1fdd59e06af2f2a

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3690f3d941345a9f8502a3c9adc7f955f1d34bfbb85e6f4a0a364926e86f7bb1
MD5 6717d8143389947173f325d2a3055492
BLAKE2b-256 640e684c51363211754e366ba42083ab51eb5a93952816009bcc9151e0767916

See more details on using hashes here.

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

File hashes

Hashes for yac-3.21.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 73475f8ef0d192f6b03ee57454c73fdeb9860b58321425e4dc4dddd1d5dc9d47
MD5 a7eaab6c90963bef3b98b68692f7b004
BLAKE2b-256 67c7b8c4c4132d57ca6aa0de834bd2b2f35b2e7aa02ec8cb1a4e534f38df9949

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.21.0 This release

11 files

3.20.0

11 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page