mirror of https://gitlab.com/QEF/q-e.git
Global change in name of the solvent-related module, going from Solvent to Environ. All the modifications are still
contained within #ifdef __ENVIRON ... #endif statements, so no effects should be present for normal compilations. git-svn-id: http://qeforge.qe-forge.org/svn/q-e/trunk/espresso@8646 c92efa57-630b-4861-b058-cf58834340f0
This commit is contained in:
parent
4e195472f5
commit
e070fdc000
8
Makefile
8
Makefile
|
@ -35,7 +35,7 @@ default :
|
|||
###########################################################
|
||||
# Main targets
|
||||
###########################################################
|
||||
pw : bindir mods liblapack libblas libs libiotk libsolvent
|
||||
pw : bindir mods liblapack libblas libs libiotk libenviron
|
||||
if test -d PW ; then \
|
||||
( cd PW ; if test "$(MAKE)" = "" ; then make $(MFLAGS) TLDEPS= all ; \
|
||||
else $(MAKE) $(MFLAGS) TLDEPS= all ; fi ) ; fi
|
||||
|
@ -127,8 +127,8 @@ libs : mods
|
|||
( cd flib ; if test "$(MAKE)" = "" ; then make $(MFLAGS) TLDEPS= $(FLIB_TARGETS) ; \
|
||||
else $(MAKE) $(MFLAGS) TLDEPS= $(FLIB_TARGETS) ; fi )
|
||||
|
||||
libsolvent : mods
|
||||
( if test -d Solvent ; then cd Solvent ; if test "$(MAKE)" = "" ; \
|
||||
libenviron : mods
|
||||
( if test -d Environ ; then cd Environ ; if test "$(MAKE)" = "" ; \
|
||||
then make $(MFLAGS) TLDEPS= all; else $(MAKE) $(MFLAGS) TLDEPS= all ; fi ; fi )
|
||||
|
||||
bindir :
|
||||
|
@ -202,7 +202,7 @@ clean :
|
|||
CPV PHonon/D3 PHonon/Gamma Modules PHonon/PH PP PW PWCOND \
|
||||
NEB VdW ACFDT EE \
|
||||
atomic/src clib flib pwtools upftools iotk GIPAW XSpectra \
|
||||
dev-tools GWW extlibs TDDFPT Solvent EPW \
|
||||
dev-tools GWW extlibs TDDFPT Environ EPW \
|
||||
; do \
|
||||
if test -d $$dir ; then \
|
||||
( cd $$dir ; \
|
||||
|
|
|
@ -450,9 +450,9 @@ MODULE input_parameters
|
|||
! other DFT-D parameters ( see PW/mm_dispersion.f90 )
|
||||
REAL ( DP ) :: london_s6 = 0.75_DP , & ! default global scaling parameter for PBE
|
||||
london_rcut = 200.00_DP
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
LOGICAL :: do_solvent = .false.
|
||||
LOGICAL :: do_environ = .false.
|
||||
#endif
|
||||
!
|
||||
CHARACTER(LEN=3) :: esm_bc = 'pbc'
|
||||
|
@ -489,8 +489,8 @@ MODULE input_parameters
|
|||
nqx1, nqx2, nqx3, &
|
||||
exxdiv_treatment, x_gamma_extrapolation, yukawa, ecutvcut, &
|
||||
exx_fraction, screening_parameter, &
|
||||
#ifdef __SOLVENT
|
||||
do_solvent, &
|
||||
#ifdef __ENVIRON
|
||||
do_environ, &
|
||||
#endif
|
||||
noncolin, lspinorb, starting_spin_angle, lambda, angle1, angle2, &
|
||||
report, &
|
||||
|
@ -500,10 +500,10 @@ MODULE input_parameters
|
|||
spline_ps, one_atom_occupations, london, london_s6, london_rcut, &
|
||||
step_pen, A_pen, sigma_pen, alpha_pen, no_t_rev, &
|
||||
esm_bc, esm_efield, esm_w, esm_nfit, esm_debug, esm_debug_gpmax
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
!=----------------------------------------------------------------------------=!
|
||||
! SOLVENT Namelist Input Parameters
|
||||
! ENVIRON Namelist Input Parameters
|
||||
!=----------------------------------------------------------------------------=!
|
||||
!
|
||||
! Global parameters
|
||||
|
@ -512,7 +512,7 @@ MODULE input_parameters
|
|||
! verbosity 0: only prints summary of polarization charge calculation;
|
||||
! 1: prints an extra file with details of iterative convergence;
|
||||
! 2: prints 3D cube files of physical properties
|
||||
REAL(DP) :: solvent_thr = 1.d-1
|
||||
REAL(DP) :: environ_thr = 1.d-1
|
||||
! how early in scf should the corrective pot start being calculated
|
||||
!
|
||||
! Switching function parameters
|
||||
|
@ -531,7 +531,7 @@ MODULE input_parameters
|
|||
!
|
||||
! Dielectric solvent parameters
|
||||
!
|
||||
REAL(DP) :: epszero = 78.D0
|
||||
REAL(DP) :: env_static_permittivity = 78.D0
|
||||
! static dielectric permittivity of the solvation model. If set equal
|
||||
! to one (=vacuum) no dielectric effects
|
||||
CHARACTER( LEN = 256 ) :: eps_mode = 'electronic'
|
||||
|
@ -570,24 +570,25 @@ MODULE input_parameters
|
|||
!
|
||||
! Cavitation energy parameters
|
||||
!
|
||||
REAL(DP) :: gamma = 0.D0
|
||||
REAL(DP) :: env_surface_tension = 0.D0
|
||||
! solvent surface tension, if equal to zero no cavitation term
|
||||
REAL(DP) :: delta = 0.00001D0
|
||||
! finite difference parameter to compute the molecular surface
|
||||
!
|
||||
! PV energy parameters
|
||||
!
|
||||
REAL(DP) :: extpressure = 0.D0
|
||||
REAL(DP) :: env_pressure = 0.D0
|
||||
! external pressure for PV energy, if equal to zero no pressure term
|
||||
|
||||
NAMELIST / solvent / &
|
||||
verbose, solvent_thr, &
|
||||
NAMELIST / environ / &
|
||||
verbose, environ_thr, &
|
||||
stype, rhomax, rhomin, tbeta, &
|
||||
epszero, eps_mode, solvationrad, atomicspread, &
|
||||
env_static_permittivity, eps_mode, &
|
||||
solvationrad, atomicspread, &
|
||||
ifdtype, nfdpoint, &
|
||||
mixrhopol, tolrhopol, &
|
||||
gamma, delta, &
|
||||
extpressure
|
||||
env_surface_tension, delta, &
|
||||
env_pressure
|
||||
#endif
|
||||
!
|
||||
!=----------------------------------------------------------------------------=!
|
||||
|
|
|
@ -234,10 +234,10 @@ MODULE read_namelists_module
|
|||
london_s6 = 0.75_DP
|
||||
london_rcut = 200.00_DP
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
! ... Solvent
|
||||
#ifdef __ENVIRON
|
||||
! ... Environ
|
||||
!
|
||||
do_solvent = .false.
|
||||
do_environ = .false.
|
||||
!
|
||||
#endif
|
||||
! ... ESM
|
||||
|
@ -253,15 +253,15 @@ MODULE read_namelists_module
|
|||
!
|
||||
END SUBROUTINE
|
||||
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!=----------------------------------------------------------------------=!
|
||||
!
|
||||
! Variables initialization for Namelist SOLVENT
|
||||
! Variables initialization for Namelist ENVIRON
|
||||
!
|
||||
!=----------------------------------------------------------------------=!
|
||||
!
|
||||
!-----------------------------------------------------------------------
|
||||
SUBROUTINE solvent_defaults( prog )
|
||||
SUBROUTINE environ_defaults( prog )
|
||||
!-----------------------------------------------------------------------
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -269,15 +269,15 @@ MODULE read_namelists_module
|
|||
CHARACTER(LEN=2) :: prog ! ... specify the calling program
|
||||
!
|
||||
!
|
||||
verbose = 0
|
||||
solvent_thr = 1.D-1
|
||||
verbose = 0
|
||||
environ_thr = 1.D-1
|
||||
!
|
||||
stype = 1
|
||||
rhomax = 0.005
|
||||
rhomin = 0.0001
|
||||
tbeta = 4.8
|
||||
!
|
||||
epszero = 78.D0
|
||||
env_static_permittivity = 78.D0
|
||||
eps_mode = 'electronic'
|
||||
solvationrad(:) = 3.D0
|
||||
atomicspread(:) = 0.5D0
|
||||
|
@ -288,10 +288,10 @@ MODULE read_namelists_module
|
|||
mixrhopol = 0.5
|
||||
tolrhopol = 1.D-10
|
||||
!
|
||||
gamma = 50.D0
|
||||
env_surface_tension = 50.D0
|
||||
delta = 0.00001D0
|
||||
!
|
||||
extpressure = -0.35D0
|
||||
env_pressure = -0.35D0
|
||||
!
|
||||
RETURN
|
||||
!
|
||||
|
@ -866,8 +866,8 @@ MODULE read_namelists_module
|
|||
CALL mp_bcast( london_rcut, ionode_id )
|
||||
!
|
||||
CALL mp_bcast( no_t_rev, ionode_id )
|
||||
#ifdef __SOLVENT
|
||||
CALL mp_bcast( do_solvent, ionode_id )
|
||||
#ifdef __ENVIRON
|
||||
CALL mp_bcast( do_environ, ionode_id )
|
||||
#endif
|
||||
!
|
||||
! ... ESM method broadcast
|
||||
|
@ -882,15 +882,15 @@ MODULE read_namelists_module
|
|||
RETURN
|
||||
!
|
||||
END SUBROUTINE
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!=----------------------------------------------------------------------=!
|
||||
!
|
||||
! Broadcast variables values for Namelist SOLVENT
|
||||
! Broadcast variables values for Namelist ENVIRON
|
||||
!
|
||||
!=----------------------------------------------------------------------=!
|
||||
!
|
||||
!-----------------------------------------------------------------------
|
||||
SUBROUTINE solvent_bcast()
|
||||
SUBROUTINE environ_bcast()
|
||||
!-----------------------------------------------------------------------
|
||||
!
|
||||
USE io_global, ONLY : ionode_id
|
||||
|
@ -899,14 +899,14 @@ MODULE read_namelists_module
|
|||
IMPLICIT NONE
|
||||
!
|
||||
CALL mp_bcast( verbose, ionode_id )
|
||||
CALL mp_bcast( solvent_thr, ionode_id )
|
||||
CALL mp_bcast( environ_thr, ionode_id )
|
||||
!
|
||||
CALL mp_bcast( stype, ionode_id )
|
||||
CALL mp_bcast( rhomax, ionode_id )
|
||||
CALL mp_bcast( rhomax, ionode_id )
|
||||
CALL mp_bcast( rhomin, ionode_id )
|
||||
CALL mp_bcast( tbeta, ionode_id )
|
||||
!
|
||||
CALL mp_bcast( epszero, ionode_id )
|
||||
CALL mp_bcast( env_static_permittivity, ionode_id )
|
||||
CALL mp_bcast( eps_mode, ionode_id )
|
||||
CALL mp_bcast( solvationrad, ionode_id )
|
||||
CALL mp_bcast( atomicspread, ionode_id )
|
||||
|
@ -917,10 +917,10 @@ MODULE read_namelists_module
|
|||
CALL mp_bcast( mixrhopol, ionode_id )
|
||||
CALL mp_bcast( tolrhopol, ionode_id )
|
||||
!
|
||||
CALL mp_bcast( gamma, ionode_id )
|
||||
CALL mp_bcast( env_surface_tension, ionode_id )
|
||||
CALL mp_bcast( delta, ionode_id )
|
||||
!
|
||||
CALL mp_bcast( extpressure, ionode_id )
|
||||
CALL mp_bcast( env_pressure, ionode_id )
|
||||
!
|
||||
RETURN
|
||||
!
|
||||
|
@ -1869,8 +1869,8 @@ MODULE read_namelists_module
|
|||
CALL electrons_defaults( prog )
|
||||
CALL ions_defaults( prog )
|
||||
CALL cell_defaults( prog )
|
||||
#ifdef __SOLVENT
|
||||
CALL solvent_defaults( prog )
|
||||
#ifdef __ENVIRON
|
||||
CALL environ_defaults( prog )
|
||||
#endif
|
||||
CALL ee_defaults( prog )
|
||||
ENDIF
|
||||
|
@ -1991,18 +1991,18 @@ MODULE read_namelists_module
|
|||
END IF
|
||||
!
|
||||
CALL press_ai_bcast()
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
! ... SOLVENT namelist
|
||||
! ... ENVIRON namelist
|
||||
!
|
||||
IF ( do_solvent ) THEN
|
||||
IF ( do_environ ) THEN
|
||||
ios = 0
|
||||
IF( ionode ) READ( 5, solvent, iostat = ios )
|
||||
IF( ionode ) READ( 5, environ, iostat = ios )
|
||||
CALL mp_bcast( ios, ionode_id )
|
||||
IF( ios /= 0 ) CALL errore( ' read_namelists ', &
|
||||
& ' reading namelist solvent ', ABS(ios) )
|
||||
& ' reading namelist environ ', ABS(ios) )
|
||||
END IF
|
||||
CALL solvent_bcast()
|
||||
CALL environ_bcast()
|
||||
#endif
|
||||
!
|
||||
! ... EE namelist
|
||||
|
|
|
@ -32,9 +32,6 @@ SUBROUTINE clean_pw( lflag )
|
|||
USE force_mod, ONLY : force
|
||||
USE scf, ONLY : rho, v, vltot, rho_core, rhog_core, &
|
||||
vrs, kedtau, destroy_scf_type, vnew
|
||||
#ifdef __SOLVENT
|
||||
USE scf, ONLY : vltot_zero
|
||||
#endif
|
||||
USE symm_base, ONLY : irt
|
||||
USE symme, ONLY : sym_rho_deallocate
|
||||
USE wavefunctions_module, ONLY : evc, psic, psic_nc
|
||||
|
@ -60,8 +57,8 @@ SUBROUTINE clean_pw( lflag )
|
|||
USE pseudo_types, ONLY : deallocate_pseudo_upf
|
||||
USE bp, ONLY : deallocate_bp_efield
|
||||
USE exx, ONLY : deallocate_exx
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -123,9 +120,6 @@ SUBROUTINE clean_pw( lflag )
|
|||
call destroy_scf_type(vnew)
|
||||
IF ( ALLOCATED( kedtau ) ) DEALLOCATE( kedtau )
|
||||
IF ( ALLOCATED( vltot ) ) DEALLOCATE( vltot )
|
||||
#ifdef __SOLVENT
|
||||
IF ( ALLOCATED( vltot_zero ) ) DEALLOCATE( vltot_zero )
|
||||
#endif
|
||||
IF ( ALLOCATED( rho_core ) ) DEALLOCATE( rho_core )
|
||||
IF ( ALLOCATED( rhog_core ) ) DEALLOCATE( rhog_core )
|
||||
IF ( ALLOCATED( psic ) ) DEALLOCATE( psic )
|
||||
|
@ -198,10 +192,10 @@ SUBROUTINE clean_pw( lflag )
|
|||
if (use_wannier) CALL wannier_clean()
|
||||
!
|
||||
CALL deallocate_exx ( )
|
||||
#ifdef __SOLVENT
|
||||
! ... additional arrays for solvent medium
|
||||
#ifdef __ENVIRON
|
||||
! ... additional arrays for external environment
|
||||
!
|
||||
if (do_solvent) CALL solvent_clean()
|
||||
if (do_environ) CALL environ_clean()
|
||||
!
|
||||
#endif
|
||||
!
|
||||
|
|
|
@ -71,12 +71,12 @@ SUBROUTINE electrons()
|
|||
USE paw_onecenter, ONLY : PAW_potential
|
||||
USE paw_symmetry, ONLY : PAW_symmetrize_ddd
|
||||
USE uspp_param, ONLY : nh, nhm ! used for PAW
|
||||
#ifdef __SOLVENT
|
||||
USE scf, ONLY : vltot_zero
|
||||
USE control_flags, ONLY : save_vltot
|
||||
USE solvent_base, ONLY : do_solvent, update_vsolvent, solvent_thr, &
|
||||
epszero, gamma, extpressure, &
|
||||
desolvent, esolvent, ecavity, epressure
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ, update_venviron, &
|
||||
vltot_zero, environ_thr, &
|
||||
env_static_permittivity, &
|
||||
env_surface_tension, env_pressure, &
|
||||
deenviron, esolvent, ecavity, epressure
|
||||
#endif
|
||||
USE dfunct, only : newd
|
||||
USE esm, ONLY : do_comp_esm, esm_printpot
|
||||
|
@ -177,15 +177,14 @@ SUBROUTINE electrons()
|
|||
CALL set_vrs( vrs, vltot, v%of_r, kedtau, v%kin_r, dfftp%nnr, nspin, doublegrid )
|
||||
end if
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) THEN
|
||||
CALL solvent_initions( nat, nsp, ityp, zv, tau )
|
||||
CALL solvent_initcell( at, bg, alat, omega, tpiba2 )
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) THEN
|
||||
vltot_zero = vltot
|
||||
CALL environ_initions( nat, nsp, ityp, zv, tau )
|
||||
CALL environ_initcell( dfftp%nr1*dfftp%nr2*dfftp%nr3, omega )
|
||||
END IF
|
||||
!
|
||||
IF ( save_vltot ) vltot_zero = vltot
|
||||
#endif
|
||||
!
|
||||
!
|
||||
CALL flush_unit( stdout )
|
||||
!
|
||||
! ... calculates the ewald contribution to total energy
|
||||
|
@ -434,21 +433,21 @@ SUBROUTINE electrons()
|
|||
!
|
||||
END DO scf_step
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
IF ( save_vltot ) vltot = vltot_zero
|
||||
#ifdef __ENVIRON
|
||||
! ... computes the external environment contribution to energy and potential
|
||||
!
|
||||
! ... computes the solvation contribution to energy and potential
|
||||
!
|
||||
IF ( do_solvent ) THEN
|
||||
IF ( do_environ ) THEN
|
||||
!
|
||||
CALL calc_esolvent( dfftp%nnr, nspin, rhoin%of_r, vltot_zero, &
|
||||
desolvent, esolvent, ecavity, epressure )
|
||||
vltot = vltot_zero
|
||||
!
|
||||
update_vsolvent = .NOT. conv_elec .AND. dr2 .LT. solvent_thr
|
||||
CALL calc_eenviron( dfftp%nnr, nspin, rhoin%of_r, vltot_zero, &
|
||||
deenviron, esolvent, ecavity, epressure )
|
||||
!
|
||||
IF ( update_vsolvent ) WRITE( stdout, 9200 )
|
||||
update_venviron = .NOT. conv_elec .AND. dr2 .LT. environ_thr
|
||||
!
|
||||
CALL calc_vsolvent( update_vsolvent, dfftp%nnr, nspin, rhoin%of_r, vltot )
|
||||
IF ( update_venviron ) WRITE( stdout, 9200 )
|
||||
!
|
||||
CALL calc_venviron( update_venviron, dfftp%nnr, nspin, rhoin%of_r, vltot )
|
||||
!
|
||||
END IF
|
||||
#endif
|
||||
|
@ -569,11 +568,11 @@ SUBROUTINE electrons()
|
|||
hwf_energy = hwf_energy + etotefield
|
||||
END IF
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
! ... adds the solvation contribution to the energy
|
||||
! ... adds the external environment contribution to the energy
|
||||
!
|
||||
IF ( do_solvent ) etot = etot + desolvent + esolvent + ecavity + epressure
|
||||
IF ( do_environ ) etot = etot + deenviron + esolvent + ecavity + epressure
|
||||
#endif
|
||||
!
|
||||
IF ( ( conv_elec .OR. MOD( iter, iprint ) == 0 ) .AND. .NOT. lmd ) THEN
|
||||
|
@ -624,11 +623,11 @@ SUBROUTINE electrons()
|
|||
END IF
|
||||
END IF
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) THEN
|
||||
IF ( epszero .GT. 1.D0 ) WRITE( stdout, 9201 ) esolvent
|
||||
IF ( gamma .GT. 0.D0 ) WRITE( stdout, 9202 ) ecavity
|
||||
IF ( extpressure .NE. 0.D0 ) WRITE( stdout, 9203 ) epressure
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) THEN
|
||||
IF ( env_static_permittivity .GT. 1.D0 ) WRITE( stdout, 9201 ) esolvent
|
||||
IF ( env_surface_tension .GT. 0.D0 ) WRITE( stdout, 9202 ) ecavity
|
||||
IF ( env_pressure .NE. 0.D0 ) WRITE( stdout, 9203 ) epressure
|
||||
ENDIF
|
||||
#endif
|
||||
!
|
||||
|
@ -749,8 +748,8 @@ SUBROUTINE electrons()
|
|||
9110 FORMAT(/' convergence has been achieved in ',i3,' iterations' )
|
||||
9120 FORMAT(/' convergence NOT achieved after ',i3,' iterations: stopping' )
|
||||
9121 FORMAT(/' scf convergence threshold =',1PE17.1,' Ry' )
|
||||
#ifdef __SOLVENT
|
||||
9200 FORMAT(/' add solvent contribution to local potential')
|
||||
#ifdef __ENVIRON
|
||||
9200 FORMAT(/' add environment contribution to local potential')
|
||||
9201 FORMAT( ' solvation energy =',F17.8,' Ry' )
|
||||
9202 FORMAT( ' cavitation energy =',F17.8,' Ry' )
|
||||
9203 FORMAT( ' PV energy =',F17.8,' Ry' )
|
||||
|
|
|
@ -39,8 +39,8 @@ SUBROUTINE forces()
|
|||
USE extfield, ONLY : tefield, forcefield
|
||||
USE control_flags, ONLY : gamma_only, remove_rigid_rot, textfor, &
|
||||
iverbosity, llondon
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent, epszero, eps_mode, rhopol
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ, env_static_permittivity, eps_mode, rhopol
|
||||
#endif
|
||||
USE bp, ONLY : lelfield, gdir, l3dstring, efield_cart, &
|
||||
efield_cry,efield
|
||||
|
@ -61,8 +61,8 @@ SUBROUTINE forces()
|
|||
forces_bp_efield(:,:), &
|
||||
forceh(:,:)
|
||||
! nonlocal, local, core-correction, ewald, scf correction terms, and hubbard
|
||||
#ifdef __SOLVENT
|
||||
REAL(DP), ALLOCATABLE :: force_solvent(:,:)
|
||||
#ifdef __ENVIRON
|
||||
REAL(DP), ALLOCATABLE :: force_environ(:,:)
|
||||
#endif
|
||||
|
||||
REAL(DP) :: sumfor, sumscf, sum_mm
|
||||
|
@ -127,23 +127,25 @@ SUBROUTINE forces()
|
|||
nspin, rho%of_g, force_mt )
|
||||
|
||||
END IF
|
||||
#ifdef __SOLVENT
|
||||
IF (do_solvent) THEN
|
||||
#ifdef __ENVIRON
|
||||
IF (do_environ) THEN
|
||||
!
|
||||
! ... The external environment contribution
|
||||
!
|
||||
CALL start_clock('calc_fsolv')
|
||||
!
|
||||
ALLOCATE ( force_solvent ( 3 , nat ) )
|
||||
ALLOCATE ( force_environ ( 3 , nat ) )
|
||||
!
|
||||
force_solvent = 0.0_DP
|
||||
force_environ = 0.0_DP
|
||||
!
|
||||
IF ( epszero .GT. 1.D0 ) THEN
|
||||
IF ( env_static_permittivity .GT. 1.D0 ) THEN
|
||||
!
|
||||
IF ( TRIM(eps_mode) .NE. 'ionic' ) THEN
|
||||
CALL force_lc( nat, tau, ityp, alat, omega, ngm, ngl, igtongl, &
|
||||
g, rhopol, nl, 1, gstart, gamma_only, vloc, &
|
||||
force_solvent )
|
||||
force_environ )
|
||||
ELSE
|
||||
CALL calc_fsolvent( dfftp%nnr, force_solvent )
|
||||
CALL calc_fsolvent( dfftp%nnr, force_environ )
|
||||
END IF
|
||||
!
|
||||
END IF
|
||||
|
@ -196,8 +198,8 @@ SUBROUTINE forces()
|
|||
IF (do_comp_mt)force(ipol,na) = force(ipol,na) + force_mt(ipol,na)
|
||||
! DCC
|
||||
! IF (do_comp) force(ipol,na) = force(ipol,na) + force_vcorr(ipol,na)
|
||||
#ifdef __SOLVENT
|
||||
IF (do_solvent) force(ipol,na) = force(ipol,na) + force_solvent(ipol,na)
|
||||
#ifdef __ENVIRON
|
||||
IF (do_environ) force(ipol,na) = force(ipol,na) + force_environ(ipol,na)
|
||||
#endif
|
||||
|
||||
sumfor = sumfor + force(ipol,na)
|
||||
|
@ -284,11 +286,11 @@ SUBROUTINE forces()
|
|||
DO na = 1, nat
|
||||
WRITE( stdout, 9035) na, ityp(na), ( forcescc(ipol,na), ipol = 1, 3 )
|
||||
END DO
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) THEN
|
||||
WRITE( stdout, '(5x,"The continuum solvent correction to forces")')
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) THEN
|
||||
WRITE( stdout, '(5x,"The external environment correction to forces")')
|
||||
DO na = 1, nat
|
||||
WRITE( stdout, 9035) na, ityp(na), ( force_solvent(ipol,na), ipol = 1, 3 )
|
||||
WRITE( stdout, 9035) na, ityp(na), ( force_environ(ipol,na), ipol = 1, 3 )
|
||||
END DO
|
||||
END IF
|
||||
#endif
|
||||
|
@ -343,8 +345,8 @@ SUBROUTINE forces()
|
|||
& "reduce conv_thr to get better values")')
|
||||
!
|
||||
IF(ALLOCATED(force_mt)) DEALLOCATE( force_mt )
|
||||
#ifdef __SOLVENT
|
||||
IF(ALLOCATED(force_solvent)) DEALLOCATE( force_solvent )
|
||||
#ifdef __ENVIRON
|
||||
IF(ALLOCATED(force_environ)) DEALLOCATE( force_environ )
|
||||
#endif
|
||||
|
||||
RETURN
|
||||
|
|
|
@ -22,9 +22,9 @@ SUBROUTINE init_run()
|
|||
USE paw_init, ONLY : paw_post_init
|
||||
#endif
|
||||
USE bp, ONLY : allocate_bp_efield, bp_global_map
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
USE fft_base, ONLY : dfftp
|
||||
USE solvent_base, ONLY : do_solvent
|
||||
USE environ_base, ONLY : do_environ
|
||||
#endif
|
||||
USE recvec_subs, ONLY : ggen
|
||||
USE wannier_new, ONLY : use_wannier
|
||||
|
@ -67,8 +67,8 @@ SUBROUTINE init_run()
|
|||
CALL allocate_wfc()
|
||||
CALL allocate_bp_efield()
|
||||
CALL bp_global_map()
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) CALL solvent_initbase( dfftp%nnr )
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) CALL environ_initbase( dfftp%nnr )
|
||||
#endif
|
||||
!
|
||||
CALL memory_report()
|
||||
|
|
|
@ -102,27 +102,26 @@ SUBROUTINE iosys()
|
|||
niter_with_fixed_ns, starting_ns, U_projection
|
||||
!
|
||||
USE martyna_tuckerman, ONLY: do_comp_mt
|
||||
#ifdef __SOLVENT
|
||||
USE control_flags, ONLY : save_vltot
|
||||
USE constants, ONLY : rydberg_si, bohr_radius_si
|
||||
USE solvent_base, ONLY : do_solvent_ => do_solvent, &
|
||||
verbose_ => verbose, &
|
||||
solvent_thr_ => solvent_thr, &
|
||||
stype_ => stype, &
|
||||
rhomax_ => rhomax, &
|
||||
rhomin_ => rhomin, &
|
||||
tbeta_ => tbeta, &
|
||||
epszero_ => epszero, &
|
||||
eps_mode_ => eps_mode, &
|
||||
solvationrad_ => solvationrad, &
|
||||
atomicspread_ => atomicspread, &
|
||||
ifdtype_ => ifdtype, &
|
||||
nfdpoint_ => nfdpoint, &
|
||||
mixrhopol_ => mixrhopol, &
|
||||
tolrhopol_ => tolrhopol, &
|
||||
gamma_ => gamma, &
|
||||
delta_ => delta, &
|
||||
extpressure_ => extpressure
|
||||
#ifdef __ENVIRON
|
||||
USE constants, ONLY : rydberg_si, bohr_radius_si
|
||||
USE environ_base, ONLY : do_environ_ => do_environ, &
|
||||
verbose_ => verbose, &
|
||||
environ_thr_ => environ_thr, &
|
||||
stype_ => stype, &
|
||||
rhomax_ => rhomax, &
|
||||
rhomin_ => rhomin, &
|
||||
tbeta_ => tbeta, &
|
||||
env_static_permittivity_ => env_static_permittivity, &
|
||||
eps_mode_ => eps_mode, &
|
||||
solvationrad_ => solvationrad, &
|
||||
atomicspread_ => atomicspread, &
|
||||
ifdtype_ => ifdtype, &
|
||||
nfdpoint_ => nfdpoint, &
|
||||
mixrhopol_ => mixrhopol, &
|
||||
tolrhopol_ => tolrhopol, &
|
||||
env_surface_tension_ => env_surface_tension, &
|
||||
delta_ => delta, &
|
||||
env_pressure_ => env_pressure
|
||||
#endif
|
||||
!
|
||||
USE esm, ONLY: do_comp_esm, &
|
||||
|
@ -240,8 +239,8 @@ SUBROUTINE iosys()
|
|||
x_gamma_extrapolation, nqx1, nqx2, nqx3, &
|
||||
exxdiv_treatment, yukawa, ecutvcut, &
|
||||
exx_fraction, screening_parameter, &
|
||||
#ifdef __SOLVENT
|
||||
do_solvent, &
|
||||
#ifdef __ENVIRON
|
||||
do_environ, &
|
||||
#endif
|
||||
edir, emaxpos, eopreg, eamp, noncolin, lambda, &
|
||||
angle1, angle2, constrained_magnetization, &
|
||||
|
@ -250,17 +249,18 @@ SUBROUTINE iosys()
|
|||
assume_isolated, spline_ps, london, london_s6, &
|
||||
london_rcut, one_atom_occupations, &
|
||||
esm_bc, esm_efield, esm_w, esm_nfit
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
! ... SOLVENT namelist
|
||||
! ... ENVIRON namelist
|
||||
!
|
||||
USE input_parameters, ONLY : verbose, solvent_thr, &
|
||||
stype, rhomax, rhomin, tbeta, &
|
||||
epszero, eps_mode, solvationrad, atomicspread, &
|
||||
ifdtype, nfdpoint, &
|
||||
mixrhopol, tolrhopol, &
|
||||
gamma, delta, &
|
||||
extpressure
|
||||
USE input_parameters, ONLY : verbose, environ_thr, &
|
||||
stype, rhomax, rhomin, tbeta, &
|
||||
env_static_permittivity, eps_mode, &
|
||||
solvationrad, atomicspread, &
|
||||
ifdtype, nfdpoint, &
|
||||
mixrhopol, tolrhopol, &
|
||||
env_surface_tension, delta, &
|
||||
env_pressure
|
||||
#endif
|
||||
!
|
||||
! ... ELECTRONS namelist
|
||||
|
@ -1185,15 +1185,13 @@ SUBROUTINE iosys()
|
|||
w_1_ = w_1
|
||||
w_2_ = w_2
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
! ... Solvent
|
||||
! ... Environ
|
||||
!
|
||||
do_solvent_ = do_solvent
|
||||
save_vltot = .false.
|
||||
IF ( do_solvent ) save_vltot = .true.
|
||||
verbose_ = verbose
|
||||
solvent_thr_ = solvent_thr
|
||||
do_environ_ = do_environ
|
||||
verbose_ = verbose
|
||||
environ_thr_ = environ_thr
|
||||
!
|
||||
stype_ = stype
|
||||
rhomax_ = rhomax
|
||||
|
@ -1203,7 +1201,7 @@ SUBROUTINE iosys()
|
|||
tbeta_ = LOG( rhomax / rhomin )
|
||||
END IF
|
||||
!
|
||||
epszero_ = epszero
|
||||
env_static_permittivity_ = env_static_permittivity
|
||||
eps_mode_ = eps_mode
|
||||
ALLOCATE( solvationrad_( ntyp ) )
|
||||
solvationrad_( 1:ntyp ) = solvationrad( 1:ntyp )
|
||||
|
@ -1216,10 +1214,11 @@ SUBROUTINE iosys()
|
|||
mixrhopol_ = mixrhopol
|
||||
tolrhopol_ = tolrhopol
|
||||
!
|
||||
gamma_ = gamma*1.D-3*bohr_radius_si**2/rydberg_si
|
||||
env_surface_tension_ = &
|
||||
env_surface_tension*1.D-3*bohr_radius_si**2/rydberg_si
|
||||
delta_ = delta
|
||||
!
|
||||
extpressure_ = extpressure*1.D9/rydberg_si*bohr_radius_si**3
|
||||
env_pressure_ = env_pressure*1.D9/rydberg_si*bohr_radius_si**3
|
||||
!
|
||||
#endif
|
||||
!
|
||||
|
|
|
@ -19,8 +19,8 @@ SUBROUTINE makov_payne( etot )
|
|||
USE io_global, ONLY : stdout
|
||||
USE ions_base, ONLY : nat, tau, ityp, zv
|
||||
USE cell_base, ONLY : at, bg
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent, pol_dipole, pol_quadrupole
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ, pol_dipole, pol_quadrupole
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -47,9 +47,9 @@ SUBROUTINE makov_payne( etot )
|
|||
x0(:) = x0(:) / zvtot
|
||||
!
|
||||
CALL compute_e_dipole( x0, e_dipole, e_quadrupole )
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!
|
||||
IF ( do_solvent ) CALL compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
|
||||
IF ( do_environ ) CALL compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
|
||||
#endif
|
||||
!
|
||||
CALL write_dipole( etot, x0, e_dipole, e_quadrupole, qq )
|
||||
|
@ -182,8 +182,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
|
|||
USE ions_base, ONLY : nat, ityp, tau, zv
|
||||
USE cell_base, ONLY : at, bg, omega, alat, ibrav
|
||||
USE io_global, ONLY : ionode
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent, pol_dipole, pol_quadrupole
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ, pol_dipole, pol_quadrupole
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -235,8 +235,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
|
|||
!
|
||||
dipole(:) = -dipole_el(1:3) + dipole_ion(:)
|
||||
quadrupole = -quadrupole_el + quadrupole_ion
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) THEN
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) THEN
|
||||
qq = qq - pol_dipole(0)
|
||||
dipole(:) = dipole(:) - pol_dipole(1:3)
|
||||
quadrupole = quadrupole - pol_quadrupole
|
||||
|
@ -256,8 +256,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
|
|||
(-dipole_el(ip), ip = 1, 3), (-dipole_el(ip)*au_debye, ip = 1, 3 )
|
||||
WRITE( stdout, '( 5X,"Ionic",3F9.4," au (Ha),", 3F9.4," Debye")' ) &
|
||||
( dipole_ion(ip),ip = 1, 3), ( dipole_ion(ip)*au_debye,ip = 1, 3 )
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) &
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) &
|
||||
WRITE( stdout, '( 5X,"Diele",3F9.4," au (Ha),", 3F9.4," Debye")' ) &
|
||||
(-pol_dipole(ip),ip = 1, 3), (-pol_dipole(ip)*au_debye,ip = 1, 3 )
|
||||
#endif
|
||||
|
@ -270,8 +270,8 @@ SUBROUTINE write_dipole( etot, x0, dipole_el, quadrupole_el, qq )
|
|||
-quadrupole_el
|
||||
WRITE( stdout, '( 5X," Ions quadrupole moment",F20.8," a.u. (Ha)")' ) &
|
||||
quadrupole_ion
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) &
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) &
|
||||
WRITE( stdout, '( 5X,"Dielectr. quadrupole moment",F20.8," a.u. (Ha)")' ) &
|
||||
-pol_quadrupole
|
||||
#endif
|
||||
|
@ -508,7 +508,7 @@ SUBROUTINE vacuum_level( x0, zion )
|
|||
!
|
||||
END SUBROUTINE vacuum_level
|
||||
|
||||
#ifdef __SOLVENT
|
||||
#ifdef __ENVIRON
|
||||
!---------------------------------------------------------------------------
|
||||
SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
|
||||
!---------------------------------------------------------------------------
|
||||
|
@ -517,7 +517,7 @@ SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
|
|||
USE kinds, ONLY : DP
|
||||
USE ions_base, ONLY : nat, tau
|
||||
USE cell_base, ONLY : at, bg, omega, alat
|
||||
USE solvent_base, ONLY : epszero, rhopol
|
||||
USE environ_base, ONLY : env_static_permittivity, rhopol
|
||||
USE fft_base, ONLY : dfftp
|
||||
USE mp_global, ONLY : me_pool, intra_pool_comm, &
|
||||
me_bgrp, intra_bgrp_comm
|
||||
|
@ -540,7 +540,7 @@ SUBROUTINE compute_pol_dipole( x0, pol_dipole, pol_quadrupole )
|
|||
pol_dipole(:) = 0.D0
|
||||
pol_quadrupole = 0.D0
|
||||
!
|
||||
IF ( epszero .LE. 1.D0 ) RETURN
|
||||
IF ( env_static_permittivity .LE. 1.D0 ) RETURN
|
||||
!
|
||||
index0 = 0
|
||||
!
|
||||
|
|
|
@ -16,8 +16,8 @@ SUBROUTINE print_clock_pw()
|
|||
USE control_flags, ONLY : isolve, iverbosity, gamma_only
|
||||
USE paw_variables, ONLY : okpaw
|
||||
USE realus, ONLY : real_space
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent, epszero, gamma, extpressure
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ
|
||||
#endif
|
||||
!
|
||||
IMPLICIT NONE
|
||||
|
@ -198,30 +198,8 @@ SUBROUTINE print_clock_pw()
|
|||
CALL print_clock ('PAW_grad')
|
||||
END IF
|
||||
!
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) THEN
|
||||
WRITE( stdout, * )
|
||||
WRITE( stdout, '(5X,"Solvent routines")' )
|
||||
! dielectric subroutines
|
||||
IF ( epszero .GT. 1.D0 ) THEN
|
||||
CALL print_clock ('calc_esolv')
|
||||
CALL print_clock ('calc_vsolv')
|
||||
CALL print_clock ('dielectric')
|
||||
CALL print_clock ('get_rhopol')
|
||||
CALL print_clock ('calc_veps' )
|
||||
CALL print_clock ('calc_fsolv')
|
||||
END IF
|
||||
! cavitation subroutines
|
||||
IF ( gamma .GT. 0.D0 ) THEN
|
||||
CALL print_clock ('calc_ecav')
|
||||
CALL print_clock ('calc_vcav')
|
||||
END IF
|
||||
! PV subroutines
|
||||
IF ( extpressure .NE. 0.D0 ) THEN
|
||||
CALL print_clock ('calc_epre')
|
||||
CALL print_clock ('calc_vpre')
|
||||
END IF
|
||||
ENDIF
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) call environ_clock( stdout )
|
||||
#endif
|
||||
!
|
||||
RETURN
|
||||
|
|
|
@ -47,8 +47,8 @@ SUBROUTINE summary()
|
|||
USE lsda_mod, ONLY : nspin
|
||||
USE mp_global, ONLY : intra_pool_comm
|
||||
USE mp, ONLY : mp_sum
|
||||
#ifdef __SOLVENT
|
||||
USE solvent_base, ONLY : do_solvent
|
||||
#ifdef __ENVIRON
|
||||
USE environ_base, ONLY : do_environ
|
||||
#endif
|
||||
! DCC
|
||||
! USE ee_mod, ONLY : do_comp, do_coarse, do_mltgrid, mr1, mr2, mr3
|
||||
|
@ -143,8 +143,8 @@ SUBROUTINE summary()
|
|||
!
|
||||
END IF
|
||||
|
||||
#ifdef __SOLVENT
|
||||
IF ( do_solvent ) CALL solvent_summary()
|
||||
#ifdef __ENVIRON
|
||||
IF ( do_environ ) CALL environ_summary()
|
||||
#endif
|
||||
! DCC
|
||||
! IF ( do_comp ) CALL write_ee_summary()
|
||||
|
|
|
@ -13,7 +13,7 @@ if test $# = 0
|
|||
then
|
||||
dirs=" Modules clib PW/src CPV/src flib PW/tools upftools PP/src PWCOND/src \
|
||||
PHonon/Gamma PHonon/PH PHonon/D3 atomic/src VdW/src XSpectra/src \
|
||||
GWW/gww GWW/pw4gww GWW/head ACFDT NEB/src Solvent TDDFPT/src"
|
||||
GWW/gww GWW/pw4gww GWW/head ACFDT NEB/src Environ/src TDDFPT/src"
|
||||
|
||||
else
|
||||
dirs=$*
|
||||
|
@ -34,7 +34,7 @@ for dir in $dirs; do
|
|||
LEVEL2=../..
|
||||
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src"
|
||||
case $DIR in
|
||||
EE | flib | upftools | Solvent )
|
||||
EE | flib | upftools )
|
||||
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src $LEVEL1/Modules" ;;
|
||||
PP/src )
|
||||
DEPENDS="$LEVEL2/include $LEVEL2/iotk/src $LEVEL2/Modules \
|
||||
|
@ -46,7 +46,7 @@ for dir in $dirs; do
|
|||
DEPENDS="$LEVEL1/include $LEVEL1/iotk/src $LEVEL1/Modules \
|
||||
$LEVEL1/PW/src $LEVEL1/PHonon/PH" ;;
|
||||
|
||||
PW/src )
|
||||
PW/src | Environ/src )
|
||||
DEPENDS="$LEVEL2/include $LEVEL2/iotk/src $LEVEL2/Modules" ;;
|
||||
PW/tools | PWCOND/src )
|
||||
DEPENDS="$LEVEL2/include $LEVEL2/PW/src $LEVEL2/iotk/src $LEVEL2/Modules" ;;
|
||||
|
@ -89,7 +89,7 @@ for dir in $dirs; do
|
|||
if test "$DIR" = "PW/src"
|
||||
then
|
||||
mv make.depend make.depend.tmp
|
||||
sed '/@solvent_base@/d' make.depend.tmp > make.depend
|
||||
sed '/@environ_base@/d' make.depend.tmp > make.depend
|
||||
fi
|
||||
|
||||
rm -f make.depend.tmp
|
||||
|
|
Loading…
Reference in New Issue