ROOT FINDING EXAMPLES
Example: Determination of Mach number from Prandtl-Mayer Expansion equation.
The Prandtl-Meyer expansion fan is the isentropic relation between a turning angle and the increase in Mach number. The ν parameter is the Prandtl-Meyer function, and it is the only quantity that is typically expressed in degrees.
ν(M) = ⎛⎝(γ + 1)/(γ − 1)⎞⎠1 ⁄ 2tan − 1⎡⎢⎣⎛⎜⎝(M2 − 1)/((γ + 1)/(γ − 1) − M2)⎞⎟⎠1 ⁄ 2⎤⎥⎦ − tan − 1⎡⎢⎣⎛⎜⎝(M2 − 1)/(1 − (γ − 1)/(γ + 1)M2)⎞⎟⎠1 ⁄ 2⎤⎥⎦
This code works for turning angles up to approximately 100 degrees.
PROGRAM prandtl_meyer IMPLICIT NONE REAL, PARAMETER :: pi=4.0*ATAN(1.0) REAL :: nu, nr, ml, mr, mm, nm, gam_rat, mach ! what P-M number is to be solved? WRITE(*,*) ’ What Prandtl-Meyer number (in degrees) is to be solved?’ READ (*,*) nu ! Convert to Radians - Intrinsic functions assume radians nu = nu * pi/180. ! set up the starting parameters nr = nu ml = 1. ! Left Mach limit; lower limit for supersonic flow mr = 10. ! Right Mach limit; assumption - be careful! ! Assume calorically perfect gas gam_rat = SQRT(2.4/0.4) ! (gamma+1)/(gamma-1) DO WHILE ((mr-ml) > 0.01) mm = (ml+mr)*0.5 nm = gam_rat*ATAN(1./gam_rat*SQRT(mm*mm-1.0)) & -ATAN(SQRT(mm*mm-1.0)) IF (nr > nm) THEN ml = mm ELSE IF (nr < nm) THEN mr = mm; ENDIF END DO mach=(mr+ml)*0.5 ! Convert back to degrees nu = nu * 180./pi WRITE(6,*) ’For a turning angle = ’,nu,’degrees, the Mach = ’, mach END PROGRAM prandtl_meyer