mirror of https://gitlab.com/QEF/q-e.git
Merge branch 'develop' into 'develop'
Implementation of plotting Wannier functions without writing and reading UNK files See merge request QEF/q-e!864
This commit is contained in:
commit
a2287c53bd
|
@ -50,7 +50,8 @@
|
|||
lphase, omegamin, omegamax, omegastep, n_r, &
|
||||
mob_maxiter, use_ws, epmatkqread, selecqread, &
|
||||
scdm_proj, scdm_entanglement, scdm_mu, scdm_sigma,&
|
||||
assume_metal
|
||||
assume_metal, wannier_plot_scale, reduce_unk, &
|
||||
wannier_plot_supercell, wannier_plot_radius
|
||||
! Added for polaron calculations. Originally by Danny Sio, modified by Chao Lian.
|
||||
USE epwcom, ONLY : mob_maxiter, use_ws, epmatkqread, selecqread, &
|
||||
wfcelec, model_vertex , polaron_wf, r01, r02, r03,&
|
||||
|
@ -146,6 +147,7 @@
|
|||
CALL mp_bcast(selecqread , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(scdm_proj , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(assume_metal , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(reduce_unk , meta_ionode_id, world_comm)
|
||||
!
|
||||
! integers
|
||||
!
|
||||
|
@ -184,6 +186,7 @@
|
|||
CALL mp_bcast(scr_typ , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(bnd_cum , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(mob_maxiter , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(wannier_plot_supercell, meta_ionode_id, world_comm)
|
||||
!
|
||||
! REAL*8
|
||||
!
|
||||
|
@ -225,6 +228,8 @@
|
|||
CALL mp_bcast(nc , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(scdm_mu , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(scdm_sigma , meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(wannier_plot_radius, meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(wannier_plot_scale, meta_ionode_id, world_comm)
|
||||
!
|
||||
! characters
|
||||
!
|
||||
|
|
|
@ -47,7 +47,8 @@
|
|||
ngxx, &! Maximum number of G-vectors over all pools
|
||||
ngxxf, &! Maximum number of G-vectors over all pools for k+q folding
|
||||
ig_s, &! First G index within each core in case of G parallelization
|
||||
ig_e ! Last G index within each core in case of G parallelization
|
||||
ig_e, &! Last G index within each core in case of G parallelization
|
||||
num_wannier_plot ! Number of Wannier functions to plot
|
||||
INTEGER, ALLOCATABLE :: &!
|
||||
igk(:), &! Index for k+G vector
|
||||
igkq(:), &! Index for k+q+G vector
|
||||
|
@ -59,7 +60,8 @@
|
|||
gmap(:), &! the map G -> G-G_0 in the large (density) G vectors set, for every G_0
|
||||
ixkqf_tr(:), &! Mapping matrix from k+q (where q is full BZ) to IBZ
|
||||
s_bztoibz_full(:), &! Rotation that brink that k-point from BZ to IBZ
|
||||
mapg(:,:,:) ! Map between FFT grid and G-vector index
|
||||
mapg(:,:,:), &! Map between FFT grid and G-vector index
|
||||
wanplotlist(:) ! List of Wannier functions to plot
|
||||
REAL(KIND = DP) :: &!
|
||||
efnew, &! Fermi level on the fine grid. Added globaly for efficiency reason
|
||||
deltaq, &! Displacement of fine-mesh k-points for velocity corrections
|
||||
|
|
|
@ -56,7 +56,9 @@
|
|||
restart_filq, prtgkk, nel, meff, epsiheg, lphase, &
|
||||
omegamin, omegamax, omegastep, n_r, lindabs, mob_maxiter, &
|
||||
auto_projections, scdm_proj, scdm_entanglement, scdm_mu, &
|
||||
scdm_sigma, assume_metal
|
||||
scdm_sigma, assume_metal, wannier_plot, wannier_plot_list, &
|
||||
wannier_plot_supercell, wannier_plot_scale, reduce_unk, &
|
||||
wannier_plot_radius
|
||||
! Added for polaron calculations. Originally by Danny Sio, modified by Chao Lian.
|
||||
USE epwcom, ONLY : wfcelec, restart_polaron, spherical_cutoff, &
|
||||
model_vertex, conv_thr_polaron, n_dop, &
|
||||
|
@ -68,7 +70,7 @@
|
|||
init_plrn_wf, niterPlrn, nDOS_plrn, emax_plrn, emin_plrn, &
|
||||
sigma_edos_plrn, sigma_pdos_plrn, pmax_plrn, pmin_plrn
|
||||
USE klist_epw, ONLY : xk_all, xk_loc, xk_cryst, isk_all, isk_loc, et_all, et_loc
|
||||
USE elph2, ONLY : elph
|
||||
USE elph2, ONLY : elph, num_wannier_plot, wanplotlist
|
||||
USE constants_epw, ONLY : ryd2mev, ryd2ev, ev2cmm1, kelvin2eV, zero, eps20, ang2m
|
||||
USE io_files, ONLY : tmp_dir, prefix
|
||||
USE control_flags, ONLY : iverbosity, modenum, gamma_only
|
||||
|
@ -77,11 +79,12 @@
|
|||
USE partial, ONLY : atomo, nat_todo
|
||||
USE constants, ONLY : AMU_RY, eps16
|
||||
USE mp_global, ONLY : my_pool_id, me_pool
|
||||
USE io_global, ONLY : meta_ionode, meta_ionode_id, ionode_id, stdout
|
||||
USE io_global, ONLY : meta_ionode, meta_ionode_id, stdout
|
||||
USE io_var, ONLY : iunkf, iunqf
|
||||
USE noncollin_module, ONLY : npol, noncolin
|
||||
USE wvfct, ONLY : npwx
|
||||
USE paw_variables, ONLY : okpaw
|
||||
USE io_epw, ONLY : param_get_range_vector
|
||||
#if defined(__NAG)
|
||||
USE F90_UNIX_ENV, ONLY : iargc, getarg
|
||||
#endif
|
||||
|
@ -144,7 +147,8 @@
|
|||
scatread, restart, restart_step, restart_filq, prtgkk, nel, meff, &
|
||||
epsiheg, lphase, omegamin, omegamax, omegastep, n_r, lindabs, &
|
||||
mob_maxiter, auto_projections, scdm_proj, scdm_entanglement, scdm_mu, &
|
||||
scdm_sigma, assume_metal, &
|
||||
scdm_sigma, assume_metal, wannier_plot, wannier_plot_list, reduce_unk, &
|
||||
wannier_plot_supercell, wannier_plot_scale, wannier_plot_radius, &
|
||||
! Added for polaron calculations. Originally by Danny Sio, modified by Chao Lian.
|
||||
wfcelec, restart_polaron, spherical_cutoff, model_vertex, start_mode, &
|
||||
conv_thr_polaron, polaron_wf, r01, r02, r03, num_cbands, start_band, &
|
||||
|
@ -185,7 +189,7 @@
|
|||
! epbread : read epmatq array from .epb files
|
||||
! epbwrite : write epmatq array to .epb files
|
||||
! nbndskip : number of bands to be skipped from the original Hamitonian (nfirstwin-1 in Marzari's notation)
|
||||
! nbndskip is not an input any more. It is now automatically calculated in Wannierization step.
|
||||
! [HL 02/2020] nbndskip is not an input any more. It is now automatically calculated in Wannierization step.
|
||||
! For backward compatibility, nbndskip still can be entered as an input, but ignored with warning message.
|
||||
! epwread : read all quantities in Wannier representation from file epwdata.fmt
|
||||
! epwwrite : write all quantities in Wannier representation to file epwdata.fmt
|
||||
|
@ -330,6 +334,15 @@
|
|||
!
|
||||
! Added by Felix Goudreault
|
||||
! assume_metal : If .TRUE. => we are dealing with a metal
|
||||
!
|
||||
! Added by HL
|
||||
! wannier_plot : If .TRUE., plot Wannier functions
|
||||
! wannier_plot_list : Field read for parsing Wannier function list
|
||||
! wannier_plot_supercell : Size of supercell for plotting Wannier functions
|
||||
! wannier_plot_scale : Scaling parameter for cube files
|
||||
! wannier_plot_radius : Cut-off radius for plotting Wannier functions
|
||||
! reduce_unk : If .TRUE., plot Wannier functions on reduced grids
|
||||
!
|
||||
nk1tmp = 0
|
||||
nk2tmp = 0
|
||||
nk3tmp = 0
|
||||
|
@ -398,6 +411,12 @@
|
|||
bands_skipped= ''
|
||||
wdata(:) = ''
|
||||
iprint = 2
|
||||
wannier_plot = .FALSE.
|
||||
wannier_plot_scale = 1.0d0
|
||||
wannier_plot_radius = 3.5d0
|
||||
wannier_plot_supercell = (/5,5,5/)
|
||||
wannier_plot_list = ''
|
||||
reduce_unk = .FALSE.
|
||||
wmin = 0.d0
|
||||
wmax = 0.3d0
|
||||
eps_acustic = 5.d0 ! cm-1
|
||||
|
@ -579,6 +598,33 @@
|
|||
IF (meta_ionode) READ(5, inputepw, ERR = 200, IOSTAT = ios)
|
||||
#endif
|
||||
200 CALL errore('epw_readin', 'reading input_epw namelist', ABS(ios))
|
||||
!
|
||||
IF (wannier_plot) THEN
|
||||
IF (wannier_plot_radius < 0.0d0) &
|
||||
CALL errore('epw_readin', 'Error: wannier_plot_radius must be positive', 1)
|
||||
IF (wannier_plot_scale < 0.0d0) &
|
||||
CALL errore('epw_readin', 'Error: wannier_plot_scale must be positive', 1)
|
||||
IF (ANY(wannier_plot_supercell <= 0)) &
|
||||
CALL errore('epw_readin', &
|
||||
'Error: Three positive integers must be explicitly provided &
|
||||
for wannier_plot_supercell', 1)
|
||||
CALL param_get_range_vector(wannier_plot_list, num_wannier_plot, .TRUE.)
|
||||
IF (num_wannier_plot == 0) THEN
|
||||
num_wannier_plot = nbndsub
|
||||
ALLOCATE(wanplotlist(num_wannier_plot), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('epw_readin', 'Error allocating wanplotlist', 1)
|
||||
DO i = 1, num_wannier_plot
|
||||
wanplotlist(i) = i
|
||||
ENDDO
|
||||
ELSE
|
||||
ALLOCATE(wanplotlist(num_wannier_plot), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('epw_readin', 'Error allocating wanplotlist', 1)
|
||||
CALL param_get_range_vector(wannier_plot_list, num_wannier_plot, .FALSE., wanplotlist)
|
||||
IF (ANY(wanplotlist < 1) .OR. ANY(wanplotlist > nbndsub)) &
|
||||
CALL errore('epw_readin', &
|
||||
'Error: wannier_plot_list asks for a non-valid wannier function to be plotted', 1)
|
||||
ENDIF
|
||||
ENDIF
|
||||
!
|
||||
nk1tmp = nk1
|
||||
nk2tmp = nk2
|
||||
|
@ -750,6 +796,15 @@
|
|||
dvscf_dir = TRIM(dvscf_dir) // '/'
|
||||
!
|
||||
400 CONTINUE
|
||||
!
|
||||
CALL mp_bcast(wannier_plot, meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(num_wannier_plot, meta_ionode_id, world_comm)
|
||||
IF ((wannier_plot) .AND. (.NOT. meta_ionode)) THEN
|
||||
ALLOCATE(wanplotlist(num_wannier_plot), STAT = ierr)
|
||||
IF (ierr /= 0) CALL errore('epw_readin', 'Error allocating wanplotlist', 1)
|
||||
ENDIF
|
||||
IF (wannier_plot) CALL mp_bcast(wanplotlist, meta_ionode_id, world_comm)
|
||||
!
|
||||
CALL bcast_epw_input()
|
||||
!
|
||||
! Here we finished the reading of the input file.
|
||||
|
@ -786,10 +841,10 @@
|
|||
! bring k-points from cartesian to crystal coordinates
|
||||
CALL cryst_to_cart(nkstot, xk_cryst, at, -1)
|
||||
! Only master has the correct full list of kpt. Therefore bcast to all cores
|
||||
CALL mp_bcast(xk_all, ionode_id, world_comm)
|
||||
CALL mp_bcast(et_all, ionode_id, world_comm)
|
||||
CALL mp_bcast(isk_all, ionode_id, world_comm)
|
||||
CALL mp_bcast(xk_cryst, ionode_id, world_comm)
|
||||
CALL mp_bcast(xk_all, meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(et_all, meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(isk_all, meta_ionode_id, world_comm)
|
||||
CALL mp_bcast(xk_cryst, meta_ionode_id, world_comm)
|
||||
!
|
||||
! We define the local list of kpt
|
||||
ALLOCATE(xk_loc(3, nks), STAT = ierr)
|
||||
|
|
|
@ -247,6 +247,14 @@
|
|||
!! change in energy for each additional smearing in the selfen_phon
|
||||
!
|
||||
! Wannierization
|
||||
CHARACTER(LEN = 255) :: wannier_plot_list
|
||||
!! Field read for parsing Wannier function list
|
||||
LOGICAL :: wannier_plot
|
||||
!! if .TRUE. plot Wannier functions
|
||||
LOGICAL :: reduce_unk
|
||||
!! if .TRUE. plot Wannier functions on reduced grids
|
||||
INTEGER :: wannier_plot_supercell(3)
|
||||
!! Size of supercell for plotting Wannier functions
|
||||
REAL(KIND = DP) :: dis_win_min
|
||||
!! min energy of the Wannier disentanglement window
|
||||
REAL(KIND = DP) :: dis_win_max
|
||||
|
@ -259,6 +267,10 @@
|
|||
!! parameter for Wannier functions via SCDM algorithm
|
||||
REAL(KIND = DP) :: scdm_sigma
|
||||
!! parameter for Wannier functions via SCDM algorithm
|
||||
REAL(KIND = DP) :: wannier_plot_scale
|
||||
!! Scaling parameter for cube files
|
||||
REAL(KIND = DP) :: wannier_plot_radius
|
||||
!! Cut-off radius for plotting Wannier functions
|
||||
!
|
||||
! Superconductivity
|
||||
REAL(KIND = DP) :: eps_acustic
|
||||
|
|
|
@ -2101,6 +2101,117 @@
|
|||
!----------------------------------------------------------------------------
|
||||
END SUBROUTINE openfilepw
|
||||
!----------------------------------------------------------------------------
|
||||
!
|
||||
!----------------------------------------------------------------------------
|
||||
SUBROUTINE param_get_range_vector(field, length, lcount, i_value)
|
||||
!----------------------------------------------------------------------------
|
||||
!!
|
||||
!! Read a range vector eg. 1,2,3,4-10 or 1 3 400:100
|
||||
!! if(lcount) we return the number of states in length
|
||||
!!
|
||||
!! HL - April 2020
|
||||
!! Imported and adapted from the same name of subroutine in parameters.F90
|
||||
!! in the directory of src in Wannier90
|
||||
!!
|
||||
!----------------------------------------------------------------------------
|
||||
!
|
||||
IMPLICIT NONE
|
||||
!
|
||||
CHARACTER(*), INTENT(in) :: field
|
||||
!! Field read for parsing
|
||||
INTEGER, INTENT(inout) :: length
|
||||
!! Number of states
|
||||
LOGICAL, INTENT(in) :: lcount
|
||||
!! If T only count states
|
||||
INTEGER, OPTIONAL, INTENT(out) :: i_value(length)
|
||||
!! States specified in range vector
|
||||
!
|
||||
INTEGER :: loop
|
||||
!! Loop index
|
||||
INTEGER :: num1
|
||||
!! Integer number read
|
||||
INTEGER :: num2
|
||||
!! Integer number read
|
||||
INTEGER :: i_punc
|
||||
!! Position returned after scanning punctuation marks
|
||||
INTEGER :: counter
|
||||
!! Counter index
|
||||
INTEGER :: i_digit
|
||||
!! Position returned after scanning numbers
|
||||
INTEGER :: loop_r
|
||||
!! Loop index
|
||||
INTEGER :: range_size
|
||||
!! Size of range
|
||||
CHARACTER(LEN = 255) :: dummy
|
||||
!! Copy of field read for parsing
|
||||
CHARACTER(LEN = 10), PARAMETER :: c_digit = "0123456789"
|
||||
CHARACTER(LEN = 2), PARAMETER :: c_range = "-:"
|
||||
CHARACTER(LEN = 3), PARAMETER :: c_sep = " ,;"
|
||||
CHARACTER(LEN = 5), PARAMETER :: c_punc = " ,;-:"
|
||||
CHARACTER(LEN = 5) :: c_num1
|
||||
!! Number read
|
||||
CHARACTER(LEN = 5) :: c_num2
|
||||
!! Number read
|
||||
!
|
||||
IF (lcount .AND. PRESENT(i_value)) &
|
||||
CALL errore('param_get_range_vector', 'incorrect call', 1)
|
||||
!
|
||||
dummy = field
|
||||
dummy = ADJUSTL(dummy)
|
||||
!
|
||||
counter = 0
|
||||
IF (LEN_TRIM(dummy) == 0) THEN
|
||||
length = counter
|
||||
RETURN
|
||||
ENDIF
|
||||
!
|
||||
DO
|
||||
i_punc = SCAN(dummy, c_punc)
|
||||
IF (i_punc == 0) &
|
||||
CALL errore('param_get_range_vector', 'Error parsing field', 1)
|
||||
c_num1 = dummy(1:i_punc - 1)
|
||||
READ(c_num1, *, ERR = 101, END = 101) num1
|
||||
dummy = ADJUSTL(dummy(i_punc:))
|
||||
!look for range
|
||||
IF (SCAN(dummy, c_range) == 1) THEN
|
||||
i_digit = SCAN(dummy, c_digit)
|
||||
dummy = ADJUSTL(dummy(i_digit:))
|
||||
i_punc = SCAN(dummy, c_punc)
|
||||
c_num2 = dummy(1:i_punc - 1)
|
||||
READ(c_num2, *, ERR = 101, END = 101) num2
|
||||
dummy = ADJUSTL(dummy(i_punc:))
|
||||
range_size = ABS(num2 - num1) + 1
|
||||
DO loop_r = 1, range_size
|
||||
counter = counter + 1
|
||||
IF (.NOT. lcount) i_value(counter) = MIN(num1, num2) + loop_r - 1
|
||||
ENDDO
|
||||
ELSE
|
||||
counter = counter + 1
|
||||
IF (.NOT. lcount) i_value(counter) = num1
|
||||
ENDIF
|
||||
IF (SCAN(dummy, c_sep) == 1) dummy = ADJUSTL(dummy(2:))
|
||||
IF (SCAN(dummy, c_range) == 1) &
|
||||
CALL errore('param_get_range_vector', 'Error parsing field: incorrect range', 1)
|
||||
IF (INDEX(dummy, ' ') == 1) EXIT
|
||||
ENDDO
|
||||
!
|
||||
IF (lcount) length = counter
|
||||
IF (.NOT. lcount) THEN
|
||||
DO loop = 1, counter - 1
|
||||
DO loop_r = loop + 1, counter
|
||||
IF (i_value(loop) == i_value(loop_r)) &
|
||||
CALL errore('param_get_range_vector', 'Error parsing field: duplicate values', 1)
|
||||
ENDDO
|
||||
ENDDO
|
||||
ENDIF
|
||||
!
|
||||
RETURN
|
||||
!
|
||||
101 CALL errore('param_get_range_vector', 'Error parsing field', 1)
|
||||
!
|
||||
!----------------------------------------------------------------------------
|
||||
END SUBROUTINE param_get_range_vector
|
||||
!----------------------------------------------------------------------------
|
||||
!------------------------------------------------------------------------------
|
||||
END MODULE io_epw
|
||||
!------------------------------------------------------------------------------
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -27,9 +27,6 @@
|
|||
!!
|
||||
LOGICAL :: write_unk
|
||||
!! Set to .TRUE. to write the periodic part of the Bloch functions. Default is .FALSE.
|
||||
LOGICAL :: reduce_unk
|
||||
!! Set to .TRUE. to reduce file-size (and resolution) of Bloch functions by a factor of 8.
|
||||
!! Default is .FALSE. (only relevant if write_unk=.TRUE.)
|
||||
LOGICAL :: wvfn_formatted
|
||||
!! Set to .TRUE. to write formatted wavefunctions. Default is .FALSE. (only relevant if write_unk=.TRUE.)
|
||||
LOGICAL :: write_amn
|
||||
|
|
|
@ -147,13 +147,6 @@
|
|||
!
|
||||
WRITE(iuwinfil, '("num_wann = ", i3)') nbndsub
|
||||
WRITE(iuwinfil, '("iprint = ", i3)') iprint
|
||||
!
|
||||
! SP: You can have more bands in nscf.in than in
|
||||
! nbndskip+nbndsub. In which case the dis_win_max can be larger than
|
||||
! nbndskip+nbndsub. This is crucial for disantanglement.
|
||||
IF (dis_froz_min < MINVAL(et_tmp)) dis_froz_min = MINVAL(et_tmp)
|
||||
IF (dis_froz_max > MAXVAL(et_tmp)) dis_froz_max = MAXVAL(et_tmp)
|
||||
!
|
||||
WRITE(iuwinfil, '("dis_win_min = ", f18.12)') dis_win_min
|
||||
WRITE(iuwinfil, '("dis_win_max = ", f18.12)') dis_win_max
|
||||
WRITE(iuwinfil, '("dis_froz_min = ", f18.12)') dis_froz_min
|
||||
|
|
|
@ -181,7 +181,8 @@ clean:
|
|||
epw_*/epsilon2_indabs.dat epw_*/epsilon2_indabs_lorenz.dat \
|
||||
epw_mob_ibte_sym/save epw_*/*.bvec epw_*/*.fc epw_*/*.xml epw_*/*.labelinfo.dat \
|
||||
epw_mob_ibte/save epw_mob/save epw_*/Fepmatkq1 epw_*/Fepmatkqcb1 epw_*/Fsparse \
|
||||
epw_*/Fsparsecb epw_*/inv_taucb_tmp epw_*/inv_tau_tmp epw_mob_polar/save
|
||||
epw_*/Fsparsecb epw_*/inv_taucb_tmp epw_*/inv_tau_tmp epw_mob_polar/save \
|
||||
epw_base/*.cube
|
||||
|
||||
# Special cases for EPW
|
||||
@rm -rf epw_base/save epw_super/save epw_pl/save/ epw_polar/save/ \
|
||||
|
|
|
@ -402,6 +402,7 @@ The following features of the code are tested:
|
|||
- Test band parallelism, etf_mem 2 (epw6.in)
|
||||
- Test restart feature (epw7.in)
|
||||
- Test cumulant (epw8.in)
|
||||
- Test Wannier function plot (epw11.in)
|
||||
|
||||
#################
|
||||
# epw_metal: Pb #
|
||||
|
|
|
@ -0,0 +1,251 @@
|
|||
|
||||
``:oss/
|
||||
`.+s+. .+ys--yh+ `./ss+.
|
||||
-sh//yy+` +yy +yy -+h+-oyy
|
||||
-yh- .oyy/.-sh. .syo-.:sy- /yh
|
||||
`.-.` `yh+ -oyyyo. `/syys: oys `.`
|
||||
`/+ssys+-` `sh+ ` oys` .:osyo`
|
||||
-yh- ./syyooyo` .sys+/oyo--yh/
|
||||
`yy+ .-:-. `-/+/:` -sh-
|
||||
/yh. oys
|
||||
``..---hho---------` .---------..` `.-----.` -hd+---.
|
||||
`./osmNMMMMMMMMMMMMMMMs. +NNMMMMMMMMNNmh+. yNMMMMMNm- oNMMMMMNmo++:`
|
||||
+sy--/sdMMMhyyyyyyyNMMh- .oyNMMmyyyyyhNMMm+` -yMMMdyyo:` .oyyNMMNhs+syy`
|
||||
-yy/ /MMM+.`-+/``mMMy- `mMMh:`````.dMMN:` `MMMy-`-dhhy```mMMy:``+hs
|
||||
-yy+` /MMMo:-mMM+`-oo/. mMMh: `dMMN/` dMMm:`dMMMMy..MMMo-.+yo`
|
||||
.sys`/MMMMNNMMMs- mMMmyooooymMMNo: oMMM/sMMMMMM++MMN//oh:
|
||||
`sh+/MMMhyyMMMs- `-` mMMMMMMMMMNmy+-` -MMMhMMMsmMMmdMMd/yy+
|
||||
`-/+++oyy-/MMM+.`/hh/.`mNm:` mMMd+/////:-.` NMMMMMd/:NMMMMMy:/yyo/:.`
|
||||
+os+//:-..-oMMMo:--:::-/MMMo. .-mMMd+---` hMMMMN+. oMMMMMo. `-+osyso:`
|
||||
syo `mNMMMMMNNNNNNNNMMMo.oNNMMMMMNNNN:` +MMMMs:` dMMMN/` ``:syo
|
||||
/yh` :syyyyyyyyyyyyyyyy+.`+syyyyyyyyo:` .oyys:` .oyys:` +yh
|
||||
-yh- ```````````````` ````````` `` `` oys
|
||||
-+h/------------------------::::::::://////++++++++++++++++++++++///////::::/yd:
|
||||
shdddddddddddddddddddddddddddddhhhhhhhhyyyyyssssssssssssssssyyyyyyyhhhhhhhddddh`
|
||||
|
||||
S. Ponce, E. R. Margine, C. Verdi, and F. Giustino,
|
||||
Comput. Phys. Commun. 209, 116 (2016)
|
||||
|
||||
|
||||
Program EPW v.5.2.0 starts on 9Apr2020 at 19:34:20
|
||||
|
||||
This program is part of the open-source Quantum ESPRESSO suite
|
||||
for quantum simulation of materials; please cite
|
||||
"P. Giannozzi et al., J. Phys.:Condens. Matter 21 395502 (2009);
|
||||
"P. Giannozzi et al., J. Phys.:Condens. Matter 29 465901 (2017);
|
||||
URL http://www.quantum-espresso.org",
|
||||
in publications or presentations arising from this work. More details at
|
||||
http://www.quantum-espresso.org/quote
|
||||
|
||||
Parallel version (MPI), running on 4 processors
|
||||
|
||||
MPI processes distributed on 1 nodes
|
||||
K-points division: npool = 4
|
||||
Fft bands division: nmany = 1
|
||||
|
||||
Reading xml data from directory:
|
||||
|
||||
./diam.save/
|
||||
|
||||
IMPORTANT: XC functional enforced from input :
|
||||
Exchange-correlation= PZ
|
||||
( 1 1 0 0 0 0 0)
|
||||
Any further DFT definition will be discarded
|
||||
Please, verify this is what you really want
|
||||
|
||||
file C_3.98148.UPF: wavefunction(s) 3d renormalized
|
||||
|
||||
G-vector sticks info
|
||||
--------------------
|
||||
sticks: dense smooth PW G-vecs: dense smooth PW
|
||||
Sum 367 367 121 4645 4645 893
|
||||
|
||||
Reading collected, re-writing distributed wavefunctions
|
||||
|
||||
Possibly too few bands at point 1 0.00000 0.00000 0.00000
|
||||
|
||||
Possibly too few bands at point 2 -0.33333 0.33333 -0.33333
|
||||
|
||||
Possibly too few bands at point 3 -0.66667 0.66667 -0.66667
|
||||
|
||||
Possibly too few bands at point 4 0.33333 0.33333 0.33333
|
||||
|
||||
Possibly too few bands at point 5 0.00000 0.66667 0.00000
|
||||
|
||||
Possibly too few bands at point 6 -0.33333 1.00000 -0.33333
|
||||
|
||||
Possibly too few bands at point 7 0.66667 0.66667 0.66667
|
||||
|
||||
--
|
||||
|
||||
bravais-lattice index = 2
|
||||
lattice parameter (a_0) = 6.6425 a.u.
|
||||
unit-cell volume = 73.2698 (a.u.)^3
|
||||
number of atoms/cell = 2
|
||||
number of atomic types = 1
|
||||
kinetic-energy cut-off = 60.0000 Ry
|
||||
charge density cut-off = 240.0000 Ry
|
||||
Exchange-correlation= PZ
|
||||
( 1 1 0 0 0 0 0)
|
||||
|
||||
|
||||
celldm(1)= 6.64245 celldm(2)= 0.00000 celldm(3)= 0.00000
|
||||
celldm(4)= 0.00000 celldm(5)= 0.00000 celldm(6)= 0.00000
|
||||
|
||||
crystal axes: (cart. coord. in units of a_0)
|
||||
a(1) = ( -0.5000 0.0000 0.5000 )
|
||||
a(2) = ( 0.0000 0.5000 0.5000 )
|
||||
a(3) = ( -0.5000 0.5000 0.0000 )
|
||||
|
||||
reciprocal axes: (cart. coord. in units 2 pi/a_0)
|
||||
b(1) = ( -1.0000 -1.0000 1.0000 )
|
||||
b(2) = ( 1.0000 1.0000 1.0000 )
|
||||
b(3) = ( -1.0000 1.0000 -1.0000 )
|
||||
|
||||
|
||||
Atoms inside the unit cell:
|
||||
|
||||
Cartesian axes
|
||||
|
||||
site n. atom mass positions (a_0 units)
|
||||
1 C 12.0108 tau( 1) = ( 0.00000 0.00000 0.00000 )
|
||||
2 C 12.0108 tau( 2) = ( 0.25000 0.25000 0.25000 )
|
||||
|
||||
49 Sym.Ops. (with q -> -q+G )
|
||||
|
||||
|
||||
G cutoff = 268.2305 ( 4645 G-vectors) FFT grid: ( 24, 24, 24)
|
||||
number of k points= 27 gaussian broad. (Ry)= 0.0200 ngauss = 1
|
||||
cart. coord. in units 2pi/a_0
|
||||
k( 1) = ( 0.0000000 0.0000000 0.0000000), wk = 0.0740741
|
||||
k( 2) = ( -0.3333333 0.3333333 -0.3333333), wk = 0.0740741
|
||||
k( 3) = ( -0.6666667 0.6666667 -0.6666667), wk = 0.0740741
|
||||
k( 4) = ( 0.3333333 0.3333333 0.3333333), wk = 0.0740741
|
||||
k( 5) = ( 0.0000000 0.6666667 0.0000000), wk = 0.0740741
|
||||
k( 6) = ( -0.3333333 1.0000000 -0.3333333), wk = 0.0740741
|
||||
k( 7) = ( 0.6666667 0.6666667 0.6666667), wk = 0.0740741
|
||||
k( 8) = ( 0.3333333 1.0000000 0.3333333), wk = 0.0740741
|
||||
k( 9) = ( 0.0000000 1.3333333 0.0000000), wk = 0.0740741
|
||||
k( 10) = ( -0.3333333 -0.3333333 0.3333333), wk = 0.0740741
|
||||
k( 11) = ( -0.6666667 0.0000000 0.0000000), wk = 0.0740741
|
||||
k( 12) = ( -1.0000000 0.3333333 -0.3333333), wk = 0.0740741
|
||||
k( 13) = ( 0.0000000 0.0000000 0.6666667), wk = 0.0740741
|
||||
k( 14) = ( -0.3333333 0.3333333 0.3333333), wk = 0.0740741
|
||||
k( 15) = ( -0.6666667 0.6666667 -0.0000000), wk = 0.0740741
|
||||
k( 16) = ( 0.3333333 0.3333333 1.0000000), wk = 0.0740741
|
||||
k( 17) = ( 0.0000000 0.6666667 0.6666667), wk = 0.0740741
|
||||
k( 18) = ( -0.3333333 1.0000000 0.3333333), wk = 0.0740741
|
||||
k( 19) = ( -0.6666667 -0.6666667 0.6666667), wk = 0.0740741
|
||||
k( 20) = ( -1.0000000 -0.3333333 0.3333333), wk = 0.0740741
|
||||
k( 21) = ( -1.3333333 0.0000000 0.0000000), wk = 0.0740741
|
||||
k( 22) = ( -0.3333333 -0.3333333 1.0000000), wk = 0.0740741
|
||||
k( 23) = ( -0.6666667 -0.0000000 0.6666667), wk = 0.0740741
|
||||
k( 24) = ( -1.0000000 0.3333333 0.3333333), wk = 0.0740741
|
||||
k( 25) = ( 0.0000000 0.0000000 1.3333333), wk = 0.0740741
|
||||
k( 26) = ( -0.3333333 0.3333333 1.0000000), wk = 0.0740741
|
||||
k( 27) = ( -0.6666667 0.6666667 0.6666667), wk = 0.0740741
|
||||
|
||||
PseudoPot. # 1 for C read from file:
|
||||
../../pseudo/C_3.98148.UPF
|
||||
MD5 check sum: 8b65adcd36341f53911399f4b6efa59f
|
||||
Pseudo is Norm-conserving, Zval = 4.0
|
||||
Generated by new atomic code, or converted to UPF format
|
||||
Using radial grid of 461 points, 2 beta functions with:
|
||||
l(1) = 0
|
||||
l(2) = 1
|
||||
EPW : 0.06s CPU 0.07s WALL
|
||||
|
||||
EPW : 0.07s CPU 0.08s WALL
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wannierization on 3 x 3 x 3 electronic grid
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Spin CASE ( default = unpolarized )
|
||||
|
||||
Initializing Wannier90
|
||||
|
||||
|
||||
Initial Wannier projections
|
||||
|
||||
( 0.00000 0.00000 0.00000) : l = -3 mr = 1
|
||||
( 0.00000 0.00000 0.00000) : l = -3 mr = 2
|
||||
( 0.00000 0.00000 0.00000) : l = -3 mr = 3
|
||||
( 0.00000 0.00000 0.00000) : l = -3 mr = 4
|
||||
|
||||
- Number of bands is ( 4)
|
||||
- Number of total bands is ( 4)
|
||||
- Number of excluded bands is ( 0)
|
||||
- Number of wannier functions is ( 4)
|
||||
- All guiding functions are given
|
||||
|
||||
Reading data about k-point neighbours
|
||||
|
||||
- All neighbours are found
|
||||
|
||||
AMN
|
||||
k points = 27 in 4 pools
|
||||
1 of 7 on ionode
|
||||
2 of 7 on ionode
|
||||
3 of 7 on ionode
|
||||
4 of 7 on ionode
|
||||
5 of 7 on ionode
|
||||
6 of 7 on ionode
|
||||
7 of 7 on ionode
|
||||
|
||||
AMN calculated
|
||||
|
||||
MMN
|
||||
k points = 27 in 4 pools
|
||||
1 of 7 on ionode
|
||||
2 of 7 on ionode
|
||||
3 of 7 on ionode
|
||||
4 of 7 on ionode
|
||||
5 of 7 on ionode
|
||||
6 of 7 on ionode
|
||||
7 of 7 on ionode
|
||||
MMN calculated
|
||||
|
||||
Running Wannier90
|
||||
|
||||
Wannier Function centers (cartesian, alat) and spreads (ang):
|
||||
|
||||
( 0.12500 0.12500 0.12500) : 0.57702
|
||||
( 0.12500 -0.12500 -0.12500) : 0.57702
|
||||
( -0.12500 0.12500 -0.12500) : 0.57702
|
||||
( -0.12500 -0.12500 0.12500) : 0.57702
|
||||
|
||||
Writing out Wannier function cube files
|
||||
|
||||
nr1s = 24, nr2s = 24, nr3s = 24
|
||||
write_plot: wannier_plot_supercell = 3 3 3
|
||||
Wannier Function Num: 1 Maximum Im/Re Ratio = 0.000013
|
||||
Wannier Function Num: 3 Maximum Im/Re Ratio = 0.000013
|
||||
Wannier Function Num: 4 Maximum Im/Re Ratio = 0.000014
|
||||
|
||||
|
||||
cube files written
|
||||
-------------------------------------------------------------------
|
||||
WANNIER : 0.81s CPU 1.02s WALL ( 1 calls)
|
||||
-------------------------------------------------------------------
|
||||
|
||||
Unfolding on the coarse grid
|
||||
|
||||
INITIALIZATION:
|
||||
|
||||
init_vloc : 0.00s CPU 0.00s WALL ( 1 calls)
|
||||
init_us_1 : 0.00s CPU 0.00s WALL ( 1 calls)
|
||||
|
||||
|
||||
|
||||
Electron-Phonon interpolation
|
||||
|
||||
|
||||
|
||||
Total program execution
|
||||
EPW : 0.88s CPU 1.10s WALL
|
||||
|
||||
|
||||
Please consider citing:
|
||||
S. Ponce, E. R. Margine, C. Verdi and F. Giustino, Comput. Phys. Commun. 209, 116 (2016)
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
--
|
||||
&inputepw
|
||||
prefix = 'diam'
|
||||
amass(1) = 12.01078
|
||||
outdir = './'
|
||||
|
||||
|
||||
elph = .false.
|
||||
kmaps = .false.
|
||||
epbwrite = .true.
|
||||
epbread = .false.
|
||||
|
||||
etf_mem = 1
|
||||
vme = .false.
|
||||
use_ws = .true.
|
||||
|
||||
epwwrite = .true.
|
||||
epwread = .false.
|
||||
|
||||
nbndsub = 4
|
||||
|
||||
wannierize = .true.
|
||||
num_iter = 300
|
||||
iprint = 2
|
||||
dis_win_max = 12
|
||||
dis_froz_max= 7
|
||||
proj(1) = 'f=0,0,0:l=-3'
|
||||
wannier_plot= .true.
|
||||
wannier_plot_supercell = 3 3 3
|
||||
wannier_plot_list = '1, 3-4'
|
||||
wannier_plot_radius = 2.5
|
||||
|
||||
elecselfen = .false.
|
||||
nest_fn = .false.
|
||||
phonselfen = .false.
|
||||
a2f = .false.
|
||||
|
||||
fsthick = 15 ! eV
|
||||
eptemp = 300 ! K (same as PRB 76, 165108)
|
||||
degaussw = 1.0 ! eV
|
||||
|
||||
dvscf_dir = './save/'
|
||||
|
||||
nkf1 = 6
|
||||
nkf2 = 6
|
||||
nkf3 = 6
|
||||
|
||||
nqf1 = 6
|
||||
nqf2 = 6
|
||||
nqf3 = 6
|
||||
|
||||
nk1 = 3
|
||||
nk2 = 3
|
||||
nk3 = 3
|
||||
|
||||
nq1 = 3
|
||||
nq2 = 3
|
||||
nq3 = 3
|
||||
/
|
||||
4 cartesian
|
||||
0.000000000000 0.000000000000 0.000000000000
|
||||
-0.333333333333 0.333333333333 -0.333333333333
|
||||
0.000000000000 0.666666666667 0.000000000000
|
||||
0.666666666667 0.000000000000 0.666666666667
|
||||
|
|
@ -74,6 +74,7 @@ indabs=`grep " (cm-1)" $fname | awk '{print $1; print $2; print $3; print $4}'`
|
|||
mobnewx=`sed -n -e "/ Temp / {n;n;n;n;p}" $fname | awk '{print $1; print $2; print $5}'`
|
||||
mobnewy=`sed -n -e "/ Temp / {n;n;n;n;n;p}" $fname | awk '{print $2}'`
|
||||
mobnewz=`sed -n -e "/ Temp / {n;n;n;n;n;n;p}" $fname | awk '{print $3}'`
|
||||
ratmax=`grep "Maximum Im/Re Ratio =" $fname | awk '{print $9}'`
|
||||
|
||||
if test "$efm" != ""; then
|
||||
echo efm
|
||||
|
@ -297,4 +298,7 @@ if test "$pi" != ""; then
|
|||
for x in $pi; do echo $x; done
|
||||
fi
|
||||
|
||||
|
||||
if test "$ratmax" != ""; then
|
||||
echo ratmax
|
||||
for x in $ratmax; do echo $x; done
|
||||
fi
|
||||
|
|
|
@ -80,7 +80,7 @@ inputs_args = ('al.scf.in', '1'), ('al.ph.in', '2'), ('al.dvscfq2r.in', '6'), ('
|
|||
|
||||
[epw_base/]
|
||||
program = EPW
|
||||
inputs_args = ('scf.in', '1'), ('ph.in', '2'), ('scf_epw.in', '1'), ('nscf_epw.in', '1'), ('epw1.in', '3'), ('epw2.in', '3'), ('epw3.in', '3'), ('epw4.in', '3'), ('epw5.in', '3'), ('epw6.in', '3'), ('epw7.in', '3'), ('epw8.in', '3'), ('epw9.in', '3'), ('epw10.in', '3')
|
||||
inputs_args = ('scf.in', '1'), ('ph.in', '2'), ('scf_epw.in', '1'), ('nscf_epw.in', '1'), ('epw1.in', '3'), ('epw2.in', '3'), ('epw3.in', '3'), ('epw4.in', '3'), ('epw5.in', '3'), ('epw6.in', '3'), ('epw7.in', '3'), ('epw8.in', '3'), ('epw9.in', '3'), ('epw10.in', '3'), ('epw11.in', '3')
|
||||
|
||||
[epw_trev/]
|
||||
program = EPW
|
||||
|
|
|
@ -113,7 +113,8 @@ tolerance = ( (1.0e-6, 5.0e-3, 'e1'),
|
|||
(3.0e+1, 1.0e-1, 'mobnewz'),
|
||||
(1.0e+10,1.0e+2, 'density'),
|
||||
(1.0 , 1.0e-2, 'mobxZ'),
|
||||
(1.5e+3, None, 'indabs'))
|
||||
(1.5e+3, None, 'indabs'),
|
||||
(1.0e-4, None, 'ratmax'))
|
||||
|
||||
skip_program = grep
|
||||
skip_args = 'not present in this version'
|
||||
|
|
Loading…
Reference in New Issue