Location: Approximating Sine Waves @ a3e1f00abeb8 / sin_approximations.xml

Author:
David Nickerson <nickerso@users.sourceforge.net>
Date:
2012-05-24 11:30:51+02:00
Desc:
adding a flattened version of the sine approximations import model for testing some SED-ML
Permanent Source URI:
https://models.cellml.org/w/andre/sine/rawfile/a3e1f00abeb8301bbf1e41364c85c2d610b15782/sin_approximations.xml

<?xml version="1.0"?>
<model xmlns="http://www.cellml.org/cellml/1.0#" xmlns:cmeta="http://www.cellml.org/metadata/1.0#" cmeta:id="sin_approximations_import" name="sin_approximations_import">
  <component cmeta:id="main" name="main">
    <variable cmeta:id="x" initial_value="0" name="x" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable cmeta:id="sin" name="sin1" private_interface="in" public_interface="out" units="dimensionless"/>
    <variable cmeta:id="deriv_approx" name="sin2" private_interface="in" public_interface="out" units="dimensionless"/>
    <variable cmeta:id="deriv_approx_initial_value" initial_value="0" name="deriv_approx_initial_value" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable cmeta:id="parabolic_approx" name="sin3" private_interface="in" public_interface="out" units="dimensionless"/>
  </component>
  <component cmeta:id="sin" name="actual_sin">
    <variable name="x" private_interface="out" public_interface="in" units="dimensionless"/>
    <variable cmeta:id="sin" name="sin" private_interface="out" public_interface="out" units="dimensionless"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply id="actual_sin">
        <eq/>
        <ci>sin</ci>
        <apply>
          <sin/>
          <ci>x</ci>
        </apply>
      </apply>
    </math>
  </component>
  <component cmeta:id="sin" name="deriv_approx_sin">
    <variable cmeta:id="x" name="x" private_interface="out" public_interface="in" units="dimensionless"/>
    <variable cmeta:id="sin" initial_value="0" name="sin" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="sin_initial_value" private_interface="out" public_interface="in" units="dimensionless"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply>
        <eq/>
        <apply>
          <diff/>
          <bvar>
            <ci>x</ci>
          </bvar>
          <ci>sin</ci>
        </apply>
        <apply>
          <cos/>
          <ci>x</ci>
        </apply>
      </apply>
    </math>
  </component>
  <component cmeta:id="sin" name="parabolic_approx_sin">
    <variable cmeta:id="x" name="x" private_interface="out" public_interface="in" units="dimensionless"/>
    <variable cmeta:id="sin" name="sin" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="k2_oPi" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="k2Pi" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="kPi_2" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="kPi" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="kPi_32" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable name="z" private_interface="out" public_interface="out" units="dimensionless"/>
    <variable initial_value="0.75" name="C" private_interface="out" public_interface="out" units="dimensionless"/>
    <math xmlns="http://www.w3.org/1998/Math/MathML">
      <apply id="k2_oPi">
        <eq/>
        <ci>k2_oPi</ci>
        <apply>
          <divide/>
          <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">2.0</cn>
          <pi/>
        </apply>
      </apply>
      <apply id="k2Pi">
        <eq/>
        <ci>k2Pi</ci>
        <apply>
          <times/>
          <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">2.0</cn>
          <pi/>
        </apply>
      </apply>
      <apply id="kPi_2">
        <eq/>
        <ci>kPi_2</ci>
        <apply>
          <divide/>
          <pi/>
          <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">2.0</cn>
        </apply>
      </apply>
      <apply id="kPi">
        <eq/>
        <ci>kPi</ci>
        <pi/>
      </apply>
      <apply id="kPi_32">
        <eq/>
        <ci>kPi_32</ci>
        <apply>
          <divide/>
          <apply>
            <times/>
            <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">3.0</cn>
            <pi/>
          </apply>
          <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">2.0</cn>
        </apply>
      </apply>
      <apply id="z">
        <eq/>
        <ci>z</ci>
        <piecewise>
          <piece>
            <apply>
              <minus/>
              <apply>
                <times/>
                <ci>x</ci>
                <ci>k2_oPi</ci>
              </apply>
              <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">0.5</cn>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi_2</ci>
            </apply>
          </piece>
          <piece>
            <apply>
              <minus/>
              <apply>
                <times/>
                <apply>
                  <minus/>
                  <pi/>
                  <ci>x</ci>
                </apply>
                <ci>k2_oPi</ci>
              </apply>
              <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">0.5</cn>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi</ci>
            </apply>
          </piece>
          <piece>
            <apply>
              <minus/>
              <apply>
                <times/>
                <apply>
                  <minus/>
                  <ci>x</ci>
                  <pi/>
                </apply>
                <ci>k2_oPi</ci>
              </apply>
              <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">0.5</cn>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi_32</ci>
            </apply>
          </piece>
          <otherwise>
            <apply>
              <minus/>
              <apply>
                <times/>
                <apply>
                  <minus/>
                  <ci>k2Pi</ci>
                  <ci>x</ci>
                </apply>
                <ci>k2_oPi</ci>
              </apply>
              <cn xmlns:cellml="http://www.cellml.org/cellml/1.0#" cellml:units="dimensionless">0.5</cn>
            </apply>
          </otherwise>
        </piecewise>
      </apply>
      <apply id="sin">
        <eq/>
        <ci>sin</ci>
        <piecewise>
          <piece>
            <apply>
              <plus/>
              <apply>
                <minus/>
                <apply>
                  <times/>
                  <ci>z</ci>
                  <ci>z</ci>
                </apply>
              </apply>
              <ci>C</ci>
              <ci>z</ci>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi_2</ci>
            </apply>
          </piece>
          <piece>
            <apply>
              <plus/>
              <apply>
                <minus/>
                <apply>
                  <times/>
                  <ci>z</ci>
                  <ci>z</ci>
                </apply>
              </apply>
              <ci>C</ci>
              <ci>z</ci>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi</ci>
            </apply>
          </piece>
          <piece>
            <apply>
              <minus/>
              <apply>
                <minus/>
                <apply>
                  <times/>
                  <ci>z</ci>
                  <ci>z</ci>
                </apply>
                <ci>C</ci>
              </apply>
              <ci>z</ci>
            </apply>
            <apply>
              <lt/>
              <ci>x</ci>
              <ci>kPi_32</ci>
            </apply>
          </piece>
          <otherwise>
            <apply>
              <minus/>
              <apply>
                <minus/>
                <apply>
                  <times/>
                  <ci>z</ci>
                  <ci>z</ci>
                </apply>
                <ci>C</ci>
              </apply>
              <ci>z</ci>
            </apply>
          </otherwise>
        </piecewise>
      </apply>
    </math>
  </component>
  <connection>
    <map_components component_1="actual_sin" component_2="main"/>
    <map_variables variable_1="sin" variable_2="sin1"/>
    <map_variables variable_1="x" variable_2="x"/>
  </connection>
  <connection>
    <map_components component_1="deriv_approx_sin" component_2="main"/>
    <map_variables variable_1="sin" variable_2="sin2"/>
    <map_variables variable_1="x" variable_2="x"/>
    <map_variables variable_1="sin_initial_value" variable_2="deriv_approx_initial_value"/>
  </connection>
  <connection>
    <map_components component_1="parabolic_approx_sin" component_2="main"/>
    <map_variables variable_1="sin" variable_2="sin3"/>
    <map_variables variable_1="x" variable_2="x"/>
  </connection>
  <group>
    <relationship_ref relationship="encapsulation"/>
    <component_ref component="main">
      <component_ref component="actual_sin"/>
      <component_ref component="deriv_approx_sin"/>
      <component_ref component="parabolic_approx_sin"/>
    </component_ref>
  </group>
</model>