git: 9e90ff1d77cf - main - science/py-pymbd: New port: Many-body dispersion library

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Wed, 03 Aug 2022 17:52:03 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=9e90ff1d77cf396920e001657084c6d6e9ef979e

commit 9e90ff1d77cf396920e001657084c6d6e9ef979e
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-03 17:51:20 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-03 17:52:01 +0000

    science/py-pymbd: New port: Many-body dispersion library
---
 science/Makefile                  |  1 +
 science/py-pymbd/Makefile         | 28 ++++++++++++++++++++++++++++
 science/py-pymbd/distinfo         |  3 +++
 science/py-pymbd/files/example.py |  6 ++++++
 science/py-pymbd/pkg-descr        | 12 ++++++++++++
 5 files changed, 50 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index fefe4450d49d..8cf5f3a1088d 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -330,6 +330,7 @@
     SUBDIR += py-pygmo2
     SUBDIR += py-pyked
     SUBDIR += py-pymatgen
+    SUBDIR += py-pymbd
     SUBDIR += py-pymol
     SUBDIR += py-pyosf
     SUBDIR += py-pyprecice
diff --git a/science/py-pymbd/Makefile b/science/py-pymbd/Makefile
new file mode 100644
index 000000000000..2a3986a4fd7d
--- /dev/null
+++ b/science/py-pymbd/Makefile
@@ -0,0 +1,28 @@
+PORTNAME=	pymbd
+DISTVERSION=	0.12.5
+CATEGORIES=	science # chemistry
+MASTER_SITES=	https://github.com/libmbd/libmbd/releases/download/${DISTVERSION}/
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Many-body dispersion library
+
+LICENSE=	MPL20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PYTHON_PKGNAMEPREFIX}cffi>:devel/py-cffi@${PY_FLAVOR}
+LIB_DEPENDS=	libmbd.so:science/libmbd
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}cffi>:devel/py-cffi@${PY_FLAVOR}
+
+USES=		localbase python
+USE_PYTHON=	distutils autoplist
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+
+post-install: # strip binary
+	@${STRIP_CMD} ${STAGEDIR}${PYTHON_SITELIBDIR}/${PORTNAME}/_libmbd.abi3.so
+
+do-test: # also see https://github.com/libmbd/libmbd/issues/44
+	@${SETENV} ${TEST_ENV} ${PYTHON_CMD} ${FILESDIR}/example.py
+
+.include <bsd.port.mk>
diff --git a/science/py-pymbd/distinfo b/science/py-pymbd/distinfo
new file mode 100644
index 000000000000..30185025db76
--- /dev/null
+++ b/science/py-pymbd/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1659547712
+SHA256 (pymbd-0.12.5.tar.gz) = ca13375f8f4051380e7833bd3dd7c03780b3e2064fa96ec0da80b3fd7adfae78
+SIZE (pymbd-0.12.5.tar.gz) = 31229
diff --git a/science/py-pymbd/files/example.py b/science/py-pymbd/files/example.py
new file mode 100644
index 000000000000..31037cd7f2ce
--- /dev/null
+++ b/science/py-pymbd/files/example.py
@@ -0,0 +1,6 @@
+from pymbd import mbd_energy_species
+from pymbd.fortran import MBDGeom
+
+energy = mbd_energy_species([(0, 0, 0), (0, 0, 7.5)], ['Ar', 'Ar'], [1, 1], 0.83)
+
+print("energy="+str(energy))
diff --git a/science/py-pymbd/pkg-descr b/science/py-pymbd/pkg-descr
new file mode 100644
index 000000000000..b0ac6664d8fd
--- /dev/null
+++ b/science/py-pymbd/pkg-descr
@@ -0,0 +1,12 @@
+Pymbd is Python bindings for Libmbd.
+
+Libmbd implements the many-body dispersion (MBD) method in several
+programming languages and frameworks:
+
+The Fortran implementation is the reference, most advanced
+implementation, with support for analytical gradients and distributed
+parallelism, and additional functionality beyond the MBD method
+itself. It provides a low-level and a high-level Fortran API, as well
+as a C API. Furthermore, Python bindings to the C API are provided.
+
+WWW: https://github.com/libmbd/libmbd