git: 6b4f2fe991ff - main - science/nlcglib: New port: Nonlinear CG methods for wave-function optimization in DFT

From: Yuri Victorovich <yuri_at_FreeBSD.org>
Date: Sat, 27 Aug 2022 00:11:49 UTC
The branch main has been updated by yuri:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6b4f2fe991ff2825a4bbaa3a1c3a3607071b7932

commit 6b4f2fe991ff2825a4bbaa3a1c3a3607071b7932
Author:     Yuri Victorovich <yuri@FreeBSD.org>
AuthorDate: 2022-08-27 00:06:37 +0000
Commit:     Yuri Victorovich <yuri@FreeBSD.org>
CommitDate: 2022-08-27 00:11:44 +0000

    science/nlcglib: New port: Nonlinear CG methods for wave-function optimization in DFT
---
 science/Makefile          |  1 +
 science/nlcglib/Makefile  | 37 +++++++++++++++++++++++++++++++++++++
 science/nlcglib/distinfo  |  3 +++
 science/nlcglib/pkg-descr |  4 ++++
 science/nlcglib/pkg-plist |  7 +++++++
 5 files changed, 52 insertions(+)

diff --git a/science/Makefile b/science/Makefile
index 75361ae656a0..2931e21eec3c 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -192,6 +192,7 @@
     SUBDIR += netcdf-cxx
     SUBDIR += netcdf-fortran
     SUBDIR += nifticlib
+    SUBDIR += nlcglib
     SUBDIR += nwchem
     SUBDIR += nwchem-data
     SUBDIR += octopus
diff --git a/science/nlcglib/Makefile b/science/nlcglib/Makefile
new file mode 100644
index 000000000000..f06b36ebe793
--- /dev/null
+++ b/science/nlcglib/Makefile
@@ -0,0 +1,37 @@
+PORTNAME=	nlcglib
+DISTVERSIONPREFIX=	v
+DISTVERSION=	0.9-148
+DISTVERSIONSUFFIX=	-g9a1bca6
+CATEGORIES=	science
+
+MAINTAINER=	yuri@FreeBSD.org
+COMMENT=	Nonlinear CG methods for wave-function optimization in DFT
+
+LICENSE=	BSD3CLAUSE
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	nlohmann-json>0:devel/nlohmann-json
+LIB_DEPENDS=	libkokkoscore.so:devel/kokkos \
+		libopenblas.so:math/openblas
+TEST_DEPENDS=	googletest>0:devel/googletest
+
+USES=		cmake:testing pkgconfig
+USE_LDCONFIG=	yes
+
+USE_GITHUB=	yes
+GH_ACCOUNT=	simonpintarelli
+
+CMAKE_TESTING_ON=	BUILD_TESTS # tests fail to compile, see https://github.com/simonpintarelli/nlcglib/issues/14
+
+OPTIONS_DEFINE=		OPENMP
+OPTIONS_SINGLE=		MPI
+OPTIONS_SINGLE_MPI=	MPICH OPENMPI
+OPTIONS_DEFAULT=	MPICH OPENMP
+
+MPICH_USES=		mpi:mpich
+
+OPENMPI_USES=		mpi:openmpi
+
+OPENMP_CMAKE_BOOL=	USE_OPENMP # binaries are still linked with libomp when USE_OPENMP=OFF, see https://github.com/simonpintarelli/nlcglib/issues/13
+
+.include <bsd.port.mk>
diff --git a/science/nlcglib/distinfo b/science/nlcglib/distinfo
new file mode 100644
index 000000000000..3a7ff4e83e3b
--- /dev/null
+++ b/science/nlcglib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1661552959
+SHA256 (simonpintarelli-nlcglib-v0.9-148-g9a1bca6_GH0.tar.gz) = 0d33e0293805d0f8f1848ef6c8b6909e08c6bdab9c3c25039bbf29aa7055d18b
+SIZE (simonpintarelli-nlcglib-v0.9-148-g9a1bca6_GH0.tar.gz) = 66717
diff --git a/science/nlcglib/pkg-descr b/science/nlcglib/pkg-descr
new file mode 100644
index 000000000000..34bcad12d0a3
--- /dev/null
+++ b/science/nlcglib/pkg-descr
@@ -0,0 +1,4 @@
+Nlcglib is a plugin for sirius providing robust wave-function optimization
+to q-e-sirius.
+
+WWW: https://github.com/simonpintarelli/nlcglib
diff --git a/science/nlcglib/pkg-plist b/science/nlcglib/pkg-plist
new file mode 100644
index 000000000000..15ab72f9937e
--- /dev/null
+++ b/science/nlcglib/pkg-plist
@@ -0,0 +1,7 @@
+include/nlcglib/interface.hpp
+include/nlcglib/nlcglib.hpp
+lib/cmake/nlcglib/nlcglib-config.cmake
+lib/cmake/nlcglib/nlcglib-targets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/nlcglib/nlcglib-targets.cmake
+lib/cmake/nlcglib/nlcglibConfigVersion.cmake
+lib/libnlcglib.so