git: 8228fb6e7863 - main - science/py-symfc: New port: Generate symmetrized force constants

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Fri, 15 Nov 2024 09:20:37 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=8228fb6e7863bab33ec6712eb1cb673088df9f44

commit 8228fb6e7863bab33ec6712eb1cb673088df9f44
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2024-11-15 05:41:32 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2024-11-15 09:20:26 +0000

    science/py-symfc: New port: Generate symmetrized force constants
---
 science/Makefile           |  1 +
 science/py-symfc/Makefile  | 30 ++++++++++++++++++++++++++++++
 science/py-symfc/distinfo  |  3 +++
 science/py-symfc/pkg-descr | 16 ++++++++++++++++
 4 files changed, 50 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index b816f26b8e34..ca5de6ee8d95 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -438,6 +438,7 @@
     SUBDIR += py-skrebate
     SUBDIR += py-spaghetti
     SUBDIR += py-spglib
+    SUBDIR += py-symfc
     SUBDIR += py-tensorflow
     SUBDIR += py-thewalrus
     SUBDIR += py-tobler
diff --git a/science/py-symfc/Makefile b/science/py-symfc/Makefile
new file mode 100644
index 000000000000..fe899e853d72
--- /dev/null
+++ b/science/py-symfc/Makefile
@@ -0,0 +1,30 @@
+PORTNAME=	symfc
+DISTVERSION=	1.1.5
+CATEGORIES=	science python
+MASTER_SITES=	PYPI
+PKGNAMEPREFIX=	${PYTHON_PKGNAMEPREFIX}
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Generate symmetrized force constants
+WWW=		https://github.com/symfc/symfc
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${PY_SETUPTOOLS} \
+		${PYTHON_PKGNAMEPREFIX}wheel>0:devel/py-wheel@${PY_FLAVOR}
+RUN_DEPENDS=	${PYNUMPY} \
+		${PYTHON_PKGNAMEPREFIX}scipy>0:science/py-scipy@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}spglib>0:science/py-spglib@${PY_FLAVOR}
+
+USES=		python
+USE_PYTHON=	pep517 cython autoplist pytest
+
+TEST_ENV=	${MAKE_ENV} PYTHONPATH=${STAGEDIR}${PYTHONPREFIX_SITELIBDIR}
+TEST_WRKSRC=	${WRKSRC}/tests
+
+NO_ARCH=	yes
+
+# tests as of 1.1.5: 21 failed, 36 passed, 22 warnings in 26.89s, see https://github.com/symfc/symfc/issues/133
+
+.include <bsd.port.mk>
diff --git a/science/py-symfc/distinfo b/science/py-symfc/distinfo
new file mode 100644
index 000000000000..6377fcee8ee7
--- /dev/null
+++ b/science/py-symfc/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1731648410
+SHA256 (symfc-1.1.5.tar.gz) = 4e13c3dc77be36ed31390904bbeb86dbf5e2c100641ff919b10c47dc788a0cf4
+SIZE (symfc-1.1.5.tar.gz) = 454766
diff --git a/science/py-symfc/pkg-descr b/science/py-symfc/pkg-descr
new file mode 100644
index 000000000000..d97ec160a186
--- /dev/null
+++ b/science/py-symfc/pkg-descr
@@ -0,0 +1,16 @@
+Atomic vibrations in crystals are often conveniently described using the phonon
+model. In this model, the crystal potential is expanded into a Taylor series
+with respect to atomic displacements from their equilibrium positions, and the
+expansion coefficients are referred to as force constants.
+
+Predicting phonon properties through computer simulations is becoming
+increasingly popular, with the supercell approach being one of the techniques
+employed for phonon calculations. In this method, force constants are derived
+from datasets of atomic forces and displacements obtained from supercell
+snapshots, which feature various configurations of atomic displacements.
+
+While force constants possess specific symmetries, those computed from
+displacement-force datasets often do not adhere to these symmetries due to
+factors such as numerical noise or approximations used. Symfc is a software
+designed to compute force constants from displacement-force datasets in the
+supercell approach, ensuring they meet the required symmetry constraints.