This is an old revision of the document!
Table of Contents
ABINIT
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).
Descargar source
El source se encuentra en la latest release del repositorio de github. https://github.com/abinit/abinit/releases/latest
mkdir /data/shared/apps/abinit cd /data/shared/apps/abinit wget https://github.com/abinit/abinit/archive/refs/tags/10.6.3.tar.gz tar xvf 10.6.3.tar.gz mv abinit-10.6.3 10.6.3 rm 10.6.3.tar.gz
Parche
El usuario que solicita el software nos indica que hay un bug que es necesario parchear. El mismo reporta que la latest version del software todavía no tiene el parche, pero en los últimos días salió una nueva versión.
Verifiquemos que la línea que el usuario quiere modificar se encuentra intacta en la nueva release, es decir, que el bug no fue corregido en la versión release.
El usuario reporta:
Hay un bug que se debe modificar manualmente: Dentro de la carpeta principal del código (abinit-X.X.X, 10.4.7 es la última versión) uno se encuentra con el directorio scr/, dentro del directorio scr/ uno debe dirigirse al directorio 56_recipspace/, el archivo a editar se llama m_gsphere.F90. La línea 593 de este archivo reza vec(3) = n1_max(dir3), pero debería ser: vec(3) = n3_max(dir3)
cd src/56_recipspace/
La nueva release es la versión 10.6.3. En ella la línea indicada por el usuario ahora es la línea 585:
[bbruzzo@snmgt01 56_recipspace]$ grep -n "vec(3) =" -B 2 -A 12 m_gsphere.F90 583- ecut = HUGE(one) 584- do dir3=1,3 585: vec(3) = n1_max(dir3) 586- do dir2=1,3 587- vec(2) = n2_max(dir2) 588- do dir1=1,3 589- vec(1) = n1_max(dir1) 590- if (ANY(vec/=0)) then 591- trial_ene = half * normv(vec,Cryst%gmet,"G")**2 592- ecut = MIN(ecut,trial_ene) 593- !write(std_out,*)vec(:),trial_ene 594- end if 595- end do 596- end do 597- end do
Aplicamos parche:
sed -i 's/vec(3) = n1_max(dir3)/vec(3) = n3_max(dir3)/' m_gsphere.F90
Volvemos al root path del software.
cd ../..
Compilación
El usuario nos brindó esta configuración:
../configure --prefix="/home/juan/MAMBA/abinit-9.10.5/build_intel+wann3.1.0" FC=mpiifort CC=mpiicc CXX=mpiicpc --with-libxc="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/libxc/6.0.0" --with-hdf5="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/hdf5/1.10.8" --with-netcdf="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/netcdf4/4.9.0" --with-netcdf-fortran="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/netcdf4_fortran/4.6.0" --with-xmlf90="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/xmlf90/1.5.6" --with-libpsml="/home/juan/MAMBA/abinit-9.10.5/build_intel+wannier90/fallbacks/install_fb/intel/2021.6/libpsml/1.1.12" --with-wannier90=/home/juan/wannier90-3.1.0 --with-libxml2="/home/juan/local" XML2_CONFIG="/home/juan/local/bin/xml2-config" --enable-mpi-inplace
Pero también vamos a usar la documentación oficial para construir nuestra propia: https://docs.abinit.org/installation/
Preparación de enviroment
module purge module load intel openmpi5
ABINIT tiene una interfaz de Python, elijo usar un enviroment: Python:
micromamba create -n myenv python=3.10 micromamba activate myenv
Config
Copiamos el archivo de configuración template con el nombre snmgt01.ac9.
cp doc/build/config-template.ac9 snmgt01.ac9
HDF5
La versión de HDF5 tanto del modulo hdf5 como de phdf5 me está fallando al hacer configure, voy a probar compilar una versión siguiendo la documentación de abinit.
NetCDF
Una vez que compilamos HDF5 como está indicado en la doc de ABINIT (ver instrucciones) debemos proceder con NetCDF.
wget https://downloads.unidata.ucar.edu/netcdf-c/4.9.3/netcdf-c-4.9.3.tar.gz tar xvf netcdf-c-4.9.3.tar.gz wget https://downloads.unidata.ucar.edu/netcdf-fortran/4.6.2/netcdf-fortran-4.6.2.tar.gz tar xvf netcdf-fortran-4.6.2.tar.gz
NetCDF-C
./configure --disable-dap --prefix=/data/shared/apps/abinit/10.6.3/libs \ CC=mpicc \ LDFLAGS=-L/data/shared/apps/abinit/10.6.3/libs/lib \ CPPFLAGS=-I/data/shared/apps/abinit/10.6.3/libs/include
Output:
NetCDF C Configuration Summary ============================== # General ------- NetCDF Version: 4.9.3 Dispatch Version: 5 Configured On: Wed Feb 11 18:21:30 -03 2026 Host System: x86_64-pc-linux-gnu Build Directory: /data/shared/apps/abinit/10.6.3/netcdf/netcdf-c-4.9.3 Install Prefix: /data/shared/apps/abinit/10.6.3/libs # Compiling Options ----------------- C Compiler: /opt/ohpc/pub/mpi/openmpi5-intel/5.0.3/bin/mpicc CFLAGS: -fno-strict-aliasing CPPFLAGS: -I/data/shared/apps/abinit/10.6.3/libs/include LDFLAGS: -L/data/shared/apps/abinit/10.6.3/libs/lib AM_CFLAGS: AM_CPPFLAGS: AM_LDFLAGS: Shared Library: yes Static Library: yes Extra libraries: -lhdf5_hl -lhdf5 -lm -lz -lbz2 -lzstd -lxml2 XML Parser: libxml2 Legacy Macros: yes # Features -------- Benchmarks: no NetCDF-2 API: yes HDF4 Support: no HDF5 Support: yes CDF5 Support: yes NC-4 Parallel Support: yes PnetCDF Support: no DAP2 Support: no DAP4 Support: no Byte-Range Support: no S3 Support: no S3 SDK: none NCZarr Support: yes NCZarr Zip Support: no Diskless Support: yes MMap Support: no ERANGE Fill Support: no Relaxed Boundary Check: yes Plugins Enabled: yes Plugin Install Dir: /data/shared/apps/abinit/10.6.3/libs/hdf5/lib/plugin Plugin Search Path: /data/shared/apps/abinit/10.6.3/libs/hdf5/lib/plugin:/usr/local/hdf5/lib/plugin Quantization: yes Logging: no SZIP Write Support: no Standard Filters: bz2 deflate zstd ZSTD Support: yes Parallel Filters: yes
Make:
make -j2 make install
NetCFD-Fortran
./configure --disable-dap --prefix=/data/shared/apps/abinit/10.6.3/libs FC=mpifort LDFLAGS=-L/data/shared/apps/abinit/10.6.3/libs/lib FCFLAGS=-I/data/shared/apps/abinit/10.6.3/libs/include
