Skip to content

Commit

Permalink
science/elk: Update 8.5.10 -> 8.6.7
Browse files Browse the repository at this point in the history
Also add MPI options.
  • Loading branch information
yurivict committed Dec 13, 2022
1 parent 60b4b1b commit ac7e0fd
Show file tree
Hide file tree
Showing 4 changed files with 156 additions and 23 deletions.
29 changes: 21 additions & 8 deletions science/elk/Makefile
@@ -1,5 +1,5 @@
PORTNAME= elk
DISTVERSION= 8.5.10
DISTVERSION= 8.6.7
CATEGORIES= science
MASTER_SITES= SF/${PORTNAME}/
PKGNAMESUFFIX= -chemistry
Expand All @@ -12,24 +12,37 @@ WWW= http://elk.sourceforge.net/
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING

LIB_DEPENDS= libblis.so:math/blis \
LIB_DEPENDS= libblas.so:math/blas \
libblis.so:math/blis \
libfftw3.so:math/fftw3 \
libfftw3f.so:math/fftw3-float \
liblapack.so:math/lapack \
libopenblas.so:math/openblas \
libwannier.so:science/wannier90
libwannier.so:science/wannier90 \
libxc.so:science/libxc

USES= fortran gmake tar:tgz

BINARY_ALIAS= make=${GMAKE}

LDFLAGS+= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so

OPTIONS_GROUP= PARALLEL
OPTIONS_GROUP_PARALLEL= OPENMP MPI
OPTIONS_DEFINE= DOCS EXAMPLES
OPTIONS_DEFAULT= ${OPTIONS_GROUP_PARALLEL}
OPTIONS_DEFINE= DOCS EXAMPLES NATIVE OPENMP
OPTIONS_RADIO= MPI
OPTIONS_RADIO_MPI= MPICH OPENMPI
OPTIONS_DEFAULT= OPENMP MPICH
PARALLEL_DESC= Enable parallelizations:

NATIVE_MAKE_ARGS= FFLAGS="${FFLAGS} -march=native -mtune=native"
NATIVE_VARS= FFLAGS="-march=native -mtune=native"

OPENMP_VARS= OPENMP_FLAGS=-fopenmp
MPI_RUN_DEPENDS= mpirun:net/mpich

MPICH_USES= mpi:mpich
MPICH_MAKE_ARGS= F90=${MPIF90}

OPENMPI_USES= mpi:openmpi
OPENMPI_MAKE_ARGS= F90=${MPIF90}

PORTDOCS= *
PORTEXAMPLES= *
Expand Down
6 changes: 3 additions & 3 deletions science/elk/distinfo
@@ -1,3 +1,3 @@
TIMESTAMP = 1664142665
SHA256 (elk-chemistry/elk-8.5.10.tgz) = 41d6ff3715c26c7aff50df57d259c03df58abd4a04ad02c8ab76b962643b0c7b
SIZE (elk-chemistry/elk-8.5.10.tgz) = 4134441
TIMESTAMP = 1670840855
SHA256 (elk-chemistry/elk-8.6.7.tgz) = d685be1a8e401875646c80204addcdd6b93952ab8d1e821d512be903b38479a4
SIZE (elk-chemistry/elk-8.6.7.tgz) = 3764657
133 changes: 121 additions & 12 deletions science/elk/files/make.inc.in
@@ -1,16 +1,125 @@

MAKE = %%GMAKE%%
F90 = %%FC%%
F90_OPTS = -O3 -ffast-math -funroll-loops %%OPENMP_FLAGS%% %%FCFLAGS%%
F77 = %%FC%%
F77_OPTS = -O3 -ffast-math -funroll-loops %%OPENMP_FLAGS%%
AR = ar
LIB_SYS = -lopenblas -lblis
LIB_LPK = lapack.a blas.a
LIB_FFT = fftlib.a
LIB_W90 = -lwannier
SRC_OMP =


# Elk requires BLAS/LAPACK and fast Fourier transform (FFT) libraries.

# We recommend using optimised, mutithreaded BLAS/LAPACK libaries such as those
# provided by the Intel Math Kernel Library (MKL), OpenBLAS or BLIS.

# Elk can use either the Fastest Fourier Transform in the West (FFTW) or the
# MKL FFT. Both single and double precision versions of the FFT are needed.



#------------------------------------------------------------------------------#
# Libraries #
#------------------------------------------------------------------------------#

