mirror of https://gitlab.com/QEF/q-e.git
unified inputs for FCA
This commit is contained in:
parent
7053040545
commit
e5979ef6f2
|
@ -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
|
||||
!
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue