Skip to content

[ABINIT] [package list]

ABINIT/9.6.2-cpeGNU-21.12 (ABINIT-9.6.2-cpeGNU-21.12.eb)

Install with the EasyBuild-user module:

eb ABINIT-9.6.2-cpeGNU-21.12.eb -r
To access module help after installation and get reminded for which stacks and partitions the module is installed, use module spider ABINIT/9.6.2-cpeGNU-21.12.

EasyConfig:

# Based on work of  Matthias Kraushaar (CSCS)
# Adapted for LUMI by Orian Louant

local_libxc_version = '5.1.7'
local_Wannier90_version = '3.1.0'

easyblock = 'ConfigureMake'

name = 'ABINIT'
version = '9.6.2'

homepage = 'https://www.abinit.org/'

whatis = [
    "Description: ABINIT is a software suite to calculate the optical, "
    "mechanical, vibrational, and other observable properties of materials"
]

description = """
ABINIT is a software suite to calculate the optical, mechanical, vibrational,
and other observable properties of materials. Starting from the quantum
equations of density functional theory, you can build up to advanced
applications with perturbation theories based on DFT, and many-body Green's
functions (GW and DMFT).

ABINIT can calculate molecules, nanostructures and solids with any chemical
composition, and comes with several complete and robust tables of atomic
potentials.

This module provides an pure MPI executable. It includes support for netCDF,
HDF5, LibXC functionals and Wannier90.
"""

docurls = [
    'Documentation: https://docs.abinit.org/',
    'Tutorials:  https://docs.abinit.org/tutorial/'
]

software_license_urls = ['https://docs.abinit.org/about/license/']

toolchain = {'name': 'cpeGNU', 'version': '21.12'}
toolchainopts = {'usempi': True, 'openmp': True, 'pic': True, 'gfortran9-compat': True}

source_urls = ['https://www.abinit.org/sites/default/files/packages/']
sources = [SOURCELOWER_TAR_GZ]
checksums = [
    'b018c2ff24338a5952c5550a7e09d4c7793b62402c7aa4e09273e9a666e674fb'
]

builddependencies = [
    ('buildtools', '%(toolchain_version)s', '', True),
    ('cray-python', EXTERNAL_MODULE),
]

dependencies = [
    ('libxc',                    local_libxc_version),
    ('Wannier90',                local_Wannier90_version),
    ('cray-fftw',                EXTERNAL_MODULE),
    ('cray-hdf5-parallel',       EXTERNAL_MODULE),
    ('cray-netcdf-hdf5parallel', EXTERNAL_MODULE),
]

configopts  = 'FCFLAGS="-ffree-line-length-none $FCFLAGS" '
configopts += 'FFLAGS=" $FFLAGS" '

configopts += ' --enable-openmp="yes" '

# Ensure MPI
configopts += ' --with-mpi="yes" '
configopts += ' --enable-mpi-io="yes" '
configopts += ' --enable-mpi-inplace="yes" '
configopts += ' FC="ftn" CC="cc" CXX="CC" F90="ftn" '

# FFTW
configopts += ' --with-fft-flavor=fftw3 --with-fftw3=$FFTW_DIR '

# libxc support
configopts += ' --with-libxc=${EBROOTLIBXC} '

# hdf5/netcdf4 support
configopts += ' --with-netcdf="${CRAY_NETCDF_HDF5PARALLEL_PREFIX}" '
configopts += ' --with-netcdf-fortran="${CRAY_NETCDF_HDF5PARALLEL_PREFIX}" '
configopts += ' --with-hdf5="${CRAY_HDF5_PARALLEL_PREFIX}" '

# Wannier90
configopts += ' --with-wannier90="${EBROOTWANNIER90}" '
preconfigopts = 'export WANNIER90_LIBS="-L$EBROOTWANNIER90/lib -lwannier" && '

# 'make check' is just executing some basic unit tests.
# Also running 'make tests_v1' to have some basic validation
# add export of HDF5_DISABLE_VERSION_CHECK to avoid HDF5 library mismatch error
pretestopts = 'export HDF5_DISABLE_VERSION_CHECK=2 && '
runtest = 'check && make test_v1'

sanity_check_paths = {
    'files': ['bin/%s' % x for x in ['abinit', 'aim', 'cut3d', 'conducti', 'mrgddb', 'mrgscr', 'optic']],
    'dirs': ['lib/pkgconfig'],
}

# add export of HDF5_DISABLE_VERSION_CHECK to avoid HDF5 library mismatch error
modextravars = {
    'HDF5_DISABLE_VERSION_CHECK': '2',
}

moduleclass = 'chem'

[ABINIT] [package list]