firedrake: Moved to new overlay system and shared sub-scope
Firedrake contains a ton of inter-connected dependencies, many of which are either firedrake specific or forked versions of upstream packages. Cleaner to create a firedrake sub-scope for all these.
This commit is contained in:
@@ -1,32 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
pulp = import ./pulp.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "bdbc5fc0a8dfc45683489c6835c3c00cb27c0427";
|
||||
name = "firedrake-COFFEE-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coneoproject";
|
||||
repo = "COFFEE";
|
||||
rev = "${version}";
|
||||
sha256 = "0b4jgnz05n6lapcnljpnq1p5z6j4bbdnq0mm3c53gzx4r47rkgyk";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.networkx
|
||||
python27Packages.numpy
|
||||
python27Packages.six
|
||||
pulp
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/coneoproject/COFFEE";
|
||||
description = "A COmpiler For Fast Expression Evaluation (COFFEE).";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
ufl = import ./ufl.nix;
|
||||
fiat = import ./fiat.nix;
|
||||
finat = import ./finat.nix;
|
||||
tsfc = import ./tsfc.nix;
|
||||
pyop2 = import ./pyop2.nix;
|
||||
petsc = import ./petsc.nix;
|
||||
petsc4py = import ./petsc4py.nix;
|
||||
coffee = import ./coffee.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "a967a34c0f05d3dbfb9be05825777da40a6195dc";
|
||||
name = "firedrake-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "firedrake";
|
||||
rev = "${version}";
|
||||
sha256 = "1mf9vmmin51x2wgz8fdvbw27y6w41qg488f7c2hifx74jdr2ggfd";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
openmpi
|
||||
hdf5
|
||||
libspatialindex
|
||||
python27Packages.cython
|
||||
python27Packages.pytest_29
|
||||
python27Packages.pytest_xdist
|
||||
python27Packages.pylint
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.h5py
|
||||
python27Packages.six
|
||||
python27Packages.sympy
|
||||
python27Packages.psutil
|
||||
python27Packages.cachetools
|
||||
python27Packages.singledispatch
|
||||
python27Packages.ipython
|
||||
python27Packages.matplotlib
|
||||
ufl
|
||||
fiat
|
||||
finat
|
||||
tsfc
|
||||
pyop2
|
||||
petsc4py
|
||||
coffee
|
||||
];
|
||||
|
||||
patches = [ ./firedrake-setup.patch ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://www.firedrakeproject.org";
|
||||
description = "Firedrake is an automated system for the portable solution of partial differential equations using the finite element method (FEM).";
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
||||
@@ -1,30 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
fiat = import ./fiat.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "fecac5b4d4ecf4b02b1ee440bdc4a57bfa9f1d87";
|
||||
name = "FInAT-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FInAT";
|
||||
repo = "FInAT";
|
||||
rev = "${version}";
|
||||
sha256 = "1ad7vzpvlwmx5pgmvj2v8s6n5kdrz02j7wzj25wn974a2ff6pvvd";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.numpy
|
||||
fiat
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/FInAT/FInAT";
|
||||
description = "FInAT is an attempt to provide a more abstract, smarter library of finite elements.";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
@@ -1,33 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
metis = import ./metis.nix;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.0.3-p4";
|
||||
name = "parmetis-${version}";
|
||||
|
||||
src = fetchFromBitbucket {
|
||||
owner = "petsc";
|
||||
repo = "pkg-parmetis";
|
||||
rev = "v${version}";
|
||||
sha256 = "088pzcyjgv1i8jbdznxnxy04cd8kk5y3a46vc7mh1na901s0msm2";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cmake
|
||||
openmpi
|
||||
metis
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DGKLIB_PATH=../headers" ];
|
||||
makeFlags = [ "VERBOSE=1" ];
|
||||
|
||||
meta = {
|
||||
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis";
|
||||
description = "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.";
|
||||
};
|
||||
}
|
||||
@@ -1,61 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
sowing = import ./sowing.nix;
|
||||
metis = import ./metis.nix;
|
||||
parmetis = import ./parmetis.nix;
|
||||
hypre = import ./hypre.nix;
|
||||
exodus = import ./exodus.nix;
|
||||
|
||||
in
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "156a1856fd44f55220132393778f0fda1e6096e3";
|
||||
name = "firedrake-petsc-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "petsc";
|
||||
rev = "${version}";
|
||||
sha256 = "1fmkd818idbiwbr6q9bmsxgwsc7igk13amfvb160llvsj32i93s9";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
sowing
|
||||
metis
|
||||
parmetis
|
||||
hypre
|
||||
exodus
|
||||
python27
|
||||
gfortran
|
||||
openmpi
|
||||
blas
|
||||
liblapack
|
||||
hdf5
|
||||
netcdf
|
||||
eigen
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
configureFlags = [
|
||||
"--with-sowing-dir=${sowing}"
|
||||
"--with-hdf5-dir=${hdf5}"
|
||||
"--with-netcdf-dir=${netcdf}"
|
||||
"--with-metis-dir=${metis}"
|
||||
"--with-parmetis-dir=${parmetis}"
|
||||
"--with-hypre-dir=${hypre}"
|
||||
"--with-exodusii-dir=${exodus}"
|
||||
"--with-eign-dir=${eigen}"
|
||||
"--with-64-bit-indices"
|
||||
];
|
||||
|
||||
setupHook = writeText "setupHook.sh" "export PETSC_DIR=@out@";
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/firedrakeproject/petsc";
|
||||
description = "A suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.";
|
||||
license = licenses.bsd2;
|
||||
};
|
||||
}
|
||||
@@ -1,36 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
petsc = import ./petsc.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "fbe23a494ab485f44f00ee37eee9f8be8dcd9eb5";
|
||||
name = "firedrake-petsc4py-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "petsc4py";
|
||||
rev = "${version}";
|
||||
sha256 = "0172rgpyqh2ylr4wv4a79xfls8fbbdb86n4p6r7cx5kdy8d2y05b";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
python27Packages.cython
|
||||
openmpi
|
||||
hdf5
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.numpy
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://bitbucket.org/petsc/petsc4py/";
|
||||
description = "Python bindings for PETSc.";
|
||||
license = licenses.bsd2;
|
||||
};
|
||||
}
|
||||
@@ -1,52 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
mpi4py = import ./mpi4py.nix;
|
||||
coffee = import ./coffee.nix;
|
||||
petsc = import ./petsc.nix;
|
||||
petsc4py = import ./petsc4py.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "98aab7bbbab2945317c1b9ecf5885652cf20e709";
|
||||
name = "PyOP2-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OP2";
|
||||
repo = "PyOP2";
|
||||
rev = "${version}";
|
||||
sha256 = "167yl4vmw8r9pbn7issjvpflhisjnn42dnw6rfz6bp1rw9v4n4md";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
openmpi
|
||||
python27Packages.cython
|
||||
python27Packages.pytest
|
||||
python27Packages.flake8
|
||||
python27Packages.pycparser
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.six
|
||||
python27Packages.numpy
|
||||
python27Packages.decorator
|
||||
mpi4py
|
||||
coffee
|
||||
petsc4py
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|self\._cc = os\.environ\.get(ccenv, cc)|self._cc = '\'"$(type -p mpicxx)"\''' if cpp else '\'"$(type -p mpicc)"\'''|' pyop2/compilation.py
|
||||
sed -i -e 's|self\._ld = os\.environ\.get('\'''LDSHARED'\''', ld)|self._ld = None|' pyop2/compilation.py
|
||||
sed -i -e 's|os\.environ\['\'''PETSC_DIR'\'''\]|'\'''${petsc}'\'''|' pyop2/utils.py
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "http://op2.github.io/PyOP2/";
|
||||
description = "Framework for performance-portable parallel computations on unstructured meshes.";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
@@ -1,38 +0,0 @@
|
||||
with import <nixpkgs> {};
|
||||
|
||||
let
|
||||
|
||||
coffee = import ./coffee.nix;
|
||||
ufl = import ./ufl.nix;
|
||||
fiat = import ./fiat.nix;
|
||||
finat = import ./finat.nix;
|
||||
|
||||
in
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
version = "ee5670ab1ad90aaf8f550de01255c6752583255d";
|
||||
name = "firedrake-tsfc-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "tsfc";
|
||||
rev = "${version}";
|
||||
sha256 = "07v5v1nhcywn2rpdr0380ck120ppzlvpfknmjh1rss6xkzf2s9lf";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.numpy
|
||||
python27Packages.singledispatch
|
||||
python27Packages.six
|
||||
coffee
|
||||
ufl
|
||||
fiat
|
||||
finat
|
||||
];
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/firedrakeproject/tsfc";
|
||||
description = "Form compiler for the Firedrake project.";
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,6 @@
|
||||
self: pkgs: with pkgs; {
|
||||
|
||||
cryptominisat = callPackage ./cryptominisat.nix { };
|
||||
|
||||
firedrake = callPackage ./firedrake { };
|
||||
}
|
||||
|
||||
27
pkgs/firedrake/coffee.nix
Normal file
27
pkgs/firedrake/coffee.nix
Normal file
@@ -0,0 +1,27 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, pulp }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "bdbc5fc0a8dfc45683489c6835c3c00cb27c0427";
|
||||
name = "firedrake-COFFEE-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coneoproject";
|
||||
repo = "COFFEE";
|
||||
rev = "${version}";
|
||||
sha256 = "0b4jgnz05n6lapcnljpnq1p5z6j4bbdnq0mm3c53gzx4r47rkgyk";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.networkx
|
||||
pythonPackages.numpy
|
||||
pythonPackages.six
|
||||
pulp
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/coneoproject/COFFEE";
|
||||
description = "A COmpiler For Fast Expression Evaluation (COFFEE).";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
49
pkgs/firedrake/default.nix
Normal file
49
pkgs/firedrake/default.nix
Normal file
@@ -0,0 +1,49 @@
|
||||
# This just brings in everything.
|
||||
#
|
||||
# This isn't really informative or overridable in any practical sense. Could put the closure of the dependencies
|
||||
# of all the packages declared here instead. This would be overridable/informative, but a bigger pain to maintain.
|
||||
#
|
||||
# Likely this should be added into the python packages set instead of dropped on the top-level.
|
||||
#
|
||||
{ pkgs }:
|
||||
|
||||
let
|
||||
self =
|
||||
let
|
||||
# Top-level scope extended with this set of packages.
|
||||
#
|
||||
# Possibly it would make more sense to use the python-level scope instead?
|
||||
#
|
||||
callPackage = pkgs.newScope self;
|
||||
|
||||
in
|
||||
with self; {
|
||||
inherit callPackages;
|
||||
|
||||
# Python to use for all this stuff (much of it is python)
|
||||
python = pkgs.python27;
|
||||
pythonPackages = python.pkgs;
|
||||
|
||||
# Forked and unavailable packages required by firedrake and its dependencies
|
||||
ufl = callPackage ./ufl.nix { };
|
||||
fiat = callPackage ./fiat.nix { };
|
||||
finat = callPackage ./finat.nix { };
|
||||
tsfc = callPackage ./tsfc.nix { };
|
||||
pyop2 = callPackage ./pyop2.nix { };
|
||||
petsc = callPackage ./petsc.nix { };
|
||||
petsc4py = callPackage ./petsc4py.nix { };
|
||||
coffee = callPackage ./coffee.nix { };
|
||||
firedrake = callPackage ./firedrake.nix { };
|
||||
pulp = callPackage ./pulp.nix { };
|
||||
sowing = callPackage ./sowing.nix { };
|
||||
metis = callPackage ./metis.nix { };
|
||||
hypre = callPackage ./hypre.nix { };
|
||||
parmetis = callPackage ./parmetis.nix { };
|
||||
exodus = callPackage ./exodus.nix { };
|
||||
|
||||
# Incompatible version (something with communicator/datatype cleanup callbacks?)
|
||||
mpi4py = callPackage ./mpi4py.nix { };
|
||||
};
|
||||
|
||||
in
|
||||
self.firedrake
|
||||
@@ -1,4 +1,5 @@
|
||||
with import <nixpkgs> {};
|
||||
{ stdenv, fetchurl, cmake, gfortran
|
||||
, netcdf, hdf5 }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.24";
|
||||
@@ -20,7 +21,7 @@ stdenv.mkDerivation rec {
|
||||
patches = ./exodus-include.patch;
|
||||
sourceRoot = "${name}/exodus";
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://gsjaardema.github.io/seacas";
|
||||
description = "A model developed to store and retrieve data for finite element analyses.";
|
||||
license = licenses.bsd3;
|
||||
@@ -1,6 +1,6 @@
|
||||
with import <nixpkgs> {};
|
||||
{ lib, fetchFromGitHub, pythonPackages }:
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "20847cdee0d323726571324f565ff3da6f19e700";
|
||||
name = "firedrake-fiat-${version}";
|
||||
|
||||
@@ -12,12 +12,12 @@ python27Packages.buildPythonPackage rec {
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.numpy
|
||||
python27Packages.sympy
|
||||
python27Packages.six
|
||||
pythonPackages.numpy
|
||||
pythonPackages.sympy
|
||||
pythonPackages.six
|
||||
];
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/firedrakeproject/fiat";
|
||||
description = "Copy of upstream FIAT for use with Firedrake.";
|
||||
license = licenses.lgpl3;
|
||||
25
pkgs/firedrake/finat.nix
Normal file
25
pkgs/firedrake/finat.nix
Normal file
@@ -0,0 +1,25 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, fiat }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "fecac5b4d4ecf4b02b1ee440bdc4a57bfa9f1d87";
|
||||
name = "FInAT-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "FInAT";
|
||||
repo = "FInAT";
|
||||
rev = "${version}";
|
||||
sha256 = "1ad7vzpvlwmx5pgmvj2v8s6n5kdrz02j7wzj25wn974a2ff6pvvd";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.numpy
|
||||
fiat
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/FInAT/FInAT";
|
||||
description = "FInAT is an attempt to provide a more abstract, smarter library of finite elements.";
|
||||
license = licenses.mit;
|
||||
};
|
||||
}
|
||||
52
pkgs/firedrake/firedrake.nix
Normal file
52
pkgs/firedrake/firedrake.nix
Normal file
@@ -0,0 +1,52 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, openmpi, hdf5, libspatialindex
|
||||
, ufl, fiat, finat, tsfc, pyop2, petsc, petsc4py, coffee }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "a967a34c0f05d3dbfb9be05825777da40a6195dc";
|
||||
name = "firedrake-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "firedrake";
|
||||
rev = "${version}";
|
||||
sha256 = "0flj0ca3b3pmcnak058alx5kfhz0h7s3hz0q7qiciag9m8p6ccnl";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
openmpi
|
||||
hdf5
|
||||
libspatialindex
|
||||
pythonPackages.cython
|
||||
pythonPackages.pytest_29
|
||||
pythonPackages.pytest_xdist
|
||||
pythonPackages.pylint
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.h5py
|
||||
pythonPackages.six
|
||||
pythonPackages.sympy
|
||||
pythonPackages.psutil
|
||||
pythonPackages.cachetools
|
||||
pythonPackages.singledispatch
|
||||
pythonPackages.ipython
|
||||
pythonPackages.matplotlib
|
||||
ufl
|
||||
fiat
|
||||
finat
|
||||
tsfc
|
||||
pyop2
|
||||
petsc4py
|
||||
coffee
|
||||
];
|
||||
|
||||
patches = [ ./firedrake-setup.patch ];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.firedrakeproject.org";
|
||||
description = "Firedrake is an automated system for the portable solution of partial differential equations using the finite element method (FEM).";
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,5 @@
|
||||
with import <nixpkgs> {};
|
||||
{ stdenv, fetchFromGitHub, cmake
|
||||
, openmpi }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "xsdk-0.2.0-rc2";
|
||||
@@ -16,13 +17,12 @@ stdenv.mkDerivation rec {
|
||||
openmpi
|
||||
];
|
||||
|
||||
|
||||
sourceRoot = "${name}-src/src";
|
||||
sourceRoot = "source/src";
|
||||
preConfigure = "cmakeFlags=\"-DHYPRE_INSTALL_PREFIX=$prefix $cmakeFlags\"";
|
||||
|
||||
makeFlags = [ "VERBOSE=1" ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://www.llnl.gov/casc/hypre";
|
||||
description = "Parallel solvers for sparse linear systems featuring multigrid methods.";
|
||||
license = licenses.gpl2;
|
||||
@@ -1,4 +1,4 @@
|
||||
with import <nixpkgs> {};
|
||||
{ stdenv, fetchFromBitbucket, cmake }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "5.1.0-p4";
|
||||
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
makeFlags = [ "VERBOSE=1" ];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://bitbucket.org/petsc/metis";
|
||||
description = "A set of serial programs for partitioning graphs, partitioning finite element meshes, and producing fill reducing orderings for sparse matrices.";
|
||||
};
|
||||
@@ -1,6 +1,7 @@
|
||||
with import <nixpkgs> { };
|
||||
{ stdenv, fetchurl, python
|
||||
, openmpi, openssh }:
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
python.pkgs.buildPythonPackage rec {
|
||||
name = "mpi4py-2.0.0";
|
||||
|
||||
src = fetchurl {
|
||||
29
pkgs/firedrake/parmetis.nix
Normal file
29
pkgs/firedrake/parmetis.nix
Normal file
@@ -0,0 +1,29 @@
|
||||
{ stdenv, fetchFromBitbucket, cmake
|
||||
, openmpi
|
||||
, metis }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "4.0.3-p4";
|
||||
name = "parmetis-${version}";
|
||||
|
||||
src = fetchFromBitbucket {
|
||||
owner = "petsc";
|
||||
repo = "pkg-parmetis";
|
||||
rev = "v${version}";
|
||||
sha256 = "088pzcyjgv1i8jbdznxnxy04cd8kk5y3a46vc7mh1na901s0msm2";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
cmake
|
||||
openmpi
|
||||
metis
|
||||
];
|
||||
|
||||
cmakeFlags = [ "-DGKLIB_PATH=../headers" ];
|
||||
makeFlags = [ "VERBOSE=1" ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "http://glaros.dtc.umn.edu/gkhome/metis/parmetis";
|
||||
description = "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.";
|
||||
};
|
||||
}
|
||||
53
pkgs/firedrake/petsc.nix
Normal file
53
pkgs/firedrake/petsc.nix
Normal file
@@ -0,0 +1,53 @@
|
||||
{ stdenv, callPackage, writeText, fetchFromGitHub, python, gfortran
|
||||
, openmpi, blas, liblapack, hdf5, netcdf, eigen
|
||||
, sowing, metis, hypre, parmetis, exodus }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "156a1856fd44f55220132393778f0fda1e6096e3";
|
||||
name = "firedrake-petsc-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "petsc";
|
||||
rev = "${version}";
|
||||
sha256 = "1fmkd818idbiwbr6q9bmsxgwsc7igk13amfvb160llvsj32i93s9";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
sowing
|
||||
metis
|
||||
parmetis
|
||||
hypre
|
||||
exodus
|
||||
python
|
||||
gfortran
|
||||
openmpi
|
||||
blas
|
||||
liblapack
|
||||
hdf5
|
||||
netcdf
|
||||
eigen
|
||||
];
|
||||
|
||||
postPatch = "patchShebangs .";
|
||||
|
||||
configureFlags = [
|
||||
"--with-sowing-dir=${sowing}"
|
||||
"--with-hdf5-dir=${hdf5}"
|
||||
"--with-netcdf-dir=${netcdf}"
|
||||
"--with-metis-dir=${metis}"
|
||||
"--with-parmetis-dir=${parmetis}"
|
||||
"--with-hypre-dir=${hypre}"
|
||||
"--with-exodusii-dir=${exodus}"
|
||||
"--with-eign-dir=${eigen}"
|
||||
"--with-64-bit-indices"
|
||||
];
|
||||
|
||||
setupHook = writeText "setupHook.sh" "export PETSC_DIR=@out@";
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://github.com/firedrakeproject/petsc";
|
||||
description = "A suite of data structures and routines for the scalable (parallel) solution of scientific applications modeled by partial differential equations.";
|
||||
license = licenses.bsd2;
|
||||
};
|
||||
}
|
||||
31
pkgs/firedrake/petsc4py.nix
Normal file
31
pkgs/firedrake/petsc4py.nix
Normal file
@@ -0,0 +1,31 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, openmpi, hdf5, petsc }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "fbe23a494ab485f44f00ee37eee9f8be8dcd9eb5";
|
||||
name = "firedrake-petsc4py-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "petsc4py";
|
||||
rev = "${version}";
|
||||
sha256 = "0172rgpyqh2ylr4wv4a79xfls8fbbdb86n4p6r7cx5kdy8d2y05b";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
pythonPackages.cython
|
||||
openmpi
|
||||
hdf5
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.numpy
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://bitbucket.org/petsc/petsc4py/";
|
||||
description = "Python bindings for PETSc.";
|
||||
license = licenses.bsd2;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
with import <nixpkgs> {};
|
||||
{ lib, fetchFromGitHub, pythonPackages
|
||||
, glpk, cbc }:
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "1.6.4";
|
||||
name = "PuLP-${version}";
|
||||
|
||||
@@ -17,7 +18,7 @@ python27Packages.buildPythonPackage rec {
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.pyparsing
|
||||
pythonPackages.pyparsing
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
@@ -25,7 +26,7 @@ python27Packages.buildPythonPackage rec {
|
||||
sed -i -e 's|^GlpkPath = .*$|GlpkPath = ${glpk}/bin/glpsol|' src/pulp/pulp.cfg.linux
|
||||
'';
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/coin-or/pulp";
|
||||
description = "A python Linear Programming API.";
|
||||
license = licenses.mit;
|
||||
45
pkgs/firedrake/pyop2.nix
Normal file
45
pkgs/firedrake/pyop2.nix
Normal file
@@ -0,0 +1,45 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, openmpi
|
||||
, coffee, petsc, petsc4py, mpi4py }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "98aab7bbbab2945317c1b9ecf5885652cf20e709";
|
||||
name = "PyOP2-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OP2";
|
||||
repo = "PyOP2";
|
||||
rev = "${version}";
|
||||
sha256 = "1hw8wpbfgw8j48jfhv72pxq33as2mkw9a9k2qg0607d77agjmpz5";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
openmpi
|
||||
pythonPackages.cython
|
||||
pythonPackages.pytest
|
||||
pythonPackages.flake8
|
||||
pythonPackages.pycparser
|
||||
petsc
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.six
|
||||
pythonPackages.numpy
|
||||
pythonPackages.decorator
|
||||
mpi4py
|
||||
coffee
|
||||
petsc4py
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
sed -i -e 's|self\._cc = os\.environ\.get(ccenv, cc)|self._cc = '\'"$(type -p mpicxx)"\''' if cpp else '\'"$(type -p mpicc)"\'''|' pyop2/compilation.py
|
||||
sed -i -e 's|self\._ld = os\.environ\.get('\'''LDSHARED'\''', ld)|self._ld = None|' pyop2/compilation.py
|
||||
sed -i -e 's|os\.environ\['\'''PETSC_DIR'\'''\]|'\'''${petsc}'\'''|' pyop2/utils.py
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://op2.github.io/PyOP2/";
|
||||
description = "Framework for performance-portable parallel computations on unstructured meshes.";
|
||||
license = licenses.bsd3;
|
||||
};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
with import <nixpkgs> {};
|
||||
{ stdenv, fetchFromBitbucket, ghostscript }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
version = "1.1.25-p1";
|
||||
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
||||
ghostscript
|
||||
];
|
||||
|
||||
meta = {
|
||||
meta = with stdenv.lib; {
|
||||
homepage = "https://bitbucket.org/petsc/pkg-sowing";
|
||||
description = "Tools that are part of the petsc program development and maintenance environment.";
|
||||
};
|
||||
30
pkgs/firedrake/tsfc.nix
Normal file
30
pkgs/firedrake/tsfc.nix
Normal file
@@ -0,0 +1,30 @@
|
||||
{ lib, callPackage, fetchFromGitHub, pythonPackages
|
||||
, coffee, ufl, fiat, finat }:
|
||||
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "ee5670ab1ad90aaf8f550de01255c6752583255d";
|
||||
name = "firedrake-tsfc-${version}";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "firedrakeproject";
|
||||
repo = "tsfc";
|
||||
rev = "${version}";
|
||||
sha256 = "07v5v1nhcywn2rpdr0380ck120ppzlvpfknmjh1rss6xkzf2s9lf";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
pythonPackages.numpy
|
||||
pythonPackages.singledispatch
|
||||
pythonPackages.six
|
||||
coffee
|
||||
ufl
|
||||
fiat
|
||||
finat
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/firedrakeproject/tsfc";
|
||||
description = "Form compiler for the Firedrake project.";
|
||||
license = licenses.gpl3;
|
||||
};
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
with import <nixpkgs> {};
|
||||
{ lib, fetchFromGitHub, pythonPackages }:
|
||||
|
||||
python27Packages.buildPythonPackage rec {
|
||||
pythonPackages.buildPythonPackage rec {
|
||||
version = "8c17257d325f5f040ad1cb74b866956ad42427ca";
|
||||
name = "firedrake-ufl-${version}";
|
||||
|
||||
@@ -12,11 +12,11 @@ python27Packages.buildPythonPackage rec {
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
python27Packages.numpy
|
||||
python27Packages.six
|
||||
pythonPackages.numpy
|
||||
pythonPackages.six
|
||||
];
|
||||
|
||||
meta = {
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/firedrakeproject/ufl";
|
||||
description = "Copy of upstream UFL for use with Firedrake.";
|
||||
license = licenses.lgpl3;
|
||||
Reference in New Issue
Block a user