Ejemplo n.º 1
0
 def U_eV(self, T, *P):
     """Internal energy of one formula unit of solid, expressed in eV.
     U = solid.U_eV(T)
     Returns a matrix with the same dimensions as T
     """
     U_func = get_potential_aims(self.phonons, 'U')
     return (self.pbesol_energy_eV + U_func(T)) / self.fu_cell
Ejemplo n.º 2
0
 def U_eV(self,T,*P):
     """Internal energy of one formula unit of solid, expressed in eV.
     U = solid.U_eV(T)
     Returns a matrix with the same dimensions as T
     """
     U_func = get_potential_aims(self.phonons,'U')
     return (self.pbesol_energy_eV + U_func(T))/self.fu_cell
Ejemplo n.º 3
0
 def Cv_kB(self, T):
     """
     Constant-volume heat capacity of one formula unit of solid, expressed in units
     of the Boltzmann constant kB:
     Cv = solid.Cv_kB(T)
     T may be an array, in which case Cv will be an array of the same dimensions.
     """
     Cv_func = get_potential_aims(self.phonons, 'Cv')
     return Cv_func(T) / self.fu_cell
Ejemplo n.º 4
0
 def Cv_kB(self,T):
     """
     Constant-volume heat capacity of one formula unit of solid, expressed in units
     of the Boltzmann constant kB:
     Cv = solid.Cv_kB(T)
     T may be an array, in which case Cv will be an array of the same dimensions.
     """
     Cv_func = get_potential_aims(self.phonons,'Cv')
     return Cv_func(T)/self.fu_cell
Ejemplo n.º 5
0
    def mu_eV(self, T, P):
        """
        Free energy of one formula unit of solid, expressed in eV
        mu = solid.mu_eV(T,P)
        T, P may be orthogonal 2D arrays of length m and n, populated in one row/column:
        in this case H is an m x n matrix.

        T, P may instead be equal-length non-orthogonal 1D arrays, in which case H is a vector
        of H values corresponding to T,P pairs.

        Other T, P arrays may result in undefined behaviour.
        """
        TS_func = get_potential_aims(self.phonons, 'TS')
        H = self.H_eV(T, P)
        return H - TS_func(T) / self.fu_cell
Ejemplo n.º 6
0
    def mu_eV(self,T,P):
        """
        Free energy of one formula unit of solid, expressed in eV
        mu = solid.mu_eV(T,P)
        T, P may be orthogonal 2D arrays of length m and n, populated in one row/column:
        in this case H is an m x n matrix.

        T, P may instead be equal-length non-orthogonal 1D arrays, in which case H is a vector
        of H values corresponding to T,P pairs.

        Other T, P arrays may result in undefined behaviour.
        """
        TS_func = get_potential_aims(self.phonons,'TS')
        H = self.H_eV(T,P)
        return H - TS_func(T)/self.fu_cell
Ejemplo n.º 7
0
    def H_eV(self,T,P):
        """
        Enthalpy of one formula unit of solid, expressed in eV
        H = solid.H_eV(T,P)
 
        T, P may be orthogonal 2D arrays of length m and n, populated in one row/column:
        in this case H is an m x n matrix.

        T, P may instead be equal-length non-orthogonal 1D arrays, in which case H is a vector
        of H values corresponding to T,P pairs.

        Other T, P arrays may result in undefined behaviour.
        """
        U_func = get_potential_aims(self.phonons,'U')
        PV = P * self.volume * 1E-30 * constants.physical_constants['joule-electron volt relationship'][0] / constants.N_A
        return ((self.pbesol_energy_eV + U_func(T)) + PV)/self.fu_cell
Ejemplo n.º 8
0
    def H_eV(self, T, P):
        """
        Enthalpy of one formula unit of solid, expressed in eV
        H = solid.H_eV(T,P)
 
        T, P may be orthogonal 2D arrays of length m and n, populated in one row/column:
        in this case H is an m x n matrix.

        T, P may instead be equal-length non-orthogonal 1D arrays, in which case H is a vector
        of H values corresponding to T,P pairs.

        Other T, P arrays may result in undefined behaviour.
        """
        U_func = get_potential_aims(self.phonons, 'U')
        PV = P * self.volume * 1E-30 * constants.physical_constants[
            'joule-electron volt relationship'][0] / constants.N_A
        return ((self.pbesol_energy_eV + U_func(T)) + PV) / self.fu_cell