unified inputs for FCA

This commit is contained in:
Xiao Zhang 2021-04-07 10:46:13 -04:00
parent 7053040545
commit e5979ef6f2
5 changed files with 20 additions and 24 deletions

View File

@ -52,7 +52,7 @@
assume_metal, wannier_plot_scale, reduce_unk, &
wannier_plot_supercell, wannier_plot_radius, &
fixsym, epw_no_t_rev, epw_tr, epw_nosym, epw_noinv, &
epw_crysym, indabs_fca, nc_indabs
epw_crysym
USE elph2, ONLY : elph
USE mp, ONLY : mp_bcast
USE mp_world, ONLY : world_comm
@ -158,8 +158,6 @@
CALL mp_bcast(epw_nosym , meta_ionode_id, world_comm)
CALL mp_bcast(epw_noinv , meta_ionode_id, world_comm)
CALL mp_bcast(epw_crysym , meta_ionode_id, world_comm)
CALL mp_bcast(indabs_fca , meta_ionode_id, world_comm)
CALL mp_bcast(nc_indabs , meta_ionode_id, world_comm)
!
! integers
!

View File

@ -35,7 +35,7 @@
specfun_pl, lindabs, use_ws, epbread, fermi_plot, &
epmatkqread, selecqread, restart_step, nsmear, &
nqc1, nqc2, nqc3, nkc1, nkc2, nkc3, assume_metal, &
cumulant, eliashberg, indabs_fca, nomega, &
cumulant, eliashberg, nomega, &
omegamin, omegamax, omegastep, neta
USE control_flags, ONLY : iverbosity
USE noncollin_module, ONLY : noncolin
@ -1465,7 +1465,7 @@
!
! Indirect absorption
IF (lindabs .AND. .NOT. scattering) THEN
IF (indabs_fca .and. (iq == iq_restart)) THEN
IF (carrier .and. (iq == iq_restart)) THEN
ALLOCATE(ef0_fca(nstemp), STAT = ierr)
IF (ierr /= 0) CALL errore('ephwann_shuffle', 'Error allocating ef0_fca', 1)
DO itemp = 1, nstemp
@ -1862,7 +1862,7 @@
ENDIF
!
IF (lindabs .AND. (.NOT. scattering)) THEN
IF (indabs_fca) THEN
IF (carrier) THEN
DEALLOCATE(ef0_fca, STAT = ierr)
IF (ierr /= 0) CALL errore('ephwann_shuffle', 'Error deallocating ef0_fca', 1)
ENDIF

View File

@ -38,7 +38,7 @@
nqf2, nqf3, mp_mesh_k, restart, plselfen, epbread, &
epmatkqread, selecqread, restart_step, nsmear, &
nkc1, nkc2, nkc3, nqc1, nqc2, nqc3, assume_metal, &
cumulant, eliashberg, fermi_plot, indabs_fca, &
cumulant, eliashberg, fermi_plot, &
nomega, omegamin, omegamax, omegastep, neta
USE control_flags, ONLY : iverbosity
USE noncollin_module, ONLY : noncolin
@ -1363,7 +1363,7 @@
!
! Indirect absorption
IF (lindabs .AND. .NOT. scattering) THEN
IF (indabs_fca .and. (iq == iq_restart)) THEN
IF (carrier .and. (iq == iq_restart)) THEN
ALLOCATE(ef0_fca(nstemp), STAT = ierr)
IF (ierr /= 0) CALL errore('ephwann_shuffle', 'Error allocating ef0_fca', 1)
DO itemp = 1, nstemp
@ -1692,8 +1692,8 @@
IF (ierr /= 0) CALL errore('ephwann_shuffle', 'Error deallocating dos', 1)
ENDIF
!
IF (lindabs .AND. indabs_fca .AND. (.NOT. scattering)) THEN
IF (indabs_fca) THEN
IF (lindabs .AND. (.NOT. scattering)) THEN
IF (carrier) THEN
DEALLOCATE(ef0_fca, STAT = ierr)
IF (ierr /= 0) CALL errore('ephwann_shuffle', 'Error deallocating ef0_fca', 1)
ENDIF

View File

