thermo/eos.py
def a_alpha_and_derivatives(self, T, full=True, quick=True):
        r'''Method to calculate `a_alpha` and its first and second
        derivatives for this EOS. Returns `a_alpha`, `da_alpha_dT`, and 
        `d2a_alpha_dT2`. See `GCEOS.a_alpha_and_derivatives` for more 
        documentation. Uses the set values of `Tc`, `kappa0`, `kappa1`,
        `kappa2`, `kappa3`, and `a`. 
        
        For use in `solve_T`, returns only `a_alpha` if full is False.
        
        The first and second derivatives of `a_alpha` are available through the
        following SymPy expression.

        >>> from sympy import *
        >>> P, T, V = symbols('P, T, V')
        >>> Tc, Pc, omega = symbols('Tc, Pc, omega')
        >>> R, a, b, kappa0, kappa1, kappa2, kappa3 = symbols('R, a, b, kappa0, kappa1, kappa2, kappa3')
        >>> Tr = T/Tc
        >>> kappa = kappa0 + (kappa1 + kappa2*(kappa3-Tr)*(1-sqrt(Tr)))*(1+sqrt(Tr))*(Rational('0.7')-Tr)
        >>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2
        >>> # diff(a_alpha, T)
        >>> # diff(a_alpha, T, 2)
        '''
        Tc, a, kappa0, kappa1, kappa2, kappa3 = self.Tc, self.a, self.kappa0, self.kappa1, self.kappa2, self.kappa3
        
        if not full:
            Tr = T/Tc
            kappa = kappa0 + ((kappa1 + kappa2*(kappa3 - Tr)*(1 - Tr**0.5))*(1 + Tr**0.5)*(0.7 - Tr))
            return a*(1 + kappa*(1-sqrt(T/Tc)))**2
        else:
            if quick:
                x1 = T/Tc
                x2 = sqrt(x1)
                x3 = x2 - 1.
                x4 = x2 + 1.
                x5 = 10.*x1 - 7.
                x6 = -kappa3 + x1
                x7 = kappa1 + kappa2*x3*x6
                x8 = x5*x7
                x9 = 10.*kappa0 - x4*x8
                x10 = x3*x9
                x11 = x10*0.1 - 1.
                x13 = x2/T
                x14 = x7/Tc
                x15 = kappa2*x4*x5
                x16 = 2.*(-x2 + 1.)/Tc + x13*(kappa3 - x1)
                x17 = -x13*x8 - x14*(20.*x2 + 20.) + x15*x16
                x18 = x13*x9 + x17*x3
                x19 = x2/(T*T)
                x20 = 2.*x2/T
                
                a_alpha = a*x11*x11
                da_alpha_dT = a*x11*x18*0.1
                d2a_alpha_dT2 = a*(x18*x18 + (x10 - 10.)*(x17*x20 - x19*x9 + x3*(40.*kappa2/Tc*x16*x4 + kappa2*x16*x20*x5 - 40./T*x14*x2 - x15/T*x2*(4./Tc - x6/T) + x19*x8)))/200.
            else:
                a_alpha = a*(1 + self.kappa*(1-sqrt(T/Tc)))**2
                da_alpha_dT = a*((kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))*(-sqrt(T/Tc) + 1) + 1)*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/T)
                d2a_alpha_dT2 = a*((kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))*(-sqrt(T/Tc) + 1) + 1)*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(kappa2*sqrt(T/Tc)/(T*Tc) + kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(4*T**2)) - 2*(sqrt(T/Tc) + 1)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T))/Tc + sqrt(T/Tc)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T))/T - sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))/(T*Tc) - sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(4*T**2)) - 2*sqrt(T/Tc)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T))/T + sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/(2*T**2)) + a*((-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/(2*T))*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/T)
            return a_alpha, da_alpha_dT, d2a_alpha_dT2
