def v2p(self, func_of_t_v: numpy.ndarray) -> numpy.ndarray: '''The conversion function from :math:`(T, V)` to :math:`(T, P)` grid .. math:: f(T, V) \\rightarrow f(T, P) :param func_of_t_v: the input function :math:`f(T, V)` under the :math:`(T, V)` grid :returns: the output function :math:`f(T, P)` under the :math:`(T, P)` grid ''' return v2p(func_of_t_v, self.calculator.qha_calculator.volume_base.pressures, self.p_array)
def volume(vs: Vector, desired_ps: Vector, ps: Matrix) -> Matrix: """ Convert the volumes as a function of temperature and pressure, i.e., on a :math:`(T, P)` grid. :param vs: A vector of volumes. :param desired_ps: A vector of desired pressures. :param ps: A matrix, the pressure as a function of temperature and volume, i.e., :math:`P(T,V)`, in atomic unit. :return: A matrix, the volume as a function of temperature and pressure, i.e., :math:`V(T, P)`. """ nt, ntv = ps.shape vs = vs.reshape(1, -1).repeat(nt, axis=0) return v2p(vs, ps, desired_ps)
def cv_tp_au(self): return v2p(self.cv_tv_au, self.p_tv_au, self.desired_pressures)
def g_tp_ry(self): return v2p(self.g_tv_ry, self.p_tv_au, self.desired_pressures)
def v2p1d(x_old: numpy.array, p_old: numpy.array, p_new: numpy.array): from numpy import newaxis as nax return v2p(x_old[nax, ::-1], p_old[nax, ::-1], p_new)[0]