155 lines
6.9 KiB
Fortran
155 lines
6.9 KiB
Fortran
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE THERMODYNAMICS_P
|
||
|
!
|
||
|
! This module defines the thermodynamical parameters
|
||
|
!
|
||
|
USE ACCURACY_REAL
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
REAL (WP) :: PP,MU,K0,K,BM,U_IN,U_EX,F_FR
|
||
|
!
|
||
|
END MODULE THERMODYNAMICS_P
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
MODULE PRINT_THERMODYNAMICS
|
||
|
!
|
||
|
! This module prints the thermodynamics properties in the log file
|
||
|
!
|
||
|
!
|
||
|
CONTAINS
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE CALC_THERMODYNAMICS_PROP
|
||
|
!
|
||
|
USE MATERIAL_PROP, ONLY : RS,DMN
|
||
|
USE EXT_FIELDS, ONLY : T
|
||
|
USE ENERGIES, ONLY : EC_TYPE
|
||
|
USE THERMODYNAMIC_QUANTITIES
|
||
|
!
|
||
|
USE THERMODYNAMICS_P
|
||
|
!
|
||
|
IMPLICIT NONE
|
||
|
!
|
||
|
IF(DMN == '3D') THEN !
|
||
|
CALL THERMODYNAMICS_3D(EC_TYPE,RS,T,PP,MU,K0,K,BM, & !
|
||
|
U_IN,U_EX,F_FR) !
|
||
|
ELSE IF(DMN == '2D') THEN !
|
||
|
CONTINUE !
|
||
|
ELSE IF(DMN == '1D') THEN !
|
||
|
CONTINUE !
|
||
|
END IF !
|
||
|
!
|
||
|
END SUBROUTINE CALC_THERMODYNAMICS_PROP
|
||
|
!
|
||
|
!=======================================================================
|
||
|
!
|
||
|
SUBROUTINE PRINT_THERMODYNAMICS_PROP
|
||
|
!
|
||
|
! This subroutine prints the thermodynamics properties in the log file
|
||
|
!
|
||
|
!
|
||
|
!
|
||
|
! Author : D. Sébilleau
|
||
|
!
|
||
|
! Last modified : 29 Jul 2020
|
||
|
!
|
||
|
!
|
||
|
USE ENE_CHANGE, ONLY : EV
|
||
|
USE EXT_FIELDS, ONLY : T
|
||
|
!
|
||
|
USE THERMODYNAMICS_P
|
||
|
!
|
||
|
REAL (WP) :: TEST
|
||
|
!
|
||
|
INTEGER :: LOGF
|
||
|
!
|
||
|
LOGF=6 ! log file unit
|
||
|
!
|
||
|
TEST=90000.0E0_WP !
|
||
|
!
|
||
|
CALL CALC_THERMODYNAMICS_PROP !
|
||
|
!
|
||
|
WRITE(LOGF,17) !
|
||
|
WRITE(LOGF,7) T !
|
||
|
WRITE(LOGF,27) !
|
||
|
!
|
||
|
IF(K0 <= TEST) THEN !
|
||
|
WRITE(LOGF,10) K0 !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,15) K0 !
|
||
|
END IF !
|
||
|
IF(K <= TEST) THEN !
|
||
|
WRITE(LOGF,20) K !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,25) K !
|
||
|
END IF !
|
||
|
IF(BM <= TEST) THEN !
|
||
|
WRITE(LOGF,30) BM !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,35) BM !
|
||
|
END IF !
|
||
|
IF(U_IN/EV <= TEST) THEN !
|
||
|
WRITE(LOGF,40) U_IN/EV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,45) U_IN/EV !
|
||
|
END IF !
|
||
|
IF(U_EX/EV <= TEST) THEN !
|
||
|
WRITE(LOGF,50) U_EX/EV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,55) U_EX/EV !
|
||
|
END IF !
|
||
|
IF(F_FR/EV <= TEST) THEN !
|
||
|
WRITE(LOGF,60) F_FR/EV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,65) F_FR/EV !
|
||
|
END IF !
|
||
|
IF(PP <= TEST) THEN !
|
||
|
WRITE(LOGF,70) PP !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,75) PP !
|
||
|
END IF !
|
||
|
IF(MU/EV <= TEST) THEN !
|
||
|
WRITE(LOGF,80) MU/EV !
|
||
|
ELSE !
|
||
|
WRITE(LOGF,85) MU/EV !
|
||
|
END IF !
|
||
|
!
|
||
|
WRITE(LOGF,77) !
|
||
|
!
|
||
|
! Formats:
|
||
|
!
|
||
|
10 FORMAT(5X,'|',5X,'compressibility (non-interacting) x n : ',F8.3,' SI |')
|
||
|
20 FORMAT(5X,'|',5X,'compressibility x n : ',F8.3,' SI |')
|
||
|
30 FORMAT(5X,'|',5X,'bulk modulus : ',F8.3,' Pa |')
|
||
|
40 FORMAT(5X,'|',5X,'internal energy per electron : ',F8.3,' eV |')
|
||
|
50 FORMAT(5X,'|',5X,'excess internal energy per el. / k_B T: ',F8.3,' eV |')
|
||
|
60 FORMAT(5X,'|',5X,'Helmoltz free energy per electron : ',F8.3,' eV |')
|
||
|
70 FORMAT(5X,'|',5X,'electron pressure : ',F8.3,' SI |')
|
||
|
80 FORMAT(5X,'|',5X,'chemical potential : ',F8.3,' SI |')
|
||
|
!
|
||
|
15 FORMAT(5X,'|',5X,'compressibility (non-interacting) x n : ',E12.6,' SI |')
|
||
|
25 FORMAT(5X,'|',5X,'compressibility x n : ',E12.6,' SI |')
|
||
|
35 FORMAT(5X,'|',5X,'bulk modulus : ',E12.6,' Pa |')
|
||
|
45 FORMAT(5X,'|',5X,'internal energy per electron : ',E12.6,' eV |')
|
||
|
55 FORMAT(5X,'|',5X,'excess internal energy per el. / k_B T: ',E12.6,' eV |')
|
||
|
65 FORMAT(5X,'|',5X,'Helmoltz free energy per electron : ',E12.6,' eV |')
|
||
|
75 FORMAT(5X,'|',5X,'electron pressure : ',E12.6,' SI |')
|
||
|
85 FORMAT(5X,'|',5X,'chemical potential : ',E12.6,' SI |')
|
||
|
!
|
||
|
7 FORMAT(5X,'|',10X,'Thermodynamics properties at T = ',F8.3,' °K : |')
|
||
|
17 FORMAT(6X,'_________________________________________________________')
|
||
|
27 FORMAT(5X,'| |')
|
||
|
77 FORMAT(5X,'|_________________________________________________________|',/)
|
||
|
!
|
||
|
END SUBROUTINE PRINT_THERMODYNAMICS_PROP
|
||
|
!
|
||
|
ENDMODULE PRINT_THERMODYNAMICS
|