#-------------------------------------------------------------------------------
SRC_MKL = mkl_stub.f90
SRC_MPI = mpi_stub.f90
SRC_libxc = libxcifc_stub.f90
SRC_FFT = zfftifc.f90
# To enable MKL multithreaded parallelism, uncomment the following line and link
# with the MKL library.
#SRC_MKL =
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
SRC_OBLAS = oblas_stub.f90
# To enable OpenBLAS multithreaded parallelism, uncomment the following line and
# link with the OpenBLAS library.
#SRC_OBLAS =
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
SRC_BLIS = blis_stub.f90
# To enable BLIS multithreaded parallelism, uncomment the following line and
# link with the BLIS library.
#SRC_BLIS =
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# If your compiler does *not* support the Message Passing Interface (MPI) then
# uncomment the line below.
#SRC_MPI = mpi_stub.f90
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# Elk supports two FFT libraries:
# Fastest Fourier Transform in the West (FFTW)
# Intel Math Kernel Library (MKL) Fast Fourier Transform
#
# FFTW is enabled by default with:
SRC_FFT = zfftifc_fftw.f90 cfftifc_fftw.f90
#
# To enable MKL FFT instead, copy mkl_dfti.f90 to the elk/src directory and
# uncomment the line below.
#SRC_FFT = mkl_dfti.f90 zfftifc_mkl.f90 cfftifc_mkl.f90
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
SRC_LIBXC = libxcifc_stub.f90
# To enable Libxc first download and compile version 5.x of the library. Next
# copy the files libxcf90.a and libxc.a to the elk/src directory and uncomment
# the following lines.
LIB_LIBXC = -lxcf90 -lxc
SRC_LIBXC = libxcf90.f90 libxcifc.f90
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
SRC_W90S = w90_stub.f90
# To enable the Wannier90 library copy libwannier.a to the elk/src directory and
# uncomment the following lines.
#SRC_W90S =
#LIB_W90 = libwannier.a
#-------------------------------------------------------------------------------



#------------------------------------------------------------------------------#
# Compilers #
#------------------------------------------------------------------------------#

#-------------------------------------------------------------------------------
# Intel MPI Fortran version 18 and later.
#F90 = %%FC%%
#F90_OPTS = -O3 %%OPENMP_FLAGS%% %%FCFLAGS%%
#F90_LIB = -liomp5 -lpthread -lm -ldl
#SRC_MKL =
#AR = xiar
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# GNU Fortran compiler with MKL.
F90 =
F90_OPTS = $(FFLAGS) -Ofast -fomit-frame-pointer -fopenmp -ffpe-summary=none -fallow-argument-mismatch
F90_LIB = -llapack -lblas -lfftw3 -lfftw3f -pthread
SRC_MKL =
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# GNU Fortran compiler with OpenBLAS, LAPACK and FFTW
#F90 = mpif90
#F90_OPTS = -Ofast -march=native -mtune=native -fomit-frame-pointer -fopenmp -ffpe-summary=none -fallow-argument-mismatch
#F90_LIB = -lopenblas -llapack -lfftw3
#SRC_OBLAS =
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# Intel Fortran debugging and profiling options.
#F90 = mpiifort
#F90_OPTS = -O3 -qopenmp -mkl=parallel -pg
#F90_LIB = -liomp5 -lpthread -lm -ldl
#SRC_MKL =
#AR = ar
#-------------------------------------------------------------------------------

#-------------------------------------------------------------------------------
# GNU Fortran debugging options.
#F90 = gfortran
#F90_OPTS = -O3 -Wunused -fopenmp
#F90_LIB = -lmkl_gf_lp64 -lmkl_gnu_thread -lmkl_core -lpthread
#SRC_MKL =
#SRC_MPI = mpi_stub.f90
#-------------------------------------------------------------------------------

11 changes: 11 additions & 0 deletions science/elk/files/patch-src_Makefile
@@ -0,0 +1,11 @@
--- src/Makefile.orig 2022-12-12 11:05:38 UTC
+++ src/Makefile
@@ -91,7 +91,7 @@ SRC_main1 = \
rfcopy.f90 rhomagv.f90 eveqn.f90 genffacgp.f90 unitary.f90 zmdet.f90 \
rfmtftoc.f90 zminv.f90 symrf.f90 genvmat.f90 writeeval.f90 mixerifc.f90 \
splinew.f90 nfftifc.f90 batchdv.f90 readevalsv.f90 readoccsv.f90 z2mm.f90 \
- z2mctm.f90 z2mmct.f90 zmctmu.f90 zmctm.f90
+ z2mctm.f90 z2mmct.f90 zmctmu.f90 zmctm.f90 mkl_stub.f90

SRC_main = $(SRC_main0) $(SRC_main1)

0 comments on commit ac7e0fd

Please sign in to comment.