148 lines
5.1 KiB
Fortran
148 lines
5.1 KiB
Fortran
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE ENERGIES_P
|
||
|
!
|
||
|
! This module defines the energies parameters
|
||
|
!
|
||
|
USE ACCURACY_REAL
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: E_0,E_X,E_X_HF,E_C,E_XC
|
||
|
REAL (WP) :: E_HF,E_GS,E_KIN,E_POT
|
||
|
!
|
||
|
END MODULE ENERGIES_P
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE PRINT_ENERGIES_EL
|
||
|
!
|
||
|
! This module prints the energies in the log file
|
||
|
!
|
||
|
!
|
||
|
CONTAINS
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE CALC_ENERGIES_MAT(X,I_SCREEN,K_SC,FF)
|
||
|
!
|
||
|
! This subroutine computes the different energies (per electron)
|
||
|
!
|
||
|
!
|
||
|
! Input parameters:
|
||
|
!
|
||
|
! * X : dimensionless factor --> X = q / (2 * k_F)
|
||
|
! * I_SCREEN : switch for screened (=1) or unscreened (=0) Coulomb
|
||
|
! * K_SC : screening momentum (in SI)
|
||
|
! * FF : form factor
|
||
|
!
|
||
|
!
|
||
|
!
|
||
|
! Author : D. Sébilleau
|
||
|
!
|
||
|
! Last modified : 28 Jul 2020
|
||
|
!
|
||
|
USE CALC_ENERGIES
|
||
|
USE MATERIAL_PROP, ONLY : RS,DMN
|
||
|
USE EXT_FIELDS, ONLY : T
|
||
|
USE ENERGIES, ONLY : EC_TYPE
|
||
|
!
|
||
|
USE ENERGIES_P
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: X,K_SC,FF
|
||
|
!
|
||
|
INTEGER :: I_SCREEN
|
||
|
!
|
||
|
IF(DMN == '3D') THEN !
|
||
|
CALL ENERGIES_3D(X,EC_TYPE,RS,T,I_SCREEN,K_SC,E_0,E_X, & !
|
||
|
E_X_HF,E_C,E_XC,E_HF,E_GS,E_KIN,E_POT) !
|
||
|
ELSE IF(DMN == '2D') THEN !
|
||
|
CALL ENERGIES_2D(X,EC_TYPE,RS,T,E_0,E_X,E_X_HF,E_C,E_XC, & !
|
||
|
E_HF,E_GS,E_KIN,E_POT) !
|
||
|
ELSE IF(DMN == '1D') THEN !
|
||
|
CALL ENERGIES_1D(EC_TYPE,FF,RS,T,E_0,E_X,E_C,E_XC,E_HF, & !
|
||
|
E_GS,E_KIN,E_POT) !
|
||
|
END IF !
|
||
|
!
|
||
|
END SUBROUTINE CALC_ENERGIES_MAT
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE PRINT_ENERGIES(X,I_SCREEN,K_SC,FF)
|
||
|
!
|
||
|
! This subroutine prints the different energies (per electron)
|
||
|
! in the log file
|
||
|
!
|
||
|
!
|
||
|
! Input parameters:
|
||
|
!
|
||
|
! * X : dimensionless factor --> X = q / (2 * k_F)
|
||
|
! * I_SCREEN : switch for screened (=1) or unscreened (=0) Coulomb
|
||
|
! * K_SC : screening momentum (in SI)
|
||
|
! * FF : form factor
|
||
|
!
|
||
|
!
|
||
|
!
|
||
|
! Author : D. Sébilleau
|
||
|
!
|
||
|
! Last modified : 28 Jul 2020
|
||
|
!
|
||
|
!
|
||
|
USE ENE_CHANGE, ONLY : EV
|
||
|
!
|
||
|
USE ENERGIES_P
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: TEST
|
||
|
REAL (WP) :: X,K_SC,FF
|
||
|
!
|
||
|
INTEGER :: LOGF
|
||
|
INTEGER :: I_SCREEN
|
||
|
!
|
||
|
LOGF=6 ! log file unit
|
||
|
!
|
||
|
TEST=90000.0E0_WP !
|
||
|
!
|
||
|
CALL CALC_ENERGIES_MAT(X,I_SCREEN,K_SC,FF) !
|
||
|
!
|
||
|
WRITE(LOGF,17) !
|
||
|
WRITE(LOGF,7) !
|
||
|
WRITE(LOGF,27) !
|
||
|
!
|
||
|
WRITE(LOGF,10) E_0/EV !
|
||
|
WRITE(LOGF,20) E_X/EV !
|
||
|
WRITE(LOGF,30) E_X_HF/EV !
|
||
|
WRITE(LOGF,40) E_C/EV !
|
||
|
WRITE(LOGF,50) E_XC/EV !
|
||
|
WRITE(LOGF,60) E_HF/EV !
|
||
|
WRITE(LOGF,70) E_GS/EV !
|
||
|
WRITE(LOGF,80) E_KIN/EV !
|
||
|
WRITE(LOGF,90) E_POT/EV !
|
||
|
!
|
||
|
WRITE(LOGF,77) !
|
||
|
!
|
||
|
! Formats:
|
||
|
!
|
||
|
10 FORMAT(5X,'|',5X,'energy of non-interacting electron : ',F8.3,' eV',4X,'|')
|
||
|
20 FORMAT(5X,'|',5X,'exchange energy (1st order) : ',F8.3,' eV',4X,'|')
|
||
|
30 FORMAT(5X,'|',5X,'exchange energy (Hartree-Fock) : ',F8.3,' eV',4X,'|')
|
||
|
40 FORMAT(5X,'|',5X,'correlation energy : ',F8.3,' eV',4X,'|')
|
||
|
50 FORMAT(5X,'|',5X,'exchange and correlation energy : ',F8.3,' eV',4X,'|')
|
||
|
60 FORMAT(5X,'|',5X,'Hartree-Fock energy : ',F8.3,' eV',4X,'|')
|
||
|
70 FORMAT(5X,'|',5X,'ground state energy : ',F8.3,' eV',4X,'|')
|
||
|
80 FORMAT(5X,'|',5X,'kinetic energy : ',F8.3,' eV',4X,'|')
|
||
|
90 FORMAT(5X,'|',5X,'potential energy : ',F8.3,' eV',4X,'|')
|
||
|
!
|
||
|
7 FORMAT(5X,'|',10X,'Energies at q = 0 : ',27X,'|')
|
||
|
17 FORMAT(6X,'_________________________________________________________')
|
||
|
27 FORMAT(5X,'| |')
|
||
|
77 FORMAT(5X,'|_________________________________________________________|',/)
|
||
|
!
|
||
|
END SUBROUTINE PRINT_ENERGIES
|
||
|
!
|
||
|
END MODULE PRINT_ENERGIES_EL
|