Skip to content

Commit

Permalink
Merge pull request #144253 from sheepforce/pyscf
Browse files Browse the repository at this point in the history
pyscf: 1.7.6.post1 -> 2.0.1
  • Loading branch information
markuskowa authored Nov 28, 2021
2 parents 4a921e5 + 21ca2de commit c0d9398
Show file tree
Hide file tree
Showing 11 changed files with 233 additions and 31 deletions.
7 changes: 5 additions & 2 deletions pkgs/development/libraries/libcint/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@

stdenv.mkDerivation rec {
pname = "libcint";
version = "4.4.0";
version = "4.4.6";

src = fetchFromGitHub {
owner = "sunqm";
repo = "libcint";
rev = "v${version}";
hash = "sha256-nsIyosn8dBf217UmjXSKLTM2RhIQHCSvPlrvlqo5KLc=";
sha256 = "sha256-eWUuORMZs6Bl/zFGYZkpgNAgJPIei+k0cQoWl+v+zxo=";
};

nativeBuildInputs = [ cmake ];
Expand All @@ -24,6 +24,9 @@ stdenv.mkDerivation rec {
"-DENABLE_TEST=1"
"-DQUICK_TEST=1"
"-DCMAKE_INSTALL_PREFIX=" # ends up double-adding /nix/store/... prefix, this avoids issue
"-DWITH_RANGE_COULOMB:STRING=1"
"-DWITH_FORTRAN:STRING=1"
"-DMIN_EXPCUTOFF:STRING=20"
];

strictDeps = true;
Expand Down
12 changes: 10 additions & 2 deletions pkgs/development/libraries/libxc/default.nix
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,15 @@ stdenv.mkDerivation rec {
patchShebangs ./
'';

cmakeFlags = [ "-DENABLE_FORTRAN=ON" "-DBUILD_SHARED_LIBS=ON" ];
cmakeFlags = [
"-DENABLE_FORTRAN=ON"
"-DBUILD_SHARED_LIBS=ON"
# Force compilation of higher derivatives
"-DDISABLE_VXC=0"
"-DDISABLE_FXC=0"
"-DDISABLE_KXC=0"
"-DDISABLE_LXC=0"
];

preCheck = ''
export LD_LIBRARY_PATH=$(pwd)
Expand All @@ -29,7 +37,7 @@ stdenv.mkDerivation rec {
description = "Library of exchange-correlation functionals for density-functional theory";
homepage = "https://www.tddft.org/programs/Libxc/";
license = licenses.mpl20;
platforms = [ "x86_64-linux" ];
platforms = platforms.unix;
maintainers = with maintainers; [ markuskowa ];
};
}
25 changes: 25 additions & 0 deletions pkgs/development/libraries/science/chemistry/cppe/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
{ stdenv, lib, fetchFromGitHub, cmake }:

stdenv.mkDerivation rec {
pname = "cppe";
version = "0.3.1";

src = fetchFromGitHub {
owner = "maxscheurer";
repo = pname;
rev = "v${version}";
sha256 = "sha256-guM7+ZWDJLcAUJtPkKLvC4LYSA2eBvER7cgwPZ7FxHw=";
};

nativeBuildInputs = [ cmake ];

cmakeFlags = [ "-DCMAKE_INSTALL_LIBDIR=lib" ];

meta = with lib; {
description = "C++ and Python library for Polarizable Embedding";
homepage = "https://github.com/maxscheurer/cppe";
license = licenses.lgpl3Only;
platforms = platforms.unix;
maintainers = [ maintainers.sheepforce ];
};
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ stdenv.mkDerivation rec {
owner = "dftlibs";
repo = pname;
rev = "v${version}";
sha256= "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
sha256 = "1bj70cnhbh6ziy02x988wwl7cbwaq17ld7qwhswqkgnnx8rpgxid";
};

nativeBuildInputs = [
Expand Down
47 changes: 47 additions & 0 deletions pkgs/development/python-modules/cppe/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
{ buildPythonPackage
, lib
, cmake
, cppe
, eigen
, python
, pybind11
, numpy
, h5py
, numba
, scipy
, pandas
, polarizationsolver
, pytest
}:

buildPythonPackage rec {
inherit (cppe) pname version src meta;

# The python interface requires eigen3, but builds from a checkout in tree.
# Using the nixpkgs version instead.
postPatch = ''
substituteInPlace setup.py \
--replace "external/eigen3" "${eigen}/include/eigen3"
'';

nativeBuildInputs = [
cmake
eigen
];

dontUseCmakeConfigure = true;

buildInputs = [ pybind11 ];

checkInputs = [
pytest
h5py
numba
numpy
pandas
polarizationsolver
scipy
];

pythonImportsCheck = [ "cppe" ];
}
20 changes: 20 additions & 0 deletions pkgs/development/python-modules/fields/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
{ buildPythonPackage, lib, fetchPypi }:

buildPythonPackage rec {
pname = "fields";
version = "5.0.0";

src = fetchPypi {
inherit pname version;
sha256 = "sha256-MdSqA9jUTjXfE8Qx3jUTaZfwR6kkpZfYT3vCCeG+Vyc=";
};

pythonImportsCheck = [ "fields" ];

meta = with lib; {
description = "Container class boilerplate killer";
homepage = "https://github.com/ionelmc/python-fields";
license = licenses.bsd2;
maintainers = [ maintainers.sheepforce ];
};
}
38 changes: 38 additions & 0 deletions pkgs/development/python-modules/polarizationsolver/default.nix
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{ buildPythonPackage
, lib
, fetchFromGitLab
, python
, numpy
, scipy
, periodictable
, fields
}:

buildPythonPackage rec {
pname = "polarizationsolver";
version = "unstable-2021-11-02";

src = fetchFromGitLab {
owner = "reinholdt";
repo = pname;
rev = "00424ac4d1862257a55e4b16543f63ace3fe8c22";
sha256 = "sha256-LACf8Xw+o/uJ3+PD/DE/o7nwKY7fv3NyYbpjCrTTnBU=";
};

propagatedBuildInputs = [
numpy
periodictable
scipy
];

checkInputs = [ fields ];

pythonImportsCheck = [ "polarizationsolver" ];

meta = with lib; {
description = "Multipole moment solver for quantum chemistry and polarisable embedding";
homepage = "https://gitlab.com/reinholdt/polarizationsolver";
license = licenses.gpl3Plus;
maintainers = [ maintainers.sheepforce ];
};
}
90 changes: 77 additions & 13 deletions pkgs/development/python-modules/pyscf/default.nix
Original file line number Diff line number Diff line change
@@ -1,45 +1,109 @@
{ buildPythonPackage, lib, fetchFromGitHub, libcint, libxc, xcfun, blas
, numpy, scipy, h5py
{ buildPythonPackage
, python3
, lib
, fetchFromGitHub
, cmake
, blas
, libcint
, libxc
, xcfun
, cppe
, h5py
, numpy
, scipy
, nose
, nose-exclude
}:

buildPythonPackage rec {
pname = "pyscf";
version = "1.7.6.post1";
version = "2.0.1";

src = fetchFromGitHub {
owner = "pyscf";
repo = pname;
rev = "f6c9c6654dd9609c5e467a1edd5c2c076f793acc";
sha256 = "0xbwkjxxysfpqz72qn6n4a0zr2h6sprbcal8j7kzymh7swjy117w";
rev = "v${version}";
sha256 = "sha256-nwnhaqSn/9WHBjUPaEabK4x23fJ83WwEYvz6aCcvsDw=";
};

# Backport from the 2.0.0 alpha releases of PySCF.
# H5Py > 3.3 deprecates the file modes, that PySCF sets.
patches = [ ./h5py.patch ];
# setup.py calls Cmake and passes the arguments in CMAKE_CONFIGURE_ARGS to cmake.
nativeBuildInputs = [ cmake ];
dontUseCmakeConfigure = true;
preConfigure = ''
export CMAKE_CONFIGURE_ARGS="-DBUILD_LIBCINT=0 -DBUILD_LIBXC=0 -DBUILD_XCFUN=0"
PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
'';

buildInputs = [
blas
libcint
libxc
xcfun
blas
];

propagatedBuildInputs = [
cppe
h5py
numpy
scipy
h5py
];

PYSCF_INC_DIR="${libcint}:${libxc}:${xcfun}";
checkInputs = [ nose nose-exclude ];

doCheck = false;
pythonImportsCheck = [ "pyscf" ];
preCheck = ''
# Set config used by tests to ensure reproducibility
echo 'pbc_tools_pbc_fft_engine = "NUMPY"' > pyscf/pyscf_config.py
export OMP_NUM_THREADS=1
ulimit -s 20000
export PYSCF_CONFIG_FILE=$(pwd)/pyscf/pyscf_config.py
'';
# As defined for the PySCF CI at https://github.com/pyscf/pyscf/blob/master/.github/workflows/run_tests.sh
# minus some additionally numerically instable tests, that are sensitive to BLAS, FFTW, etc.
checkPhase = ''
runHook preCheck
nosetests pyscf/ -v \
--exclude-dir=examples --exclude-dir=pyscf/pbc/grad \
--exclude-dir=pyscf/x2c \
--exclude-dir=pyscf/pbc/tdscf \
-e test_bz \
-e h2o_vdz \
-e test_mc2step_4o4e \
-e test_ks_noimport \
-e test_jk_hermi0 \
-e test_j_kpts \
-e test_k_kpts \
-e high_cost \
-e skip \
-e call_in_background \
-e libxc_cam_beta_bug \
-e test_finite_diff_rks_eph \
-e test_finite_diff_uks_eph \
-e test_pipek \
-e test_n3_cis_ewald \
-I test_kuccsd_supercell_vs_kpts\.py \
-I test_kccsd_ghf\.py \
-I test_h_.*\.py \
--exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/gw/test/test_kgw_slow_supercell.DiamondKSTestSupercell3 \
--exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/gw/test/test_kgw_slow.DiamondKSTestSupercell3 \
--exclude-test=pyscf/pbc/tdscf/test/test_krhf_slow_supercell.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/tdscf/test/test_kproxy_hf.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/tdscf/test/test_kproxy_ks.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_hf.DiamondTestSupercell3 \
--exclude-test=pyscf/pbc/tdscf/test/test_kproxy_supercell_ks.DiamondTestSupercell3 \
-I .*_slow.*py -I .*_kproxy_.*py -I test_proxy.py tdscf/*_slow.py gw/*_slow.py
runHook postCheck
'';

meta = with lib; {
description = "Python-based simulations of chemistry framework";
homepage = "https://github.com/pyscf/pyscf";
license = licenses.asl20;
platforms = platforms.linux;
platforms = platforms.unix;
maintainers = [ maintainers.sheepforce ];
};
}
13 changes: 0 additions & 13 deletions pkgs/development/python-modules/pyscf/h5py.patch

This file was deleted.

2 changes: 2 additions & 0 deletions pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -15960,6 +15960,8 @@ with pkgs;

ctpl = callPackage ../development/libraries/ctpl { };

cppe = callPackage ../development/libraries/science/chemistry/cppe { };

cppdb = callPackage ../development/libraries/cppdb { };

cpp-utilities = callPackage ../development/libraries/cpp-utilities { };
Expand Down
8 changes: 8 additions & 0 deletions pkgs/top-level/python-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -1769,6 +1769,10 @@ in {

cozy = callPackage ../development/python-modules/cozy { };

cppe = callPackage ../development/python-modules/cppe {
cppe = pkgs.cppe;
};

cppheaderparser = callPackage ../development/python-modules/cppheaderparser { };

cppy = callPackage ../development/python-modules/cppy { };
Expand Down Expand Up @@ -2703,6 +2707,8 @@ in {

fido2 = callPackage ../development/python-modules/fido2 { };

fields = callPackage ../development/python-modules/fields { };

filebrowser_safe = callPackage ../development/python-modules/filebrowser_safe { };

filebytes = callPackage ../development/python-modules/filebytes { };
Expand Down Expand Up @@ -5943,6 +5949,8 @@ in {

poezio = callPackage ../applications/networking/instant-messengers/poezio { };

polarizationsolver = callPackage ../development/python-modules/polarizationsolver { };

polib = callPackage ../development/python-modules/polib { };

policy-sentry = callPackage ../development/python-modules/policy-sentry { };
Expand Down

0 comments on commit c0d9398

Please sign in to comment.