mirror of
https://github.com/CHN-beta/nixos.git
synced 2024-10-22 21:18:44 +08:00
packages.vasp.intel: fix
This commit is contained in:
parent
3a7668549c
commit
7e38ee602e
@ -8,10 +8,19 @@ inputs:
|
||||
# TODO: add more options to correctly configure VASP
|
||||
config = let inherit (inputs.config.nixos.packages) vasp; in inputs.lib.mkIf (vasp != null)
|
||||
{
|
||||
nixos.packages.packages._packages = (with inputs.pkgs.localPackages.vasp; [ intel vtstscripts ])
|
||||
++ (with inputs.pkgs.localPackages; [ py4vasp vaspkit ])
|
||||
++ (inputs.lib.optional
|
||||
(let inherit (inputs.config.nixos.system.nixpkgs) cuda; in cuda.enable && cuda.capabilities != null)
|
||||
inputs.pkgs.localPackages.vasp.nvidia);
|
||||
nixos.packages.packages._packages =
|
||||
(with inputs.pkgs.localPackages.vasp;
|
||||
[
|
||||
(intel.override
|
||||
{
|
||||
integratedWithSlurm = inputs.config.nixos.services.slurm.enable;
|
||||
slurm = inputs.config.services.slurm.package;
|
||||
})
|
||||
vtstscripts
|
||||
])
|
||||
++ (with inputs.pkgs.localPackages; [ py4vasp vaspkit ])
|
||||
++ (inputs.lib.optional
|
||||
(let inherit (inputs.config.nixos.system.nixpkgs) cuda; in cuda.enable && cuda.capabilities != null)
|
||||
inputs.pkgs.localPackages.vasp.nvidia);
|
||||
};
|
||||
}
|
||||
|
@ -52,6 +52,15 @@ inputs:
|
||||
buildInputs = prev.buildInputs or [] ++ additionalInputs;
|
||||
LDFLAGS = prev.LDFLAGS or [] ++ additionalFlags;
|
||||
nativeBuildInputs = prev.nativeBuildInputs ++ [ inputs.pkgs.wrapGAppsHook ];
|
||||
postInstall =
|
||||
''
|
||||
pushd contribs/pmi2
|
||||
make install
|
||||
popd
|
||||
pushd contribs/pmi
|
||||
make install
|
||||
popd
|
||||
'' + prev.postInstall;
|
||||
}
|
||||
);
|
||||
client.enable = true;
|
||||
|
@ -1,35 +1,51 @@
|
||||
{
|
||||
stdenv, src, rsync, which, wannier90, hdf5, vtst, mpi, mkl
|
||||
}: stdenv.mkDerivation
|
||||
{
|
||||
name = "vasp-intel";
|
||||
inherit src;
|
||||
# patches = [ ../vtst.patch ];
|
||||
configurePhase =
|
||||
''
|
||||
cp ${./makefile.include} makefile.include
|
||||
chmod +w makefile.include
|
||||
cp ${../constr_cell_relax.F} src/constr_cell_relax.F
|
||||
# cp -r ${vtst}/* src
|
||||
chmod -R +w src
|
||||
'';
|
||||
buildInputs = [ hdf5 wannier90 mkl ];
|
||||
nativeBuildInputs = [ rsync which mpi ];
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
for i in std gam ncl; do cp bin/vasp_$i $out/bin/vasp-$i; done
|
||||
mkdir $out/src
|
||||
ln -s ${src} $out/src/vasp
|
||||
ln -s ${vtst} $out/src/vtst
|
||||
'';
|
||||
stdenv, src, writeShellScriptBin, lib,
|
||||
rsync, which, wannier90, hdf5, vtst, mpi, mkl, libfabric,
|
||||
integratedWithSlurm ? false, slurm
|
||||
}:
|
||||
let vasp = stdenv.mkDerivation
|
||||
{
|
||||
name = "vasp-intel";
|
||||
inherit src;
|
||||
# patches = [ ../vtst.patch ];
|
||||
configurePhase =
|
||||
''
|
||||
cp ${./makefile.include} makefile.include
|
||||
chmod +w makefile.include
|
||||
cp ${../constr_cell_relax.F} src/constr_cell_relax.F
|
||||
# cp -r ${vtst}/* src
|
||||
chmod -R +w src
|
||||
'';
|
||||
buildInputs = [ hdf5 wannier90 mkl ];
|
||||
nativeBuildInputs = [ rsync which mpi ];
|
||||
installPhase =
|
||||
''
|
||||
mkdir -p $out/bin
|
||||
for i in std gam ncl; do cp bin/vasp_$i $out/bin/vasp-$i; done
|
||||
mkdir $out/src
|
||||
ln -s ${src} $out/src/vasp
|
||||
ln -s ${vtst} $out/src/vtst
|
||||
'';
|
||||
|
||||
# NIX_DEBUG = "7";
|
||||
# NIX_DEBUG = "7";
|
||||
|
||||
# enable parallel build
|
||||
enableParallelBuilding = true;
|
||||
DEPS = "1";
|
||||
# enable parallel build
|
||||
enableParallelBuilding = true;
|
||||
DEPS = "1";
|
||||
|
||||
# vasp directly include headers under ${mkl}/include/fftw
|
||||
MKLROOT = mkl;
|
||||
}
|
||||
# vasp directly include headers under ${mkl}/include/fftw
|
||||
MKLROOT = mkl;
|
||||
};
|
||||
in writeShellScriptBin "vasp-intel"
|
||||
''
|
||||
# not sure why mpi could not find libfabric.so
|
||||
export LD_LIBRARY_PATH=${libfabric}/lib''${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH}
|
||||
|
||||
# intel mpi need this to talk with slurm
|
||||
${lib.optionalString integratedWithSlurm "export I_MPI_MPI_LIBRARY=${slurm}/lib/libpmi2.so"}
|
||||
|
||||
# add vasp and intel mpi in PATH
|
||||
export PATH=${vasp}/bin:${mpi}/bin''${PATH:+:$PATH}
|
||||
|
||||
exec "$@"
|
||||
''
|
||||
|
Loading…
Reference in New Issue
Block a user