def Mn_Pi_ratio(piratio, gamma=1.4): def piratio_of_mach(m): return Pi_ratio(m, gamma) if piratio > 1: print "!!! cannot find Mn for Pi_ratio > 1" return 1 return IterativeSolve.secant_solve(piratio_of_mach, piratio, 1.5)
def sigma_Mach_deflection(Mach, deflection, gamma=1.4): def local_f(sig): return deflection_Mach_sigma(Mach, sig, gamma) return IterativeSolve.secant_solve(local_f, deflection, degree.asin(1./Mach)+deflection)
def Mach_Sigma(sigma, Mach=2., gamma=1.4): def sigma_of_mach(m): return Sigma_Mach(m, gamma) return IterativeSolve.secant_solve(sigma_of_mach, sigma, Mach)
def Mach_PrandtlMeyer(omega, gamma=1.4): def omega_of_mach(m): return PrandtlMeyer_Mach(m, gamma) return IterativeSolve.secant_solve(omega_of_mach, omega, 2.)