User Tools

Site Tools


admin:compilaciones:abinit

This is an old revision of the document!


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

module purge

Necesitamos cargar módulos para intel, mpi y wannier90.

admin/compilaciones/abinit.1770742958.txt.gz · Last modified: by bbruzzo