aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHonza Macháček <Hloupy.Honza@centrum.cz>2014-11-11 15:06:29 +0100
committerHonza Macháček <Hloupy.Honza@centrum.cz>2014-11-11 15:06:29 +0100
commit22f5947bb0b1a31ccc37aff042a7a12e8fdc6c33 (patch)
tree89ce117005e4b56242e7ffee1e795d7090eb3a40 /sci-chemistry/nwchem
parentMerge remote-tracking branch 'github/master' (diff)
downloadsci-22f5947bb0b1a31ccc37aff042a7a12e8fdc6c33.tar.gz
sci-22f5947bb0b1a31ccc37aff042a7a12e8fdc6c33.tar.bz2
sci-22f5947bb0b1a31ccc37aff042a7a12e8fdc6c33.zip
sci-chemistry/nwchem bumped to 6.5_p26243. IUSE options expanded, including those fore 64 bit integers and CUDA support. CCSDTQ and linear response for CCSDT+ methods selected unconditionally for now.
Package-Manager: portage-2.2.14
Diffstat (limited to 'sci-chemistry/nwchem')
-rw-r--r--sci-chemistry/nwchem/ChangeLog8
-rw-r--r--sci-chemistry/nwchem/Manifest10
-rw-r--r--sci-chemistry/nwchem/files/nwchem-6.5-python_makefile.patch15
-rw-r--r--sci-chemistry/nwchem/metadata.xml30
-rw-r--r--sci-chemistry/nwchem/nwchem-6.5_p26243.ebuild259
5 files changed, 321 insertions, 1 deletions
diff --git a/sci-chemistry/nwchem/ChangeLog b/sci-chemistry/nwchem/ChangeLog
index d05e285f2..a9461ce25 100644
--- a/sci-chemistry/nwchem/ChangeLog
+++ b/sci-chemistry/nwchem/ChangeLog
@@ -2,6 +2,14 @@
# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
# $Header: $
+*nwchem-6.5_p26243 (11 Nov 2014)
+
+ 11 Nov 2014; Honza Macháček <Hloupy.Honza@centrum.cz>
+ +nwchem-6.5_p26243.ebuild, +files/nwchem-6.5-python_makefile.patch:
+ Version bump to sci-chemistry/nwchem-6.5_p26243. IUSE options expanded,
+ including those fore 64 bit integers and CUDA support. CCSDTQ and linear
+ response for CCSDT+ methods selected unconditionally for now.
+
16 Sep 2014; Christoph Junghans <ottxor@gentoo.org> nwchem-6.3_p2-r1.ebuild:
clean up
diff --git a/sci-chemistry/nwchem/Manifest b/sci-chemistry/nwchem/Manifest
index 4dee3f692..6eedf79b4 100644
--- a/sci-chemistry/nwchem/Manifest
+++ b/sci-chemistry/nwchem/Manifest
@@ -1 +1,11 @@
+DIST Bcast_ccsd.patch.gz 591 SHA256 03e0d06033a02be4f1eb659212744c822041d4619b38b48c44284bc80df4ebaf SHA512 04e08e5fee5e2b3c3d89553ad36998e180e79a59f692b1cb6848df561319c92747a307596164e86fb5b244f61df432b2b5c3170e26bc25bccdf426ba268a39d3 WHIRLPOOL 94a0dca3f6c2650362babdf465b325d2830a5dddf0a7bc74c3f31caefda142be3e1160e8499011528ac4eb4fc2e0f877dbb67ecd26ec0c490c3c5643c7763b45
+DIST Elpa_syncs.patch.gz 554 SHA256 ce5c45cf83d84e0a95266e667808e6e40df82e649db3b9faeb556f1e3724b8df SHA512 c6b6a11dbd40ec4ccd8e230cfd33f2667122c05572deb693ee5c516f0a7dfdefcca0bae8aef518b9cd88ce0a1aec413d3518cf29d14c0f91afdd3024ef9fd506 WHIRLPOOL 21c78a2041f5bd25475b4589c9bbef47aa98a18e7a313cea127530f21cff9f54bdecdd2b53e02e4fd991bb6f19a3399df527af2d289284070dde133aab2ca952
+DIST Hbar.patch.gz 458 SHA256 6058010a77bc7d0bf7468dde49d7905863f2550b282abee4cceef901481272a7 SHA512 595d5250dd3d462e9d2e0b385a3b41ac828da0792e19606b0365f27b47c839e81ff16cdae590f91f48fa0ac52a4dfcee1c4929bd9054651ee27f9e7c3bf54dbc WHIRLPOOL 691ecac56d8ef8bfd377df40429e484d232b82ee28c0b546bb379d6120e00b54c408f55ccc3340e612759d1e4d72f2933f0ec40d3655ae94be03f9db3e925124
+DIST Hnd_giaxyz_noinline.patch.gz 368 SHA256 4e89a383ebd0cc87b3de03133f4a0537de799e1ae938f82a6460632e324aeeb1 SHA512 a798412821e35fb3be28ff2df59ce578506635532b08f0f247bae39c85f1c0c912e5205f201f94407d9e3360e66bfb98119596bacc693165fc2b6924800c283c WHIRLPOOL f424a9773dfc45f8f6597dd5162bb10283e3b1e38b12b557089b925fa45aae02c0e988eb0785a1c7cbb5f6883df8767042e195037cc50f6a29e6cb033e5ff342
+DIST Makefile_gcc4x.patch.gz 1493 SHA256 c548c64eab196ef7aabd473379ec56c879c5a6e9e9a4d31c6503279a72094839 SHA512 35d46f78da48519ccf21b8853bfc32b958419a600ef7897135f52bc8f7dcfe733883f6600cfd88e75a8c68c3fe9fb0f6302493889df7fbc84f1dd7be29929136 WHIRLPOOL 70b7431fb11f8da971de52a4cba985548da1fa388859cf784016fc646e49d00cedf2918c9a7c47f29239b514220f47837bddff6aaa3762c5afd2c69a68bb18cb
DIST Nwchem-6.3.revision2-src.2013-10-17.tar.gz 112262489 SHA256 6a6adf068d559be1ab1bf0addc6b8aa65dbb746b8716a913f5f1bb2eb16f1718 SHA512 28b812b62bba464e6a9c76ccae17145b42ab92c460cc4372bfb6e5d48db0b618d06e778bd2f4787ffcb2d95e60e869af60739181b2f334430592764b41e5f988 WHIRLPOOL 75d4053711fcd1f69c9b3813ed00fe492aa918e75c11c60a7fb67b202bd0dfe410e80d4c7f5423ef76f4a8472db809bd91c4218159087255b495908b4be32b4b
+DIST Nwchem-6.5.revision26243-src.2014-09-10.tar.gz 131069464 SHA256 9af6d7d7424809785f5a833b49d526cb3e8b5703a9e061a52e426532c48f8c75 SHA512 d4e22819bc40b3bda915dd64c68434f162ad1abccf854a480feb083858a6c8c6b9ef3347e1c5c247149347ecbb2c6dc8d4e70127b90e3b18c08d2cbf16c90843 WHIRLPOOL 9e4f7c624dc62a3e38bdac83197ca8f5d63a4625516e194211aef44f253711e1b095b5f5cbb09b3ea13448714ef2aaafd3ac1edd65f61c71dc2a3513ccc00916
+DIST Parallelmpi.patch.gz 216 SHA256 d30de8a7027bd5ea7672ad1fa63711a3cfc5cb118f878bc5308a142319d31420 SHA512 21d9020f77814056d3690dca71783e635a4eb951785cf12addc1ff4082b582c82399eb3c3f4f01892d5249fc30a8de1a9a18c1bf37841957bfc924d579f8f7ea WHIRLPOOL 12ac85104503ad5a14b2b67cf727ac8cd16d19311a1100e8aee612bdf1dcacc8e606b3be10c464daaf3681f22b141fd31019cfc5ed84ed5e89e33b2985c89554
+DIST Tcenxtask.patch.gz 1556 SHA256 6b3f713024fec9a41bd7738e3cd6d31731d17a3b59a02d9a484e0a2408fcb9ca SHA512 9e11a2566c20b07a458cbd0ebe58e006b3ef04831625f3b88e38d20570945ff5138c18f148491bf890f8431699af3c180d948fe6677acf82d557c44e9a7384b5 WHIRLPOOL 8d0923a1789845be126e569a4a17703e2fda4aed9a9d2e9472d62968c9c40c38af8c40f35033bd4d644077da5ae8218c38d8ddfa82ef6313d67bfd6a5888f249
+DIST Util_md_sockets.patch.gz 324 SHA256 843d0d9152a3d3735557a8710ae8c6a260732a2b8e0d9ed823bbd430efff44ee SHA512 743ae8d7cdbe6612a26a10ce845003abab08c1704956940bccf249d00c1d07cf169cfb3cf648c209d5c1dc564abfeddeb8d216259f463c0d564f617c099f5e82 WHIRLPOOL cedf1d8253fb085bb6851effe25e230965cc6690441c865344f10d01e2966687753375fa3e69475378ec495c3ba85d4539417e07f2e61597060730e9f63b8f0d
+DIST Xlmpoles_ifort15.patch.gz 256 SHA256 ae957064165afe8abcfeb580146b59b8ca680a7a5f528402047b3f8672c1e131 SHA512 f770263a22d5f680c92d52a521ddbd748633dcdf125fe75f353d70d4557fe4c8f0c25ad07e05d8452124f78523552bb87446bff10532cfccc5bc2ce941aac855 WHIRLPOOL f97940620e05d8439119e78c2ba46ea5ebae33c16b69e6bb334cf19156573a21cf0a2c8271bc76ebf3c3e27b9b0d43239d5884fccac004b7ce4a80ac5a6f5e42
diff --git a/sci-chemistry/nwchem/files/nwchem-6.5-python_makefile.patch b/sci-chemistry/nwchem/files/nwchem-6.5-python_makefile.patch
new file mode 100644
index 000000000..c37310c79
--- /dev/null
+++ b/sci-chemistry/nwchem/files/nwchem-6.5-python_makefile.patch
@@ -0,0 +1,15 @@
+--- src/config/makefile.h 2014-11-03 14:00:59.808794970 +0100
++++ src/config/makefile.h 2014-11-03 14:29:13.353470102 +0100
+@@ -2521,10 +2521,10 @@
+ endif
+ ifdef USE_PYTHON64
+- CORE_LIBS += $(PYTHONHOME)/lib64/python$(PYTHONVERSION)/$(PYTHONCONFIGDIR)/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
++ CORE_LIBS += $(PYTHONHOME)/lib64/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
+ else
+ ifeq ($(GOTMINGW32),1)
+ CORE_LIBS += $(PYTHONHOME)/libs/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
+ else
+- CORE_LIBS += $(PYTHONHOME)/lib/python$(PYTHONVERSION)/$(PYTHONCONFIGDIR)/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
++ CORE_LIBS += $(PYTHONHOME)/lib/libpython$(PYTHONVERSION).$(PYTHONLIBTYPE)
+ endif
+ endif
diff --git a/sci-chemistry/nwchem/metadata.xml b/sci-chemistry/nwchem/metadata.xml
index 11305d87d..95b84c1f3 100644
--- a/sci-chemistry/nwchem/metadata.xml
+++ b/sci-chemistry/nwchem/metadata.xml
@@ -7,9 +7,37 @@
<name>Alexey Shvetsov</name>
</maintainer>
<use>
- <flag name="mrcc">Compile the MRCC module</flag>
+ <flag name="blas">
+ Use external BLAS library instead of the internal routines
+ </flag>
+ </use>
+ <use>
+ <flag name="cuda">
+ Enable CUDA GPU support for the Tensor Contraction Engine generated
+ methods (CI, MBPT, CC)
+ </flag>
+ </use>
+ <use>
+ <flag name="int64">
+ Use 64 bits integers
+ </flag>
+ </use>
+ <use>
+ <flag name="lapack">
+ Use external LAPACK library instead of the internal routines
+ </flag>
+ </use>
+ <use>
+ <flag name="mrcc">
+ Compile the routines for Multi Reference Coupled Clusters theory
+ </flag>
</use>
<use>
<flag name="nwchem-tests">Install qa tests data</flag>
</use>
+ <use>
+ <flag name="scalapack">
+ Use external SCALAPACK library
+ </flag>
+ </use>
</pkgmetadata>
diff --git a/sci-chemistry/nwchem/nwchem-6.5_p26243.ebuild b/sci-chemistry/nwchem/nwchem-6.5_p26243.ebuild
new file mode 100644
index 000000000..80132339b
--- /dev/null
+++ b/sci-chemistry/nwchem/nwchem-6.5_p26243.ebuild
@@ -0,0 +1,259 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=5
+
+PYTHON_COMPAT=( python{2_6,2_7} )
+
+inherit eutils flag-o-matic fortran-2 multilib python-single-r1 toolchain-funcs
+
+DATE="2014-09-10"
+
+DESCRIPTION="Delivering High-Performance Computational Chemistry to Science"
+HOMEPAGE="http://www.nwchem-sw.org/index.php/Main_Page"
+SRC_URI="http://www.nwchem-sw.org/images/Nwchem-${PV%_p*}.revision${PV#*_p}-src.${DATE}.tar.gz
+ http://www.nwchem-sw.org/images/Util_md_sockets.patch.gz
+ http://www.nwchem-sw.org/images/Hbar.patch.gz
+ http://www.nwchem-sw.org/images/Tcenxtask.patch.gz
+ http://www.nwchem-sw.org/images/Hnd_giaxyz_noinline.patch.gz
+ http://www.nwchem-sw.org/images/Parallelmpi.patch.gz
+ http://www.nwchem-sw.org/images/Makefile_gcc4x.patch.gz
+ http://www.nwchem-sw.org/images/Bcast_ccsd.patch.gz
+ http://www.nwchem-sw.org/images/Elpa_syncs.patch.gz
+ http://www.nwchem-sw.org/images/Xlmpoles_ifort15.patch.gz"
+
+LICENSE="ECL-2.0"
+SLOT="0"
+KEYWORDS="~x86 ~amd64"
+IUSE="blas cuda infiniband lapack mpi doc examples int64 nwchem-tests openmp mrcc python scalapack"
+
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )
+ infiniband? ( mpi )
+ scalapack? ( !int64 )"
+
+RDEPEND="
+ sys-fs/sysfsutils
+ blas? ( virtual/blas )
+ lapack? ( virtual/lapack )
+ scalapack? ( virtual/scalapack )
+ cuda? ( dev-util/nvidia-cuda-sdk )
+ int64? (
+ blas? ( virtual/blas[int64] )
+ lapack? ( virtual/lapack[int64] )
+ )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ app-shells/tcsh
+ mpi? ( virtual/mpi[fortran] )
+ infiniband? ( || (
+ sys-cluster/openmpi[fortran,openmpi_fabrics_ofed]
+ sys-cluster/mvapich2[fortran]
+ ) )
+ doc? (
+ dev-texlive/texlive-latex
+ dev-tex/latex2html )"
+
+LONG_S="${WORKDIR}/Nwchem-${PV%_p*}.revision${PV#*_p}-src.${DATE}"
+S="${WORKDIR}/${PN}"
+
+pkg_setup() {
+ # fortran-2.eclass does not handle mpi wrappers
+ if use mpi; then
+ export FC="mpif90"
+ export F77="mpif77"
+ export CC="mpicc"
+ export CXX="mpic++"
+ else
+ tc-export FC F77 CC CXX
+ fi
+
+ use openmp && FORTRAN_NEED_OPENMP=1
+
+ fortran-2_pkg_setup
+
+ if use openmp; then
+ # based on _fortran-has-openmp() of fortran-2.eclass
+ local openmp=""
+ local fcode=ebuild-openmp-flags.f
+ local _fc=$(tc-getFC)
+
+ pushd "${T}"
+ cat <<- EOF > "${fcode}"
+ 1 call omp_get_num_threads
+ 2 end
+ EOF
+
+ for openmp in -fopenmp -xopenmp -openmp -mp -omp -qsmp=omp; do
+ "${_fc}" "${openmp}" "${fcode}" -o "${fcode}.x" && break
+ done
+
+ rm -f "${fcode}.*"
+ popd
+
+ append-flags "${openmp}"
+ fi
+
+ use python && python-single-r1_pkg_setup
+}
+
+src_unpack() {
+ unpack ${A}
+ mv "${LONG_S}" "${S}"
+}
+
+src_prepare() {
+ pushd "${S}"/src
+ for p in Util_md_sockets Hbar Tcenxtask Parallelmpi Makefile_gcc4x Bcast_ccsd Elpa_syncs Xlmpoles_ifort15
+ do epatch "${WORKDIR}"/"${p}.patch"
+ done
+ cd NWints/hondo
+ epatch "${WORKDIR}"/Hnd_giaxyz_noinline.patch
+ popd
+ epatch "${FILESDIR}"/nwchem-6.1.1-nwchemrc.patch
+ use python && epatch "${FILESDIR}"/nwchem-6.5-python_makefile.patch
+ use doc && epatch "${FILESDIR}"/nwchem-6.3-r1-html_doc.patch
+
+ sed \
+ -e "s:DBASIS_LIBRARY=\"'\$(SRCDIR)'\":DBASIS_LIBRARY=\"'${EPREFIX}/usr/share/NWChem'\":g" \
+ -i src/basis/MakeFile src/basis/GNUmakefile || die
+ sed \
+ -e "s:DNWPW_LIBRARY=\"'\$(SRCDIR)'\":DNWPW_LIBRARY=\"'${EPREFIX}/usr/share/NWChem'\":g" \
+ -i src/nwpw/libraryps/GNUmakefile || die
+ sed \
+ -e "s:-DCOMPILATION_DIR=\"'\$(TOPDIR)'\":-DCOMPILATION_DIR=\"''\":g" \
+ -i src/GNUmakefile src/MakeFile || die
+
+ if [[ $(tc-getFC) == *-*-*-*-gfortran ]]; then
+ sed \
+ -e "s:ifneq (\$(FC),gfortran):ifneq (\$(FC),$(tc-getFC)):g" \
+ -e "s:ifeq (\$(FC),gfortran):ifeq (\$(FC),$(tc-getFC)):g" \
+ -i src/config/makefile.h || die
+ fi
+}
+
+src_compile() {
+ export NWCHEM_LONG_PATHS=Y
+ export USE_SUBGROUPS=yes
+ if use mpi ; then
+ export MSG_COMMS=MPI
+ export USE_MPI=y
+ export USE_MPIF=y
+ export USE_MPIF4=y
+ export MPI_LOC="${EPREFIX}"/usr
+ export MPI_INCLUDE=$MPI_LOC/include
+ export MPI_LIB=$MPI_LOC/$(get_libdir)
+ export LIBMPI="$(mpif90 -showme:link)"
+ if use infiniband; then
+ export ARMCI_NETWORK=OPENIB
+ else
+ export ARMCI_NETWORK=MPI-TS
+ fi
+ else
+ unset USE_MPI
+ unset USE_MPIF
+ unset USE_MPIF4
+ export MSG_COMMS=TCGMSG
+ export ARMCI_NETWORK=SOCKETS
+ fi
+ if [ "$ARCH" = "amd64" ]; then
+ export NWCHEM_TARGET=LINUX64
+ elif [ "$ARCH" = "ia64" ]; then
+ export NWCHEM_TARGET=LINUX64
+ elif [ "$ARCH" = "x86" ]; then
+ export NWCHEM_TARGET=LINUX
+ elif [ "$ARCH" = "ppc" ]; then
+ export NWCHEM_TARGET=LINUX
+ else
+ die "Unknown architecture"
+ fi
+ if use python ; then
+ if [ "$ARCH" = "amd64" ] || [ "$ARCH" = "ia64" ]; then
+ export USE_PYTHON64=yes
+ fi
+ export PYTHONHOME=/usr
+ export PYTHONVERSION=$(eselect python show --python2 |awk -Fpython '{ print $2 }')
+ export PYTHONPATH="./:${S}/contrib/python/"
+ export NWCHEM_MODULES="all python"
+ else
+ export NWCHEM_MODULES="all"
+ fi
+ use mrcc && export MRCC_THEORY="TRUE"
+ export CCSDTQ="TRUE"
+ export CCSDTLR="TRUE"
+ unset BLASOPT
+ use blas && BLASOPT="$(pkg-config --libs blas)"
+ use lapack && BLASOPT+="$(pkg-config --libs lapack)"
+ use scalapack && BLASOPT+="$(pkg-config --libs scalapack)"
+ export BLASOPT
+ if use int64; then
+ BLAS_SIZE=8
+ LAPACK_SIZE=8
+ SCALAPACK_SIZE=8
+ else
+ BLAS_SIZE=4
+ LAPACK_SIZE=4
+ SCALAPACK_SIZE=4
+ fi
+ if use cuda; then
+ export TCE_CUDA=Y
+ export CUDA_PATH=/opt/cuda
+ export CUDA=${CUDA_PATH}/bin/nvcc
+ export CUDA_FLAGS="-arch=compute_20 -code=sm_20,compute_20"
+ export CUDA_INCLUDE="-I${CUDA_PATH}/include"
+ export CUDA_LIBS="-L${CUDA_PATH}/$(get_libdir) -lcublas -lcufft -lcudart -lcuda"
+ fi
+ export LARGE_FILES="TRUE"
+
+ cd src
+ emake \
+ DIAG=PAR \
+ FC=$(tc-getFC) \
+ CC=$(tc-getCC) \
+ CXX=$(tc-getCXX) \
+ NWCHEM_TOP="${S}" \
+ NWCHEM_EXECUTABLE="${S}/bin/${NWCHEM_TARGET}/nwchem"
+
+ if use doc; then
+ cd "${S}"/doc
+ export VARTEXFONTS="${T}/fonts"
+ emake \
+ DIAG=PAR \
+ NWCHEM_TOP="${S}" \
+ pdf html
+ fi
+}
+
+src_install() {
+ dobin bin/${NWCHEM_TARGET}/nwchem
+
+ insinto /usr/share/NWChem/basis/
+ doins -r src/basis/libraries src/data
+ insinto /usr/share/NWChem/nwpw
+ doins -r src/nwpw/libraryps
+
+ insinto /etc
+ doins nwchemrc
+
+ use examples && \
+ insinto /usr/share/NWChem/ && \
+ doins -r examples
+
+ use nwchem-tests && \
+ insinto /usr/share/NWChem && \
+ doins -r QA/tests
+
+ use doc && \
+ insinto /usr/share/doc/"${P}" && \
+ doins -r doc/nwahtml && \
+ doins -r web
+
+}
+
+pkg_postinst() {
+ echo
+ elog "The user will need to link \$HOME/.nwchemrc to /etc/nwchemrc"
+ elog "or copy it in order to tell NWChem the right position of the"
+ elog "basis library and other necessary data."
+ echo
+}