- Author:
- David Nickerson <nickerso@users.sourceforge.net>
- Date:
- 2014-04-06 07:18:02+12:00
- Desc:
- adding a flattened version of the model created by code from https://github.com/nickerso/flattenCellML; this flattened model works in the 1D transient flow OpenCMISS-Iron example
- Permanent Source URI:
- https://models.cellml.org/workspace/197/rawfile/5860b42bdf210de346e2556fe99a5c7dd8199514/heart.cellml
<?xml version="1.0"?>
<model xmlns="http://www.cellml.org/cellml/1.0#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" cmeta:id="ModelHeart" name="ModelHeart"><units base_units="no" name="UnitP"><unit multiplier="133" units="pascal"/></units><units base_units="no" name="UnitQ"><unit units="UnitV"/><unit exponent="-1" units="second"/></units><units base_units="no" name="UnitR"><unit units="UnitP"/><unit exponent="-1" units="UnitQ"/></units><units base_units="no" name="UnitC"><unit exponent="-1" units="UnitP"/><unit units="UnitV"/></units><units base_units="no" name="UnitCV"><unit units="UnitQ"/><unit exponent="-0.5" units="UnitP"/></units><units base_units="no" name="UnitL"><unit units="UnitP"/><unit exponent="-1" units="UnitQ"/><unit units="second"/></units><units base_units="no" name="UnitE"><unit units="UnitP"/><unit exponent="-1" units="UnitV"/></units><units base_units="no" name="UnitV"><unit multiplier="0.001" units="litre"/></units><component name="environment"><variable initial_value="0.0" name="t" public_interface="out" units="second"/></component><component name="Heart"><variable name="Pi" private_interface="in" public_interface="out" units="UnitP"/><variable initial_value="1.0" name="Po" private_interface="out" public_interface="out" units="UnitP"/><variable initial_value="1.0" name="Qi" private_interface="out" public_interface="out" units="UnitQ"/><variable name="Qo" private_interface="in" public_interface="out" units="UnitQ"/></component><component name="LV"><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" units="dimensionless"/><variable name="V0" public_interface="in" units="UnitV"/><math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="ValveV: Tao"><eq/><ci>Tao</ci><piecewise><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><geq/><ci>Pi</ci><ci>Po</ci></apply></piece><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0</cn><apply><lt/><ci>Pi</ci><ci>Po</ci></apply></piece></piecewise></apply>
<apply id="Ventricle: Qo"><eq/><ci>Qo</ci><piecewise><piece><apply><times/><ci>CV</ci><ci>Tao</ci><apply><power/><apply><abs/><apply><minus/><ci>Pi</ci><ci>Po</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0.5</cn></apply></apply><apply><geq/><ci>Pi</ci><ci>Po</ci></apply></piece><piece><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">-1</cn><ci>CV</ci><ci>Tao</ci><apply><power/><apply><abs/><apply><minus/><ci>Po</ci><ci>Pi</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0.5</cn></apply></apply><apply><lt/><ci>Pi</ci><ci>Po</ci></apply></piece></piecewise></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: 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>
</math></component><component name="LA"><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="20" 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 name="V0" public_interface="in" units="UnitV"/><math xmlns="http://www.w3.org/1998/Math/MathML">
<apply id="ValveA: Tao"><eq/><ci>Tao</ci><piecewise><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><geq/><ci>Pi</ci><ci>Po</ci></apply></piece><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0</cn><apply><lt/><ci>Pi</ci><ci>Po</ci></apply></piece></piecewise></apply>
<apply id="Atrium: Qo"><eq/><ci>Qo</ci><piecewise><piece><apply><times/><ci>CV</ci><ci>Tao</ci><apply><power/><apply><abs/><apply><minus/><ci>Pi</ci><ci>Po</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0.5</cn></apply></apply><apply><geq/><ci>Pi</ci><ci>Po</ci></apply></piece><piece><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">-1</cn><ci>CV</ci><ci>Tao</ci><apply><power/><apply><abs/><apply><minus/><ci>Po</ci><ci>Pi</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0.5</cn></apply></apply><apply><lt/><ci>Pi</ci><ci>Po</ci></apply></piece></piecewise></apply>
<apply id="Atrium: 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="Atrium: 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>
</math></component><component name="Ela"><variable name="Emax" public_interface="in" units="UnitE"/><variable name="Emin" public_interface="in" units="UnitE"/><variable name="T" public_interface="in" units="second"/><variable name="Tpwb" public_interface="in" units="dimensionless"/><variable name="Tpww" public_interface="in" units="dimensionless"/><variable name="E" public_interface="out" units="UnitE"/><variable name="t" public_interface="in" units="second"/><variable name="mt" units="second"/><variable name="et" units="dimensionless"/><math xmlns="http://www.w3.org/1998/Math/MathML">
<apply><eq/><ci>mt</ci>
<apply><minus/><ci>t</ci><apply><times/><ci>T</ci><apply><floor/><apply><divide/><ci>t</ci><ci>T</ci></apply></apply></apply></apply></apply>
<apply><eq/><ci>et</ci><piecewise><piece><apply><minus/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><cos/><apply><divide/><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">2</cn><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">3.14159</cn><apply><minus/><ci>mt</ci><apply><times/><apply><minus/><ci>Tpwb</ci><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn></apply><ci>T</ci></apply></apply></apply><apply><times/><ci>Tpww</ci><ci>T</ci></apply></apply></apply></apply><apply><and/><apply><geq/><ci>mt</ci><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="second">0</cn></apply><apply><leq/><ci>mt</ci><apply><times/><apply><minus/><apply><plus/><ci>Tpwb</ci><ci>Tpww</ci></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn></apply><ci>T</ci></apply></apply></apply></piece><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0</cn><apply><and/><apply><gt/><ci>mt</ci><apply><times/><apply><minus/><apply><plus/><ci>Tpwb</ci><ci>Tpww</ci></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn></apply><ci>T</ci></apply></apply><apply><leq/><ci>mt</ci><apply><times/><ci>Tpwb</ci><ci>T</ci></apply></apply></apply></piece><piece><apply><minus/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><cos/><apply><divide/><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">2</cn><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">3.14159</cn><apply><minus/><ci>mt</ci><apply><times/><ci>Tpwb</ci><ci>T</ci></apply></apply></apply><apply><times/><ci>Tpww</ci><ci>T</ci></apply></apply></apply></apply><apply><and/><apply><gt/><ci>mt</ci><apply><times/><ci>Tpwb</ci><ci>T</ci></apply></apply><apply><leq/><ci>mt</ci><ci>T</ci></apply></apply></piece></piecewise></apply>
<apply><eq/><ci>E</ci><apply><plus/><ci>Emin</ci><apply><divide/><apply><times/><ci>et</ci><apply><minus/><ci>Emax</ci><ci>Emin</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">2</cn></apply></apply></apply>
</math></component><component name="Elv"><variable name="Emax" public_interface="in" units="UnitE"/><variable name="Emin" public_interface="in" units="UnitE"/><variable name="T" public_interface="in" units="second"/><variable name="Ts1" public_interface="in" units="dimensionless"/><variable name="Ts2" public_interface="in" units="dimensionless"/><variable name="E" public_interface="out" units="UnitE"/><variable name="t" public_interface="in" units="second"/><variable name="mt" units="second"/><variable name="et" units="dimensionless"/><math xmlns="http://www.w3.org/1998/Math/MathML"><apply><eq/><ci>mt</ci><apply><minus/><ci>t</ci><apply><times/><ci>T</ci><apply><floor/><apply><divide/><ci>t</ci><ci>T</ci></apply></apply></apply></apply></apply><apply><eq/><ci>et</ci><piecewise><piece><apply><minus/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><cos/><apply><divide/><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">3.14159</cn><ci>mt</ci></apply><apply><times/><ci>Ts1</ci><ci>T</ci></apply></apply></apply></apply><apply><and/><apply><geq/><ci>mt</ci><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="second">0</cn></apply><apply><leq/><ci>mt</ci><apply><times/><ci>Ts1</ci><ci>T</ci></apply></apply></apply></piece><piece><apply><plus/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">1</cn><apply><cos/><apply><divide/><apply><times/><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">3.14159</cn><apply><minus/><ci>mt</ci><apply><times/><ci>Ts1</ci><ci>T</ci></apply></apply></apply><apply><times/><apply><minus/><ci>Ts2</ci><ci>Ts1</ci></apply><ci>T</ci></apply></apply></apply></apply><apply><and/><apply><gt/><ci>mt</ci><apply><times/><ci>Ts1</ci><ci>T</ci></apply></apply><apply><leq/><ci>mt</ci><apply><times/><ci>Ts2</ci><ci>T</ci></apply></apply></apply></piece><piece><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">0</cn><apply><and/><apply><gt/><ci>mt</ci><apply><times/><ci>Ts2</ci><ci>T</ci></apply></apply><apply><lt/><ci>mt</ci><ci>T</ci></apply></apply></piece></piecewise></apply><apply><eq/><ci>E</ci><apply><plus/><ci>Emin</ci><apply><divide/><apply><times/><ci>et</ci><apply><minus/><ci>Emax</ci><ci>Emin</ci></apply></apply><cn xmlns:cellml="http://www.cellml.org/cellml/1.1#" units="dimensionless">2</cn></apply></apply></apply></math></component><component name="ParamHeart"><variable initial_value="0.25" name="ElaMax" public_interface="out" units="UnitE"/><variable initial_value="0.15" name="ElaMin" public_interface="out" units="UnitE"/><variable initial_value="1.0" name="PlaIni" public_interface="out" units="UnitP"/><variable initial_value="4.0" name="VlaIni" public_interface="out" units="UnitV"/><variable initial_value="2.5" name="ElvMax" public_interface="out" units="UnitE"/><variable initial_value="0.1" name="ElvMin" public_interface="out" units="UnitE"/><variable initial_value="1.0" name="PlvIni" public_interface="out" units="UnitP"/><variable initial_value="5.0" name="VlvIni" public_interface="out" units="UnitV"/><variable initial_value="1.0" name="T" public_interface="out" units="second"/><variable initial_value="0.92" name="Tpwb" public_interface="out" units="dimensionless"/><variable initial_value="0.09" name="Tpww" public_interface="out" units="dimensionless"/><variable initial_value="0.3" name="Ts1" public_interface="out" units="dimensionless"/><variable initial_value="0.45" name="Ts2" public_interface="out" units="dimensionless"/><variable initial_value="350." name="CVao" public_interface="out" units="UnitCV"/><variable initial_value="400." name="CVmi" public_interface="out" units="UnitCV"/><variable initial_value="500" name="Vlv0" public_interface="out" units="UnitV"/><variable initial_value="20" name="Vla0" public_interface="out" units="UnitV"/></component><connection><map_components component_1="environment" component_2="Ela"/><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="environment" component_2="LA"/><map_variables variable_1="t" variable_2="t"/></connection><connection><map_components component_1="environment" component_2="LV"/><map_variables variable_1="t" variable_2="t"/></connection><connection><map_components component_1="Heart" component_2="LA"/><map_variables variable_1="Pi" variable_2="Pi"/><map_variables variable_1="Qi" variable_2="Qi"/></connection><connection><map_components component_1="Heart" component_2="LV"/><map_variables variable_1="Po" variable_2="Po"/><map_variables variable_1="Qo" variable_2="Qo"/></connection><connection><map_components component_1="LA" component_2="LV"/><map_variables variable_1="Po" variable_2="Pi"/><map_variables variable_1="Qo" variable_2="Qi"/></connection><connection><map_components component_1="ParamHeart" component_2="LA"/><map_variables variable_1="PlaIni" variable_2="Pini"/><map_variables variable_1="VlaIni" variable_2="Vini"/><map_variables variable_1="CVmi" variable_2="CV"/><map_variables variable_1="Vla0" variable_2="V0"/></connection><connection><map_components component_1="ParamHeart" component_2="LV"/><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="Vlv0" variable_2="V0"/></connection><connection><map_components component_1="ParamHeart" component_2="Ela"/><map_variables variable_1="ElaMax" variable_2="Emax"/><map_variables variable_1="ElaMin" variable_2="Emin"/><map_variables variable_1="T" variable_2="T"/><map_variables variable_1="Tpwb" variable_2="Tpwb"/><map_variables variable_1="Tpww" variable_2="Tpww"/></connection><connection><map_components component_1="ParamHeart" 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><connection><map_components component_1="LA" component_2="Ela"/><map_variables variable_1="E" variable_2="E"/></connection><connection><map_components component_1="LV" component_2="Elv"/><map_variables variable_1="E" variable_2="E"/></connection><group><relationship_ref relationship="encapsulation"/><component_ref component="Heart"><component_ref component="environment"/><component_ref component="LV"/><component_ref component="LA"/><component_ref component="Elv"/><component_ref component="Ela"/><component_ref component="ParamHeart"/></component_ref></group></model>