- Author:
- Soroush Safaei <ssaf006@aucklanduni.ac.nz>
- Date:
- 2019-04-13 22:38:38+12:00
- Desc:
- fix the heart model conditions
- Permanent Source URI:
- http://models.cellml.org/workspace/4ac/rawfile/d364629a8aef513c2cd18c3175a1cc4baae4c6f1/Heart.cellml
<?xml version='1.0'?>
<model name="Heart" xmlns="http://www.cellml.org/cellml/1.1#" xmlns:cellml="http://www.cellml.org/cellml/1.1#">
<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="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="Heart">
<variable name="t" units="second"/>
<!-- Constitutive Parameters-->
<variable name="mt" units="second"/>
<variable name="e_a" units="dimensionless"/>
<variable name="e_v" units="dimensionless"/>
<variable initial_value="1.0" name="T" units="second"/>
<variable initial_value="0.80" name="t_ac" units="dimensionless"/>
<variable initial_value="0.97" name="t_ar" units="dimensionless"/>
<variable initial_value="0.17" name="T_ac" units="dimensionless"/>
<variable initial_value="0.17" name="T_ar" units="dimensionless"/>
<variable initial_value="0.3" name="T_vc" units="dimensionless"/>
<variable initial_value="0.15" name="T_vr" units="dimensionless"/>
<variable initial_value="0.13332e+6" name="R_trv" units="J_s_per_m6"/>
<variable initial_value="0.19998e+6" name="R_puv" units="J_s_per_m6"/>
<variable initial_value="0.13332e+6" name="R_miv" units="J_s_per_m6"/>
<variable initial_value="0.19998e+6" name="R_aov" units="J_s_per_m6"/>
<variable initial_value="0.0013332e+12" name="B_trv" units="J_s2_per_m9"/>
<variable initial_value="0.0019998e+12" name="B_puv" units="J_s2_per_m9"/>
<variable initial_value="0.0013332e+12" name="B_miv" units="J_s2_per_m9"/>
<variable initial_value="0.0019998e+12" name="B_aov" units="J_s2_per_m9"/>
<variable initial_value="0.06666e+6" name="L_trv" units="J_s2_per_m6"/>
<variable initial_value="0.06666e+6" name="L_puv" units="J_s2_per_m6"/>
<variable initial_value="0.06666e+6" name="L_miv" units="J_s2_per_m6"/>
<variable initial_value="0.06666e+6" name="L_aov" units="J_s2_per_m6"/>
<variable initial_value="7.998e+6" name="E_ra_A" units="J_per_m6"/>
<variable initial_value="9.331e+6" name="E_ra_B" units="J_per_m6"/>
<variable initial_value="73.315e+6" name="E_rv_A" units="J_per_m6"/>
<variable initial_value="6.665e+6" name="E_rv_B" units="J_per_m6"/>
<variable initial_value="9.331e+6" name="E_la_A" units="J_per_m6"/>
<variable initial_value="11.997e+6" name="E_la_B" units="J_per_m6"/>
<variable initial_value="366.575e+6" name="E_lv_A" units="J_per_m6"/>
<variable initial_value="10.664e+6" name="E_lv_B" units="J_per_m6"/>
<variable initial_value="4.0e-6" name="q_ra_0" units="m3"/>
<variable initial_value="10.0e-6" name="q_rv_0" units="m3"/>
<variable initial_value="4.0e-6" name="q_la_0" units="m3"/>
<variable initial_value="5.0e-6" name="q_lv_0" units="m3"/>
<!-- 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="8000.0" name="u_aorta" public_interface="in" units="J_per_m3"/>
<variable initial_value="1866.0" name="u_pulArtery" public_interface="in" units="J_per_m3"/>
<variable initial_value="0" name="v_trv" units="m3_per_s"/>
<variable initial_value="0" name="v_puv" units="m3_per_s"/>
<variable initial_value="0" name="v_miv" units="m3_per_s"/>
<variable initial_value="0" name="v_aov" units="m3_per_s"/>
<variable initial_value="0.0002" name="v_venacava" public_interface="in" units="m3_per_s"/>
<variable initial_value="0.0001" name="v_pulVein" public_interface="in" 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>e_a</ci>
<piecewise>
<piece>
<apply>
<times/>
<cn cellml:units="dimensionless">0.5</cn>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<cos/>
<apply>
<divide/>
<apply>
<times/>
<pi/>
<apply>
<minus/>
<apply>
<plus/>
<ci>mt</ci>
<ci>T</ci>
</apply>
<apply>
<times/>
<ci>t_ar</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>T_ar</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<and/>
<apply>
<geq/>
<ci>mt</ci>
<cn cellml:units="second">0</cn>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<apply>
<minus/>
<apply>
<times/>
<apply>
<plus/>
<ci>t_ar</ci>
<ci>T_ar</ci>
</apply>
<ci>T</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
</apply>
</piece>
<piece>
<cn cellml:units="dimensionless">0</cn>
<apply>
<and/>
<apply>
<gt/>
<ci>mt</ci>
<apply>
<minus/>
<apply>
<times/>
<apply>
<plus/>
<ci>t_ar</ci>
<ci>T_ar</ci>
</apply>
<ci>T</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<apply>
<times/>
<ci>t_ac</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</piece>
<piece>
<apply>
<times/>
<cn cellml:units="dimensionless">0.5</cn>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<cos/>
<apply>
<divide/>
<apply>
<times/>
<pi/>
<apply>
<minus/>
<ci>mt</ci>
<apply>
<times/>
<ci>t_ac</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>T_ac</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>mt</ci>
<apply>
<times/>
<ci>t_ac</ci>
<ci>T</ci>
</apply>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<apply>
<times/>
<apply>
<plus/>
<ci>t_ac</ci>
<ci>T_ac</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
</apply>
</piece>
<piece>
<apply>
<times/>
<cn cellml:units="dimensionless">0.5</cn>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<cos/>
<apply>
<divide/>
<apply>
<times/>
<pi/>
<apply>
<minus/>
<ci>mt</ci>
<apply>
<times/>
<ci>t_ar</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>T_ar</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>mt</ci>
<apply>
<times/>
<apply>
<plus/>
<ci>t_ac</ci>
<ci>T_ac</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<ci>T</ci>
</apply>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>e_v</ci>
<piecewise>
<piece>
<apply>
<times/>
<cn cellml:units="dimensionless">0.5</cn>
<apply>
<minus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<cos/>
<apply>
<divide/>
<apply>
<times/>
<pi/>
<ci>mt</ci>
</apply>
<apply>
<times/>
<ci>T_vc</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<and/>
<apply>
<geq/>
<ci>mt</ci>
<cn cellml:units="second">0</cn>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<apply>
<times/>
<ci>T_vc</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</piece>
<piece>
<apply>
<times/>
<cn cellml:units="dimensionless">0.5</cn>
<apply>
<plus/>
<cn cellml:units="dimensionless">1</cn>
<apply>
<cos/>
<apply>
<divide/>
<apply>
<times/>
<pi/>
<apply>
<minus/>
<ci>mt</ci>
<apply>
<times/>
<ci>T_vc</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
<apply>
<times/>
<ci>T_vr</ci>
<ci>T</ci>
</apply>
</apply>
</apply>
</apply>
</apply>
<apply>
<and/>
<apply>
<gt/>
<ci>mt</ci>
<apply>
<times/>
<ci>T_vc</ci>
<ci>T</ci>
</apply>
</apply>
<apply>
<leq/>
<ci>mt</ci>
<apply>
<times/>
<apply>
<plus/>
<ci>T_vc</ci>
<ci>T_vr</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
</apply>
</piece>
<piece>
<cn cellml:units="dimensionless">0</cn>
<apply>
<and/>
<apply>
<gt/>
<ci>mt</ci>
<apply>
<times/>
<apply>
<plus/>
<ci>T_vc</ci>
<ci>T_vr</ci>
</apply>
<ci>T</ci>
</apply>
</apply>
<apply>
<lt/>
<ci>mt</ci>
<ci>T</ci>
</apply>
</apply>
</piece>
</piecewise>
</apply>
<!-- Constitutive Relations-->
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>v_trv</ci>
</apply>
<piecewise>
<piece>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>R_trv</ci>
<apply>
<times/>
<ci>B_trv</ci>
<apply>
<abs/>
<ci>v_trv</ci>
</apply>
</apply>
</apply>
<ci>v_trv</ci>
</apply>
</apply>
<ci>L_trv</ci>
</apply>
<apply>
<geq/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
</piece>
<piece>
<apply>
<divide/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>R_trv</ci>
<apply>
<times/>
<ci>B_trv</ci>
<apply>
<abs/>
<ci>v_trv</ci>
</apply>
</apply>
</apply>
</apply>
<ci>v_trv</ci>
</apply>
<ci>L_trv</ci>
</apply>
<apply>
<lt/>
<ci>u_ra</ci>
<ci>u_rv</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>v_puv</ci>
</apply>
<piecewise>
<piece>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>u_rv</ci>
<ci>u_pulArtery</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>R_puv</ci>
<apply>
<times/>
<ci>B_puv</ci>
<apply>
<abs/>
<ci>v_puv</ci>
</apply>
</apply>
</apply>
<ci>v_puv</ci>
</apply>
</apply>
<ci>L_puv</ci>
</apply>
<apply>
<geq/>
<ci>u_rv</ci>
<ci>u_pulArtery</ci>
</apply>
</piece>
<piece>
<apply>
<divide/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>R_puv</ci>
<apply>
<times/>
<ci>B_puv</ci>
<apply>
<abs/>
<ci>v_puv</ci>
</apply>
</apply>
</apply>
</apply>
<ci>v_puv</ci>
</apply>
<ci>L_puv</ci>
</apply>
<apply>
<lt/>
<ci>u_rv</ci>
<ci>u_pulArtery</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>v_miv</ci>
</apply>
<piecewise>
<piece>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>R_miv</ci>
<apply>
<times/>
<ci>B_miv</ci>
<apply>
<abs/>
<ci>v_miv</ci>
</apply>
</apply>
</apply>
<ci>v_miv</ci>
</apply>
</apply>
<ci>L_miv</ci>
</apply>
<apply>
<geq/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
</piece>
<piece>
<apply>
<divide/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>R_miv</ci>
<apply>
<times/>
<ci>B_miv</ci>
<apply>
<abs/>
<ci>v_miv</ci>
</apply>
</apply>
</apply>
</apply>
<ci>v_miv</ci>
</apply>
<ci>L_miv</ci>
</apply>
<apply>
<lt/>
<ci>u_la</ci>
<ci>u_lv</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<apply>
<diff/>
<bvar>
<ci>t</ci>
</bvar>
<ci>v_aov</ci>
</apply>
<piecewise>
<piece>
<apply>
<divide/>
<apply>
<minus/>
<apply>
<minus/>
<ci>u_lv</ci>
<ci>u_aorta</ci>
</apply>
<apply>
<times/>
<apply>
<plus/>
<ci>R_aov</ci>
<apply>
<times/>
<ci>B_aov</ci>
<apply>
<abs/>
<ci>v_aov</ci>
</apply>
</apply>
</apply>
<ci>v_aov</ci>
</apply>
</apply>
<ci>L_aov</ci>
</apply>
<apply>
<geq/>
<ci>u_lv</ci>
<ci>u_aorta</ci>
</apply>
</piece>
<piece>
<apply>
<divide/>
<apply>
<times/>
<apply>
<minus/>
<apply>
<plus/>
<ci>R_aov</ci>
<apply>
<times/>
<ci>B_aov</ci>
<apply>
<abs/>
<ci>v_aov</ci>
</apply>
</apply>
</apply>
</apply>
<ci>v_aov</ci>
</apply>
<ci>L_aov</ci>
</apply>
<apply>
<lt/>
<ci>u_lv</ci>
<ci>u_aorta</ci>
</apply>
</piece>
</piecewise>
</apply>
<apply>
<eq/>
<ci>u_ra</ci>
<apply>
<times/>
<apply>
<plus/>
<apply>
<times/>
<ci>e_a</ci>
<ci>E_ra_A</ci>
</apply>
<ci>E_ra_B</ci>
</apply>
<apply>
<minus/>
<ci>q_ra</ci>
<ci>q_ra_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_rv</ci>
<apply>
<times/>
<apply>
<plus/>
<apply>
<times/>
<ci>e_v</ci>
<ci>E_rv_A</ci>
</apply>
<ci>E_rv_B</ci>
</apply>
<apply>
<minus/>
<ci>q_rv</ci>
<ci>q_rv_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_la</ci>
<apply>
<times/>
<apply>
<plus/>
<apply>
<times/>
<ci>e_a</ci>
<ci>E_la_A</ci>
</apply>
<ci>E_la_B</ci>
</apply>
<apply>
<minus/>
<ci>q_la</ci>
<ci>q_la_0</ci>
</apply>
</apply>
</apply>
<apply>
<eq/>
<ci>u_lv</ci>
<apply>
<times/>
<apply>
<plus/>
<apply>
<times/>
<ci>e_v</ci>
<ci>E_lv_A</ci>
</apply>
<ci>E_lv_B</ci>
</apply>
<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/>
<ci>v_venacava</ci>
<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_pulVein</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>
</model>