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
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
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
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
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
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
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
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