update refs

This commit is contained in:
gmatteo 2021-11-06 01:49:53 +01:00
parent d819c26b65
commit f45a97d29d
4 changed files with 51 additions and 44 deletions

View File

@ -134,6 +134,12 @@ sudo apt install liblapack-dev libblas-dev
sudo apt install libhdf5-dev libnetcdf-dev libnetcdff-dev libpnetcdf-dev libxc-dev
```
Note that if you prefer to compile hdf5 and netcdf4 from source, you will neeed
the zlib library that can be installed with:
sudo apt-get install -y libz-dev
### Compiling ABINIT
For normal users it is advised to download the latest stable version from our website

View File

@ -159,7 +159,8 @@ module m_slk
integer,allocatable :: ipiv(:)
real(dp),allocatable :: buffer_real(:,:)
! local part of the (real) matrix
! local part of the (real) matrix.
! The istwf_k option passed to the constructor defines whether we have a real or complex matrix
complex(dpc),allocatable :: buffer_cplx(:,:)
! local part of the (complex) matrix
@ -175,7 +176,7 @@ module m_slk
! Return global indices of a matrix element from the local indices.
procedure :: free => matrix_scalapack_free
! Destroys ScaLAPACK matrix
! Free local buffer
procedure :: zinvert => slk_zinvert
! Inverse of a complex matrix in double precision
@ -254,7 +255,8 @@ CONTAINS !=====================================================================
!! build_grid_scalapack
!!
!! FUNCTION
!! Set up the processor grid for ScaLAPACK as a function of the total number of processors attributed to the grid.
!! Set up the processor grid for ScaLAPACK as a function of the total number
!! of processors attributed to the grid.
!!
!! INPUTS
!! nbprocs= total number of processors
@ -447,14 +449,13 @@ end subroutine end_scalapack
!! init_matrix_scalapack
!!
!! FUNCTION
!! Initializes a matrix descriptor for ScaLAPACK.
!! Initialisation of a SCALAPACK matrix (each proc initialize its own part of the matrix)
!!
!! INPUTS
!! processor= descriptor of a processor
!! nbli_global= total number of lines
!! nbco_global= total number of columns
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! tbloc= custom block size NOTE: NOT USED in the present version.
!!
!! OUTPUT
@ -491,7 +492,7 @@ subroutine init_matrix_scalapack(matrix, nbli_global, nbco_global, processor, is
sizeb = SIZE_BLOCS
#endif
!Records of the matrix type :
!Records of the matrix type:
matrix%processor => processor
matrix%sizeb_blocs(1) = MIN(sizeb,nbli_global)
matrix%sizeb_blocs(2) = MIN(sizeb,nbco_global)
@ -881,7 +882,7 @@ end function loc_glob
!! Routine to fill a SCALAPACK matrix from a global PACKED matrix.
!!
!! INPUTS
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! reference= one-dimensional array with packed matrix.
!!
!! SIDE EFFECTS
@ -955,7 +956,7 @@ end subroutine matrix_from_global
!! FUNCTION
!!
!! INPUTS
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! reference= one-dimensional array
!!
!! SIDE EFFECTS
@ -1036,7 +1037,7 @@ end subroutine matrix_from_global_sym
!! Routine to fill a SCALAPACK matrix from a real global matrix (FULL STORAGE MODE)
!!
!! INPUTS
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! reference= a real matrix
!!
!! SIDE EFFECTS
@ -1084,7 +1085,7 @@ end subroutine matrix_from_realmatrix
!! Routine to fill a SCALAPACK matrix from a global matrix (FULL STORAGE MODE)
!!
!! INPUTS
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! reference= a complex matrix
!!
!! SIDE EFFECTS
@ -1133,7 +1134,7 @@ end subroutine matrix_from_complexmatrix
!!
!! INPUTS
!! matrix= the matrix to process
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!! nband_k= number of bands at this k point for that spin polarization
!!
!! SIDE EFFECTS
@ -1198,7 +1199,7 @@ end subroutine matrix_to_global
!!
!! INPUTS
!! matrix= the matrix to process
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! SIDE EFFECTS
!! reference= the matrix to fill
@ -1245,7 +1246,7 @@ end subroutine matrix_to_realmatrix
!!
!! INPUTS
!! matrix= the matrix to process
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! SIDE EFFECTS
!! reference= the matrix to fill
@ -1292,7 +1293,7 @@ end subroutine matrix_to_complexmatrix
!!
!! INPUTS
!! matrix= the matrix to process
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! SIDE EFFECTS
!! reference= one-dimensional array
@ -1788,7 +1789,7 @@ end subroutine slk_pzgemm
!! processor= descriptor of a processor
!! matrix= the matrix to process
!! comm= MPI communicator
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! OUTPUT
!! None
@ -1994,7 +1995,7 @@ end subroutine compute_eigen_problem
!! matrix1= first ScaLAPACK matrix (matrix A)
!! matrix2= second ScaLAPACK matrix (matrix B)
!! comm= MPI communicator
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! OUTPUT
!! None
@ -2335,7 +2336,7 @@ end subroutine compute_generalized_eigen_problem
!! nbco_global number of columns
!! matrix= the matrix to process
!! vector= eigenvalues of the matrix
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! OUTPUT
!! vector
@ -2459,7 +2460,7 @@ end subroutine compute_eigen1
!! matrix1= first ScaLAPACK matrix (matrix A)
!! matrix2= second ScaLAPACK matrix (matrix B)
!! vector=
!! istwf_k= option parameter that describes the storage of wfs
!! istwf_k= 2 if we have a real matrix else complex.
!!
!! OUTPUT
!! None

View File

@ -148,8 +148,8 @@ MODULE m_crystal
! typat(natom), nattyp(ntypat)
! Type of each natom and number of atoms of each type.
integer,allocatable :: irredatindx(:)
! Index of irreducible atoms
integer,allocatable :: irredatindx(:)
! Index of irreducible atoms
real(dp),allocatable :: tnons(:,:)
! tnons(3,nsym)
@ -332,7 +332,7 @@ subroutine crystal_init(amu,Cryst,space_group,natom,npsp,ntypat,nsym,rprimd,typa
real(dp) :: gprimd(3,3),gmet(3,3),rmet(3,3)
integer,pointer :: symrel_noI(:,:,:)
real(dp),pointer :: tnons_noI(:,:)
logical :: irredat_tmp(natom)
logical :: irredat_tmp(natom)
! *************************************************************************
!@crystal_t
@ -456,31 +456,31 @@ subroutine crystal_init(amu,Cryst,space_group,natom,npsp,ntypat,nsym,rprimd,typa
tolsym8=tol8
call symatm(cryst%indsym, natom, Cryst%nsym, Cryst%symrec, Cryst%tnons, tolsym8, Cryst%typat, Cryst%xred)
! Find list of irreducible atoms by using the indsym
cryst%nirredat = 0
! Find list of irreducible atoms by using the indsym
cryst%nirredat = 0
irredat_tmp = .TRUE.
do iat = 1,natom
if(irredat_tmp(iat))then
cryst%nirredat = cryst%nirredat + 1
do isym = 1,nsym
if (cryst%indsym(4,isym,iat) /= iat)then
if (all(cryst%indsym(:3,isym,iat) == (/0,0,0/)))then
irredat_tmp(cryst%indsym(4,isym,iat)) = .FALSE.
endif
endif
enddo
endif
enddo
!Write indexes of irreducible atoms
ABI_MALLOC(cryst%irredatindx,(cryst%nirredat))
indx = 0
do iat = 1,natom
if(irredat_tmp(iat))then
if(irredat_tmp(iat))then
cryst%nirredat = cryst%nirredat + 1
do isym = 1,nsym
if (cryst%indsym(4,isym,iat) /= iat)then
if (all(cryst%indsym(:3,isym,iat) == (/0,0,0/)))then
irredat_tmp(cryst%indsym(4,isym,iat)) = .FALSE.
endif
endif
enddo
endif
enddo
!Write indexes of irreducible atoms
ABI_MALLOC(cryst%irredatindx,(cryst%nirredat))
indx = 0
do iat = 1,natom
if(irredat_tmp(iat))then
indx = indx + 1
cryst%irredatindx(indx) = iat
endif
enddo
endif
enddo
! Rotations in spinor space
ABI_MALLOC(Cryst%spinrot, (4, Cryst%nsym))

View File

@ -84,7 +84,7 @@ _ WF disk file : 15.932 Mbytes ; DEN or POT disk file : 0.063 Mbytes.
getdvdb2 20
getwfk1 20
getwfk2 1
ibte_abs_tol1 1.0000000000E-04
ibte_abs_tol1 -1.0000000000E+00
ibte_abs_tol2 1.0000000000E-03
ibte_alpha_mix1 7.0000000000E-01
ibte_alpha_mix2 6.0000000000E-01
@ -935,7 +935,7 @@ K-point: [ 5.0000E-01, 3.1250E-01, 1.2500E-01], T: 300.0 [K], mu_e: -4.054
getdvdb2 20
getwfk1 20
getwfk2 1
ibte_abs_tol1 1.0000000000E-04
ibte_abs_tol1 -1.0000000000E+00
ibte_abs_tol2 1.0000000000E-03
ibte_alpha_mix1 7.0000000000E-01
ibte_alpha_mix2 6.0000000000E-01