DFTB+ 25.1 (OpenMP)
Webpage
Build Environment
- Intel oneAPI HPC Toolkit 2025.3.3.15 (icx/icpx, ifx)
- Intel MKL 2025.3
- CUDA 13.1 Update 1
Files Required
- magma-2.10.0.tar.gz
- plumed-src-2.10.0.tgz
- libmbd-0.12.8
- dftbplus-25.1.tar.xz
Build Procedure
MAGMA
#!/bin/sh
set -eo pipefailMAGMA_VERSION=2.10.0
MAGMA_DIRNAME=magma-${MAGMA_VERSION}
PARALLEL=16
COMPILER=intel2025.3.3
BASEDIR=${HOME}/Software/magma/${MAGMA_VERSION}
MAGMA_TARBALL=${BASEDIR}/magma-${MAGMA_VERSION}.tar.gz
WORKDIR=/gwork/users/${USER}
INSTALLDIR=/apl/magma/${MAGMA_VERSION}/${COMPILER}
#-----------------------------------------------------------------------------cd $WORKDIR
module -s purgeif [ ! -d $MAGMA_DIRNAME ]; then
tar xzf ${MAGMA_TARBALL}
ficd $MAGMA_DIRNAME
if [ ! -d build ]; then
mkdir build
fi
if [ -f build/CMakeCache.txt ]; then
rm -rf build/*
ficd build
module -s load mkl/2025.3
source ${HOME}/intel/oneapi/setvars.sh --force > /dev/null 2>&1
module -s load cuda/13.1u1FC=ifx CC=icx CXX=icpx cmake -DCMAKE_INSTALL_PREFIX=${INSTALLDIR} -DBUILD_SHARED_LIBS=on .. \
-DGPU_TARGET="Ampere" \
-DUSE_FORTRAN=onmake -j ${PARALLEL} lib
make testing
make sparse-lib
make sparse-testing
make install
PLUMED (non-MPI)
#!/bin/bash
set -euo pipefail
PLUMED_VERSION=2.10.0
PLUMED_DIRNAME=plumed-${PLUMED_VERSION}
PARALLEL=16
COMPILER=intel2025.3.3
BASEDIR=${HOME}/Software/plumed/${PLUMED_VERSION}
PLUMED_TARBALL=${BASEDIR}/plumed-src-${PLUMED_VERSION}.tgz
WORKDIR=/gwork/users/${USER}
INSTALLDIR=/apl/plumed/${PLUMED_VERSION}/${COMPILER}/non-mpi
cd $WORKDIR
module -s purge
if [ ! -d "${PLUMED_DIRNAME}" ]; then
[ ! -f "${PLUMED_TARBALL}" ] && { echo "ERROR: tarball not found: ${PLUMED_TARBALL}"; exit 1; }
tar xzf "${PLUMED_TARBALL}"
fi
cd "${PLUMED_DIRNAME}" || { echo "ERROR: cannot cd to ${PLUMED_DIRNAME}"; exit 1; }set +u
source ${HOME}/intel/oneapi/setvars.sh --force > /dev/null 2>&1
set -u
FC=ifx CC=icx CXX=icpx ./configure \
--prefix=${INSTALLDIR} \
--disable-mpi \
--enable-libsearch=no \
LIBS="-lmkl_rt -lpthread -lm -ldl -lgomp -lstdc++ -lstdc++fs" \
CXXFLAGS="-O3 -fopenmp" \
FCFLAGS="" \
FFLAGS="" \
LDFLAGS="-fopenmp"
make clean
make -j ${PARALLEL} 2>&1 | tee ${WORKDIR}/plumed-build.log
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH:-}:${WORKDIR}/${PLUMED_DIRNAME}/src/lib
make test 2>&1 | tee ${WORKDIR}/plumed-test.log || { echo "ERROR: make test failed. Aborting install."; exit 1; }
make install 2>&1 | tee ${WORKDIR}/plumed-install.log
DFTB+
#!/bin/bash
set -euo pipefailset +u
source "${HOME}/intel/oneapi/setvars.sh" --force > /dev/null 2>&1
set -uDFTBPLUS_VERSION=25.1
DFTBPLUS_DIRNAME=dftbplus-${DFTBPLUS_VERSION}
PARALLEL=64
BASEDIR=${HOME}/Software/dftbplus/${DFTBPLUS_VERSION}
DFTBPLUS_TARBALL=${BASEDIR}/${DFTBPLUS_DIRNAME}.tar.xz
WORKDIR=/gwork/users/${USER}
INSTALLDIR=/apl/dftb+/${DFTBPLUS_VERSION}/non-ompiPLUMED_DIR=/apl/plumed/2.10.0/intel2025.3.3/non-mpi
MAGMA_DIR=/apl/magma/2.10.0/intel2025.3.3LIBMBD=${HOME}/libmbd/0.12.8/libmbd-0.12.8
#-----------------------------------------------------------------------------
cd "$WORKDIR" || { echo "ERROR: Cannot cd to $WORKDIR"; exit 1; }
module -s purge
module load mkl/2025.3
module load cuda/13.1u1if [ ! -d "$DFTBPLUS_DIRNAME" ]; then
tar xJf "${DFTBPLUS_TARBALL}" || { echo "ERROR: tar failed"; exit 1; }
ficd "$DFTBPLUS_DIRNAME" || { echo "ERROR: Cannot cd to $DFTBPLUS_DIRNAME"; exit 1; }
if [ -f _build/CMakeCache.txt ]; then
echo "INFO: Existing CMakeCache.txt found. Cleaning _build..."
rm -rf _build
fi
mkdir -p _buildrm -rf external/mbd/origin
cp -a "${LIBMBD}" external/mbd/origin \
|| { echo "ERROR: Failed to copy libMBD from ${LIBMBD}"; exit 1; }
FC=ifx CC=icx CXX=icpx \
CMAKE_PREFIX_PATH="${PLUMED_DIR};${MAGMA_DIR}" \
cmake \
-S . -B _build \
-DCMAKE_INSTALL_PREFIX="${INSTALLDIR}" \
-DWITH_MPI=FALSE \
-DWITH_ELSI=FALSE \
-DWITH_ARPACK=TRUE \
-DWITH_GPU=TRUE \
-DWITH_TRANSPORT=TRUE \
-DWITH_TBLITE=TRUE \
-DWITH_SOCKETS=TRUE \
-DWITH_SDFTD3=TRUE \
-DWITH_MBD=TRUE \
-DWITH_PLUMED=TRUE \
-DWITH_CHIMES=TRUEcmake --build _build --parallel ${PARALLEL} \
|| { echo "ERROR: Build failed"; exit 1; }
# Install
mkdir -p "${INSTALLDIR}"
cmake --install _build \
|| { echo "ERROR: Install failed"; exit 1; }echo "Install complete: $(ls ${INSTALLDIR}/bin/dftb+)"