diff options
author | Rene Ladan <rene@FreeBSD.org> | 2020-01-01 11:46:08 +0000 |
---|---|---|
committer | Rene Ladan <rene@FreeBSD.org> | 2020-01-01 11:46:08 +0000 |
commit | 12f974ad28b37b69ae565644784623a4a49b1d32 (patch) | |
tree | e1de30302164fba037edd51962e8f336730aa5ed | |
parent | f2aea6bcb5e33f3312681450946471970022a977 (diff) | |
download | ports-12f974ad28b37b69ae565644784623a4a49b1d32.tar.gz ports-12f974ad28b37b69ae565644784623a4a49b1d32.zip |
Resurrect ports depending on devel/openmp.
These ports will transition transparantly to openmp from base once
FreeBSD 12.0 reaches end-of-life.
Reported by: jbeich [1] [2]
[1] https://lists.freebsd.org/pipermail/svn-ports-head/2019-May/210482.html
[2] https://lists.freebsd.org/pipermail/svn-ports-head/2019-December/229648.html
Notes
Notes:
svn path=/head/; revision=521714
28 files changed, 795 insertions, 4 deletions
@@ -13670,7 +13670,6 @@ graphics/linux-c6-sdl_image|graphics/linux-c7-sdl_image|2019-12-31|Has expired: graphics/linux-c6-sdl_ttf|graphics/linux-c7-sdl_ttf|2019-12-31|Has expired: Superseded by CentOS 7 graphics/linux-c6-tiff|graphics/linux-c7-tiff|2019-12-31|Has expired: Superseded by CentOS 7 lang/linux-c6-tcl85|lang/linux-c7-tcl85|2019-12-31|Has expired: Superseded by CentOS 7 -math/blazeiterative||2019-12-31|Has expired: Depends on expiring devel/openmp multimedia/linux-c6-libtheora|multimedia/linux-c7-libtheora|2019-12-31|Has expired: Superseded by CentOS 7 multimedia/linux-c6-libv4l|multimedia/linux-c7-libv4l|2019-12-31|Has expired: Superseded by CentOS 7 net/linux-c6-avahi-libs|net/linux-c7-avahi-libs|2019-12-31|Has expired: Superseded by CentOS 7 @@ -13678,9 +13677,6 @@ net/linux-c6-openldap|net/linux-c7-openldap|2019-12-31|Has expired: Superseded b net/linux-c6-tcp_wrappers-libs|net/linux-c7-tcp_wrappers-libs|2019-12-31|Has expired: Superseded by CentOS 7 net/py-soappy|net/py-zeep|2019-12-31|Has expired: Please consider using net/py-zeep as upstream development is stalled and recommends using another stalled library stud print/linux-c6-cups-libs|print/linux-c7-cups-libs|2019-12-31|Has expired: Superseded by CentOS 7 -science/openmx||2019-12-31|Has expired: Depends on expiring devel/openmp -science/py-PyFR||2019-12-31|Has expired: Depends on expiring devel/openmp -science/py-phono3py||2019-12-31|Has expired: Depends on expiring devel/openmp security/linux-c6-audit-libs||2019-12-31|Has expired: Superseded by CentOS 7 security/linux-c6-cyrus-sasl2|security/linux-c7-cyrus-sasl2|2019-12-31|Has expired: Superseded by CentOS 7 security/linux-c6-gnutls|security/linux-c7-gnutls|2019-12-31|Has expired: Superseded by CentOS 7 diff --git a/math/Makefile b/math/Makefile index 9b5a23c6f14b..aa244eb54807 100644 --- a/math/Makefile +++ b/math/Makefile @@ -148,6 +148,7 @@ SUBDIR += blas SUBDIR += blasfeo SUBDIR += blaze + SUBDIR += blazeiterative SUBDIR += blis SUBDIR += blitz++ SUBDIR += blocksolve95 diff --git a/math/blazeiterative/Makefile b/math/blazeiterative/Makefile new file mode 100644 index 000000000000..ab151448c086 --- /dev/null +++ b/math/blazeiterative/Makefile @@ -0,0 +1,26 @@ +# $FreeBSD$ + +PORTNAME= blazeiterative +PORTVERSION= g20180409 +PORTREVISION= 9 +CATEGORIES= math + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Set of iterative linear system solvers for use with the Blaze library + +#LICENSE= https://github.com/tjolsen/BlazeIterative/issues/9 + +BUILD_DEPENDS= blaze>0:math/blaze \ + boost-libs>0:devel/boost-libs \ + openblas>0:math/openblas \ + openmp>0:devel/openmp +RUN_DEPENDS= blaze>0:math/blaze + +USES= cmake compiler:c++14-lang fortran localbase:ldflags +USE_GITHUB= yes +GH_ACCOUNT= tjolsen +GH_PROJECT= BlazeIterative +GH_TAGNAME= e9f24b3 +NO_ARCH= yes + +.include <bsd.port.mk> diff --git a/math/blazeiterative/distinfo b/math/blazeiterative/distinfo new file mode 100644 index 000000000000..fc4ee87be078 --- /dev/null +++ b/math/blazeiterative/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1534702306 +SHA256 (tjolsen-BlazeIterative-g20180409-e9f24b3_GH0.tar.gz) = 273907aadbbb1bfa263809048ef2ade71ac15cd0b337ac2d741d4e2b9bf3de61 +SIZE (tjolsen-BlazeIterative-g20180409-e9f24b3_GH0.tar.gz) = 5833 diff --git a/math/blazeiterative/pkg-descr b/math/blazeiterative/pkg-descr new file mode 100644 index 000000000000..ff72ccede983 --- /dev/null +++ b/math/blazeiterative/pkg-descr @@ -0,0 +1,21 @@ +A set of iterative linear system solvers intended for use with the Blaze +library, a high-performance C++ linear algebra library. The API is currently +based on a tag-dispatch system to choose a particular algorithm. + +Currently implemented algorithms: +* Conjugate Gradient (CG) +* BiCGSTAB + +Planned algorithms: +* Preconditioned CG +* Preconditioned BiCGSTAB +* (Preconditioned) BiCGSTAB(l) +* GMRES +* Arnoldi +* Lanczos + +Potential algorithms (if sufficient interest): +* LSQR +* LSMR + +WWW: https://github.com/tjolsen/BlazeIterative diff --git a/math/blazeiterative/pkg-plist b/math/blazeiterative/pkg-plist new file mode 100644 index 000000000000..3754f722f718 --- /dev/null +++ b/math/blazeiterative/pkg-plist @@ -0,0 +1,13 @@ +include/BlazeIterative/BlazeIterative.hpp +include/BlazeIterative/IterativeCommon.hpp +include/BlazeIterative/IterativeTag.hpp +include/BlazeIterative/TerminationStatus.hpp +include/BlazeIterative/solve.hpp +include/BlazeIterative/solvers/BiCGSTAB.hpp +include/BlazeIterative/solvers/BiCGSTABL.hpp +include/BlazeIterative/solvers/BiCGSTABLTag.hpp +include/BlazeIterative/solvers/BiCGSTABTag.hpp +include/BlazeIterative/solvers/ConjugateGradient.hpp +include/BlazeIterative/solvers/ConjugateGradientTag.hpp +include/BlazeIterative/solvers/solvers.hpp +share/BlazeIterative/cmake/BlazeIterativeConfig.cmake diff --git a/science/Makefile b/science/Makefile index 1104daea1411..b5866e1914e4 100644 --- a/science/Makefile +++ b/science/Makefile @@ -175,6 +175,7 @@ SUBDIR += openbabel SUBDIR += openkim SUBDIR += openkim-models + SUBDIR += openmx SUBDIR += opensim-core SUBDIR += opensph SUBDIR += opsin @@ -223,6 +224,7 @@ SUBDIR += py-MDAnalysis SUBDIR += py-MDAnalysisTests SUBDIR += py-OpenFermion + SUBDIR += py-PyFR SUBDIR += py-PyQuante SUBDIR += py-ScientificPython SUBDIR += py-SimpleSpectral @@ -255,6 +257,7 @@ SUBDIR += py-openpiv SUBDIR += py-paida SUBDIR += py-paramz + SUBDIR += py-phono3py SUBDIR += py-phonopy SUBDIR += py-pupynere SUBDIR += py-pyaixi diff --git a/science/openmx/Makefile b/science/openmx/Makefile new file mode 100644 index 000000000000..713c7a5232c7 --- /dev/null +++ b/science/openmx/Makefile @@ -0,0 +1,74 @@ +# $FreeBSD$ + +PORTNAME= openmx +DISTVERSION= 3.8.5 # the 18June12 patch upgrades 3.8 -> 3.8.5 +PORTREVISION= 6 +CATEGORIES= science +MASTER_SITES= http://www.openmx-square.org/ \ + http://www.openmx-square.org/bugfixed/18June12/:patch +DISTFILES= ${PORTNAME}${DISTVERSION:R}${EXTRACT_SUFX} \ + patch${DISTVERSION}${EXTRACT_SUFX}:patch # this patch isn't a patch, but a set of file updates +DIST_SUBDIR= ${PORTNAME} +EXTRACT_ONLY= ${PORTNAME}${DISTVERSION:R}${EXTRACT_SUFX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Nanoscale material simulations using density functional theories (DFT) + +BROKEN= unfetchable + +LICENSE= GPLv2 + +BROKEN_i386= undefined reference to `__atomic_load', see bug#229605 and https://reviews.llvm.org/D42154 + +LIB_DEPENDS= libblas.so:math/blas \ + libfftw3.so:math/fftw3 \ + liblapack.so:math/lapack \ + libmpich.so:net/mpich \ + libiomp5.so:devel/openmp + +USES= dos2unix fortran gmake localbase:ldflags +DOS2UNIX_FILES= openmx_common.h +USE_CXXSTD= c++11 +MAKEFILE= makefile + +WRKSRC= ${WRKDIR}/${PORTNAME}${DISTVERSION:R} + +CFLAGS+= -Dkcomp +LDFLAGS+= ${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgcc_s.so ${LOCALBASE}/lib/libmpifort.so + +WRKSRC_SUBDIR= source + +MAKE_ENV= MPICH_CC=${CC} +MAKE_ARGS+= CFLAGS="${CFLAGS}" FFLAGS="${FFLAGS}" LDFLAGS="${LDFLAGS}" GCC_LIB=${LOCALBASE}/lib/gcc${GCC_DEFAULT}/libgfortran.so + +BINARY_ALIAS= gcc=${CXX} gcc7=${CXX} + +UTIL_PROGS= DosMain jx analysis_example esp polB bandgnu13 bin2txt cube2xsf intensity_map md2axsf + +PLIST_FILES= bin/${PORTNAME} ${UTIL_PROGS:C/^/bin\//} + +OPTIONS_DEFINE_amd64= SIMD +OPTIONS_DEFINE_i386= SIMD +OPTIONS_DEFAULT_amd64= SIMD +OPTIONS_DEFAULT_i386= SIMD + +SIMD_CFLAGS= -msse -msse2 -mfpmath=sse +SIMD_CFLAGS_OFF= -Dnosse +CFLAGS+= ${ARCH:S/amd64//:S/i386//:S/${ARCH}/-Dnosse/} + +pre-patch: # overlay files before patching + @cd ${WRKSRC} && ${TAR} xzf ${DISTDIR}/${DIST_SUBDIR}/patch${DISTVERSION}${EXTRACT_SUFX} + +post-patch: + @cd ${WRKSRC} && ${REINPLACE_CMD} 's|DFT_DATA_PATH|"${DATADIR}/DFT_DATA13"|' Input_std.c check_lead.c SetPara_DFT.c OutData.c OutData_Binary.c + +post-install: +.for u in ${UTIL_PROGS} + ${INSTALL_PROGRAM} ${WRKSRC}/${u} ${STAGEDIR}${PREFIX}/bin +.endfor + cd ${WRKSRC}/.. && ${COPYTREE_SHARE} DFT_DATA13 ${STAGEDIR}${DATADIR} + # autoplist for potentials: about 500 files in DATADIR + @cd ${STAGEDIR}${PREFIX} && \ + ${FIND} ${DATADIR:S/^${PREFIX}\///} -type f >> ${TMPPLIST} + +.include <bsd.port.mk> diff --git a/science/openmx/distinfo b/science/openmx/distinfo new file mode 100644 index 000000000000..9794f107d104 --- /dev/null +++ b/science/openmx/distinfo @@ -0,0 +1,5 @@ +TIMESTAMP = 1536713126 +SHA256 (openmx/openmx3.8.tar.gz) = 36ee10d8b1587b25a2ca1d57f110111be65c4fb4dc820e6d93e1ed2b562634a1 +SIZE (openmx/openmx3.8.tar.gz) = 143086177 +SHA256 (openmx/patch3.8.5.tar.gz) = d0fea2ce956d796a87a4bc9e9d580fb115ff2a22764650fffa78bb79a1b30468 +SIZE (openmx/patch3.8.5.tar.gz) = 316333 diff --git a/science/openmx/files/patch-Band__DFT__Col.c b/science/openmx/files/patch-Band__DFT__Col.c new file mode 100644 index 000000000000..a22e95c8e542 --- /dev/null +++ b/science/openmx/files/patch-Band__DFT__Col.c @@ -0,0 +1,15 @@ +--- Band_DFT_Col.c.orig 2018-08-29 06:24:38 UTC ++++ Band_DFT_Col.c +@@ -483,9 +483,9 @@ double Band_DFT_Col(int SCF_iter, + + /* allocation */ + +- stat_send = malloc(sizeof(MPI_Status)*numprocs2); +- request_send = malloc(sizeof(MPI_Request)*numprocs2); +- request_recv = malloc(sizeof(MPI_Request)*numprocs2); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*numprocs2); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs2); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs2); + + is1 = (int*)malloc(sizeof(int)*numprocs2); + ie1 = (int*)malloc(sizeof(int)*numprocs2); diff --git a/science/openmx/files/patch-Band__DFT__NonCol.c b/science/openmx/files/patch-Band__DFT__NonCol.c new file mode 100644 index 000000000000..dfbcc2493215 --- /dev/null +++ b/science/openmx/files/patch-Band__DFT__NonCol.c @@ -0,0 +1,15 @@ +--- Band_DFT_NonCol.c.orig 2018-08-29 06:26:10 UTC ++++ Band_DFT_NonCol.c +@@ -554,9 +554,9 @@ double Band_DFT_NonCol(int SCF_iter, + + /* allocation */ + +- stat_send = malloc(sizeof(MPI_Status)*numprocs1); +- request_send = malloc(sizeof(MPI_Request)*numprocs1); +- request_recv = malloc(sizeof(MPI_Request)*numprocs1); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*numprocs1); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs1); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs1); + + is1 = (int*)malloc(sizeof(int)*numprocs1); + ie1 = (int*)malloc(sizeof(int)*numprocs1); diff --git a/science/openmx/files/patch-Cluster__DFT.c b/science/openmx/files/patch-Cluster__DFT.c new file mode 100644 index 000000000000..cbf76c632080 --- /dev/null +++ b/science/openmx/files/patch-Cluster__DFT.c @@ -0,0 +1,46 @@ +--- Cluster_DFT.c.orig 2018-08-29 06:05:22 UTC ++++ Cluster_DFT.c +@@ -194,9 +194,9 @@ static double Cluster_collinear( + + Num_Comm_World1 = SpinP_switch + 1; + +- stat_send = malloc(sizeof(MPI_Status)*numprocs0); +- request_send = malloc(sizeof(MPI_Request)*numprocs0); +- request_recv = malloc(sizeof(MPI_Request)*numprocs0); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*numprocs0); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs0); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs0); + + /*********************************************** + allocation of arrays for the first world +@@ -1541,9 +1541,9 @@ static double Cluster_non_collinear( + + /* allocation of arrays */ + +- stat_send = malloc(sizeof(MPI_Status)*numprocs); +- request_send = malloc(sizeof(MPI_Request)*numprocs); +- request_recv = malloc(sizeof(MPI_Request)*numprocs); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*numprocs); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs); + + /**************************************************** + calculation of the array size +@@ -2649,7 +2649,7 @@ void Save_DOS_Col(int n, int MaxN, int * + MPI_Comm_size(mpi_comm_level1,&numprocs); + MPI_Comm_rank(mpi_comm_level1,&myid); + +- request_recv = malloc(sizeof(MPI_Request)*numprocs); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs); + + /* open file pointers */ + +@@ -2901,7 +2901,7 @@ void Save_DOS_NonCol(int n, int MaxN, in + MPI_Comm_size(mpi_comm_level1,&numprocs); + MPI_Comm_rank(mpi_comm_level1,&myid); + +- request_recv = malloc(sizeof(MPI_Request)*numprocs); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs); + + /* open file pointers */ + diff --git a/science/openmx/files/patch-Cluster__DFT__ON2.c b/science/openmx/files/patch-Cluster__DFT__ON2.c new file mode 100644 index 000000000000..8c9a7660b1f4 --- /dev/null +++ b/science/openmx/files/patch-Cluster__DFT__ON2.c @@ -0,0 +1,23 @@ +--- Cluster_DFT_ON2.c.orig 2016-03-27 06:53:28 UTC ++++ Cluster_DFT_ON2.c +@@ -10,6 +10,7 @@ + + ***********************************************************************/ + ++#include <complex.h> + #include <stdio.h> + #include <stdlib.h> + #include <string.h> +@@ -1275,9 +1276,9 @@ static void OND_Solver( + MPI_Request *request_send; + MPI_Request *request_recv; + +- stat_send = malloc(sizeof(MPI_Status)*numprocs2); +- request_send = malloc(sizeof(MPI_Request)*numprocs2); +- request_recv = malloc(sizeof(MPI_Request)*numprocs2); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*numprocs2); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs2); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*numprocs2); + + al.r = 1.0; + al.i = 0.0; diff --git a/science/openmx/files/patch-Input__std.c b/science/openmx/files/patch-Input__std.c new file mode 100644 index 000000000000..d8e1325a911b --- /dev/null +++ b/science/openmx/files/patch-Input__std.c @@ -0,0 +1,11 @@ +--- Input_std.c.orig 2018-09-12 02:18:32 UTC ++++ Input_std.c +@@ -85,7 +85,7 @@ void Input_std(char *file) + + input_string("System.CurrrentDirectory",filepath,"./"); + input_string("System.Name",filename,"default"); +- input_string("DATA.PATH",DFT_DATA_PATH,"../DFT_DATA13"); ++ //input_string("DATA.PATH",DFT_DATA_PATH,"../DFT_DATA13"); + input_int("level.of.stdout", &level_stdout,1); + input_int("level.of.fileout",&level_fileout,1); + input_logical("memory.usage.fileout",&memoryusage_fileout,0); /* default=off */ diff --git a/science/openmx/files/patch-Mixing__H.c b/science/openmx/files/patch-Mixing__H.c new file mode 100644 index 000000000000..ff3e86664dae --- /dev/null +++ b/science/openmx/files/patch-Mixing__H.c @@ -0,0 +1,218 @@ +--- Mixing_H.c.orig 2018-08-29 05:53:55 UTC ++++ Mixing_H.c +@@ -74,7 +74,7 @@ void Pulay_Mixing_H_MultiSecant(int MD_i + double sum,my_sum,tmp1,tmp2,alpha; + double r,r10,r11,r12,r13,r20,r21,r22; + double h,h10,h11,h12,h13,h20,h21,h22; +- double my_sy,my_yy,sy,yy,norm,s,y,or,al,be; ++ double my_sy,my_yy,sy,yy,norm,s,y,orx,al,be; + double **A,**IA,*coes,*coes2,*ror; + char nanchar[300]; + +@@ -635,44 +635,44 @@ void Pulay_Mixing_H_MultiSecant(int MD_i + s = HisH1[m][0][Mc_AN][h_AN][i][j] - HisH1[m+1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[m][0][Mc_AN][h_AN][i][j] - ResidualH1[m+1][0][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH1[dim+1][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH1[dim+1][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH1[m][1][Mc_AN][h_AN][i][j] - HisH1[m+1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[m][1][Mc_AN][h_AN][i][j] - ResidualH1[m+1][1][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH1[dim+1][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH1[dim+1][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH1[m][2][Mc_AN][h_AN][i][j] - HisH1[m+1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[m][2][Mc_AN][h_AN][i][j] - ResidualH1[m+1][2][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH1[dim+1][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH1[dim+1][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH1[m][3][Mc_AN][h_AN][i][j] - HisH1[m+1][3][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[m][3][Mc_AN][h_AN][i][j] - ResidualH1[m+1][3][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH1[dim+1][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH1[dim+1][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH2[m][0][Mc_AN][h_AN][i][j] - HisH2[m+1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[m][0][Mc_AN][h_AN][i][j] - ResidualH2[m+1][0][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH2[dim+1][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH2[dim+1][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH2[m][1][Mc_AN][h_AN][i][j] - HisH2[m+1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[m][1][Mc_AN][h_AN][i][j] - ResidualH2[m+1][1][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH2[dim+1][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH2[dim+1][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + s = HisH2[m][2][Mc_AN][h_AN][i][j] - HisH2[m+1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[m][2][Mc_AN][h_AN][i][j] - ResidualH2[m+1][2][Mc_AN][h_AN][i][j]; /* y */ + r = s - al*y; /* r */ +- or = ResidualH2[dim+1][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += r*or; ++ orx = ResidualH2[dim+1][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += r*orx; + + } + } +@@ -696,8 +696,8 @@ void Pulay_Mixing_H_MultiSecant(int MD_i + s = HisH1[m][spin][Mc_AN][h_AN][i][j] - HisH1[m+1][spin][Mc_AN][h_AN][i][j]; + y = ResidualH1[m][spin][Mc_AN][h_AN][i][j] - ResidualH1[m+1][spin][Mc_AN][h_AN][i][j]; + r = s - al*y; +- or = ResidualH1[dim+1][spin][Mc_AN][h_AN][i][j]; +- my_sum += r*or; ++ orx = ResidualH1[dim+1][spin][Mc_AN][h_AN][i][j]; ++ my_sum += r*orx; + } + } + } +@@ -986,7 +986,7 @@ void Pulay_Mixing_H_with_One_Shot_Hessia + double my_sum,tmp1,tmp2,alpha; + double r,r10,r11,r12,r13,r20,r21,r22; + double h,h10,h11,h12,h13,h20,h21,h22; +- double my_sy,my_yy,sy,yy,norm,s,y,or,al,be; ++ double my_sy,my_yy,sy,yy,norm,s,y,orx,al,be; + double **A,**IA,*coes; + char nanchar[300]; + +@@ -1427,38 +1427,38 @@ void Pulay_Mixing_H_with_One_Shot_Hessia + + s = HisH1[0][0][Mc_AN][h_AN][i][j] - HisH1[1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][0][Mc_AN][h_AN][i][j] - ResidualH1[1][0][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH1[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH1[0][1][Mc_AN][h_AN][i][j] - HisH1[1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][1][Mc_AN][h_AN][i][j] - ResidualH1[1][1][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH1[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH1[0][2][Mc_AN][h_AN][i][j] - HisH1[1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][2][Mc_AN][h_AN][i][j] - ResidualH1[1][2][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH1[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH1[0][3][Mc_AN][h_AN][i][j] - HisH1[1][3][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][3][Mc_AN][h_AN][i][j] - ResidualH1[1][3][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH1[dim][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH2[0][0][Mc_AN][h_AN][i][j] - HisH2[1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][0][Mc_AN][h_AN][i][j] - ResidualH2[1][0][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH2[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH2[0][1][Mc_AN][h_AN][i][j] - HisH2[1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][1][Mc_AN][h_AN][i][j] - ResidualH2[1][1][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH2[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + + s = HisH2[0][2][Mc_AN][h_AN][i][j] - HisH2[1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][2][Mc_AN][h_AN][i][j] - ResidualH2[1][2][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH2[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + } + } + } +@@ -1479,8 +1479,8 @@ void Pulay_Mixing_H_with_One_Shot_Hessia + for (j=0; j<Spe_Total_NO[Hwan]; j++){ + s = HisH1[0][spin][Mc_AN][h_AN][i][j] - HisH1[1][spin][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][spin][Mc_AN][h_AN][i][j] - ResidualH1[1][spin][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][spin][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- my_sum += (s-al*y)*or; ++ orx = ResidualH1[dim][spin][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ my_sum += (s-al*y)*orx; + } + } + } +@@ -1541,38 +1541,38 @@ void Pulay_Mixing_H_with_One_Shot_Hessia + + s = HisH1[0][0][Mc_AN][h_AN][i][j] - HisH1[1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][0][Mc_AN][h_AN][i][j] - ResidualH1[1][0][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- H[0][Mc_AN][h_AN][i][j] = h10 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH1[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ H[0][Mc_AN][h_AN][i][j] = h10 - alpha*(al*orx + (s-al*y)*be); + + s = HisH1[0][1][Mc_AN][h_AN][i][j] - HisH1[1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][1][Mc_AN][h_AN][i][j] - ResidualH1[1][1][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- H[1][Mc_AN][h_AN][i][j] = h11 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH1[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ H[1][Mc_AN][h_AN][i][j] = h11 - alpha*(al*orx + (s-al*y)*be); + + s = HisH1[0][2][Mc_AN][h_AN][i][j] - HisH1[1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][2][Mc_AN][h_AN][i][j] - ResidualH1[1][2][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- H[2][Mc_AN][h_AN][i][j] = h12 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH1[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ H[2][Mc_AN][h_AN][i][j] = h12 - alpha*(al*orx + (s-al*y)*be); + + s = HisH1[0][3][Mc_AN][h_AN][i][j] - HisH1[1][3][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][3][Mc_AN][h_AN][i][j] - ResidualH1[1][3][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- H[3][Mc_AN][h_AN][i][j] = h13 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH1[dim][3][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ H[3][Mc_AN][h_AN][i][j] = h13 - alpha*(al*orx + (s-al*y)*be); + + s = HisH2[0][0][Mc_AN][h_AN][i][j] - HisH2[1][0][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][0][Mc_AN][h_AN][i][j] - ResidualH2[1][0][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- iHNL[0][Mc_AN][h_AN][i][j] = h20 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH2[dim][0][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ iHNL[0][Mc_AN][h_AN][i][j] = h20 - alpha*(al*orx + (s-al*y)*be); + + s = HisH2[0][1][Mc_AN][h_AN][i][j] - HisH2[1][1][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][1][Mc_AN][h_AN][i][j] - ResidualH2[1][1][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- iHNL[1][Mc_AN][h_AN][i][j] = h21 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH2[dim][1][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ iHNL[1][Mc_AN][h_AN][i][j] = h21 - alpha*(al*orx + (s-al*y)*be); + + s = HisH2[0][2][Mc_AN][h_AN][i][j] - HisH2[1][2][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH2[0][2][Mc_AN][h_AN][i][j] - ResidualH2[1][2][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH2[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- iHNL[2][Mc_AN][h_AN][i][j] = h22 - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH2[dim][2][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ iHNL[2][Mc_AN][h_AN][i][j] = h22 - alpha*(al*orx + (s-al*y)*be); + } + } + } +@@ -1599,8 +1599,8 @@ void Pulay_Mixing_H_with_One_Shot_Hessia + + s = HisH1[0][spin][Mc_AN][h_AN][i][j] - HisH1[1][spin][Mc_AN][h_AN][i][j]; /* s */ + y = ResidualH1[0][spin][Mc_AN][h_AN][i][j] - ResidualH1[1][spin][Mc_AN][h_AN][i][j]; /* y */ +- or = ResidualH1[dim][spin][Mc_AN][h_AN][i][j]; /* OptResidualH */ +- H[spin][Mc_AN][h_AN][i][j] = h - alpha*(al*or + (s-al*y)*be); ++ orx = ResidualH1[dim][spin][Mc_AN][h_AN][i][j]; /* OptResidualH */ ++ H[spin][Mc_AN][h_AN][i][j] = h - alpha*(al*orx + (s-al*y)*be); + + } + } diff --git a/science/openmx/files/patch-Poisson.c b/science/openmx/files/patch-Poisson.c new file mode 100644 index 000000000000..6705c1abff28 --- /dev/null +++ b/science/openmx/files/patch-Poisson.c @@ -0,0 +1,84 @@ +--- Poisson.c.orig 2018-08-29 05:58:06 UTC ++++ Poisson.c +@@ -141,8 +141,8 @@ void FFT_Poisson(double *ReRhor, double + allocation of arrays: + ****************************************************/ + +- in = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); +- out = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ in = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); + + /*------------------ FFT along the C-axis in the AB partition ------------------*/ + +@@ -182,10 +182,10 @@ void FFT_Poisson(double *ReRhor, double + array0 = (double*)malloc(sizeof(double)*2*GP_B_AB2CA_S[NN_B_AB2CA_S]); + array1 = (double*)malloc(sizeof(double)*2*GP_B_AB2CA_R[NN_B_AB2CA_R]); + +- request_send = malloc(sizeof(MPI_Request)*NN_B_AB2CA_S); +- request_recv = malloc(sizeof(MPI_Request)*NN_B_AB2CA_R); +- stat_send = malloc(sizeof(MPI_Status)*NN_B_AB2CA_S); +- stat_recv = malloc(sizeof(MPI_Status)*NN_B_AB2CA_R); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_AB2CA_S); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_AB2CA_R); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_AB2CA_S); ++ stat_recv = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_AB2CA_R); + + NN_S = 0; + NN_R = 0; +@@ -307,10 +307,10 @@ void FFT_Poisson(double *ReRhor, double + array0 = (double*)malloc(sizeof(double)*2*GP_B_CA2CB_S[NN_B_CA2CB_S]); + array1 = (double*)malloc(sizeof(double)*2*GP_B_CA2CB_R[NN_B_CA2CB_R]); + +- request_send = malloc(sizeof(MPI_Request)*NN_B_CA2CB_S); +- request_recv = malloc(sizeof(MPI_Request)*NN_B_CA2CB_R); +- stat_send = malloc(sizeof(MPI_Status)*NN_B_CA2CB_S); +- stat_recv = malloc(sizeof(MPI_Status)*NN_B_CA2CB_R); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_CA2CB_S); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_CA2CB_R); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_CA2CB_S); ++ stat_recv = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_CA2CB_R); + + NN_S = 0; + NN_R = 0; +@@ -503,8 +503,8 @@ void Inverse_FFT_Poisson(double *ReRhor, + fftw_complex out[List_YOUSO[17]]; + ****************************************************/ + +- in = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); +- out = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ in = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); + + /*------------------ Inverse FFT along the A-axis in the CB partition ------------------*/ + +@@ -544,10 +544,10 @@ void Inverse_FFT_Poisson(double *ReRhor, + array0 = (double*)malloc(sizeof(double)*2*GP_B_CA2CB_R[NN_B_CA2CB_R]); + array1 = (double*)malloc(sizeof(double)*2*GP_B_CA2CB_S[NN_B_CA2CB_S]); + +- request_send = malloc(sizeof(MPI_Request)*NN_B_CA2CB_R); +- request_recv = malloc(sizeof(MPI_Request)*NN_B_CA2CB_S); +- stat_send = malloc(sizeof(MPI_Status)*NN_B_CA2CB_R); +- stat_recv = malloc(sizeof(MPI_Status)*NN_B_CA2CB_S); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_CA2CB_R); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_CA2CB_S); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_CA2CB_R); ++ stat_recv = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_CA2CB_S); + + NN_S = 0; + NN_R = 0; +@@ -669,10 +669,10 @@ void Inverse_FFT_Poisson(double *ReRhor, + array0 = (double*)malloc(sizeof(double)*2*GP_B_AB2CA_R[NN_B_AB2CA_R]); + array1 = (double*)malloc(sizeof(double)*2*GP_B_AB2CA_S[NN_B_AB2CA_S]); + +- request_send = malloc(sizeof(MPI_Request)*NN_B_AB2CA_R); +- request_recv = malloc(sizeof(MPI_Request)*NN_B_AB2CA_S); +- stat_send = malloc(sizeof(MPI_Status)*NN_B_AB2CA_R); +- stat_recv = malloc(sizeof(MPI_Status)*NN_B_AB2CA_S); ++ request_send = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_AB2CA_R); ++ request_recv = (MPI_Request *)malloc(sizeof(MPI_Request)*NN_B_AB2CA_S); ++ stat_send = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_AB2CA_R); ++ stat_recv = (MPI_Status *)malloc(sizeof(MPI_Status)*NN_B_AB2CA_S); + + NN_S = 0; + NN_R = 0; diff --git a/science/openmx/files/patch-Poisson__ESM.c b/science/openmx/files/patch-Poisson__ESM.c new file mode 100644 index 000000000000..19224a759e79 --- /dev/null +++ b/science/openmx/files/patch-Poisson__ESM.c @@ -0,0 +1,24 @@ +--- Poisson_ESM.c.orig 2018-08-29 06:03:16 UTC ++++ Poisson_ESM.c +@@ -71,8 +71,8 @@ double Poisson_ESM(int fft_charge_flag, + fftw_complex out[List_YOUSO[17]]; + ****************************************************/ + +- in0 = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); +- out0 = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ in0 = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ out0 = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); + + + if (myid==Host_ID) { +@@ -908,8 +908,8 @@ void One_dim_FFT(FILE *fp, + fftw_complex out[List_YOUSO[17]]; + ****************************************************/ + +- in = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); +- out = fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ in = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); ++ out = (fftw_complex *)fftw_malloc(sizeof(fftw_complex)*List_YOUSO[17]); + + p = fftw_plan_dft_1d(Ngrid1, in, out, sgn2, FFTW_ESTIMATE); + diff --git a/science/openmx/files/patch-bandgnu13.c b/science/openmx/files/patch-bandgnu13.c new file mode 100644 index 000000000000..3c6172bc62e6 --- /dev/null +++ b/science/openmx/files/patch-bandgnu13.c @@ -0,0 +1,11 @@ +--- bandgnu13.c.orig 2018-09-11 19:33:10 UTC ++++ bandgnu13.c +@@ -75,7 +75,7 @@ void vk_rtv(double vk[4], double rtv[4][ + + #define MUNIT 2 + +-main(int argc, char **argv) ++int main(int argc, char **argv) + { + static double Unit0[MUNIT]={27.2,1.0}; /* Hartree-> eV */ + static char *Unitname0[MUNIT]={"eV","Hartree"}; diff --git a/science/openmx/files/patch-makefile b/science/openmx/files/patch-makefile new file mode 100644 index 000000000000..f70af174a079 --- /dev/null +++ b/science/openmx/files/patch-makefile @@ -0,0 +1,43 @@ +--- makefile.orig 2016-04-02 12:43:42 UTC ++++ makefile +@@ -136,15 +136,15 @@ + # + + +-CC = mpicc -O3 -xHOST -ip -no-prec-div -openmp -I/opt/intel/mkl/include/fftw +-FC = mpif90 -O3 -xHOST -ip -no-prec-div -openmp +-LIB= -L/opt/intel/mkl/lib -mkl=parallel -lmkl_intel_lp64 -lmkl_intel_thread -lmkl_core -lpthread -lifcore -lmpi -lmpi_f90 -lmpi_f77 ++CC = mpicc $(CFLAGS) -fopenmp ++FC = mpif90 $(FFLAGS) -fopenmp ++LIB= $(LDFLAGS) -lpthread -llapack -lblas -lgfortran -lfftw3 -liomp5 + + + + + +-CFLAGS = -g ++#CFLAGS = -g + + OBJS = openmx.o openmx_common.o Input_std.o Inputtools.o \ + init.o LU_inverse.o ReLU_inverse.o \ +@@ -661,7 +661,7 @@ Show_DFT_DATA.o: Show_DFT_DATA.c openmx_ + + install: $(PROG) + strip $(PROG) +- cp $(PROG) $(DESTDIR)/$(PROG) ++ install $(PROG) $(DESTDIR)$(PREFIX)/bin/$(PROG) + + # + # +@@ -889,9 +889,9 @@ TRAN_CDen_Main.o: TRAN_CDen_Main.c openm + + elpa1.o: elpa1.f90 + $(FC) -c elpa1.f90 +-solve_evp_real.o: solve_evp_real.f90 ++solve_evp_real.o: solve_evp_real.f90 elpa1.o + $(FC) -c solve_evp_real.f90 +-solve_evp_complex.o: solve_evp_complex.f90 ++solve_evp_complex.o: solve_evp_complex.f90 elpa1.o + $(FC) -c solve_evp_complex.f90 + + diff --git a/science/openmx/files/patch-tran__variables.h b/science/openmx/files/patch-tran__variables.h new file mode 100644 index 000000000000..7d7d961603d6 --- /dev/null +++ b/science/openmx/files/patch-tran__variables.h @@ -0,0 +1,10 @@ +--- tran_variables.h.orig 2018-08-29 05:50:14 UTC ++++ tran_variables.h +@@ -46,7 +46,6 @@ double TRAN_Poisson_Gpara_Scaling; + double ScaleSize_e[2]; + int SpinP_switch_e[2], atomnum_e[2], SpeciesNum_e[2], Max_FSNAN_e[2]; + int TCpyCell_e[2], Matomnum_e[2], MatomnumF_e[2], MatomnumS_e[2]; +-int Latomnum,Ratomnum,Catomnum; + int *WhatSpecies_e[2]; + int *Spe_Total_CNO_e[2]; + int *Spe_Total_NO_e[2]; diff --git a/science/openmx/pkg-descr b/science/openmx/pkg-descr new file mode 100644 index 000000000000..edb2f2d3343f --- /dev/null +++ b/science/openmx/pkg-descr @@ -0,0 +1,24 @@ +OpenMX (Open source package for Material eXplorer) is a software package for +nano-scale material simulations based on density functional theories (DFT), +norm-conserving pseudopotentials, and pseudo-atomic localized basis functions. +The methods and algorithms used in OpenMX and their implementation are carefully +designed for the realization of large-scale ab initio electronic structure +calculations on parallel computers based on the MPI or MPI/OpenMP hybrid +parallelism. The efficient implementation of DFT enables us to investigate +electronic, magnetic, and geometrical structures of a wide variety of materials +such as biological molecules, carbon-based materials, magnetic materials, and +nanoscale conductors. Systems consisting of 1000 atoms can be treated using the +conventional diagonalization method if several hundreds cores on a parallel +computer are used. Even ab initio electronic structure calculations for systems +consisting of more than 10000 atoms are possible with the O(N) method +implemented in OpenMX if several thousands cores on a parallel computer are +available. Since optimized pseudopotentials and basis functions, which are well +tested, are provided for many elements, users may be able to quickly start own +calculations without preparing those data by themselves. Considerable +functionalities have been implemented for calculations of physical properties +such as magnetic, dielectric, and electric transport properties. Thus, we expect +that OpenMX can be a useful and powerful theoretical tool for nano-scale +material sciences, leading to better and deeper understanding of complicated and +useful materials based on quantum mechanics. + +WWW: http://www.openmx-square.org/ diff --git a/science/py-PyFR/Makefile b/science/py-PyFR/Makefile new file mode 100644 index 000000000000..f82d0d349db1 --- /dev/null +++ b/science/py-PyFR/Makefile @@ -0,0 +1,46 @@ +# $FreeBSD$ + +PORTNAME= PyFR +DISTVERSION= 1.8.0 +PORTREVISION= 5 +CATEGORIES= science python +MASTER_SITES= http://www.pyfr.org/download/ +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Framework for solving advection-diffusion type problems + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}appdirs>=1.4.0:devel/py-appdirs@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}gimmik>=2.0:math/py-gimmik@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}h5py>=2.6:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mako>=1.0.0:textproc/py-mako@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}mpi4py>=2.0:net/py-mpi4py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}pytools>=2016.2.1:devel/py-pytools@${PY_FLAVOR} \ + ${NUMPY} + +USES= python:3.3+ shebangfix zip +SHEBANG_FILES= setup.py pyfr/__main__.py +USE_PYTHON= distutils concurrent autoplist +NO_ARCH= yes + +OPTIONS_MULTI= PARALLEL +OPTIONS_MULTI_PARALLEL= OPENCL OPENMP # CUDA isn't supported on FreeBSD +OPTIONS_DEFAULT= ${OPTIONS_MULTI_PARALLEL} +PARALLEL_DESC= Parallelization backends to install + +OPENCL_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}pyopencl>0:devel/py-pyopencl@${PY_FLAVOR} \ + clblas>0:math/clblas +OPENMP_RUN_DEPENDS= openmp>0:devel/openmp \ + libxsmm>0:math/libxsmm + +pre-build: # patch in pre-build to make the patch less error-prone (it has %%LOCALBASE%%) + @${REINPLACE_CMD} 's|%%LOCALBASE%%|${LOCALBASE}|' ${WRKSRC}/pyfr/backends/openmp/compiler.py + +post-install: # workaround: https://groups.google.com/forum/#!topic/pyfrmailinglist/RNi_LcizGBo + @${RM} ${STAGEDIR}${PREFIX}/__main__.py + @${REINPLACE_CMD} 's|^${PREFIX}/__main__\.py||' ${_PYTHONPKGLIST} + +.include <bsd.port.mk> diff --git a/science/py-PyFR/distinfo b/science/py-PyFR/distinfo new file mode 100644 index 000000000000..98242d6a65e7 --- /dev/null +++ b/science/py-PyFR/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1539760102 +SHA256 (PyFR-1.8.0.zip) = 6b2b71886cea1bade16b3c8cd5bc681b2a9a22b7388a6aa4e69c934be69f3c23 +SIZE (PyFR-1.8.0.zip) = 829366 diff --git a/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py b/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py new file mode 100644 index 000000000000..f77a4b146f77 --- /dev/null +++ b/science/py-PyFR/files/patch-pyfr_backends_openmp_compiler.py @@ -0,0 +1,11 @@ +--- pyfr/backends/openmp/compiler.py.orig 2018-03-19 21:34:24 UTC ++++ pyfr/backends/openmp/compiler.py +@@ -76,6 +76,8 @@ class SourceModule(object): + '-Ofast', # Optimise, incl. -ffast-math + '-march=native', # Use CPU-specific instructions + '-fopenmp', # Enable OpenMP support ++ '-I%%LOCALBASE%%/include', # Add the include directory ++ '-L%%LOCALBASE%%/lib', # Add the library directory + '-fPIC', # Generate position-independent code + '-o', libname, srcname, # Library and source file names + '-lm' # Link against libm diff --git a/science/py-PyFR/pkg-descr b/science/py-PyFR/pkg-descr new file mode 100644 index 000000000000..e851ff3eee74 --- /dev/null +++ b/science/py-PyFR/pkg-descr @@ -0,0 +1,20 @@ +PyFR is an open-source Python based framework for solving advection-diffusion +type problems on streaming architectures using the Flux Reconstruction approach +of Huynh. The framework is designed to solve a range of governing systems on +mixed unstructured grids containing various element types. It is also designed +to target a range of hardware platforms via use of an in-built domain specific +language derived from the Mako templating engine. The current release has the +following capabilities: +* Governing Equations - Euler, Navier Stokes +* Dimensionality - 2D, 3D +* Element Types - Triangles, Quadrilaterals, Hexahedra, Prisms, Tetrahedra, + Pyramids +* Platforms - CPU Clusters, Nvidia GPU Clusters, AMD GPU Clusters, Intel Xeon + Phi Clusters +* Spatial Discretisation - High-Order Flux Reconstruction +* Temporal Discretisation - Explicit and Implicit (via Dual Time-Stepping) +* Precision - Single, Double +* Mesh Files Imported - Gmsh (.msh), CGNS (.cgns) +* Solution Files Exported - Unstructured VTK (.vtu, .pvtu) + +WWW: http://www.pyfr.org/ diff --git a/science/py-phono3py/Makefile b/science/py-phono3py/Makefile new file mode 100644 index 000000000000..9b776a9e42a3 --- /dev/null +++ b/science/py-phono3py/Makefile @@ -0,0 +1,33 @@ +# $FreeBSD$ + +PORTNAME= phono3py +DISTVERSION= 1.13.3.27 +PORTREVISION= 4 +CATEGORIES= science python +MASTER_SITES= CHEESESHOP +PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX} + +MAINTAINER= yuri@FreeBSD.org +COMMENT= Software to calculate phonon-phonon interaction and related properties + +LICENSE= BSD3CLAUSE +LICENSE_FILE= ${WRKSRC}/LICENSE + +BUILD_DEPENDS= ${PYNUMPY} \ + ${PYTHON_PKGNAMEPREFIX}h5py>0:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}phonopy>=1.13.2:science/py-phonopy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \ + ${LOCALBASE}/include/lapacke.h:math/lapacke \ + openmp>0:devel/openmp +RUN_DEPENDS= ${PYNUMPY} \ + ${PYTHON_PKGNAMEPREFIX}h5py>0:science/py-h5py@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}matplotlib>0:math/py-matplotlib@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}phonopy>=1.13.2:science/py-phonopy@${PY_FLAVOR} \ + ${PYTHON_PKGNAMEPREFIX}yaml>0:devel/py-yaml@${PY_FLAVOR} \ + openmp>0:devel/openmp + +USES= blaslapack:openblas localbase python +USE_PYTHON= distutils cython autoplist + +.include <bsd.port.mk> diff --git a/science/py-phono3py/distinfo b/science/py-phono3py/distinfo new file mode 100644 index 000000000000..af68f5871daf --- /dev/null +++ b/science/py-phono3py/distinfo @@ -0,0 +1,3 @@ +TIMESTAMP = 1536901529 +SHA256 (phono3py-1.13.3.27.tar.gz) = f03cec828b135365bd945cd846dd60b181dc0145792cc07f186b99c9c411a8e4 +SIZE (phono3py-1.13.3.27.tar.gz) = 5477899 diff --git a/science/py-phono3py/pkg-descr b/science/py-phono3py/pkg-descr new file mode 100644 index 000000000000..2e10c7654608 --- /dev/null +++ b/science/py-phono3py/pkg-descr @@ -0,0 +1,9 @@ +This software calculates phonon-phonon interaction and related properties using +the supercell approach. For example, the following physical properties are +obtained: +* Lattice thermal conductivity (RTA and direct solution of LBTE) +* Phonon lifetime/linewidth +* Imaginary part of self energy +* Joint density of states (JDOS) and weighted-JDOS + +WWW: https://atztogo.github.io/phono3py/ |