def a_alpha_and_derivatives(self, T, full=True, quick=True):
        r'''Method to calculate `a_alpha` and its first and second
        derivatives for this EOS. Returns `a_alpha`, `da_alpha_dT`, and 
        `d2a_alpha_dT2`. See `GCEOS.a_alpha_and_derivatives` for more 
        documentation. Uses the set values of `Tc`, `kappa0`, `kappa1`,
        `kappa2`, `kappa3`, and `a`. 
        
        For use in `solve_T`, returns only `a_alpha` if full is False.
        
        The first and second derivatives of `a_alpha` are available through the
        following SymPy expression.

        >>> from sympy import *
        >>> P, T, V = symbols('P, T, V')
        >>> Tc, Pc, omega = symbols('Tc, Pc, omega')
        >>> R, a, b, kappa0, kappa1, kappa2, kappa3 = symbols('R, a, b, kappa0, kappa1, kappa2, kappa3')
        >>> Tr = T/Tc
        >>> kappa = kappa0 + (kappa1 + kappa2*(kappa3-Tr)*(1-sqrt(Tr)))*(1+sqrt(Tr))*(Rational('0.7')-Tr)
        >>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2
        >>> # diff(a_alpha, T)
        >>> # diff(a_alpha, T, 2)
        '''
        Tc, a, kappa0, kappa1, kappa2, kappa3 = self.Tc, self.a, self.kappa0, self.kappa1, self.kappa2, self.kappa3
        
        if not full:
            Tr = T/Tc
            kappa = kappa0 + ((kappa1 + kappa2*(kappa3 - Tr)*(1 - Tr**0.5))*(1 + Tr**0.5)*(0.7 - Tr))
            return a*(1 + kappa*(1-sqrt(T/Tc)))**2
        else:
            if quick:
                x1 = T/Tc
                x2 = sqrt(x1)
                x3 = x2 - 1.
                x4 = x2 + 1.
                x5 = 10.*x1 - 7.
                x6 = -kappa3 + x1
                x7 = kappa1 + kappa2*x3*x6
                x8 = x5*x7
                x9 = 10.*kappa0 - x4*x8
                x10 = x3*x9
                x11 = x10*0.1 - 1.
                x13 = x2/T
                x14 = x7/Tc
                x15 = kappa2*x4*x5
                x16 = 2.*(-x2 + 1.)/Tc + x13*(kappa3 - x1)
                x17 = -x13*x8 - x14*(20.*x2 + 20.) + x15*x16
                x18 = x13*x9 + x17*x3
                x19 = x2/(T*T)
                x20 = 2.*x2/T
                
                a_alpha = a*x11*x11
                da_alpha_dT = a*x11*x18*0.1
                d2a_alpha_dT2 = a*(x18*x18 + (x10 - 10.)*(x17*x20 - x19*x9 + x3*(40.*kappa2/Tc*x16*x4 + kappa2*x16*x20*x5 - 40./T*x14*x2 - x15/T*x2*(4./Tc - x6/T) + x19*x8)))/200.
            else:
                a_alpha = a*(1 + self.kappa*(1-sqrt(T/Tc)))**2
                da_alpha_dT = a*((kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))*(-sqrt(T/Tc) + 1) + 1)*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/T)
                d2a_alpha_dT2 = a*((kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))*(-sqrt(T/Tc) + 1) + 1)*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(kappa2*sqrt(T/Tc)/(T*Tc) + kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(4*T**2)) - 2*(sqrt(T/Tc) + 1)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T))/Tc + sqrt(T/Tc)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T))/T - sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))/(T*Tc) - sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(4*T**2)) - 2*sqrt(T/Tc)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T))/T + sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/(2*T**2)) + a*((-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/(2*T))*(2*(-sqrt(T/Tc) + 1)*((sqrt(T/Tc) + 1)*(-T/Tc + 7/10)*(-kappa2*(-sqrt(T/Tc) + 1)/Tc - kappa2*sqrt(T/Tc)*(-T/Tc + kappa3)/(2*T)) - (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)/Tc + sqrt(T/Tc)*(kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(-T/Tc + 7/10)/(2*T)) - sqrt(T/Tc)*(kappa0 + (kappa1 + kappa2*(-sqrt(T/Tc) + 1)*(-T/Tc + kappa3))*(sqrt(T/Tc) + 1)*(-T/Tc + 7/10))/T)
            return a_alpha, da_alpha_dT, d2a_alpha_dT2
def a_alpha_and_derivatives ( self , T , full = True , quick = True ) : Tc , a , kappa0 , kappa1 , kappa2 , kappa3 = self . Tc , self . a , self . kappa0 , self . kappa1 , self . kappa2 , self . kappa3 if not full : Tr = T / Tc kappa = kappa0 + ( ( kappa1 + kappa2 * ( kappa3 - Tr ) * ( 1 - Tr ** 0.5 ) ) * ( 1 + Tr ** 0.5 ) * ( 0.7 - Tr ) ) return a * ( 1 + kappa * ( 1 - sqrt ( T / Tc ) ) ) ** 2 else : if quick : x1 = T / Tc x2 = sqrt ( x1 ) x3 = x2 - 1. x4 = x2 + 1. x5 = 10. * x1 - 7. x6 = - kappa3 + x1 x7 = kappa1 + kappa2 * x3 * x6 x8 = x5 * x7 x9 = 10. * kappa0 - x4 * x8 x10 = x3 * x9 x11 = x10 * 0.1 - 1. x13 = x2 / T x14 = x7 / Tc x15 = kappa2 * x4 * x5 x16 = 2. * ( - x2 + 1. ) / Tc + x13 * ( kappa3 - x1 ) x17 = - x13 * x8 - x14 * ( 20. * x2 + 20. ) + x15 * x16 x18 = x13 * x9 + x17 * x3 x19 = x2 / ( T * T ) x20 = 2. * x2 / T a_alpha = a * x11 * x11 da_alpha_dT = a * x11 * x18 * 0.1 d2a_alpha_dT2 = a * ( x18 * x18 + ( x10 - 10. ) * ( x17 * x20 - x19 * x9 + x3 * ( 40. * kappa2 / Tc * x16 * x4 + kappa2 * x16 * x20 * x5 - 40. / T * x14 * x2 - x15 / T * x2 * ( 4. / Tc - x6 / T ) + x19 * x8 ) ) ) / 200. else : a_alpha = a * ( 1 + self . kappa * ( 1 - sqrt ( T / Tc ) ) ) ** 2 da_alpha_dT = a * ( ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) * ( - sqrt ( T / Tc ) + 1 ) + 1 ) * ( 2 * ( - sqrt ( T / Tc ) + 1 ) * ( ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) - ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) / Tc + sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( - T / Tc + 7 / 10 ) / ( 2 * T ) ) - sqrt ( T / Tc ) * ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) / T ) d2a_alpha_dT2 = a * ( ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) * ( - sqrt ( T / Tc ) + 1 ) + 1 ) * ( 2 * ( - sqrt ( T / Tc ) + 1 ) * ( ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) * ( kappa2 * sqrt ( T / Tc ) / ( T * Tc ) + kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 4 * T ** 2 ) ) - 2 * ( sqrt ( T / Tc ) + 1 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) / Tc + sqrt ( T / Tc ) * ( - T / Tc + 7 / 10 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) / T - sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) / ( T * Tc ) - sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( - T / Tc + 7 / 10 ) / ( 4 * T ** 2 ) ) - 2 * sqrt ( T / Tc ) * ( ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) - ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) / Tc + sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( - T / Tc + 7 / 10 ) / ( 2 * T ) ) / T + sqrt ( T / Tc ) * ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) / ( 2 * T ** 2 ) ) + a * ( ( - sqrt ( T / Tc ) + 1 ) * ( ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) - ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) / Tc + sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( - T / Tc + 7 / 10 ) / ( 2 * T ) ) - sqrt ( T / Tc ) * ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) / ( 2 * T ) ) * ( 2 * ( - sqrt ( T / Tc ) + 1 ) * ( ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) * ( - kappa2 * ( - sqrt ( T / Tc ) + 1 ) / Tc - kappa2 * sqrt ( T / Tc ) * ( - T / Tc + kappa3 ) / ( 2 * T ) ) - ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) / Tc + sqrt ( T / Tc ) * ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( - T / Tc + 7 / 10 ) / ( 2 * T ) ) - sqrt ( T / Tc ) * ( kappa0 + ( kappa1 + kappa2 * ( - sqrt ( T / Tc ) + 1 ) * ( - T / Tc + kappa3 ) ) * ( sqrt ( T / Tc ) + 1 ) * ( - T / Tc + 7 / 10 ) ) / T ) return a_alpha , da_alpha_dT , d2a_alpha_dT2
r'''Method to calculate `a_alpha` and its first and second
        derivatives for this EOS. Returns `a_alpha`, `da_alpha_dT`, and 
        `d2a_alpha_dT2`. See `GCEOS.a_alpha_and_derivatives` for more 
        documentation. Uses the set values of `Tc`, `kappa0`, `kappa1`,
        `kappa2`, `kappa3`, and `a`. 
        
        For use in `solve_T`, returns only `a_alpha` if full is False.
        
        The first and second derivatives of `a_alpha` are available through the
        following SymPy expression.

        >>> from sympy import *
        >>> P, T, V = symbols('P, T, V')
        >>> Tc, Pc, omega = symbols('Tc, Pc, omega')
        >>> R, a, b, kappa0, kappa1, kappa2, kappa3 = symbols('R, a, b, kappa0, kappa1, kappa2, kappa3')
        >>> Tr = T/Tc
        >>> kappa = kappa0 + (kappa1 + kappa2*(kappa3-Tr)*(1-sqrt(Tr)))*(1+sqrt(Tr))*(Rational('0.7')-Tr)
        >>> a_alpha = a*(1 + kappa*(1-sqrt(T/Tc)))**2
        >>> # diff(a_alpha, T)
        >>> # diff(a_alpha, T, 2)
r Method to calculate a_alpha and its first and second derivatives for this EOS . Returns a_alpha da_alpha_dT and d2a_alpha_dT2 . See GCEOS . a_alpha_and_derivatives for more documentation . Uses the set values of Tc kappa0 kappa1 kappa2 kappa3 and a . For use in solve_T returns only a_alpha if full is False . The first and second derivatives of a_alpha are available through the following SymPy expression .