Location: 12 L Platform 1 model codes @ 2585da81062f / Airway_FTU / Airway_FTU / airwayradius1.cellml

Author:
aram148 <a.rampadarath@auckland.ac.nz>
Date:
2021-11-08 11:40:18+13:00
Desc:
Added updated order3
Permanent Source URI:
https://models.cellml.org/workspace/6b0/rawfile/2585da81062ff07f754993f4bbb065c930b09754/Airway_FTU/Airway_FTU/airwayradius1.cellml

<?xml version='1.0'?>
<!-- This is a Cellml implementation of lambert_r1's model of 
 airway radius coupled with ASM contraction force.
 ASM contractile force is modelled as a P_Arameter kappa.
 Time dependent radii is modeled via a 1st order ODE.
 Airway P_Arameters are taken from Politi et al 2010.
 Airway order 7 P_Arameter values are used in this model.

 May include Hai-Murphy ODE for ASM contraction

-->
<model name="airwayradius" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" xmlns:xlink="http://www.w3.org/1999/xlink">
    <units name="mm2">
        <unit exponent="2" prefix="milli" units="metre"/>
    </units>
    <units name="mm">
        <unit prefix="milli" units="metre"/>
    </units>
    <units name="per_sec">
        <unit exponent="-1" units="second"/>
    </units>
    <component name="Environment">
        <variable cmeta:id="Environment_time" name="time" public_interface="out" units="second"/>
    </component>
    <import xlink:href="hai_1.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_parameters1" name="model_parameters1"/>
    </import>
    <component name="lambert_r1">
        <variable name="time" public_interface="in" units="second"/>
        <variable name="Ri_sq_r1" public_interface="in" units="mm2"/>
        <variable name="rmax_sq_r1" public_interface="in" units="mm"/>
        <variable name="N1_r1" public_interface="in" units="dimensionless"/>
        <variable name="N2_r1" public_interface="in" units="dimensionless"/>
        <variable name="P1_r1" public_interface="in" units="pascal"/>
        <variable name="P2_r1" public_interface="in" units="pascal"/>
        <variable name="rho" public_interface="in" units="dimensionless"/>
        <variable initial_value="0.318" name="r1" public_interface="out" units="mm"/>
        <variable name="Ptm_r1" public_interface="out" units="pascal"/>
        <variable name="P0" public_interface="in" units="pascal"/>
        <variable name="rad_r1" public_interface="out" units="mm"/>
        <variable name="rmax_r1" public_interface="in" units="mm"/>
        <variable name="V_r1" units="dimensionless"/>
        <variable name="gamma" public_interface="in" units="dimensionless"/>
        <variable name="stress" public_interface="in" units="dimensionless"/>
        <variable name="v_smc_r1" public_interface="in" units="dimensionless"/>
        <variable name="f_a_r1" public_interface="in" units="pascal"/>
        <variable name="Pmin_r1" public_interface="out" units="pascal"/>
        <variable name="P_t_r1" public_interface="in" units="pascal"/>
        <variable name="tau_r1" public_interface="in" units="dimensionless"/>
        <variable name="pmidr1" public_interface="in" units="pascal"/>
        <variable initial_value="0.445" name="R_ref" units="mm"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>Pmin_r1</ci>
                <apply>
                    <plus/>
                    <ci>P0</ci>
                    <ci>P_t_r1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>Ptm_r1</ci>
                <apply>
                    <plus/>
                    <apply>
                        <minus/>
                        <ci>pmidr1</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>
            <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>
            <apply>
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>time</ci>
                    </bvar>
                    <ci>r1</ci>
                </apply>
                <apply>
                    <times/>
                    <ci>rho</ci>
                    <apply>
                        <minus/>
                        <ci>rad_r1</ci>
                        <ci>r1</ci>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>V_r1</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <apply>
                            <minus/>
                            <ci>gamma</ci>
                        </apply>
                        <apply>
                            <times/>
                            <cn cellml:units="dimensionless">2</cn>
                            <pi/>
                            <ci>rmax_r1</ci>
                        </apply>
                    </apply>
                    <ci>rho</ci>
                    <apply>
                        <minus/>
                        <ci>rad_r1</ci>
                        <ci>r1</ci>
                    </apply>
                    <ci>v_smc_r1</ci>
                </apply>
            </apply>
        </math>
    </component>
    <component name="airway1_vals">
        <variable name="e_w_r1" units="dimensionless"/>
        <variable name="e_m_r1" units="dimensionless"/>
        <variable name="r_w_r1" public_interface="out" units="mm"/>
        <variable name="r_m_r1" public_interface="out" units="mm"/>
        <variable name="r_s_r1" units="mm"/>
        <variable name="Rw_r1" public_interface="in" units="mm"/>
        <variable name="Ri_r1" public_interface="in" units="mm"/>
        <variable name="Rm_r1" public_interface="in" units="mm"/>
        <variable name="fl_r1" units="dimensionless"/>
        <variable name="rsmax_r1" public_interface="in" units="mm"/>
        <variable name="f_a_r1" public_interface="out" units="pascal"/>
        <variable name="stress" public_interface="in" units="dimensionless"/>
        <variable name="D_Rm_r1" units="dimensionless"/>
        <variable name="sigma_rrm_r1" units="dimensionless"/>
        <variable name="sigma_rrw_r1" units="dimensionless"/>
        <variable name="sigma_ttm_r1" units="dimensionless"/>
        <variable name="sigma_ttw_r1" units="dimensionless"/>
        <variable name="moo" public_interface="in" units="dimensionless"/>
        <variable name="noo" public_interface="in" units="dimensionless"/>
        <variable name="P_t_r1" public_interface="out" units="pascal"/>
        <variable name="f" public_interface="in" units="per_sec"/>
        <variable name="time" public_interface="in" units="second"/>
        <variable name="rad_r1" public_interface="in" units="mm"/>
        <variable name="r1" public_interface="in" units="mm"/>
        <variable name="v_smc_r1" public_interface="out" units="dimensionless"/>
        <variable name="rho" public_interface="in" units="dimensionless"/>
        <variable name="kappa" public_interface="in" units="pascal"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>P_t_r1</ci>
                <apply>
                    <times/>
                    <cn cellml:units="dimensionless">0</cn>
                    <apply>
                        <sin/>
                        <apply>
                            <times/>
                            <cn cellml:units="dimensionless">2</cn>
                            <pi/>
                            <ci>f</ci>
                            <ci>time</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>e_w_r1</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>Rw_r1</ci>
                        <ci>Ri_r1</ci>
                    </apply>
                    <ci>Ri_r1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>e_m_r1</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>Rm_r1</ci>
                        <ci>Rw_r1</ci>
                    </apply>
                    <ci>Ri_r1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>r_w_r1</ci>
                <apply>
                    <times/>
                    <ci>Ri_r1</ci>
                    <apply>
                        <root/>
                        <apply>
                            <minus/>
                            <apply>
                                <plus/>
                                <apply>
                                    <power/>
                                    <apply>
                                        <plus/>
                                        <cn cellml:units="dimensionless">1</cn>
                                        <ci>e_w_r1</ci>
                                    </apply>
                                    <cn cellml:units="dimensionless">2</cn>
                                </apply>
                                <apply>
                                    <power/>
                                    <apply>
                                        <divide/>
                                        <ci>r1</ci>
                                        <ci>Ri_r1</ci>
                                    </apply>
                                    <cn cellml:units="dimensionless">2</cn>
                                </apply>
                            </apply>
                            <cn cellml:units="dimensionless">1</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>r_m_r1</ci>
                <apply>
                    <times/>
                    <ci>Ri_r1</ci>
                    <apply>
                        <root/>
                        <apply>
                            <minus/>
                            <apply>
                                <plus/>
                                <apply>
                                    <power/>
                                    <apply>
                                        <plus/>
                                        <ci>e_m_r1</ci>
                                        <ci>e_w_r1</ci>
                                        <cn cellml:units="dimensionless">1</cn>
                                    </apply>
                                    <cn cellml:units="dimensionless">2</cn>
                                </apply>
                                <apply>
                                    <power/>
                                    <apply>
                                        <divide/>
                                        <ci>r1</ci>
                                        <ci>Ri_r1</ci>
                                    </apply>
                                    <cn cellml:units="dimensionless">2</cn>
                                </apply>
                            </apply>
                            <cn cellml:units="dimensionless">1</cn>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>r_s_r1</ci>
                <apply>
                    <times/>
                    <cn cellml:units="dimensionless">0.5</cn>
                    <apply>
                        <plus/>
                        <ci>r_w_r1</ci>
                        <ci>r_m_r1</ci>
                    </apply>
                </apply>
            </apply>
            <!-- Expt data fit for AM force at latch state-->
            <!--        fl_r1 = sel
            case r_s_r1 <= 2{dimensionless}*rsmax_r1:
                pow(sin(pi*r_s_r1/(2{dimensionless}*rsmax_r1)), 3{dimensionless});
            otherwise:
                0{dimensionless};
        endsel;-->
            <apply>
                <eq/>
                <ci>fl_r1</ci>
                <cn cellml:units="dimensionless">1</cn>
            </apply>
            <!-- Total active force-->
            <apply>
                <eq/>
                <ci>f_a_r1</ci>
                <apply>
                    <times/>
                    <ci>fl_r1</ci>
                    <ci>kappa</ci>
                    <ci>stress</ci>
                </apply>
            </apply>
            <!-- Radial stress-->
            <apply>
                <eq/>
                <ci>D_Rm_r1</ci>
                <apply>
                    <divide/>
                    <apply>
                        <minus/>
                        <ci>Rm_r1</ci>
                        <ci>r_m_r1</ci>
                    </apply>
                    <ci>Rm_r1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>sigma_rrm_r1</ci>
                <apply>
                    <plus/>
                    <apply>
                        <times/>
                        <cn cellml:units="dimensionless">2</cn>
                        <ci>moo</ci>
                        <apply>
                            <plus/>
                            <ci>D_Rm_r1</ci>
                            <apply>
                                <times/>
                                <ci>noo</ci>
                                <apply>
                                    <power/>
                                    <ci>D_Rm_r1</ci>
                                    <cn cellml:units="dimensionless">2</cn>
                                </apply>
                            </apply>
                        </apply>
                    </apply>
                    <ci>P_t_r1</ci>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>sigma_rrw_r1</ci>
                <apply>
                    <minus/>
                    <ci>sigma_rrm_r1</ci>
                    <apply>
                        <divide/>
                        <apply>
                            <times/>
                            <ci>f_a_r1</ci>
                            <apply>
                                <minus/>
                                <ci>Rm_r1</ci>
                                <ci>Rw_r1</ci>
                            </apply>
                        </apply>
                        <apply>
                            <times/>
                            <cn cellml:units="dimensionless">0.5</cn>
                            <apply>
                                <plus/>
                                <ci>r_m_r1</ci>
                                <ci>r_w_r1</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!-- Hoop stress-->
            <apply>
                <eq/>
                <ci>sigma_ttm_r1</ci>
                <apply>
                    <plus/>
                    <ci>sigma_rrm_r1</ci>
                    <apply>
                        <divide/>
                        <apply>
                            <times/>
                            <ci>f_a_r1</ci>
                            <apply>
                                <minus/>
                                <ci>Rm_r1</ci>
                                <ci>Rw_r1</ci>
                            </apply>
                        </apply>
                        <apply>
                            <plus/>
                            <ci>r_m_r1</ci>
                            <ci>r_w_r1</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <apply>
                <eq/>
                <ci>sigma_ttw_r1</ci>
                <apply>
                    <plus/>
                    <ci>sigma_rrw_r1</ci>
                    <apply>
                        <divide/>
                        <apply>
                            <times/>
                            <ci>f_a_r1</ci>
                            <apply>
                                <minus/>
                                <ci>Rm_r1</ci>
                                <ci>Rw_r1</ci>
                            </apply>
                        </apply>
                        <apply>
                            <plus/>
                            <ci>r_m_r1</ci>
                            <ci>r_w_r1</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
            <!--Vel of SMC contraction-->
            <apply>
                <eq/>
                <ci>v_smc_r1</ci>
                <apply>
                    <times/>
                    <apply>
                        <divide/>
                        <cn cellml:units="dimensionless">1</cn>
                        <apply>
                            <minus/>
                            <ci>r_w_r1</ci>
                            <ci>r_m_r1</ci>
                        </apply>
                    </apply>
                    <ci>rho</ci>
                    <apply>
                        <minus/>
                        <ci>rad_r1</ci>
                        <ci>r1</ci>
                    </apply>
                    <ci>rad_r1</ci>
                    <apply>
                        <ln/>
                        <apply>
                            <divide/>
                            <ci>r_w_r1</ci>
                            <ci>r_m_r1</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
    </component>
    <component name="parameters">
        <variable initial_value="0.004225" name="Ri_sq_r1" public_interface="out" units="mm2"/>
        <variable initial_value="0.1011" name="rmax_sq_r1" public_interface="out" units="mm"/>
        <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="rho" public_interface="out" units="dimensionless"/>
        <variable initial_value="799.93434" name="P0" public_interface="out" units="pascal"/>
        <!--        var kappa: dimensionless {pub:in};-->
        <variable initial_value="0.318" name="rmax_r1" public_interface="out" units="mm"/>
        <variable initial_value="25" name="gamma" public_interface="out" units="dimensionless"/>
        <variable initial_value="0.116" name="Rw_r1" public_interface="out" units="mm"/>
        <variable initial_value="0.065" name="Ri_r1" public_interface="out" units="mm"/>
        <variable initial_value="0.128" name="Rm_r1" public_interface="out" units="mm"/>
        <variable initial_value="0.334" name="rsmax_r1" public_interface="out" units="mm"/>
        <variable initial_value="5.8" name="moo" public_interface="out" units="dimensionless"/>
        <variable initial_value="1.5" name="noo" public_interface="out" units="dimensionless"/>
        <variable initial_value="0.25" name="f" public_interface="out" units="per_sec"/>
    </component>
</model>