Location: Shi, Hose, 2009 @ b1e0acf3209e / TestCDv3.cellml

Author:
Andrew Miller <ak.miller@auckland.ac.nz>
Date:
2010-10-27 16:28:10+13:00
Desc:
Changes towards getting the model to integrate correctly with IDA
Permanent Source URI:
https://models.physiomeproject.org/workspace/shi_hose_2009/rawfile/b1e0acf3209eafcfadebe6cda5206e504fbd28fb/TestCDv3.cellml

<?xml version="1.0"?>
<model xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" cmeta:id="TempCDv" name="TempCDv">

    <import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="Units.cellml">
        <units name="UnitP" units_ref="UnitP"/>
        <units name="UnitQ" units_ref="UnitQ"/>
        <units name="UnitCV" units_ref="UnitCV"/>
        <units name="UnitE" units_ref="UnitE"/>
        <units name="UnitV" units_ref="UnitV"/>
        <units name="UnitKp" units_ref="UnitKp"/>
        <units name="UnitKf" units_ref="UnitKf"/>
        <units name="UnitKb" units_ref="UnitKb"/>
        <units name="UnitKv" units_ref="UnitKv"/>
        <units name="UnitW" units_ref="UnitW"/>
    </import>

    <import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="ParaHeart.cellml">
        <component component_ref="ParaHeart" name="ParaLV"/>
    </import>

    <import xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="EVentricle.cellml">
        <component component_ref="EVentricle" name="Elv"/>
    </import>

    <component name="TLV">
        <variable name="Pi" public_interface="out" units="UnitP"/>
        <variable name="Po" public_interface="in" units="UnitP"/>
        <variable name="Qi" public_interface="in" units="UnitQ"/>
        <variable name="Qo" public_interface="out" units="UnitQ"/>
        <variable name="CV" public_interface="in" units="UnitCV"/>
        <variable name="E" public_interface="in" units="UnitE"/>
        <variable name="t" public_interface="in" units="second"/>
        <variable initial_value="500" name="V" units="UnitV"/>
        <variable name="Pini" public_interface="in" units="UnitP"/>
        <variable name="Vini" public_interface="in" units="UnitV"/>
        <variable name="Tao" public_interface="out" units="dimensionless"/>
        <variable initial_value="0" name="W" public_interface="out" units="UnitW"/>
        <variable initial_value="0" name="Ag" public_interface="out" units="radian"/>
        <variable name="AgMax" public_interface="in" units="radian"/>
        <variable name="Kp" public_interface="in" units="UnitKp"/>
        <variable name="Kf" public_interface="in" units="UnitKf"/>
        <variable name="Kb" public_interface="in" units="UnitKb"/>
        <variable name="Kv" public_interface="in" units="UnitKv"/>

        <math xmlns="http://www.w3.org/1998/Math/MathML">

            <apply id="Ventricle: Pi">
                <eq/>
                <ci>Pi</ci>
                <apply>
                    <plus/>
                    <ci>Pini</ci>
                    <apply>
                        <times/>
                        <ci>E</ci>
                        <apply>
                            <minus/>
                            <ci>V</ci>
                            <ci>Vini</ci>
                        </apply>
                    </apply>
                </apply>
            </apply>

            <apply id="Ventricle: V">
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>V</ci>
                </apply>
                <apply>
                    <minus/>
                    <ci>Qi</ci>
                    <ci>Qo</ci>
                </apply>
            </apply>

            <apply id="Ventricle: Qo">
                <eq/>
                <ci>Qo</ci>
                <apply>
                    <times/>
                    <ci>CV</ci>
                    <ci>Tao</ci>
                    <apply>
                        <minus/>
                        <ci>Pi</ci>
                        <ci>Po</ci>
                    </apply>
                    <apply>
                        <power/>
                        <apply>
                            <abs/>
                            <apply>
                                <minus/>
                                <ci>Pi</ci>
                                <ci>Po</ci>
                            </apply>
                        </apply>
                        <cn>-0.5</cn>
                    </apply>
                </apply>
            </apply>

            <apply id="ValveV: Tao">
                <eq/>
                <ci>Tao</ci>
                <apply>
                    <divide/>
                    <apply>
                        <power/>
                        <apply>
                            <minus/>
                            <cn>1</cn>
                            <apply>
                                <cos/>
                                <ci>Ag</ci>
                            </apply>
                        </apply>
                        <cn>2</cn>
                    </apply>
                    <apply>
                        <power/>
                        <apply>
                            <minus/>
                            <cn>1</cn>
                            <apply>
                                <cos/>
                                <ci>AgMax</ci>
                            </apply>
                        </apply>
                        <cn>2</cn>
                    </apply>
                </apply>
            </apply>

            <apply id="ValveV: Ag">
                <eq/>
                <apply>
                    <diff/>
                    <bvar>
                        <ci>t</ci>
                    </bvar>
                    <ci>Ag</ci>
                </apply>
                <ci>W</ci>
            </apply>

            <piecewise id="Valve: W piecewise">
                <piece>
                    <apply id="Valve: W derivative">
                        <eq/>
                        <apply>
                            <diff/>
                            <bvar>
                                <ci>t</ci>
                            </bvar>
                            <ci>W</ci>
                        </apply>
                        <piecewise>
                            <piece>
                                <apply>
                                    <minus/>
                                    <apply>
                                        <plus/>
                                        <apply>
                                            <minus/>
                                            <apply>
                                                <times/>
                                                <ci>Kp</ci>
                                                <apply>
                                                    <minus/>
                                                    <ci>Pi</ci>
                                                    <ci>Po</ci>
                                                </apply>
                                                <apply>
                                                    <cos/>
                                                    <ci>Ag</ci>
                                                </apply>
                                            </apply>
                                            <apply>
                                                <times/>
                                                <ci>Kf</ci>
                                                <ci>W</ci>
                                            </apply>
                                        </apply>
                                        <apply>
                                            <times/>
                                            <ci>Kb</ci>
                                            <ci>Qo</ci>
                                            <apply>
                                                <cos/>
                                                <ci>Ag</ci>
                                            </apply>
                                        </apply>
                                    </apply>
                                    <apply>
                                        <times/>
                                        <ci>Kv</ci>
                                        <ci>Qo</ci>
                                        <apply>
                                            <sin/>
                                            <apply>
                                                <times/>
                                                <cn>2</cn>
                                                <ci>Ag</ci>
                                            </apply>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <geq/>
                                    <ci>Qo</ci>
                                    <cn>0</cn>
                                </apply>
                            </piece>
                            <piece>
                                <apply>
                                    <plus/>
                                    <apply>
                                        <minus/>
                                        <apply>
                                            <times/>
                                            <ci>Kp</ci>
                                            <apply>
                                                <minus/>
                                                <ci>Pi</ci>
                                                <ci>Po</ci>
                                            </apply>
                                            <apply>
                                                <cos/>
                                                <ci>Ag</ci>
                                            </apply>
                                        </apply>
                                        <apply>
                                            <times/>
                                            <ci>Kf</ci>
                                            <ci>W</ci>
                                        </apply>
                                    </apply>
                                    <apply>
                                        <times/>
                                        <ci>Kb</ci>
                                        <ci>Qo</ci>
                                        <apply>
                                            <cos/>
                                            <ci>Ag</ci>
                                        </apply>
                                    </apply>
                                </apply>
                                <apply>
                                    <lt/>
                                    <ci>Qo</ci>
                                    <cn>0</cn>
                                </apply>
                            </piece>
                        </piecewise>
                    </apply>


                    <apply>
                        <and/>
                        <apply>
                            <gt/>
                            <ci>Ag</ci>
                            <cn>0</cn>
                        </apply>
                        <apply>
                            <lt/>
                            <ci>Ag</ci>
                            <ci>AgMax</ci>
                        </apply>
                    </apply>
                </piece>


                <otherwise>
                    <apply id="Valve: W">
                        <eq/>
                        <ci>W</ci>
                        <cn>0</cn>
                    </apply>
                </otherwise>

            </piecewise>

        </math>

    </component>

    <component name="environment">
        <variable name="t" public_interface="out" units="second"/>
    </component>

    <component name="LSource">
        <variable name="Qs" public_interface="out" units="UnitQ"/>
        <math xmlns="http://www.w3.org/1998/Math/MathML">
            <apply>
                <eq/>
                <ci>Qs</ci>
                <apply>
                    <plus/>
                    <cn>150</cn>
                    <apply>
                        <times/>
                        <cn>10</cn>
                        <apply>
                            <sin/>
                            <apply>
                                <times/>
                                <cn>2</cn>
                                <cn>3.14</cn>
                                <ci>t</ci>
                            </apply>
                        </apply>
                    </apply>
                </apply>
            </apply>
        </math>
        <variable name="t" public_interface="in" units="second"/>
    </component>

    <component name="LSink">
        <variable initial_value="1" name="Pe" public_interface="out" units="UnitP"/>
    </component>

    <connection>
        <map_components component_1="environment" component_2="TLV"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>

    <connection>
        <map_components component_1="environment" component_2="LSource"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>

    <connection>
        <map_components component_1="environment" component_2="Elv"/>
        <map_variables variable_1="t" variable_2="t"/>
    </connection>

    <connection>
        <map_components component_1="LSource" component_2="TLV"/>
        <map_variables variable_1="Qs" variable_2="Qi"/>
    </connection>

    <connection>
        <map_components component_1="TLV" component_2="LSink"/>
        <map_variables variable_1="Po" variable_2="Pe"/>
    </connection>

    <connection>
        <map_components component_1="ParaLV" component_2="TLV"/>
        <map_variables variable_1="PlvIni" variable_2="Pini"/>
        <map_variables variable_1="VlvIni" variable_2="Vini"/>
        <map_variables variable_1="CVao" variable_2="CV"/>
        <map_variables variable_1="Kp_ao" variable_2="Kp"/>
        <map_variables variable_1="Kf_ao" variable_2="Kf"/>
        <map_variables variable_1="Kb_ao" variable_2="Kb"/>
        <map_variables variable_1="Kv_ao" variable_2="Kv"/>
        <map_variables variable_1="AgMax" variable_2="AgMax"/>
    </connection>

    <connection>
        <map_components component_1="TLV" component_2="Elv"/>
        <map_variables variable_1="E" variable_2="E"/>
    </connection>

    <connection>
        <map_components component_1="ParaLV" component_2="Elv"/>
        <map_variables variable_1="ElvMax" variable_2="Emax"/>
        <map_variables variable_1="ElvMin" variable_2="Emin"/>
        <map_variables variable_1="T" variable_2="T"/>
        <map_variables variable_1="Ts1" variable_2="Ts1"/>
        <map_variables variable_1="Ts2" variable_2="Ts2"/>
    </connection>

</model>