A Density functional software. This software has a unique design

based upon the DFT++ algebraic framework introduced in Computer
Physics Communications 128, 1-45 (June 2000).
This framework allows us to transparently separate the computational
guts (cache optimization, parallelization, etc.) from the introduction
of new representations (plane waves, wavelets) and new
physics (new density functionals, linear response theory,
dielectric solutions).
The software is fully cache and register optimized,
and runs in serial, threaded, MPI and mixed threaded-MPI
parallel environments.
This commit is contained in:
Maho Nakata 2004-03-20 04:50:45 +00:00
parent ed5dc3580f
commit 34ce1bef94
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=104696
9 changed files with 358 additions and 0 deletions

View File

@ -9,6 +9,7 @@
SUBDIR += chemtool
SUBDIR += chemtool-devel
SUBDIR += clhep
SUBDIR += dft++
SUBDIR += euler
SUBDIR += felt
SUBDIR += flounder

83
science/dft++/Makefile Normal file
View File

@ -0,0 +1,83 @@
# New ports collection makefile for: dft++
# Date Created: 18 March 2004
# Whom: NAKATA Maho <maho@FreeBSD.org>
#
# $FreeBSD$
#
PORTNAME= dft++
PORTVERSION= 3.0
CATEGORIES= science
MASTER_SITES= http://dft.physics.cornell.edu/src/ \
http://dft.physics.cornell.edu/example/:example
DISTFILES= ${PORTNAME}.v${PORTVERSION}.tar.gz
.if !defined(NOPORTDOCS)
DISTFILES+= dft.in:example si_psp.tar:example output:example
.endif
DIST_SUBDIR= dft++
EXTRACT_ONLY= ${PORTNAME}.v${PORTVERSION}.tar.gz
MAINTAINER= maho@FreeBSD.org
COMMENT= DFT++, A density functional software
LIB_DEPENDS= atlas:${PORTSDIR}/math/atlas\
fftw.2:${PORTSDIR}/math/fftw
WRKSRC= ${WRKDIR}/${PORTNAME}-${PORTVERSION}
USE_GMAKE= yes
USE_REINPLACE= yes
LAPACK= -lalapack -lcblas -lf77blas -lg2c -latlas
FFTW= -lfftw
.if defined(WITH_OPTIMIZED_FLAGS)
OPTIMIZED_FLAGS+= -O3 -ffast-math -finline-functions -fomit-frame-pointer -funroll-loops -fexpensive-optimizations -malign-double
.if (${MACHINE_ARCH} == "i386")
OPTIMIZED_FLAGS+= -mcpu=i686 -march=i686 -mfancy-math-387 -mpreferred-stack-boundary=3
.endif # i386
.endif
pre-patch:
${CP} ${WRKSRC}/makefile ${WRKSRC}/makefile-pw
${CP} ${WRKSRC}/makefile ${WRKSRC}/makefile-wl
pre-configure:
@${ECHO} "You can optimize by setting WITH_OPTIMIZED_FLAGS=yes."
@${REINPLACE_CMD} -e ' s|%%FC%%|${FC}|g ; \
s|%%CC%%|${CC}|g ; \
s|%%CXX%%|${CXX}|g ; \
s|%%OPTIMIZED_FLAGS%%|${OPTIMIZED_FLAGS}|g ; \
s|%%LAPACK%%|${LAPACK}|g ; \
s|%%FFTW%%|${FFTW}|g ; \
s|%%LOCALBASE%%|${LOCALBASE}|g ; \
s|%%FFLAGS%%|${FFLAGS}|g ; \
s|%%CFLAGS%%|${CFLAGS}|g ; \
s|%%CXXFLAGS%%|${CXXFLAGS}|g ;' ${WRKSRC}/makefile.local-pw
@${REINPLACE_CMD} -e ' s|%%FC%%|${FC}|g ; \
s|%%CC%%|${CC}|g ; \
s|%%CXX%%|${CXX}|g ; \
s|%%LAPACK%%|${LAPACK}|g ; \
s|%%FFTW%%|${FFTW}|g ; \
s|%%OPTIMIZED_FLAGS%%|${OPTIMIZED_FLAGS}|g ; \
s|%%FFLAGS%%|${FFLAGS}|g ; \
s|%%CFLAGS%%|${CFLAGS}|g ; \
s|%%LOCALBASE%%|${LOCALBASE}|g ; \
s|%%CXXFLAGS%%|${CXXFLAGS}|g ;' ${WRKSRC}/makefile.local-wl
do-build:
@cd ${WRKSRC} ; ${GMAKE} -f makefile-pw dft-pw
@cd ${WRKSRC} ; ${GMAKE} -f makefile-pw clean
@cd ${WRKSRC} ; ${GMAKE} -f makefile-wl dft-wl
do-install:
@${INSTALL_PROGRAM} ${WRKSRC}/dft-pw ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/dft-wl ${PREFIX}/bin
.if !defined(NOPORTDOCS)
@${MKDIR} ${EXAMPLESDIR}
@${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/dft.in ${EXAMPLESDIR}
@${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/output ${EXAMPLESDIR}
@${INSTALL_DATA} ${DISTDIR}/${DIST_SUBDIR}/si_psp.tar ${EXAMPLESDIR}
@${TAR} xf ${DISTDIR}/${DIST_SUBDIR}/si_psp.tar -C ${EXAMPLESDIR}
@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${EXAMPLESDIR}
.endif
.include <bsd.port.mk>

8
science/dft++/distinfo Normal file
View File

@ -0,0 +1,8 @@
MD5 (dft++/dft++.v3.0.tar.gz) = c8272ef2b9bb955a2c9db8840d08424d
SIZE (dft++/dft++.v3.0.tar.gz) = 356235
MD5 (dft++/dft.in) = c8547142048315619f05b98d9041636f
SIZE (dft++/dft.in) = 3203
MD5 (dft++/si_psp.tar) = 9f9c86f4bc4b0e4e1c2b0dd46440c282
SIZE (dft++/si_psp.tar) = 102400
MD5 (dft++/output) = a33c69fff62e5be5a61c6acbc5ece822
SIZE (dft++/output) = 245937

View File

@ -0,0 +1,26 @@
--- makefile-pw~ Sat Mar 20 11:54:12 2004
+++ makefile-pw Sat Mar 20 11:55:09 2004
@@ -95,18 +95,18 @@
# Decide, based on BASIS, which basis to use.
#
# For plane waves...
-#BASISOPT = -DPLANEWAVES
-#BASIS_OBJS = ${PW_OBJS}
+BASISOPT = -DPLANEWAVES
+BASIS_OBJS = ${PW_OBJS}
#
# For wavelets...
-BASISOPT = -DWAVELETS -Dnewgridtype
-BASIS_OBJS = ${WL_OBJS}
+#BASISOPT = -DWAVELETS -Dnewgridtype
+#BASIS_OBJS = ${WL_OBJS}
#
# Include the machine dependent (local) makefile defining compilers,
# Linking options, etc. etc.
#
-include makefile.local
+include makefile.local-pw
#
# Object files used to interface to lapack routines (in plain C and F77)

View File

@ -0,0 +1,11 @@
--- makefile-wl.org Fri May 23 10:49:12 2003
+++ makefile-wl Sat Mar 20 11:51:51 2004
@@ -106,7 +106,7 @@
# Include the machine dependent (local) makefile defining compilers,
# Linking options, etc. etc.
#
-include makefile.local
+include makefile.local-wl
#
# Object files used to interface to lapack routines (in plain C and F77)

View File

@ -0,0 +1,99 @@
--- /dev/null Sat Mar 20 00:09:42 2004
+++ makefile.local-pw Sat Mar 20 00:01:36 2004
@@ -0,0 +1,96 @@
+#
+# This makefile is included from 'makefile'. It defines the
+# various machine dependent things such as compiler commands,
+# directories, libraries, etc.
+#
+
+#
+# FFTW directories
+#
+FFTW_DIR = -I%%LOCALBASE%%/include
+FFTW_LIB_DIR = -L%%LOCALBASE%%/lib
+
+#
+# The matrix diagonalization libraries, object, and and compile options
+# (LAPACK, ESSL, or the in-house supplied Jacobi diagonalizer).
+#
+# MATDIAG_OBJ must be either lapackdiagF77.o, essldiagF77.o, or jacobi.o
+# depending on which library you are going to use.
+#
+# MATDIAG_OPTS tells the system which library you will be using (i.e.
+# whether you're linking to lapackdiagF77.o, essldiagF77.o, or jacobi.o).
+# Set it to one of -DDFT_USE_LAPACK, -DDFT_USE_ESSL, or -DDFT_USE_JACOBI
+#
+# MATDIAG_LIB_DIR is the directory where the lapack library lives
+# (needed if the complier can't find it automatically)
+# If using jacobi.o, set it to ".".
+#
+MATDIAG_OBJ = matdiagC.o
+MATDIAG_OPTS = -DDFT_USE_LAPACK
+MATDIAG_LIB_DIR = -L.
+
+#
+# Our libraries: FFTW, math library, and possible LAPACK/BLAS libraries
+#
+LIBS = ${FFTW_LIB_DIR} ${MATDIAG_LIB_DIR} %%LAPACK%% %%FFTW%% -lm
+#
+
+#
+# Optimization options for all compilers
+#
+OPTIM_OPTS = %%OPTIMIZED_FLAGS%%
+
+#
+# Parallelization options: machine dependent ones go here, **PLUS**
+#
+# put -DDFT_THREAD to use POSIX threads (SMP)
+# put -DDFT_MPI to use MPI (DMP)
+# (you can specify both if needed)
+#
+PARALLEL_OPTS =
+
+#
+# Compiler flags for all compilers
+#
+COMPILE_OPTS = -g -I. -Icommands ${FFTW_DIR} \
+ ${OPTIM_OPTS} ${PARALLEL_OPTS} ${MATDIAG_OPTS}
+
+#
+# C++ compiler and options
+#
+CPLUSPLUS = %%CXX%%
+CPLUSPLUSOPTS = ${COMPILE_OPTS}
+
+#
+# C compiler and options
+#
+CC = %%CC%%
+CCOPTS = ${COMPILE_OPTS}
+
+#
+# F77 compiler and options
+#
+F77 = %%FC%%
+F77OPTS = ${COMPILE_OPTS}
+
+#
+# Linker to use
+#
+# Note: on some linux platforms, using ${F77} as the linker works
+# better (then you exclude any -lf2c libraries).
+#
+LINKER = ${CPLUSPLUS}
+
+#
+# Linking options: static/dynamic flags, etc., if any
+#
+LINKOPTS = ${CPLUSPLUSOPTS}
+
+
+
+
+
+
+
+
+

View File

@ -0,0 +1,99 @@
--- /dev/null Sat Mar 20 00:09:42 2004
+++ makefile.local-wl Sat Mar 20 00:01:30 2004
@@ -0,0 +1,96 @@
+#
+# This makefile is included from 'makefile'. It defines the
+# various machine dependent things such as compiler commands,
+# directories, libraries, etc.
+#
+
+#
+# FFTW directories
+#
+FFTW_DIR = -I%%LOCALBASE%%/include
+FFTW_LIB_DIR = -L%%LOCALBASE%%/lib
+
+#
+# The matrix diagonalization libraries, object, and and compile options
+# (LAPACK, ESSL, or the in-house supplied Jacobi diagonalizer).
+#
+# MATDIAG_OBJ must be either lapackdiagF77.o, essldiagF77.o, or jacobi.o
+# depending on which library you are going to use.
+#
+# MATDIAG_OPTS tells the system which library you will be using (i.e.
+# whether you're linking to lapackdiagF77.o, essldiagF77.o, or jacobi.o).
+# Set it to one of -DDFT_USE_LAPACK, -DDFT_USE_ESSL, or -DDFT_USE_JACOBI
+#
+# MATDIAG_LIB_DIR is the directory where the lapack library lives
+# (needed if the complier can't find it automatically)
+# If using jacobi.o, set it to ".".
+#
+MATDIAG_OBJ = matdiagC.o
+MATDIAG_OPTS = -DDFT_USE_LAPACK
+MATDIAG_LIB_DIR = -L.
+
+#
+# Our libraries: FFTW, math library, and possible LAPACK/BLAS libraries
+#
+LIBS = ${FFTW_LIB_DIR} ${MATDIAG_LIB_DIR} %%LAPACK%% %%FFTW%% -lm
+#
+
+#
+# Optimization options for all compilers
+#
+OPTIM_OPTS = %%OPTIMIZED_FLAGS%%
+
+#
+# Parallelization options: machine dependent ones go here, **PLUS**
+#
+# put -DDFT_THREAD to use POSIX threads (SMP)
+# put -DDFT_MPI to use MPI (DMP)
+# (you can specify both if needed)
+#
+PARALLEL_OPTS =
+
+#
+# Compiler flags for all compilers
+#
+COMPILE_OPTS = -g -I. -Icommands ${FFTW_DIR} \
+ ${OPTIM_OPTS} ${PARALLEL_OPTS} ${MATDIAG_OPTS}
+
+#
+# C++ compiler and options
+#
+CPLUSPLUS = %%CXX%%
+CPLUSPLUSOPTS = ${COMPILE_OPTS}
+
+#
+# C compiler and options
+#
+CC = %%CC%%
+CCOPTS = ${COMPILE_OPTS}
+
+#
+# F77 compiler and options
+#
+F77 = %%FC%%
+F77OPTS = ${COMPILE_OPTS}
+
+#
+# Linker to use
+#
+# Note: on some linux platforms, using ${F77} as the linker works
+# better (then you exclude any -lf2c libraries).
+#
+LINKER = ${CPLUSPLUS}
+
+#
+# Linking options: static/dynamic flags, etc., if any
+#
+LINKOPTS = ${CPLUSPLUSOPTS}
+
+
+
+
+
+
+
+
+

20
science/dft++/pkg-descr Normal file
View File

@ -0,0 +1,20 @@
DFT++ is a density functional package,
The software is fully cache and register optimized,
and runs in serial, threaded, MPI and mixed threaded-MPI parallel
environments.
For academic users, authors request that publications using results
obtained with this software reference
"New algebraic formulation of density functional calculation,"
by Sohrab Ismail-Beigi and T.A. Arias, Computer Physics Communications
128:1-2, 1-45 (June 2000). and, if using the wavelet basis, further reference
"Multiresolution analysis of electronic structure: semicardinal
and wavelet bases,"
T.A. Arias, Reviews of Modern Physics 71:1, 267-311 (January 1999).
and "Robust ab initio calculation of condensed matter: transparent
convergence through semicardinal multiresolution analysis,'' I.P. Daykov,
T.A. Arias, and Torkel D. Engeness, Physical Review Letters,
90:21, 216402 (May 2003).
documents are available at http://dft.physics.cornell.edu/doc/
WWW: http://dft.physics.cornell.edu/

11
science/dft++/pkg-plist Normal file
View File

@ -0,0 +1,11 @@
bin/dft-pw
bin/dft-wl
%%EXAMPLESDIR%%/dft.in
%%EXAMPLESDIR%%/output
%%EXAMPLESDIR%%/si_psp.tar
%%EXAMPLESDIR%%/Si/loc.1002.02
%%EXAMPLESDIR%%/Si/nl.d.501.02
%%EXAMPLESDIR%%/Si/nl.p.501.02
%%EXAMPLESDIR%%/Si/si.pot
@dirrm %%EXAMPLESDIR%%/Si
@dirrm %%EXAMPLESDIR%%