function [Pump] =  Pump_abg
# This function is the acausal bond graph representation of Pump
# Generated by MTT on Thu Mar 16 10:38:10 2000
# The file is in Octave format

# Subsystems and Ports

# Port Hydraulic_in
  Pump.ports.Hydraulic_in.type = "SS";
  Pump.ports.Hydraulic_in.cr = "SS";
  Pump.ports.Hydraulic_in.arg = "external,external";
  Pump.ports.Hydraulic_in.repetitions = 1;
  Pump.ports.Hydraulic_in.status = -1;
  Pump.ports.Hydraulic_in.connections = [-5 ];

# Port Hydraulic_out
  Pump.ports.Hydraulic_out.type = "SS";
  Pump.ports.Hydraulic_out.cr = "SS";
  Pump.ports.Hydraulic_out.arg = "external,external";
  Pump.ports.Hydraulic_out.repetitions = 1;
  Pump.ports.Hydraulic_out.status = -1;
  Pump.ports.Hydraulic_out.connections = [6 ];

# Port Shaft
  Pump.ports.Shaft.type = "SS";
  Pump.ports.Shaft.cr = "SS";
  Pump.ports.Shaft.arg = "external,external";
  Pump.ports.Shaft.repetitions = 1;
  Pump.ports.Shaft.status = -1;
  Pump.ports.Shaft.connections = [-12 ];

# Port Thermal_in
  Pump.ports.Thermal_in.type = "SS";
  Pump.ports.Thermal_in.cr = "SS";
  Pump.ports.Thermal_in.arg = "external,external";
  Pump.ports.Thermal_in.repetitions = 1;
  Pump.ports.Thermal_in.status = -1;
  Pump.ports.Thermal_in.connections = [-4 ];

# Port Thermal_out
  Pump.ports.Thermal_out.type = "SS";
  Pump.ports.Thermal_out.cr = "SS";
  Pump.ports.Thermal_out.arg = "external,external";
  Pump.ports.Thermal_out.repetitions = 1;
  Pump.ports.Thermal_out.status = -1;
  Pump.ports.Thermal_out.connections = [16 ];

# Component pipe
  Pump.subsystems.pipe.type = "wPipe";
  Pump.subsystems.pipe.cr = "none";
  Pump.subsystems.pipe.arg = "c_v;density,ideal_gas,r";
  Pump.subsystems.pipe.repetitions = 1;
  Pump.subsystems.pipe.status = -1;
  Pump.subsystems.pipe.connections = [3 -7 14 2 -1 ];

# Component poly
  Pump.subsystems.poly.type = "Poly";
  Pump.subsystems.poly.cr = "Poly";
  Pump.subsystems.poly.arg = "alpha";
  Pump.subsystems.poly.repetitions = 1;
  Pump.subsystems.poly.status = -1;
  Pump.subsystems.poly.connections = [9 8 11 -10 ];

# Component T
  Pump.subsystems.T.type = "SS";
  Pump.subsystems.T.cr = "SS";
  Pump.subsystems.T.arg = "external,0";
  Pump.subsystems.T.repetitions = 1;
  Pump.subsystems.T.status = -1;
  Pump.subsystems.T.connections = [17 ];

# Component k_p
  Pump.subsystems.k_p.type = "TF";
  Pump.subsystems.k_p.cr = "lin";
  Pump.subsystems.k_p.arg = "flow,k_p";
  Pump.subsystems.k_p.repetitions = 1;
  Pump.subsystems.k_p.status = -1;
  Pump.subsystems.k_p.connections = [13 -14 ];

# Component mtt1
  Pump.subsystems.mtt1.type = "0";
  Pump.subsystems.mtt1.cr = "";
  Pump.subsystems.mtt1.arg = "";
  Pump.subsystems.mtt1.repetitions = 1;
  Pump.subsystems.mtt1.status = -1;
  Pump.subsystems.mtt1.connections = [1 10 -15 -17 ];

# Component mtt2
  Pump.subsystems.mtt2.type = "0";
  Pump.subsystems.mtt2.cr = "";
  Pump.subsystems.mtt2.arg = "";
  Pump.subsystems.mtt2.repetitions = 1;
  Pump.subsystems.mtt2.status = -1;
  Pump.subsystems.mtt2.connections = [-6 7 -11 ];

# Component mtt3
  Pump.subsystems.mtt3.type = "0";
  Pump.subsystems.mtt3.cr = "";
  Pump.subsystems.mtt3.arg = "";
  Pump.subsystems.mtt3.repetitions = 1;
  Pump.subsystems.mtt3.status = -1;
  Pump.subsystems.mtt3.connections = [-3 5 -9 ];

# Component mtt4
  Pump.subsystems.mtt4.type = "0";
  Pump.subsystems.mtt4.cr = "";
  Pump.subsystems.mtt4.arg = "";
  Pump.subsystems.mtt4.repetitions = 1;
  Pump.subsystems.mtt4.status = -1;
  Pump.subsystems.mtt4.connections = [-2 4 -8 ];

# Component mtt5
  Pump.subsystems.mtt5.type = "EBTF";
  Pump.subsystems.mtt5.cr = "";
  Pump.subsystems.mtt5.arg = "";
  Pump.subsystems.mtt5.repetitions = 1;
  Pump.subsystems.mtt5.status = -1;
  Pump.subsystems.mtt5.connections = [15 -16 ];

# Component mtt6
  Pump.subsystems.mtt6.type = "1";
  Pump.subsystems.mtt6.cr = "";
  Pump.subsystems.mtt6.arg = "";
  Pump.subsystems.mtt6.repetitions = 1;
  Pump.subsystems.mtt6.status = -1;
  Pump.subsystems.mtt6.connections = [12 -13 ];

# Ordered list of Port names
  Pump.portlist(1,:) = "Hydraulic_in ";
  Pump.portlist(2,:) = "Hydraulic_out";
  Pump.portlist(3,:) = "Shaft        ";
  Pump.portlist(4,:) = "Thermal_in   ";
  Pump.portlist(5,:) = "Thermal_out  ";

# Ordered list of subsystem names
  Pump.subsystemlist(1,:) = "pipe";
  Pump.subsystemlist(2,:) = "poly";
  Pump.subsystemlist(3,:) = "T   ";
  Pump.subsystemlist(4,:) = "k_p ";
  Pump.subsystemlist(5,:) = "mtt1";
  Pump.subsystemlist(6,:) = "mtt2";
  Pump.subsystemlist(7,:) = "mtt3";
  Pump.subsystemlist(8,:) = "mtt4";
  Pump.subsystemlist(9,:) = "mtt5";
  Pump.subsystemlist(10,:) = "mtt6";

# Bonds 
  Pump.bonds = [
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      0 0 
      -1 -1 
      0 0 
      0 0 
      0 0 
      0 0 
      1 1 
      ];

# Aliases 
# A double underscore __ represents a comma 
Pump.alias.out = "Thermal_out,Hydraulic_out";
Pump.alias.Hy_out = "Hydraulic_out";
Pump.alias.c_v = "$1";
Pump.alias.flow__k_p = "$4";
Pump.alias.Th_in = "Thermal_in";
Pump.alias.Th_out = "Thermal_out";
Pump.alias.Work = "Shaft";
Pump.alias.alpha = "$3";
Pump.alias.in = "Thermal_in,Hydraulic_in";
Pump.alias.Hy_in = "Hydraulic_in";
Pump.alias.density__ideal_gas__r = "$2";
