Main Content

Two-Phase Fluid Domain

To view the complete domain source file, at the MATLAB® Command prompt, type:

open([matlabroot '/toolbox/physmod/simscape/library/m/+foundation/+two_phase_fluid/two_phase_fluid.ssc'])

Abbreviated two-phase fluid domain declaration is shown below, with intermediate lookup table values omitted for readability.

domain two_phase_fluid
% Two-Phase Fluid Domain

% Copyright 2013-2018 The MathWorks, Inc.

parameters
    p_min  = {1e-3,     'MPa'  }; % Minimum valid pressure
    p_max  = {95,       'MPa'  }; % Maximum valid pressure
    u_min  = {0,        'kJ/kg'}; % Minimum valid specific internal energy
    u_max  = {4000,     'kJ/kg'}; % Maximum valid specific internal energy
    p_crit = {22.0640,  'MPa'  }; % Critical pressure
    p_atm  = {0.101325, 'MPa'  }; % Atmospheric pressure
    q_rev  = {0.01,     'Pa'   }; % Dynamic pressure threshold for flow reversal

    transition_range = {0.1, '1'}; % Range in vapor quality for smoothing of density partial derivatives

    % Default fluid property tables for water
    % Rows of the tables correspond to the normalized internal energy vector
    % Columns of the tables correspond to the pressure vector

    unorm_TLU = {[
        -1
        -0.958333333333333
        ...
        1.95833333333333
        2
        ], '1'}; % Normalized internal energy vector

    unorm_liq_TLU = {[
        -1
        -0.958333333333333
	...
        -0.0416666666666666
        0
        ], '1'}; % Normalized liquid internal energy vector

    unorm_vap_TLU = {[
        1
        1.04166666666667
	...
        1.95833333333333
        2
        ], '1'}; % Normalized vapor internal energy vector

    unorm_mix_TLU = {[
        0
        0.0204081632653061
	...
        0.979591836734694
        1
        ], '1'}; % Normalized mixture internal energy vector

    p_TLU = {[
        0.00100000000000000
        ...
        95.0000000000000
        ], 'MPa' }; % Pressure vector

    v_TLU = {[
        0.00100020732544948	... 	0.00646806895821810
        ], 'm^3/kg'}; % Specific volume table

    s_TLU = {[
        -7.05045840376749e-13	... 	6.81117017439253
        ], 'kJ/kg/K'}; % Specific entropy table

    T_TLU = {[
        273.159998291077	...	1348.81511704704
        ], 'K'}; % Temperature table

    nu_TLU = {[
        1.79172848157620	...	0.361552941837863
	], 'mm^2/s'}; % Kinematic viscosity table

    k_TLU = {[
        0.555598831086800	...	0.250538481070411
        ], 'W/(m*K)'}; % Thermal conductivity table

    Pr_TLU = {[
        13.6057970740934	...	0.671580102714643
        ], '1' };  % Prandtl number table

    DrhoDp_liq_TLU = {[
        0.509755264394891	...	1.80807388692342
	], 'kg/m^3/MPa'}; % Partial derivative of liquid density with pressure
			  % at constant specific internal energy table

    DrhoDp_vap_TLU = {[
        7.36831747174794	...	1.45923555583730
	], 'kg/m^3/MPa'}; % Partial derivative of vapor density with pressure
			  % at constant specific internal energy table

    DrhoDp_mix_TLU = {[
        1350.39031864440	...	1.80807388692342
	], 'kg/m^3/MPa'}; % Partial derivative of mixture density with pressure
			  % at constant specific internal energy table

    DrhoDu_liq_TLU = {[
        0.0160937306771423	...	-0.350392782066966
	], 'kg^2/m^3/kJ'}; % Partial derivative of liquid density with specific internal energy
			   % at constant pressure table
    DrhoDu_vap_TLU = {[
        -1.79894990819782e-05	...	-0.0610611856834271
	], 'kg^2/m^3/kJ'}; % Partial derivative of vapor density with specific internal energy
			   % at constant pressure table

    DrhoDu_mix_TLU = {[
        -0.0137995431136761	...	-0.350392782066966
	], 'kg^2/m^3/kJ'}; % Partial derivative of mixture density with specific internal energy
			   % at constant pressure table

    u_sat_liq_TLU = {[
        29.2976389515495
	...
    	2242.74587564859
        ], 'kJ/kg'}; % Saturated liquid specific internal energy vector

    u_sat_vap_TLU = {[
        2384.48887142334
	...
	2242.74587564859
        ], 'kJ/kg'}; % Saturated vapor specific internal energy vector

end

variables
    p = { 0.1,  'MPa'   };  % Pressure
    u = { 1500, 'kJ/kg' };  % Specific internal energy
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 u (specific internal energy), in kJ/kg

  • Through variable Phi (energy flow rate), in kW

  • Parameter p_min, defining the minimum allowable pressure

  • Parameter p_max, defining the maximum allowable pressure

  • Parameter u_min, defining the minimum allowable specific internal energy

  • Parameter u_max, defining the maximum allowable specific internal energy

  • Parameter p_crit, defining the critical pressure

  • Parameter p_atm, defining the atmospheric pressure

  • Parameter q_rev, defining the dynamic pressure threshold for flow reversal

It also contains lookup table data, declared as domain parameters, for the following fluid properties:

  • Normalized internal energy vector

  • Normalized liquid internal energy vector

  • Normalized vapor internal energy vector

  • Normalized mixture internal energy vector

  • Pressure vector

  • Specific volume table

  • Specific entropy table

  • Temperature table

  • Kinematic viscosity table

  • Thermal conductivity table

  • Prandtl number table

  • Partial derivative of liquid density with pressure at constant specific internal energy table

  • Partial derivative of vapor density with pressure at constant specific internal energy table

  • Partial derivative of mixture density with pressure at constant specific internal energy table

  • Partial derivative of liquid density with specific internal energy at constant pressure table

  • Partial derivative of vapor density with specific internal energy at constant pressure table

  • Partial derivative of mixture density with specific internal energy at constant pressure table

  • Saturated liquid specific internal energy vector

  • Saturated vapor specific internal energy vector

These parameter declarations propagate to the components connected to the Two-Phase Fluid domain, and therefore you can use them in the tablelookup function in the component equations. In particular, the two-phase fluid blocks in the Foundation library use these lookup tables for interpolation purposes.

To refer to this domain in your custom component declarations, use the following syntax:

foundation.two_phase_fluid.two_phase_fluid