@ -59,7 +59,7 @@
wannier_plot_supercell, wannier_plot_scale, reduce_unk, &
wannier_plot_radius, fermi_plot, &
fixsym, epw_no_t_rev, epw_tr, epw_nosym, epw_noinv, &
epw_crysym, indabs_fca, nc_indabs
epw_crysym
USE klist_epw, ONLY : xk_all, xk_loc, xk_cryst, isk_all, isk_loc, et_all, et_loc
USE elph2, ONLY : elph, num_wannier_plot, wanplotlist, gtemp
USE constants_epw, ONLY : ryd2mev, ryd2ev, ev2cmm1, kelvin2eV, zero, eps20, ang2m
@ -150,10 +150,10 @@
lifc, asr_typ, lunif, kerwrite, kerread, imag_read, eliashberg, &
ep_coupling, fila2f, max_memlt, efermi_read, fermi_energy, &
specfun_el, specfun_ph, wmin_specfun, wmax_specfun, nw_specfun, &
delta_approx, scattering, int_mob, scissor, ncarrier, carrier,nc_indabs,&
delta_approx, scattering, int_mob, scissor, ncarrier, carrier, &
iterative_bte, scattering_serta, scattering_0rta, longrange, shortrange,&
scatread, restart, restart_step, restart_filq, prtgkk, nel, meff, &
epsiheg, lphase, omegamin, omegamax, omegastep, n_r, lindabs,indabs_fca,&
epsiheg, lphase, omegamin, omegamax, omegastep, n_r, lindabs, &
mob_maxiter, auto_projections, scdm_proj, scdm_entanglement, scdm_mu, &
scdm_sigma, assume_metal, wannier_plot, wannier_plot_list, reduce_unk, &
wannier_plot_supercell, wannier_plot_scale, wannier_plot_radius, &
@ -347,7 +347,6 @@
! omegastep : Photon energy step in evaluating phonon-assisted absorption spectra (in eV)
! n_r : Constant refractive index
! lindabs : If .TRUE., do phonon-assisted absorption
! indabs_fca : If .TRUE., do phonon-assisted absorption considering free carrier absorption
!
! Added by Felix Goudreault
! assume_metal : If .TRUE. => we are dealing with a metal
@ -540,7 +539,6 @@
scissor = 0.d0 ! eV
carrier = .FALSE.
ncarrier = 0.d0 ! cm^-3
nc_indabs = 0.d0 ! cm^-3
longrange = .FALSE.
shortrange = .FALSE.
prtgkk = .FALSE.

View File

@ -809,7 +809,7 @@
zero, eps80, eps6
USE noncollin_module, ONLY : noncolin
USE pwcom, ONLY : nelec
USE epwcom, ONLY : int_mob, nbndsub, nc_indabs, nstemp, fermi_energy, &
USE epwcom, ONLY : int_mob, nbndsub, ncarrier, nstemp, fermi_energy, &
system_2d, carrier, efermi_read, assume_metal, ngaussw
USE klist_epw, ONLY : isk_dummy
USE mp, ONLY : mp_barrier, mp_sum, mp_max, mp_min
@ -999,11 +999,11 @@
!
WRITE(stdout, '(5x, "Intrinsic density = ", E18.6, "Cm^-3")' ) intrinsic_density
WRITE(stdout, '(/5x, "calculating fermi level...")')
IF (ABS(nc_indabs) < intrinsic_density) THEN
WRITE(stdout, '(5x, a)') 'nc_indabs not given, or smaller than intrinsic density'
IF (ABS(ncarrier) < intrinsic_density) THEN
WRITE(stdout, '(5x, a)') 'ncarrier not given, or smaller than intrinsic density'
WRITE(stdout, '(5x, a)') 'Setting the fermi level to mig-gap'
fermi = (evbm + ecbm) / 2.d0
ELSEIF ( nc_indabs > intrinsic_density ) THEN
ELSEIF ( ncarrier > intrinsic_density ) THEN
! assuming free electron density
eup = 10000d0 + ecbm
elw = evbm - 10000d0
@ -1029,7 +1029,7 @@
! rel_err = -1.0d0
! ELSE
! In this case ncarrier is a negative number
rel_err = (electron_density - nc_indabs) / electron_density
rel_err = (electron_density - ncarrier) / electron_density
! ENDIF
!
IF (ABS(rel_err) < eps6) THEN
@ -1046,7 +1046,7 @@
ef_tmp = (eup + elw) / 2.0d0
ENDDO ! maxiter
fermi = ef_tmp
ELSEIF ( nc_indabs < - intrinsic_density) THEN
ELSEIF ( ncarrier < - intrinsic_density) THEN
! assuming free hole density
eup = 10000d0 + ecbm
elw = evbm - 10000d0
@ -1068,7 +1068,7 @@
! rel_err = -1000.0d0
! ELSE
! In this case ncarrier is a negative number
rel_err = (hole_density - ABS(nc_indabs)) / hole_density
rel_err = (hole_density - ABS(ncarrier)) / hole_density
! ENDIF
!
IF (ABS(rel_err) < eps6) THEN
@ -1091,11 +1091,11 @@
5x, "ef_tmp = ", f10.6)' ) fermi * ryd2ev
ENDIF
WRITE(stdout, '(/5x, "Temperature ", f8.3, " K")' ) etemp_fca * ryd2ev / kelvin2eV
IF (nc_indabs > intrinsic_density) THEN
IF (ncarrier > intrinsic_density) THEN
ef0_fca(itemp) = fermi
WRITE(stdout, '(5x, "Electron density = ", E18.6, "Cm^-3")' ) electron_density
WRITE(stdout, '(5x, "Calculated Fermi level = ", f10.5, " eV")' ) ef0_fca(itemp) * ryd2ev
ELSEIF (nc_indabs < - intrinsic_density) THEN
ELSEIF (ncarrier < - intrinsic_density) THEN
ef0_fca(itemp) = fermi
WRITE(stdout, '(5x, "Hole density = ", E18.6, "Cm^-3")' ) hole_density
WRITE(stdout, '(5x, "Calculated Fermi level = ", f10.5, " eV")' ) ef0_fca(itemp) * ryd2ev