summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--science/Makefile1
-rw-r--r--science/py-pymbd/Makefile28
-rw-r--r--science/py-pymbd/distinfo3
-rw-r--r--science/py-pymbd/files/example.py6
-rw-r--r--science/py-pymbd/pkg-descr12
5 files changed, 50 insertions, 0 deletions
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