Gas Domain
To view the complete domain source file, at the MATLAB® Command prompt, type:
open([matlabroot '/toolbox/physmod/simscape/library/m/+foundation/+gas/gas.ssc'])Abbreviated gas domain declaration is shown below, with intermediate lookup table values omitted for readability.
domain gas
% Gas Domain
% Copyright 2016-2019 The MathWorks, Inc.
parameters
    gas_spec = foundation.enum.gas_spec.perfect_gas; % Gas specification
    %                                                  1 - perfect_gas
    %                                                  2 - semiperfect_gas
    %                                                  3 - real_gas
    % Perfect gas properties
    R      = {0.287,             'kJ/(kg*K)'}; % Specific gas constant
    Z      = {1,                 '1'        }; % Compressibility factor
    T_ref  = {293.15,            'K'        }; % Reference temperature for gas properties
    h_ref  = {420,               'kJ/kg'    }; % Specific enthalpy at reference temperature
    cp_ref = {1,                 'kJ/(kg*K)'}; % Specific heat at constant pressure
    cv_ref = {0.713,             'kJ/(kg*K)'}; % Specific heat at constant volume
    mu_ref = {18,                'uPa*s'    }; % Dynamic viscosity
    k_ref  = {26,                'mW/(m*K)' }; % Thermal conductivity
    Pr_ref = {0.692307692307692, '1'        }; % Prandtl number
    % Semiperfect gas properties
    T_TLU1 = {[150:10:200, 250:50:1000, 1500, 2000]', 'K'}; % Temperature vector
    log_T_TLU1 = {[
        5.01063529409626
        5.07517381523383
        ... 
        7.60090245954208
        ], '1'}; % Log temperature vector
    h_TLU1 = {[
        275.264783730547
        285.377054177734
        ... 
        2377.14064127409
        ], 'kJ/kg'}; % Specific enthalpy vector
    cp_TLU1 = {[
        1.01211492398124
        1.01042105529234
        ... 
        1.24628356718428
        ], 'kJ/(kg*K)'}; % Specific heat at constant pressure vector
    cv_TLU1 = {[
        0.725174216111164
        0.723480347422265
        ... 
        0.959342859314206
        ], 'kJ/(kg*K)'}; % Specific heat at constant volume vector
    mu_TLU1 = {[
        10.3766056544352
        10.9908682444892
        ... 
        68.0682900809450
        ], 'uPa*s'}; % Dynamic viscosity vector
    k_TLU1 = {[
        14.1517155766309
        15.0474512994325
        ... 
        114.486299090693
        ], 'mW/(m*K)'}; % Thermal conductivity vector
    Pr_TLU1 = {[
        0.742123270231960
        0.738025627675206
        ... 
        0.740982912785154
        ], '1'}; % Prandtl number vector
    a_TLU1 = {[
        245.095563145758
        253.217606015000
        ... 
        863.440849227825
        ], 'm/s'}; % Speed of sound vector
    int_dh_T_TLU1 = {[
        0
        0.0652630980004620
        0.126478959779276
        ... 
        2.79681971660776
        ], 'kJ/(kg*K)'}; % integral of dh/T vector
    % Real gas properties
    % Default gas property tables for dry air
    % Rows of the tables correspond to the temperature vector
    % Columns of the tables correspond to the pressure vector
    T_TLU2 = {[150:10:200, 250:50:1000, 1500, 2000]',                 'K'  }; % Temperature vector
    p_TLU2 = {[0.001,0.005,0.01:0.01:0.1,0.12,0.15,0.2,0.5,1,2,5,10]','MPa'}; % Pressure vector
    log_T_TLU2 = {[
        5.01063529409626
        5.07517381523383
        ... 
        7.60090245954208
        ], '1'}; % Log temperature vector
    log_p_TLU2 = {[
        9.21034037197618
        9.90348755253613
        ... 
        16.1180956509583
        ], '1'}; % Log pressure vector
    log_rho_TLU2 = {[
        -1.45933859209149 -0.765580954956293 ... 2.84006136461620
        ], '1'}; % Log density table
    s_TLU2 = {[
        3.85666832168988 3.65733557342939 ... 4.66584072487367
        ], 'kJ/(kg*K)'}; % Specific entropy table
    h_TLU2 = {[
        276.007989595737 275.926922934925 ... 2386.79535914098
        ], 'kJ/kg'}; % Specific enthalpy table
    cp_TLU2 = {[
        1.00320557010184 1.00416915257750 ... 1.24767439351222
        ], 'kJ/(kg*K)'}; % Specific heat at constant pressure table
    cv_TLU2 = {[
        0.715425577953031 0.715655648411093	... 0.960303115685940
        ], 'kJ/(kg*K)'}; % Specific heat at constant volume table
    mu_TLU2 = {[
        10.3604759816291 10.3621937105615 ... 68.3249440282350
        ], 'uPa*s'}; % Dynamic viscosity table
    k_TLU2 = {[
        14.0896194596466 14.0962928994967 ... 114.905858092359
        ], 'mW/(m*K)'}; % Thermal conductivity table
    Pr_TLU2 = {[
        0.737684026417089 0.738165370950116 ... 0.741888050943969
        ], '1'}; % Prandtl number table
    a_TLU2 = {[
        245.567929192228 245.496359667264 ... 878.939999571000
        ], 'm/s'}; % Speed of sound table
    log_drho_dp_TLU2 = [
        -10.6690690699104 -10.6678475863467 ... -13.2956456388403
        ]; % Log derivative of density with respect to pressure table
    log_drho_dT_TLU2 = [
        -6.46809263806814 -5.77245144865022 ... -4.77782516923660
        ]; % Log derivative of density with respect to temperature table
    drhou_dp_TLU2 = [
        5.41617782089664 5.42024592837099 ... 3.03095417965253
        ]; % Derivative of internal energy per unit volume with respect to pressure table
    drhou_dT_TLU2 = {[
        -0.195280173069178 -0.391714814336739 ... 1.27305147462835
        ], 'kJ/(m^3*K)'}; % Derivative of internal energy per unit volume with respect to temperature table
    pT_region_flag   = foundation.enum.pT_region_G.from_props; 
    % Valid pressure-temperature region parameterization
    %                                                            1 - from_props
    %                                                            2 - min_max
    %                                                            3 - validity
    pT_validity_TLU2 = ones(24, 20); % Pressure-temperature validity matrix
    T_min = {1,   'K'  }; % Minimum valid temperature
    T_max = {inf, 'K'  }; % Maximum valid temperature
    p_min = {1,   'MPa'}; % Minimum valid pressure
    p_max = {inf, 'MPa'}; % Maximum valid pressure
    p_atm = {0.101325, 'MPa'}; % Atmospheric pressure
    properties_range_check = simscape.enum.assert.action.error; % Pressure and temperature outside valid range
    %                                                             0 - none
    %                                                             1 - warn
    %                                                             2 - error
    Mach_rev = 0.001; % Mach number threshold for flow reversal
    T_unit       = {1, 'K'          }; % Unit for log temperature
    p_unit       = {1, 'Pa'         }; % Unit for log pressure
    rho_unit     = {1, 'kg/m^3'     }; % Unit for log density
    drho_dp_unit = {1, 'kg/(m^3*Pa)'}; % Unit for log derivative of density with respect to pressure
    drho_dT_unit = {1, 'kg/(m^3*K)' }; % Unit for log derivative of density with respect to temperature
    log_ZR = 5.65948221575962; % Log of compressibility factor times specific gas constant
end
variables
    p = {value = {0.1, 'MPa'}, imin = {0, 'MPa'}}; % Pressure
    T = {value = {300, 'K'  }, imin = {0, 'K'  }}; % Temperature
end
variables (Balancing=true)
    mdot = {0, 'kg/s'}; % Mass flow rate
    Phi  = {0, 'kW'  }; % Energy flow rate
end
end
The domain declaration contains the following variables and parameters:
- Across variable p (absolute pressure), in MPa 
- Through variable mdot (mass flow rate), in kg/s 
- Across variable T (temperature), in K 
- Through variable Phi (energy flow rate), in kW 
- Parameter T_min, defining the minimum allowable temperature 
- Parameter T_max, defining the maximum allowable temperature 
- Parameter p_min, defining the minimum allowable pressure 
- Parameter p_max, defining the maximum allowable pressure 
- Parameter p_atm, defining the atmospheric pressure 
Parameter gas_spec provides a choice of three gas models:
- 1— Perfect (default)
- 2— Semiperfect
- 3— Real
In the Foundation Gas library, the Gas Properties (G) block serves as the source for domain parameter values, including the selection of the gas model. For more information on propagation of domain parameters, see Working with Domain Parameters.
The domain declaration also contains sets of parameters that define gas properties for each gas model.
Properties for semiperfect and real gas are in the form of lookup table data. These
            parameter declarations propagate to the components connected to the Gas domain, and
            therefore you can use them in the tablelookup function in the
            component equations. 
To refer to this domain in your custom component declarations, use the following syntax:
foundation.gas.gas