Location: Respiratory System @ d2572ee15ff2 / lung_gas_exchange.cellml

Author:
Soroush Safaei <ssaf006@aucklanduni.ac.nz>
Date:
2018-08-15 17:46:49+12:00
Desc:
modify pulmonary
Permanent Source URI:
https://models.physiomeproject.org/workspace/3a4/rawfile/d2572ee15ff273d02c4e07ad95a7234afe2b9ba5/lung_gas_exchange.cellml

<?xml version='1.0'?>
<model name="lung_gas_exchange" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:xlink="http://www.w3.org/1999/xlink">
    <import xlink:href="Units.cellml">
        <units name="m3" units_ref="m3"/>
        <units name="mM" units_ref="mM"/>
        <units name="per_mM" units_ref="per_mM"/>
        <units name="m3_per_s" units_ref="m3_per_s"/>
        <units name="m6_per_J" units_ref="m6_per_J"/>
        <units name="m3_per_J" units_ref="m3_per_J"/>
        <units name="per_m" units_ref="per_m"/>
        <units name="J_per_m3" units_ref="J_per_m3"/>
        <units name="mol_per_s_mmHg" units_ref="mol_per_s_mmHg"/>
        <units name="mmHg" units_ref="mmHg"/>
        <units name="per_s" units_ref="per_s"/>
        <units name="m6_per_J_s" units_ref="m6_per_J_s"/>
        <units name="kg_per_m3" units_ref="kg_per_m3"/>
    </import>
    <import xlink:href="lung_mechanics.cellml">
        <component component_ref="lung_mechanics" name="lung_mechanics"/>
    </import>
    <component name="lung_gas_exchange">
        <variable name="t" public_interface="in" units="second"/>
        <!-- air flow from lung-->
        <variable name="v_in" public_interface="in" units="m3_per_s"/>
        <variable name="v_A" public_interface="in" units="m3_per_s"/>
        <!-- blood flow from pulmonary arteries, at the exit of pulmonary capillaries, and at the exit of pulmonary shunt-->
        <variable initial_value="1.0" name="Q_pa" units="m3_per_s"/>
        <variable initial_value="0.5" name="Q_pp" units="m3_per_s"/>
        <variable initial_value="0.5" name="Q_ps" units="m3_per_s"/>
        <variable initial_value="1.2103" name="K" units="per_mM"/>
        <variable initial_value="0.017" name="sh" units="dimensionless"/>
        <variable initial_value="0.071" name="V_pp" units="m3"/>
        <!-- Gas fraction-->
        <variable name="inhale" units="dimensionless"/>
        <variable name="exhale" units="dimensionless"/>
        <variable initial_value="0.210379" name="C_atm_O2" units="dimensionless"/>
        <variable initial_value="0.000421" name="C_atm_CO2" units="dimensionless"/>
        <variable name="C_in_O2" units="dimensionless"/>
        <variable name="C_in_CO2" units="dimensionless"/>
        <variable initial_value="0.1368" name="C_A_O2" units="dimensionless"/>
        <variable initial_value="0.05263" name="C_A_CO2" units="dimensionless"/>
        <variable initial_value="0.0" name="C_D_O2" units="dimensionless"/>
        <variable initial_value="0.0" name="C_D_CO2" units="dimensionless"/>
        <variable name="P_A" public_interface="in" units="J_per_m3"/>
        <variable initial_value="101325" name="P_atm" units="J_per_m3"/>
        <variable initial_value="6266.15" name="P_w" units="J_per_m3"/>
        <variable name="P_A_O2" units="J_per_m3"/>
        <variable name="P_A_CO2" units="J_per_m3"/>
        <variable name="P_pp_O2" units="J_per_m3"/>
        <variable name="P_pp_CO2" units="J_per_m3"/>
        <variable initial_value="2.625e-9" name="D_O2" units="m6_per_J_s"/>
        <variable initial_value="5.31e-9" name="D_CO2" units="m6_per_J_s"/>
        <variable name="q_dead" public_interface="in" units="m3"/>
        <variable name="q_lung" public_interface="in" units="m3"/>
        <variable name="q_A" public_interface="in" units="m3"/>
        <!-- inspired O2 & CO2 concentration-->
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>C_in_O2</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <divide/>
                            <apply>
                                <plus/>
                                <apply>
                                    <times/>
                                    <ci>C_A_O2</ci>
                                    <ci>q_dead</ci>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>C_atm_O2</ci>
                                    <apply>
                                        <minus/>
                                        <ci>q_lung</ci>
                                        <ci>q_dead</ci>
                                    </apply>
                                </apply>
                            </apply>
                            <ci>q_lung</ci>
                        </apply>
                        <apply>
                            <geq/>
                            <ci>q_lung</ci>
                            <ci>q_dead</ci>
                        </apply>
                    </piece>
                    <piece>
                        <ci>C_A_O2</ci>
                        <apply>
                            <lt/>
                            <ci>q_lung</ci>
                            <ci>q_dead</ci>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <ci>C_in_CO2</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <divide/>
                            <apply>
                                <plus/>
                                <apply>
                                    <times/>
                                    <ci>C_A_CO2</ci>
                                    <ci>q_dead</ci>
                                </apply>
                                <apply>
                                    <times/>
                                    <ci>C_atm_CO2</ci>
                                    <apply>
                                        <minus/>
                                        <ci>q_lung</ci>
                                        <ci>q_dead</ci>
                                    </apply>
                                </apply>
                            </apply>
                            <ci>q_lung</ci>
                        </apply>
                        <apply>
                            <geq/>
                            <ci>q_lung</ci>
                            <ci>q_dead</ci>
                        </apply>
                    </piece>
                    <piece>
                        <ci>C_A_CO2</ci>
                        <apply>
                            <lt/>
                            <ci>q_lung</ci>
                            <ci>q_dead</ci>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <ci>inhale</ci>
                <piecewise>
                    <piece>
                        <cn cellml:units="dimensionless">1</cn>
                        <apply>
                            <geq/>
                            <ci>v_in</ci>
                            <cn cellml:units="m3_per_s">0</cn>
                        </apply>
                    </piece>
                    <piece>
                        <cn cellml:units="dimensionless">0</cn>
                        <apply>
                            <lt/>
                            <ci>v_in</ci>
                            <cn cellml:units="m3_per_s">0</cn>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <apply>
                <eq/>
                <ci>exhale</ci>
                <piecewise>
                    <piece>
                        <cn cellml:units="dimensionless">1</cn>
                        <apply>
                            <geq/>
                            <apply>
                                <minus/>
                                <ci>v_in</ci>
                            </apply>
                            <cn cellml:units="m3_per_s">0</cn>
                        </apply>
                    </piece>
                    <piece>
                        <cn cellml:units="dimensionless">0</cn>
                        <apply>
                            <lt/>
                            <apply>
                                <minus/>
                                <ci>v_in</ci>
                            </apply>
                            <cn cellml:units="m3_per_s">0</cn>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <!-- alveoli O2 & CO2 concentration-->
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>C_D_O2</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>inhale</ci>
                            <ci>v_in</ci>
                            <apply>
                                <minus/>
                                <ci>C_in_O2</ci>
                                <ci>C_D_O2</ci>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>exhale</ci>
                            <ci>v_A</ci>
                            <apply>
                                <minus/>
                                <ci>C_D_O2</ci>
                                <ci>C_A_O2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <ci>q_dead</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>C_D_CO2</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>inhale</ci>
                            <ci>v_in</ci>
                            <apply>
                                <minus/>
                                <ci>C_in_CO2</ci>
                                <ci>C_D_CO2</ci>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>exhale</ci>
                            <ci>v_A</ci>
                            <apply>
                                <minus/>
                                <ci>C_D_CO2</ci>
                                <ci>C_A_CO2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <ci>q_dead</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>C_A_O2</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <apply>
                            <times/>
                            <ci>inhale</ci>
                            <ci>v_A</ci>
                            <apply>
                                <minus/>
                                <ci>C_D_O2</ci>
                                <ci>C_A_O2</ci>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>K</ci>
                            <apply>
                                <times/>
                                <ci>Q_pa</ci>
                                <apply>
                                    <minus/>
                                    <cn cellml:units="dimensionless">1</cn>
                                    <ci>sh</ci>
                                </apply>
                                <apply>
                                    <minus/>
                                    <ci>C_pp_O2</ci>
                                    <ci>C_v_O2</ci>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                    <ci>q_A</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>C_A_CO2</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <apply>
                            <times/>
                            <ci>inhale</ci>
                            <ci>v_A</ci>
                            <apply>
                                <minus/>
                                <ci>C_D_CO2</ci>
                                <ci>C_A_CO2</ci>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>K</ci>
                            <ci>Q_pa</ci>
                            <apply>
                                <minus/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>sh</ci>
                            </apply>
                            <apply>
                                <minus/>
                                <ci>C_pp_CO2</ci>
                                <ci>C_v_CO2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <ci>q_A</ci>
                </apply>
            </apply>
        </math>
        <!-- Gas concentration in pulmonary capillaries-->
        <variable name="C_pp_O2" public_interface="out" units="mM"/>
        <variable name="C_pp_CO2" public_interface="out" units="mM"/>
        <variable name="X_pp_O2" units="dimensionless"/>
        <variable name="X_pp_CO2" units="dimensionless"/>
        <variable initial_value="9" name="C_sat_O2" units="mM"/>
        <variable initial_value="86.11" name="C_sat_CO2" units="mM"/>
        <variable initial_value="0.3836" name="h_1" units="dimensionless"/>
        <variable initial_value="1.819" name="h_2" units="dimensionless"/>
        <variable initial_value="0.00023987" name="alpha_1" units="m3_per_J"/>
        <variable initial_value="0.000419367" name="alpha_2" units="m3_per_J"/>
        <variable initial_value="0.000062069" name="beta_1" units="m3_per_J"/>
        <variable initial_value="0.000244149" name="beta_2" units="m3_per_J"/>
        <variable initial_value="1998.4668" name="K_1" units="J_per_m3"/>
        <variable initial_value="25917.408" name="K_2" units="J_per_m3"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>C_pp_O2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>C_sat_O2</ci>
                        <apply>
                            <power/>
                            <ci>X_pp_O2</ci>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>h_1</ci>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <plus/>
                        <cn cellml:units="dimensionless">1</cn>
                        <apply>
                            <power/>
                            <ci>X_pp_O2</ci>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>h_1</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C_pp_CO2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>C_sat_CO2</ci>
                        <apply>
                            <power/>
                            <ci>X_pp_CO2</ci>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>h_2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <plus/>
                        <cn cellml:units="dimensionless">1</cn>
                        <apply>
                            <power/>
                            <ci>X_pp_CO2</ci>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <ci>h_2</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>X_pp_O2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>P_pp_O2</ci>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1</cn>
                            <apply>
                                <times/>
                                <ci>beta_1</ci>
                                <ci>P_pp_CO2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <times/>
                        <ci>K_1</ci>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1</cn>
                            <apply>
                                <times/>
                                <ci>alpha_1</ci>
                                <ci>P_pp_CO2</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>X_pp_CO2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>P_pp_CO2</ci>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1</cn>
                            <apply>
                                <times/>
                                <ci>beta_2</ci>
                                <ci>P_pp_O2</ci>
                            </apply>
                        </apply>
                    </apply>
                    <apply>
                        <times/>
                        <ci>K_2</ci>
                        <apply>
                            <plus/>
                            <cn cellml:units="dimensionless">1</cn>
                            <apply>
                                <times/>
                                <ci>alpha_2</ci>
                                <ci>P_pp_O2</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!-- Gas pressure in alveoli and pulmonary capillaries-->
            <apply>
                <eq/>
                <ci>P_A_O2</ci>
                <apply>
                    <times/>
                    <ci>C_A_O2</ci>
                    <apply>
                        <minus/>
                        <ci>P_atm</ci>
                        <ci>P_w</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>P_A_CO2</ci>
                <apply>
                    <times/>
                    <ci>C_A_CO2</ci>
                    <apply>
                        <minus/>
                        <ci>P_atm</ci>
                        <ci>P_w</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>P_pp_O2</ci>
                <ci>P_A_O2</ci>
            </apply>
            <apply>
                <eq/>
                <ci>P_pp_CO2</ci>
                <ci>P_A_CO2</ci>
            </apply>
        </math>
        <!-- Gas concentration in arterial blood-->
        <variable name="C_a_O2" public_interface="out" units="mM"/>
        <variable name="C_a_CO2" public_interface="out" units="mM"/>
        <variable name="C_v_O2" units="mM"/>
        <variable name="C_v_CO2" units="mM"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>C_a_O2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>Q_pp</ci>
                            <ci>C_pp_O2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>Q_ps</ci>
                            <ci>C_v_O2</ci>
                        </apply>
                    </apply>
                    <apply>
                        <plus/>
                        <ci>Q_pp</ci>
                        <ci>Q_ps</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C_a_CO2</ci>
                <apply>
                    <divide/>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <ci>Q_pp</ci>
                            <ci>C_pp_CO2</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>Q_ps</ci>
                            <ci>C_v_CO2</ci>
                        </apply>
                    </apply>
                    <apply>
                        <plus/>
                        <ci>Q_pp</ci>
                        <ci>Q_ps</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C_v_O2</ci>
                <apply>
                    <times/>
                    <cn cellml:units="dimensionless">1</cn>
                    <ci>C_pp_O2</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C_v_CO2</ci>
                <apply>
                    <times/>
                    <cn cellml:units="dimensionless">1</cn>
                    <ci>C_pp_CO2</ci>
                </apply>
            </apply>
        </math>
        <!-- O2 solubility-->
        <variable name="S_a_O2" units="dimensionless"/>
        <variable initial_value="0.0" name="P_a_O2" units="J_per_m3"/>
        <variable initial_value="150" name="Hgb" public_interface="out" units="kg_per_m3"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>S_a_O2</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <apply>
                            <minus/>
                            <ci>C_a_O2</ci>
                            <apply>
                                <divide/>
                                <apply>
                                    <times/>
                                    <ci>P_a_O2</ci>
                                    <cn cellml:units="dimensionless">0.003</cn>
                                </apply>
                                <cn cellml:units="dimensionless">100</cn>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <ci>Hgb</ci>
                            <cn cellml:units="dimensionless">1.34</cn>
                        </apply>
                    </apply>
                    <cn cellml:units="dimensionless">100</cn>
                </apply>
            </apply>
        </math>
    </component>
    <component name="env">
        <variable name="t" public_interface="out" units="second"/>
    </component>
    <connection>
        <map_components component_1="lung_mechanics" component_2="lung_gas_exchange"/>
        <map_variables variable_1="q_A" variable_2="q_A"/>
        <map_variables variable_1="u_A" variable_2="P_A"/>
        <map_variables variable_1="q_dead" variable_2="q_dead"/>
        <map_variables variable_1="q_lung" variable_2="q_lung"/>
        <map_variables variable_1="v_A" variable_2="v_A"/>
        <map_variables variable_1="v_in" variable_2="v_in"/>
    </connection>
    <connection>
        <map_components component_1="env" component_2="lung_gas_exchange"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>
    <connection>
        <map_components component_1="env" component_2="lung_mechanics"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>
</model>