Note
Go to the end to download the full example code.
Isentropic, adiabatic flow#
In this example, the area ratio vs. Mach number curve is computed for a hydrogen/nitrogen gas mixture.
function isentropic(g)
    clear all
    close all
    tic
    help isentropic
    if nargin == 1
        gas = g;
    else
        gas = Solution('gri30.yaml', 'gri30');
    end
    % set the stagnation state
    gas.TPX = {1200.0, 10.0 * OneAtm, 'H2:1,N2:0.1'};
    gas.basis = 'mass';
    s0 = gas.S;
    h0 = gas.H;
    p0 = gas.P;
    mdot = 1; % arbitrary
    mach = [];
    a = [];
    i = 1;
    amin = 1.e14;
    % compute values for a range of pressure ratios
    for r = 0.005:0.0025:0.995
        p = p0 * r;
        % set the state using (p,s0)
        gas.SP = {s0, p};
        h = gas.H;
        rho = gas.D;
        v2 = 2.0 * (h0 - h); %   h + V^2/2 = h0
        v = sqrt(v2);
        a(i) = mdot / (rho * v); %   rho*v*A = constant
        if a(i) < amin
            amin = a(i);
        end
        mach(i) = v / gas.soundSpeed;
        i = i + 1;
    end
    a = a / amin;
    % plot results
    clf;
    plot(mach, a);
    ylabel('Area Ratio');
    xlabel('Mach Number');
    title('Isentropic Flow: Area Ratio vs. Mach Number');
    toc
end