Location: 12 L Platform 1 model codes @ a8a92308e217 / peripheral_airway / Order2_airways / order3.cellml

Author:
aram148 <42922407+aram148@users.noreply.github.com>
Date:
2022-07-22 15:47:05+12:00
Desc:
Added documentation for VSM model
Permanent Source URI:
https://models.cellml.org/workspace/6b0/rawfile/a8a92308e217ac5626809237dd90a31240b22834/peripheral_airway/Order2_airways/order3.cellml

<?xml version='1.0' encoding='UTF-8'?>
<model name="airway_order3" 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">
    <component name="environment">
        <variable name="time" public_interface="out" units="second"/>
    </component>
    <units name="per_s">
        <unit exponent="-1" units="second"/>
    </units>
    <units name="mL">
        <unit prefix="milli" units="litre"/>
    </units>
    <units name="Pas">
        <unit units="pascal"/>
        <unit units="second"/>
    </units>
    <units name="Js_per_m6">
        <unit units="joule"/>
        <unit units="second"/>
        <unit exponent="-6" units="metre"/>
    </units>
    <units name="m6_per_J">
        <unit exponent="6" units="metre"/>
        <unit exponent="-1" units="joule"/>
    </units>
    <units name="kg_per_m3">
        <unit prefix="kilo" units="gram"/>
        <unit exponent="-3" units="meter"/>
    </units>
    <units name="J_per_m3">
        <unit units="joule"/>
        <unit exponent="-3" units="metre"/>
    </units>
    <units name="mol_per_s">
        <unit units="mole"/>
        <unit exponent="-1" units="second"/>
    </units>
    <units name="Js2_per_m6">
        <unit units="joule"/>
        <unit exponent="2" units="second"/>
        <unit exponent="-6" units="metre"/>
    </units>
    <units name="Pa_mm">
        <unit units="pascal"/>
        <unit prefix="milli" units="metre"/>
    </units>
    <units name="mm">
        <unit prefix="milli" units="meter"/>
    </units>
    <units name="mm2">
        <unit exponent="2" units="mm"/>
    </units>
    <units name="per_m">
        <unit exponent="-1" units="metre"/>
    </units>
    <units name="meter_sq">
        <unit exponent="2" units="meter"/>
    </units>
    <units name="m3_per_s">
        <unit exponent="3" units="metre"/>
        <unit exponent="-1" units="second"/>
    </units>
    <import xlink:href="peripherl_airways.cellml">
        <component component_ref="airway" name="airwayl1"/>
        <component component_ref="airway1" name="airwayl2"/>
    </import>
    <import xlink:href="hai1.cellml">
        <component component_ref="stress" name="stress"/>
        <component component_ref="AMp" name="AMp"/>
        <component component_ref="AM" name="AM"/>
        <component component_ref="Mp" name="Mp"/>
        <component component_ref="M" name="M"/>
        <component component_ref="model_parameters" name="model_parameters"/>
    </import>
    <component name="main">
        <variable name="stress" public_interface="in" units="dimensionless"/>
        <variable initial_value="100" name="kappa" units="pascal"/>
        <variable name="f_a_r1" public_interface="out" units="pascal"/>
        <variable name="v_d1" private_interface="in" units="m3_per_s"/>
        <variable name="v_d2" private_interface="in" units="m3_per_s"/>
        <variable name="vee" units="m3_per_s"/>
        <variable name="v_tot" units="m3_per_s"/>
        <variable name="vv" private_interface="in" units="m3_per_s"/>
        <variable name="v_out1" private_interface="in" units="m3_per_s"/>
        <variable name="v_out2" private_interface="in" units="m3_per_s"/>
        <variable name="rl1" private_interface="in" units="meter"/>
        <variable name="rl2" private_interface="in" units="meter"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>f_a_r1</ci>
                <apply>
                    <times/>
                    <ci>kappa</ci>
                    <ci>stress</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>vee</ci>
                <apply>
                    <plus/>
                    <ci>v_out1</ci>
                    <ci>v_out2</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_tot</ci>
                <apply>
                    <minus/>
                    <ci>vv</ci>
                    <ci>vee</ci>
                </apply>
            </apply>
        </math>
    </component>
    <component name="uv_type">
        <variable name="u" public_interface="out" units="pascal"/>
        <variable name="u_in" units="pascal"/>
        <variable initial_value="0" name="u_v" public_interface="out" units="pascal"/>
        <variable initial_value="1.81e-5" name="mu" units="Pas"/>
        <variable initial_value="1.225" name="rho" units="kg_per_m3"/>
        <variable initial_value="0.35e6" name="E" units="J_per_m3"/>
        <variable name="v_out_1" public_interface="in" units="m3_per_s"/>
        <variable name="v_out_2" public_interface="in" units="m3_per_s"/>
        <variable initial_value="0" name="v" public_interface="out" units="m3_per_s"/>
        <variable name="R" units="Js_per_m6"/>
        <variable name="R_v" units="Js_per_m6"/>
        <variable name="C" units="m6_per_J"/>
        <variable name="I" units="Js2_per_m6"/>
        <variable initial_value="0.003" name="l" units="meter"/>
        <variable name="time" public_interface="in" units="second"/>
        <variable initial_value="0.000318" name="r1" public_interface="out" units="meter"/>
        <variable initial_value="4.225E-09" name="Ri_sq_r1" public_interface="out" units="meter_sq"/>
        <variable initial_value="1.01124E-07" name="rmax_sq_r1" public_interface="out" units="meter_sq"/>
        <variable initial_value="1" name="N1_r1" public_interface="out" units="dimensionless"/>
        <variable initial_value="7" name="N2_r1" public_interface="out" units="dimensionless"/>
        <variable initial_value="17.342" name="P1_r1" public_interface="out" units="pascal"/>
        <variable initial_value="-2784.131883" name="P2_r1" public_interface="out" units="pascal"/>
        <variable initial_value="1" name="rho1" public_interface="out" units="dimensionless"/>
        <variable name="rad_r1" public_interface="out" units="meter"/>
        <variable initial_value="0.000318" name="rmax_r1" units="meter"/>
        <variable initial_value="25" name="gamma" units="dimensionless"/>
        <variable name="f_a_r1" public_interface="in" units="pascal"/>
        <variable name="Ptm_r1" units="pascal"/>
        <variable initial_value="0.0009732" name="h1" units="meter"/>
        <variable initial_value="0.000318" name="R_ref" units="meter"/>
        <variable name="v_conc" public_interface="out" units="mol_per_s"/>
        <variable initial_value="0" name="v_conc_out_1" units="mol_per_s"/>
        <variable initial_value="1" name="q_in" units="mole"/>
        <variable initial_value="0" name="q" public_interface="out" units="mole"/>
        <variable name="tau_r1" public_interface="in" units="pascal"/>
        <!--        var mu_r1: pascal {init: 5e2};
