diff --git a/pkgs/development/libraries/science/math/parmetis/default.nix b/pkgs/development/libraries/science/math/parmetis/default.nix new file mode 100644 index 00000000000..6091031a115 --- /dev/null +++ b/pkgs/development/libraries/science/math/parmetis/default.nix @@ -0,0 +1,33 @@ +{ stdenv +, fetchurl +, cmake +, mpi +}: + +stdenv.mkDerivation rec { + name = "parmetis-${version}"; + version = "4.0.3"; + + src = fetchurl { + url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-${version}.tar.gz"; + sha256 = "0pvfpvb36djvqlcc3lq7si0c5xpb2cqndjg8wvzg35ygnwqs5ngj"; + }; + + buildInputs = [ cmake mpi ]; + + # metis and GKlib are packaged with distribution + # AUR https://aur.archlinux.org/packages/parmetis/ has reported that + # it easier to build with the included packages as opposed to using the metis + # package. Compilation time is short. + configurePhase = '' + make config metis_path=$PWD/metis gklib_path=$PWD/metis/GKlib prefix=$out + ''; + + meta = with stdenv.lib; { + description = "ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices"; + homepage = http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview; + platforms = platforms.all; + license = licenses.cc-by-nc-sa-20; + maintainers = [ maintainers.costrouc ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b77806ddec6..e29c2db3577 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -20839,6 +20839,10 @@ with pkgs; petsc = callPackage ../development/libraries/science/math/petsc { }; + parmetis = callPackage ../development/libraries/science/math/parmetis { + mpi = openmpi; + }; + scs = callPackage ../development/libraries/science/math/scs { liblapack = liblapackWithoutAtlas; };