aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2022-08-27 04:25:01 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2022-08-27 04:25:42 +0000
commit45cc1f7d41df6548b27553e528461021710a31a9 (patch)
tree61664f7236692db322e4ab9dac1b07ddd277292a
parentae1c026073bac29bdf4181f5b74cac13b38f537d (diff)
downloadports-45cc1f7d41df6548b27553e528461021710a31a9.tar.gz
ports-45cc1f7d41df6548b27553e528461021710a31a9.zip
science/sirius: New port: Domain specific library for electronic structure calculations
-rw-r--r--science/Makefile1
-rw-r--r--science/sirius/Makefile50
-rw-r--r--science/sirius/distinfo5
-rw-r--r--science/sirius/pkg-descr9
-rw-r--r--science/sirius/pkg-plist164
5 files changed, 229 insertions, 0 deletions
diff --git a/science/Makefile b/science/Makefile
index 2931e21eec3c..a67584509e4d 100644
--- a/science/Makefile
+++ b/science/Makefile
@@ -429,6 +429,7 @@
SUBDIR += simlib
SUBDIR += simple-dftd3
SUBDIR += simsmith
+ SUBDIR += sirius
SUBDIR += smoldyn
SUBDIR += sparta
SUBDIR += spglib
diff --git a/science/sirius/Makefile b/science/sirius/Makefile
new file mode 100644
index 000000000000..d0f518121fdb
--- /dev/null
+++ b/science/sirius/Makefile
@@ -0,0 +1,50 @@
+PORTNAME= sirius
+DISTVERSIONPREFIX= v
+DISTVERSION= 7.3.2
+CATEGORIES= science
+PKGNAMESUFFIX= -quantum-chemistry # other software also has the name "sirius"
+
+PATCH_SITES= https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES= c45ef15637958885b1b299c09ec1bf9376e50ecc.patch:-p1 # https://github.com/electronic-structure/SIRIUS/pull/757
+
+MAINTAINER= yuri@FreeBSD.org
+COMMENT= Domain specific library for electronic structure calculations
+
+LICENSE= BSD2CLAUSE
+LICENSE_FILE= ${WRKSRC}/LICENSE
+
+LIB_DEPENDS= libcosta.so:math/costa \
+ libgsl.so:math/gsl \
+ libhdf5.so:science/hdf5 \
+ libopenblas.so:math/openblas \
+ libscalapack.so:math/scalapack \
+ libspfft.so:math/spfft \
+ libspla.so:math/spla \
+ libsymspg.so:science/spglib \
+ libxc.so:science/libxc
+
+USES= cmake:testing compiler:c++14-lang eigen:3,test fortran pkgconfig
+USE_LDCONFIG= yes
+
+USE_GITHUB= yes
+GH_ACCOUNT= electronic-structure
+GH_PROJECT= SIRIUS
+
+OPTIONS_DEFINE= NLCGLIB
+OPTIONS_SINGLE= MPI
+OPTIONS_SINGLE_MPI= MPICH OPENMPI
+OPTIONS_DEFAULT= MPICH # NLCGLIB
+
+NLCGLIB_DESC= Enable nlcglib
+NLCGLIB_CMAKE_BOOL= USE_NLCGLIB
+NLCGLIB_LIB_DEPENDS= libnlcglib.so:science/nlcglib \
+ libkokkoscore.so:devel/kokkos
+NLCGLIB_BROKEN= build breaks, see https://github.com/electronic-structure/SIRIUS/issues/759
+
+MPICH_USES= mpi:mpich
+
+OPENMPI_USES= mpi:openmpi
+
+# many tests fail, see https://github.com/electronic-structure/SIRIUS/issues/760
+
+.include <bsd.port.mk>
diff --git a/science/sirius/distinfo b/science/sirius/distinfo
new file mode 100644
index 000000000000..5ad19bfbde49
--- /dev/null
+++ b/science/sirius/distinfo
@@ -0,0 +1,5 @@
+TIMESTAMP = 1661540097
+SHA256 (electronic-structure-SIRIUS-v7.3.2_GH0.tar.gz) = a256508de6b344345c295ad8642dbb260c4753cd87cc3dd192605c33542955d7
+SIZE (electronic-structure-SIRIUS-v7.3.2_GH0.tar.gz) = 60638490
+SHA256 (c45ef15637958885b1b299c09ec1bf9376e50ecc.patch) = fe5ba232dea3d3b809e991f4d036ee13fbd108b7bee39595ffea82c8a648796d
+SIZE (c45ef15637958885b1b299c09ec1bf9376e50ecc.patch) = 501
diff --git a/science/sirius/pkg-descr b/science/sirius/pkg-descr
new file mode 100644
index 000000000000..5a3468ee0c9f
--- /dev/null
+++ b/science/sirius/pkg-descr
@@ -0,0 +1,9 @@
+SIRIUS is a domain specific library for electronic structure calculations. It
+implements pseudopotential plane wave (PP-PW) and full potential linearized
+augmented plane wave (FP-LAPW) methods and is designed for GPU acceleration of
+popular community codes such as Exciting, Elk and Quantum ESPRESSO. SIRIUS is
+written in C++14 with MPI, OpenMP and CUDA/ROCm programming models. SIRIUS is
+organised as a collection of classes that abstract away the different building
+blocks of DFT self-consistency cycle.
+
+WWW: https://github.com/electronic-structure/SIRIUS
diff --git a/science/sirius/pkg-plist b/science/sirius/pkg-plist
new file mode 100644
index 000000000000..95ea42754ada
--- /dev/null
+++ b/science/sirius/pkg-plist
@@ -0,0 +1,164 @@
+bin/atom
+bin/hydrogen
+bin/sirius.scf
+bin/unit_cell_tools
+bin/upf1_to_json.py
+bin/upf2_to_json.py
+bin/upf_to_json
+bin/upf_to_json.py
+include/sirius/input_schema.hpp
+include/sirius/sirius.mod
+include/sirius/src/SDDK/dmatrix.hpp
+include/sirius/src/SDDK/fft.hpp
+include/sirius/src/SDDK/fft3d_grid.hpp
+include/sirius/src/SDDK/geometry3d.hpp
+include/sirius/src/SDDK/gvec.hpp
+include/sirius/src/SDDK/hdf5_tree.hpp
+include/sirius/src/SDDK/matrix_storage.hpp
+include/sirius/src/SDDK/memory.hpp
+include/sirius/src/SDDK/omp.hpp
+include/sirius/src/SDDK/serialize_mdarray.hpp
+include/sirius/src/SDDK/serializer.hpp
+include/sirius/src/SDDK/splindex.hpp
+include/sirius/src/SDDK/type_definition.hpp
+include/sirius/src/SDDK/wave_functions.hpp
+include/sirius/src/SDDK/wf_inner.hpp
+include/sirius/src/SDDK/wf_ortho.hpp
+include/sirius/src/SDDK/wf_trans.hpp
+include/sirius/src/_header_file_template.hpp
+include/sirius/src/api/error_codes.hpp
+include/sirius/src/band/band.hpp
+include/sirius/src/band/davidson.hpp
+include/sirius/src/band/residuals.hpp
+include/sirius/src/beta_projectors/beta_projectors.hpp
+include/sirius/src/beta_projectors/beta_projectors_base.hpp
+include/sirius/src/beta_projectors/beta_projectors_gradient.hpp
+include/sirius/src/beta_projectors/beta_projectors_strain_deriv.hpp
+include/sirius/src/constants.hpp
+include/sirius/src/context/config.hpp
+include/sirius/src/context/simulation_context.hpp
+include/sirius/src/context/simulation_parameters.hpp
+include/sirius/src/density/augmentation_operator.hpp
+include/sirius/src/density/density.hpp
+include/sirius/src/density/occupation_matrix.hpp
+include/sirius/src/density/paw_density.hpp
+include/sirius/src/dft/dft_ground_state.hpp
+include/sirius/src/dft/energy.hpp
+include/sirius/src/dft/smearing.hpp
+include/sirius/src/function3d/field4d.hpp
+include/sirius/src/function3d/periodic_function.hpp
+include/sirius/src/function3d/smooth_periodic_function.hpp
+include/sirius/src/function3d/spheric_function.hpp
+include/sirius/src/geometry/force.hpp
+include/sirius/src/geometry/non_local_functor.hpp
+include/sirius/src/geometry/stress.hpp
+include/sirius/src/geometry/wavefunction_strain_deriv.hpp
+include/sirius/src/gpu/acc.hpp
+include/sirius/src/gpu/acc_blas.hpp
+include/sirius/src/gpu/acc_blas_api.hpp
+include/sirius/src/gpu/acc_runtime.hpp
+include/sirius/src/gpu/cuda_common.hpp
+include/sirius/src/gpu/cuda_timer.hpp
+include/sirius/src/gpu/cusolver.hpp
+include/sirius/src/gpu/fft_kernels.hpp
+include/sirius/src/gpu/magma.hpp
+include/sirius/src/gpu/magma_threadsetting.h
+include/sirius/src/hamiltonian/hamiltonian.hpp
+include/sirius/src/hamiltonian/local_operator.hpp
+include/sirius/src/hamiltonian/non_local_operator.hpp
+include/sirius/src/hubbard/hubbard.hpp
+include/sirius/src/hubbard/hubbard_matrix.hpp
+include/sirius/src/k_point/k_point.hpp
+include/sirius/src/k_point/k_point_set.hpp
+include/sirius/src/lapw/matching_coefficients.hpp
+include/sirius/src/linalg/blacs_grid.hpp
+include/sirius/src/linalg/blas_lapack.h
+include/sirius/src/linalg/eigenproblem.hpp
+include/sirius/src/linalg/eigensolver.hpp
+include/sirius/src/linalg/elpa.hpp
+include/sirius/src/linalg/inverse_sqrt.hpp
+include/sirius/src/linalg/linalg.hpp
+include/sirius/src/linalg/linalg_base.hpp
+include/sirius/src/linalg/linalg_spla.hpp
+include/sirius/src/linalg/scalapack.h
+include/sirius/src/mixer/anderson_mixer.hpp
+include/sirius/src/mixer/anderson_stable_mixer.hpp
+include/sirius/src/mixer/broyden2_mixer.hpp
+include/sirius/src/mixer/linear_mixer.hpp
+include/sirius/src/mixer/mixer.hpp
+include/sirius/src/mixer/mixer_factory.hpp
+include/sirius/src/mixer/mixer_functions.hpp
+include/sirius/src/mpi/communicator.hpp
+include/sirius/src/mpi/mpi_grid.hpp
+include/sirius/src/multi_cg/multi_cg.hpp
+include/sirius/src/nlcglib/adaptor.hpp
+include/sirius/src/nlcglib/apply_hamiltonian.hpp
+include/sirius/src/potential/potential.hpp
+include/sirius/src/potential/xc_functional.hpp
+include/sirius/src/potential/xc_functional_base.hpp
+include/sirius/src/pseudopotential_hmatrix.hpp
+include/sirius/src/radial/radial_grid.hpp
+include/sirius/src/radial/radial_integrals.hpp
+include/sirius/src/radial/radial_solver.hpp
+include/sirius/src/radial/spline.hpp
+include/sirius/src/sht/gaunt.hpp
+include/sirius/src/sht/lebedev_grids.hpp
+include/sirius/src/sht/sht.hpp
+include/sirius/src/sirius.hpp
+include/sirius/src/sirius_version.hpp
+include/sirius/src/specfunc/sbessel.hpp
+include/sirius/src/specfunc/specfunc.hpp
+include/sirius/src/symmetry/check_gvec.hpp
+include/sirius/src/symmetry/crystal_symmetry.hpp
+include/sirius/src/symmetry/get_irreducible_reciprocal_mesh.hpp
+include/sirius/src/symmetry/lattice.hpp
+include/sirius/src/symmetry/rotation.hpp
+include/sirius/src/symmetry/symmetrize.hpp
+include/sirius/src/testing.hpp
+include/sirius/src/typedefs.hpp
+include/sirius/src/unit_cell/atom.hpp
+include/sirius/src/unit_cell/atom_symmetry_class.hpp
+include/sirius/src/unit_cell/atom_type.hpp
+include/sirius/src/unit_cell/atom_type_base.hpp
+include/sirius/src/unit_cell/atomic_data.hpp
+include/sirius/src/unit_cell/basis_functions_index.hpp
+include/sirius/src/unit_cell/free_atom.hpp
+include/sirius/src/unit_cell/hubbard_orbitals_descriptor.hpp
+include/sirius/src/unit_cell/radial_functions_index.hpp
+include/sirius/src/unit_cell/unit_cell.hpp
+include/sirius/src/utils/any_ptr.hpp
+include/sirius/src/utils/cmd_args.hpp
+include/sirius/src/utils/env.hpp
+include/sirius/src/utils/filesystem.hpp
+include/sirius/src/utils/json.hpp
+include/sirius/src/utils/nlohmann_json.hpp
+include/sirius/src/utils/nvtx_profiler.hpp
+include/sirius/src/utils/power.hpp
+include/sirius/src/utils/profiler.hpp
+include/sirius/src/utils/rt_graph.hpp
+include/sirius/src/utils/rte.hpp
+include/sirius/src/utils/utils.hpp
+include/sirius/version.hpp
+lib/cmake/sirius/cudalibs_target.cmake
+lib/cmake/sirius/hdf5_target.cmake
+lib/cmake/sirius/modules/FindCRAY_LIBSCI.cmake
+lib/cmake/sirius/modules/FindElpa.cmake
+lib/cmake/sirius/modules/FindFFTW.cmake
+lib/cmake/sirius/modules/FindFilesystem.cmake
+lib/cmake/sirius/modules/FindHIP.cmake
+lib/cmake/sirius/modules/FindHIP/run_hipcc.cmake
+lib/cmake/sirius/modules/FindHIP/run_make2cmake.cmake
+lib/cmake/sirius/modules/FindLibSPG.cmake
+lib/cmake/sirius/modules/FindLibVDWXC.cmake
+lib/cmake/sirius/modules/FindLibXC.cmake
+lib/cmake/sirius/modules/FindMAGMA.cmake
+lib/cmake/sirius/modules/FindMKL.cmake
+lib/cmake/sirius/modules/FindPython2.cmake
+lib/cmake/sirius/modules/FindPythonSupport.cmake
+lib/cmake/sirius/modules/FindSCALAPACK.cmake
+lib/cmake/sirius/modules/Findmpi4py.cmake
+lib/cmake/sirius/modules/GitSubmodule.cmake
+lib/cmake/sirius/siriusConfig.cmake
+lib/cmake/sirius/siriusTargets-%%CMAKE_BUILD_TYPE%%.cmake
+lib/cmake/sirius/siriusTargets.cmake
+lib/libsirius.so