- Author:
- ssaf006 <ssaf006@aucklanduni.ac.nz>
- Date:
- 2019-07-15 19:25:29+12:00
- Desc:
- adding new module
- Permanent Source URI:
- http://models.cellml.org/workspace/4ac/rawfile/9a2327d9b4a260b43d918bd39f7c94cb94e3c21e/Heart.cellml
<?xml version='1.0' encoding='UTF-8'?>
<model name="Heart" 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">
<units name="m3">
<unit exponent="3" units="metre"/>
</units>
<units name="m3_per_s">
<unit exponent="3" units="metre"/>
<unit exponent="-1" units="second"/>
</units>
<units name="UnitValve">
<unit exponent="3" units="metre"/>
<unit exponent="-1" units="second"/>
<unit exponent="-0.5" units="J_per_m3"/>
</units>
<units name="J_per_m3">
<unit units="joule"/>
<unit exponent="-3" units="metre"/>
</units>
<units name="J_per_m6">
<unit units="joule"/>
<unit exponent="-6" units="metre"/>
</units>
<units name="m6_per_J">
<unit exponent="6" units="metre"/>
<unit exponent="-1" units="joule"/>
</units>
<units name="J_s_per_m6">
<unit units="joule"/>
<unit units="second"/>
<unit exponent="-6" units="metre"/>
</units>
<units name="J_s2_per_m6">
<unit units="joule"/>
<unit exponent="2" units="second"/>
<unit exponent="-6" units="metre"/>
</units>
<units name="J_s2_per_m9">
<unit units="joule"/>
<unit exponent="2" units="second"/>
<unit exponent="-9" units="metre"/>
</units>
<component name="environment">
<variable name="time" public_interface="out" units="second"/>
</component>
<import xlink:href="Parameters86.cellml">
<component component_ref="Parameters_Heart" name="Parameters_Heart"/>
</import>
<component name="Heart">
<variable name="t" public_interface="in" units="second"/>
<!-- Constitutive Parameters-->
<variable name="mt" units="second"/>
<variable name="mta" units="second"/>
<variable name="T" private_interface="in" units="second"/>
<variable name="CQ_trv" private_interface="in" units="UnitValve"/>
<variable name="CQ_puv" private_interface="in" units="UnitValve"/>
<variable name="CQ_miv" private_interface="in" units="UnitValve"/>
<variable name="CQ_aov" private_interface="in" units="UnitValve"/>
<variable name="q_ra_0" private_interface="in" units="m3"/>
<variable name="q_rv_0" private_interface="in" units="m3"/>
<variable name="q_la_0" private_interface="in" units="m3"/>
<variable name="q_lv_0" private_interface="in" units="m3"/>
<variable name="E_lv_max" private_interface="in" units="J_per_m6"/>
<variable name="E_lv_min" private_interface="in" units="J_per_m6"/>
<variable name="E_la_max" private_interface="in" units="J_per_m6"/>
<variable name="E_la_min" private_interface="in" units="J_per_m6"/>
<variable name="E_rv_max" private_interface="in" units="J_per_m6"/>
<variable name="E_rv_min" private_interface="in" units="J_per_m6"/>
<variable name="E_ra_max" private_interface="in" units="J_per_m6"/>
<variable name="E_ra_min" private_interface="in" units="J_per_m6"/>
<variable name="tau_1_lv" private_interface="in" units="dimensionless"/>
<variable name="tau_2_lv" private_interface="in" units="dimensionless"/>
<variable name="tau_1_la" private_interface="in" units="dimensionless"/>
<variable name="tau_2_la" private_interface="in" units="dimensionless"/>
<variable name="tau_1_rv" private_interface="in" units="dimensionless"/>
<variable name="tau_2_rv" private_interface="in" units="dimensionless"/>
<variable name="tau_1_ra" private_interface="in" units="dimensionless"/>
<variable name="tau_2_ra" private_interface="in" units="dimensionless"/>
<variable name="m_1_lv" private_interface="in" units="dimensionless"/>
<variable name="m_2_lv" private_interface="in" units="dimensionless"/>
<variable name="m_1_la" private_interface="in" units="dimensionless"/>
<variable name="m_2_la" private_interface="in" units="dimensionless"/>
<variable name="m_1_rv" private_interface="in" units="dimensionless"/>
<variable name="m_2_rv" private_interface="in" units="dimensionless"/>
<variable name="m_1_ra" private_interface="in" units="dimensionless"/>
<variable name="m_2_ra" private_interface="in" units="dimensionless"/>
<variable name="g_1_lv" units="dimensionless"/>
<variable name="g_2_lv" units="dimensionless"/>
<variable name="g_1_la" units="dimensionless"/>
<variable name="g_2_la" units="dimensionless"/>
<variable name="g_1_rv" units="dimensionless"/>
<variable name="g_2_rv" units="dimensionless"/>
<variable name="g_1_ra" units="dimensionless"/>
<variable name="g_2_ra" units="dimensionless"/>
<variable name="k_lv" units="dimensionless"/>
<variable name="k_la" units="dimensionless"/>
<variable name="k_rv" units="dimensionless"/>
<variable name="k_ra" units="dimensionless"/>
<variable name="t_onset_lv" private_interface="in" units="dimensionless"/>
<variable name="t_onset_la" private_interface="in" units="dimensionless"/>
<variable name="t_onset_rv" private_interface="in" units="dimensionless"/>
<variable name="t_onset_ra" private_interface="in" units="dimensionless"/>
<variable name="E_lv" units="J_per_m6"/>
<variable name="E_la" units="J_per_m6"/>
<variable name="E_rv" units="J_per_m6"/>
<variable name="E_ra" units="J_per_m6"/>
<!-- State Variables-->
<variable name="u_ra" units="J_per_m3"/>
<variable name="u_rv" units="J_per_m3"/>
<variable name="u_la" units="J_per_m3"/>
<variable name="u_lv" units="J_per_m3"/>
<variable initial_value="0.0" name="u_sas" units="J_per_m3"/>
<variable initial_value="0.0" name="u_par" units="J_per_m3"/>
<variable name="v_trv" units="m3_per_s"/>
<variable name="v_puv" units="m3_per_s"/>
<variable name="v_miv" units="m3_per_s"/>
<variable name="v_aov" units="m3_per_s"/>
<variable initial_value="0.0" name="v_sup_venacava" units="m3_per_s"/>
<variable initial_value="0.0" name="v_inf_venacava" units="m3_per_s"/>
<variable initial_value="0.0" name="v_pvn" units="m3_per_s"/>
<variable initial_value="20.0e-6" name="q_ra" units="m3"/>
<variable initial_value="500.0e-6" name="q_rv" units="m3"/>
<variable initial_value="20.0e-6" name="q_la" units="m3"/>
<variable initial_value="500.0e-6" name="q_lv" units="m3"/>
<!-- Elastance Functions-->
<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>mta</ci>
<apply>
<minus/>
<apply>
<minus/>
<ci>t</ci>
<apply>
<times/>
<ci>t_onset_la</ci>
<ci>T</ci>
</apply>
</apply>
<apply>
<times/>
<ci>T</ci>
<apply>
<floor/>
<apply>
<divide/>
<apply>
<minus/>
<ci>t</ci>
<apply>
<times/>
<ci>t_onset_la</ci>
<ci>T</ci>
</apply>
</apply>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<!-- -->
<apply>
<eq/>
<ci>E_ra</ci>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<apply>
<divide/>
<apply>
<times/>
<ci>k_ra</ci>
<ci>g_1_ra</ci>
</apply>
<apply>
<plus/>
<ci>g_1_ra</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<cn cellml:units="dimensionless">1</cn>
</apply>
<apply>
<plus/>
<ci>g_2_ra</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<ci>E_ra_min</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>E_rv</ci>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<apply>
<divide/>
<apply>
<times/>
<ci>k_rv</ci>
<ci>g_1_rv</ci>
</apply>
<apply>
<plus/>
<ci>g_1_rv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<cn cellml:units="dimensionless">1</cn>
</apply>
<apply>
<plus/>
<ci>g_2_rv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<ci>E_rv_min</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>E_la</ci>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<apply>
<divide/>
<apply>
<times/>
<ci>k_la</ci>
<ci>g_1_la</ci>
</apply>
<apply>
<plus/>
<ci>g_1_la</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<cn cellml:units="dimensionless">1</cn>
</apply>
<apply>
<plus/>
<ci>g_2_la</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<ci>E_la_min</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>E_lv</ci>
<apply>
<plus/>
<apply>
<divide/>
<apply>
<times/>
<apply>
<divide/>
<apply>
<times/>
<ci>k_lv</ci>
<ci>g_1_lv</ci>
</apply>
<apply>
<plus/>
<ci>g_1_lv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<cn cellml:units="dimensionless">1</cn>
</apply>
<apply>
<plus/>
<ci>g_2_lv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<ci>E_lv_min</ci>
</apply>
</apply>
<!-- -->
<apply>
<eq/>
<ci>g_1_ra</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mta</ci>
<apply>
<times/>
<ci>tau_1_ra</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_1_ra</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>g_2_ra</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mta</ci>
<apply>
<times/>
<ci>tau_2_ra</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_2_ra</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>k_ra</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>E_ra_max</ci>
<ci>E_ra_min</ci>
</apply>
<apply>
<max/>
<apply>
<divide/>
<ci>g_1_ra</ci>
<apply>
<plus/>
<ci>g_1_ra</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<plus/>
<ci>g_2_ra</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>g_1_rv</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mt</ci>
<apply>
<times/>
<ci>tau_1_rv</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_1_rv</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>g_2_rv</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mt</ci>
<apply>
<times/>
<ci>tau_2_rv</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_2_rv</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>k_rv</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>E_rv_max</ci>
<ci>E_rv_min</ci>
</apply>
<apply>
<max/>
<apply>
<divide/>
<ci>g_1_rv</ci>
<apply>
<plus/>
<ci>g_1_rv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<plus/>
<ci>g_2_rv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>g_1_la</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mta</ci>
<apply>
<times/>
<ci>tau_1_la</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_1_la</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>g_2_la</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mta</ci>
<apply>
<times/>
<ci>tau_2_la</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_2_la</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>k_la</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>E_la_max</ci>
<ci>E_la_min</ci>
</apply>
<apply>
<max/>
<apply>
<divide/>
<ci>g_1_la</ci>
<apply>
<plus/>
<ci>g_1_la</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<plus/>
<ci>g_2_la</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>g_1_lv</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mt</ci>
<apply>
<times/>
<ci>tau_1_lv</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_1_lv</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>g_2_lv</ci>
<apply>
<power/>
<apply>
<divide/>
<ci>mt</ci>
<apply>
<times/>
<ci>tau_2_lv</ci>
<ci>T</ci>
</apply>
</apply>
<ci>m_2_lv</ci>
</apply>
</apply>
<apply>
<eq/>
<ci>k_lv</ci>
<apply>
<divide/>
<apply>
<minus/>
<ci>E_lv_max</ci>
<ci>E_lv_min</ci>
</apply>
<apply>
<max/>
<apply>
<divide/>
<ci>g_1_lv</ci>
<apply>
<plus/>
<ci>g_1_lv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
<apply>
<divide/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<plus/>
<ci>g_2_lv</ci>
<cn cellml:units="dimensionless">1</cn>
</apply>
</apply>
</apply>
</apply>
</apply>
<!-- Constitutive Relations-->
<apply>
<eq/>
<ci>v_trv</ci>
<piecewise>
<piece>
<apply>
<times/>
<ci>CQ_trv</ci>
<apply>
<root/>
<apply>
<minus/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
</piece>
<piece>
<cn cellml:units="m3_per_s">0.0</cn>
<apply>
<lt/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>v_puv</ci>
<piecewise>
<piece>
<apply>
<times/>
<ci>CQ_puv</ci>
<apply>
<root/>
<apply>
<minus/>
<ci>u_rv</ci>
<ci>u_par</ci>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>u_rv</ci>
<ci>u_par</ci>
</apply>
</piece>
<piece>
<cn cellml:units="m3_per_s">0.0</cn>
<apply>
<lt/>
<ci>u_rv</ci>
<ci>u_par</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>v_miv</ci>
<piecewise>
<piece>
<apply>
<times/>
<ci>CQ_miv</ci>
<apply>
<root/>
<apply>
<minus/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
</piece>
<piece>
<cn cellml:units="m3_per_s">0.0</cn>
<apply>
<lt/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>v_aov</ci>
<piecewise>
<piece>
<apply>
<times/>
<ci>CQ_aov</ci>
<apply>
<root/>
<apply>
<minus/>
<ci>u_lv</ci>
<ci>u_sas</ci>
</apply>
</apply>
</apply>
<apply>
<geq/>
<ci>u_lv</ci>
<ci>u_sas</ci>
</apply>
</piece>
<piece>
<cn cellml:units="m3_per_s">0.0</cn>
<apply>
<lt/>
<ci>u_lv</ci>
<ci>u_sas</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>u_ra</ci>
<apply>
<times/>
<ci>E_ra</ci>
<apply>
<minus/>
<ci>q_ra</ci>
<ci>q_ra_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_rv</ci>
<apply>
<times/>
<ci>E_rv</ci>
<apply>
<minus/>
<ci>q_rv</ci>
<ci>q_rv_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_la</ci>
<apply>
<times/>
<ci>E_la</ci>
<apply>
<minus/>
<ci>q_la</ci>
<ci>q_la_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_lv</ci>
<apply>
<times/>
<ci>E_lv</ci>
<apply>
<minus/>
<ci>q_lv</ci>
<ci>q_lv_0</ci>
</apply>
</apply>
</apply>
<!-- Conservation Laws-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_ra</ci>
</apply>
<apply>
<minus/>
<apply>
<plus/>
<ci>v_sup_venacava</ci>
<ci>v_inf_venacava</ci>
</apply>
<ci>v_trv</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_rv</ci>
</apply>
<apply>
<minus/>
<ci>v_trv</ci>
<ci>v_puv</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_la</ci>
</apply>
<apply>
<minus/>
<ci>v_pvn</ci>
<ci>v_miv</ci>
</apply>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>q_lv</ci>
</apply>
<apply>
<minus/>
<ci>v_miv</ci>
<ci>v_aov</ci>
</apply>
</apply>
</math>
</component>
<connection>
<map_components component_1="Parameters_Heart" component_2="Heart"/>
<map_variables variable_1="T" variable_2="T"/>
<map_variables variable_1="CQ_trv" variable_2="CQ_trv"/>
<map_variables variable_1="CQ_puv" variable_2="CQ_puv"/>
<map_variables variable_1="CQ_miv" variable_2="CQ_miv"/>
<map_variables variable_1="CQ_aov" variable_2="CQ_aov"/>
<map_variables variable_1="E_lv_max" variable_2="E_lv_max"/>
<map_variables variable_1="E_lv_min" variable_2="E_lv_min"/>
<map_variables variable_1="E_la_max" variable_2="E_la_max"/>
<map_variables variable_1="E_la_min" variable_2="E_la_min"/>
<map_variables variable_1="E_rv_max" variable_2="E_rv_max"/>
<map_variables variable_1="E_rv_min" variable_2="E_rv_min"/>
<map_variables variable_1="E_ra_max" variable_2="E_ra_max"/>
<map_variables variable_1="E_ra_min" variable_2="E_ra_min"/>
<map_variables variable_1="tau_1_lv" variable_2="tau_1_lv"/>
<map_variables variable_1="tau_2_lv" variable_2="tau_2_lv"/>
<map_variables variable_1="tau_1_la" variable_2="tau_1_la"/>
<map_variables variable_1="tau_2_la" variable_2="tau_2_la"/>
<map_variables variable_1="tau_1_rv" variable_2="tau_1_rv"/>
<map_variables variable_1="tau_2_rv" variable_2="tau_2_rv"/>
<map_variables variable_1="tau_1_ra" variable_2="tau_1_ra"/>
<map_variables variable_1="tau_2_ra" variable_2="tau_2_ra"/>
<map_variables variable_1="m_1_lv" variable_2="m_1_lv"/>
<map_variables variable_1="m_2_lv" variable_2="m_2_lv"/>
<map_variables variable_1="m_1_la" variable_2="m_1_la"/>
<map_variables variable_1="m_2_la" variable_2="m_2_la"/>
<map_variables variable_1="m_1_rv" variable_2="m_1_rv"/>
<map_variables variable_1="m_2_rv" variable_2="m_2_rv"/>
<map_variables variable_1="m_1_ra" variable_2="m_1_ra"/>
<map_variables variable_1="m_2_ra" variable_2="m_2_ra"/>
<map_variables variable_1="t_onset_lv" variable_2="t_onset_lv"/>
<map_variables variable_1="t_onset_la" variable_2="t_onset_la"/>
<map_variables variable_1="t_onset_rv" variable_2="t_onset_rv"/>
<map_variables variable_1="t_onset_ra" variable_2="t_onset_ra"/>
<map_variables variable_1="q_ra_0" variable_2="q_ra_0"/>
<map_variables variable_1="q_rv_0" variable_2="q_rv_0"/>
<map_variables variable_1="q_la_0" variable_2="q_la_0"/>
<map_variables variable_1="q_lv_0" variable_2="q_lv_0"/>
</connection>
<connection>
<map_components component_1="environment" component_2="Heart"/>
<map_variables variable_1="time" variable_2="t"/>
</connection>
<group>
<relationship_ref relationship="encapsulation"/>
<component_ref component="Heart">
<component_ref component="Parameters_Heart"/>
</component_ref>
</group>
</model>