-->
        <variable initial_value="0.33" name="freq" units="per_s"/>
        <variable initial_value="490.3" name="P_bar" units="pascal"/>
        <variable initial_value="490" name="Paw_bar" units="pascal"/>
        <variable initial_value="25000" name="E1" units="J_per_m3"/>
        <variable name="omega" units="dimensionless"/>
        <variable initial_value="0.1" name="V_tlc" units="mL"/>
        <variable name="v1" units="dimensionless"/>
        <variable name="x" units="dimensionless"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>omega</ci>
                <apply>
                    <times/>
                    <cn cellml:units="dimensionless">2</cn>
                    <pi/>
                    <ci>freq</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u_in</ci>
                <apply>
                    <plus/>
                    <ci>P_bar</ci>
                    <apply>
                        <times/>
                        <ci>Paw_bar</ci>
                        <apply>
                            <sin/>
                            <apply>
                                <times/>
                                <ci>omega</ci>
                                <ci>time</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!--        u_out = P_bar+PA_bar*sin(omega*time-alpha);-->
            <apply>
                <eq/>
                <ci>v1</ci>
                <apply>
                    <divide/>
                    <apply>
                        <plus/>
                        <apply>
                            <times/>
                            <cn cellml:units="dimensionless">0.2</cn>
                            <ci>V_tlc</ci>
                        </apply>
                        <apply>
                            <divide/>
                            <ci>u</ci>
                            <ci>E1</ci>
                        </apply>
                    </apply>
                    <ci>V_tlc</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>x</ci>
                <apply>
                    <minus/>
                    <cn cellml:units="dimensionless">1</cn>
                    <apply>
                        <divide/>
                        <ci>r1</ci>
                        <apply>
                            <power/>
                            <ci>v1</ci>
                            <apply>
                                <divide/>
                                <cn cellml:units="dimensionless">1</cn>
                                <cn cellml:units="dimensionless">3</cn>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!--        tau_r1 = u+u*(1.4{dimensionless}+2.1{dimensionless}*sqr(x));-->
            <apply>
                <eq/>
                <ci>Ptm_r1</ci>
                <apply>
                    <plus/>
                    <apply>
                        <minus/>
                        <ci>u_in</ci>
                        <apply>
                            <divide/>
                            <apply>
                                <times/>
                                <ci>f_a_r1</ci>
                                <ci>R_ref</ci>
                            </apply>
                            <ci>r1</ci>
                        </apply>
                    </apply>
                    <ci>tau_r1</ci>
                </apply>
            </apply>
            <!--        u_in = 1000{pascal}+1000{pascal}*sin(1.5{per_s}*time);-->
            <!--        Ptm_r1 = u_in-f_a_r1*R_ref/r1+tau_r1;-->
            <apply>
                <eq/>
                <ci>rad_r1</ci>
                <piecewise>
                    <piece>
                        <apply>
                            <root/>
                            <apply>
                                <times/>
                                <ci>Ri_sq_r1</ci>
                                <apply>
                                    <power/>
                                    <apply>
                                        <minus/>
                                        <cn cellml:units="dimensionless">1</cn>
                                        <apply>
                                            <divide/>
                                            <ci>Ptm_r1</ci>
                                            <ci>P1_r1</ci>
                                        </apply>
                                    </apply>
                                    <apply>
                                        <minus/>
                                        <ci>N1_r1</ci>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <leq/>
                            <ci>Ptm_r1</ci>
                            <cn cellml:units="dimensionless">0</cn>
                        </apply>
                    </piece>
                    <piece>
                        <apply>
                            <root/>
                            <apply>
                                <minus/>
                                <ci>rmax_sq_r1</ci>
                                <apply>
                                    <times/>
                                    <apply>
                                        <minus/>
                                        <ci>rmax_sq_r1</ci>
                                        <ci>Ri_sq_r1</ci>
                                    </apply>
                                    <apply>
                                        <power/>
                                        <apply>
                                            <minus/>
                                            <cn cellml:units="dimensionless">1</cn>
                                            <apply>
                                                <divide/>
                                                <ci>Ptm_r1</ci>
                                                <ci>P2_r1</ci>
                                            </apply>
                                        </apply>
                                        <apply>
                                            <minus/>
                                            <ci>N2_r1</ci>
                                        </apply>
                                    </apply>
                                </apply>
                            </apply>
                        </apply>
                        <apply>
                            <geq/>
                            <ci>Ptm_r1</ci>
                            <cn cellml:units="dimensionless">0</cn>
                        </apply>
                    </piece>
                </piecewise>
            </apply>
            <!--        tau_r1 = 2{dimensionless}*mu_r1*((R_ref-r1)/R_ref+1.5{dimensionless}*sqr((R_ref-r1)/R_ref));-->
            <!--        V_r1 = -gamma/(2{dimensionless}*pi*rmax_r1)*rho*(rad_r1-r1)*v_smc_r1;-->
            <apply>
                <eq/>
                <ci>I</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <ci>rho</ci>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r1</ci>
                            <cn cellml:units="dimensionless">2</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>C</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <cn cellml:units="dimensionless">2</cn>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r1</ci>
                            <cn cellml:units="dimensionless">3</cn>
                        </apply>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <ci>E</ci>
                        <ci>h1</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>R</ci>
                <apply>
                    <divide/>
                    <apply>
                        <times/>
                        <cn cellml:units="dimensionless">12</cn>
                        <ci>mu</ci>
                        <ci>l</ci>
                    </apply>
                    <apply>
                        <times/>
                        <pi/>
                        <apply>
                            <power/>
                            <ci>r1</ci>
                            <cn cellml:units="dimensionless">4</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>R_v</ci>
                <apply>
                    <divide/>
                    <cn cellml:units="second">0.01</cn>
                    <ci>C</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>u</ci>
                <apply>
                    <plus/>
                    <ci>u_v</ci>
                    <apply>
                        <times/>
                        <ci>R_v</ci>
                        <apply>
                            <minus/>
                            <apply>
                                <minus/>
                                <ci>v</ci>
                                <ci>v_out_1</ci>
                            </apply>
                            <ci>v_out_2</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>v</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <apply>
                            <minus/>
                            <ci>u_in</ci>
                            <ci>u</ci>
                        </apply>
                        <apply>
                            <times/>
                            <ci>R</ci>
                            <ci>v</ci>
                        </apply>
                    </apply>
                    <ci>I</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>u_v</ci>
                </apply>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <apply>
                            <minus/>
                            <ci>v</ci>
                            <ci>v_out_1</ci>
                        </apply>
                        <ci>v_out_2</ci>
                    </apply>
                    <ci>C</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>r1</ci>
                </apply>
                <apply>
                    <times/>
                    <ci>rho1</ci>
                    <apply>
                        <minus/>
                        <ci>rad_r1</ci>
                        <ci>r1</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>q</ci>
                </apply>
                <apply>
                    <minus/>
                    <ci>v_conc</ci>
                    <ci>v_conc_out_1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>v_conc</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <ci>v</ci>
                        <apply>
                            <times/>
                            <pi/>
                            <apply>
                                <power/>
                                <ci>r1</ci>
                                <cn cellml:units="dimensionless">2</cn>
                            </apply>
                            <ci>l</ci>
                        </apply>
                    </apply>
                    <apply>
                        <minus/>
                        <ci>q_in</ci>
                        <ci>q</ci>
                    </apply>
                </apply>
            </apply>
        </math>
        <!--        qp = u_in - 1{dimensionless}*u/R;-->
    </component>
    <connection>
        <map_components component_1="uv_type" component_2="environment"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="main" component_2="uv_type"/>
        <map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
        <map_variables variable_1="vv" variable_2="v"/>
    </connection>
    <connection>
        <map_components component_1="airwayl1" component_2="environment"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="airwayl2" component_2="environment"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="uv_type" component_2="airwayl1"/>
        <map_variables variable_1="u" variable_2="u_in"/>
        <map_variables variable_1="v_out_1" variable_2="v"/>
    </connection>
    <connection>
        <map_components component_1="uv_type" component_2="airwayl2"/>
        <map_variables variable_1="u" variable_2="u_in"/>
        <map_variables variable_1="v_out_2" variable_2="v"/>
        <map_variables variable_1="tau_r1" variable_2="tau_r1"/>
    </connection>
    <connection>
        <map_components component_1="main" component_2="uv_type"/>
        <map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="AMp"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="AM"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="Mp"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="M"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="environment" component_2="model_parameters"/>
        <map_variables variable_1="time" variable_2="time"/>
    </connection>
    <connection>
        <map_components component_1="main" component_2="stress"/>
        <map_variables variable_1="stress" variable_2="stress"/>
    </connection>
    <connection>
        <map_components component_1="main" component_2="airwayl1"/>
        <map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
        <map_variables variable_1="v_d1" variable_2="v_d"/>
        <map_variables variable_1="v_out1" variable_2="v"/>
        <map_variables variable_1="rl1" variable_2="r1"/>
    </connection>
    <connection>
        <map_components component_1="main" component_2="airwayl2"/>
        <map_variables variable_1="f_a_r1" variable_2="f_a_r1"/>
        <map_variables variable_1="v_d2" variable_2="v_d"/>
        <map_variables variable_1="v_out2" variable_2="v"/>
        <map_variables variable_1="rl2" variable_2="r1"/>
    </connection>
    <group>
        <relationship_ref relationship="encapsulation"/>
        <component_ref component="main">
            <component_ref component="uv_type"/>
            <component_ref component="airwayl1"/>
            <component_ref component="airwayl2"/>
        </component_ref>
    </group>
</model>