#sparse-matrix #graph #matrix #order #partitioning #mesh #api-bindings

scotch

Idiomatic wrapper for Scotch, the graph partitioner, graph clusterer and sparse matrix orderer

3 unstable releases

0.2.1 Jun 9, 2023
0.2.0 Jun 9, 2023
0.1.0 Jul 2, 2021

#1333 in Math

MIT/Apache

71KB
2K SLoC

scotch-rs

Idiomatic bindings to the Scotch partitioner.

Building

Prerequisites:

  • Scotch
  • clang v5.0 or above
  • Rust v1.60.0 or above

Bindings to Scotch are made on the fly. If Scotch is installed in a non-standard location, please use the following commands:

export SCOTCHDIR=path/to/your/scotch/installation
export CPATH="$SCOTCHDIR/include"
export RUSTFLAGS="-L$SCOTCHDIR/lib"

The environment variable $SCOTCHDIR must point to a directory containing a lib/ and a include/ directory containing the shared libraries and the headers of Scotch, respectively.

Once these variables are set, you can build the bindings with cargo build.

Build the documentation

If your Scotch installation lies in a non-standard path, you will need to set the RUSTDOCFLAGS environment variable to build the documentation:

export RUSTDOCFLAGS="-L$SCOTCHDIR/lib"

Then you can call cargo doc --no-deps --open.

License

This program is distributed under the terms of both the MIT license and the Apache License (Version 2.0). See LICENSE-APACHE and LICENSE-MIT for details.

Scotch is licensed under the CeCILL-C license, for which can find a copy here: https://gitlab.inria.fr/scotch/scotch/-/raw/v6.1.0/doc/CeCILL-C_V1-en.txt

Dependencies

~0–1.8MB
~36K SLoC