<?xml version="1.0" encoding="UTF-8"?>
<model xmlns="http://www.cellml.org/cellml/2.0#"
  xmlns:cellml="http://www.cellml.org/cellml/2.0#"
  xmlns:xlink="http://www.w3.org/1999/xlink" name="sin_approximations_import" id="sin_approximations_import">

  <import xlink:href="sine_exact.cellml">
    <component name="actual_sin" component_ref="sin"/>
  </import>
  <import xlink:href="sine_derivative_approx.cellml">
    <component name="deriv_approx_sin" component_ref="sin"/>
  </import>
  <import xlink:href="sine_parabolic_approx.cellml">
    <component name="parabolic_approx_sin" component_ref="sin"/>
  </import>

  <component name="main" id="main">
    <variable name="x" units="dimensionless" interface="public_and_private"/>
    <variable name="exact_solution" units="dimensionless" interface="public_and_private"/>
    <variable units="dimensionless" name="derivative_approx_solution" interface="public_and_private"/>
    <variable units="dimensionless" name="deriv_approx_initial_value" initial_value="0" interface="public_and_private"/>
    <variable name="parabolic_approx_solution" units="dimensionless" interface="public_and_private"/>
    <variable name="C" units="dimensionless" interface="public_and_private" initial_value="0.75"/>
  </component>

  <encapsulation>
    <component_ref component="main">
      <component_ref component="actual_sin"/>
      <component_ref component="deriv_approx_sin"/>
      <component_ref component="parabolic_approx_sin"/>
    </component_ref>
  </encapsulation>

  <connection component_1="actual_sin" component_2="main">
    <map_variables variable_1="sin" variable_2="exact_solution"/>
    <map_variables variable_1="x" variable_2="x"/>
  </connection>

  <connection component_1="deriv_approx_sin" component_2="main">
    <map_variables variable_1="sin" variable_2="derivative_approx_solution"/>
    <map_variables variable_1="x" variable_2="x"/>
    <map_variables variable_1="sin_initial_value" variable_2="deriv_approx_initial_value"/>
  </connection>

  <connection component_1="parabolic_approx_sin" component_2="main">
    <map_variables variable_1="sin" variable_2="parabolic_approx_solution"/>
    <map_variables variable_1="x" variable_2="x"/>
    <map_variables variable_1="C" variable_2="C"/>
  </connection>

</model>
