// Create a engine branch 1 of dual engine system
// Number of branches: 	1
// Number of masses:	18
// Components: Engine
// Engine type: Four-stroke inline, Wartsila-Sulzer 9ZA40S

// Create inertias
dataModel.Add(M1 = new Inertia() { X=60; Y=100; Description="M1" });
dataModel.Add(M2 = new Inertia() { X=90; Y=100; Description="M2" });
dataModel.Add(M3 = new Cylinder() { X=120; Y=100; Description="Cyl1" });
dataModel.Add(M4 = new Cylinder() { X=150; Y=100; Description="Cyl2" });
dataModel.Add(M5 = new Cylinder() { X=180; Y=100; Description="Cyl3" });
dataModel.Add(M6 = new Cylinder() { X=210; Y=100; Description="Cyl4" });
dataModel.Add(M7 = new Cylinder() { X=240; Y=100; Description="Cyl5" });
dataModel.Add(M8 = new Cylinder() { X=270; Y=100; Description="Cyl6" });
dataModel.Add(M9 = new Cylinder() { X=300; Y=100; Description="Cyl7" });
dataModel.Add(M10 = new Cylinder() { X=330; Y=100; Description="Cyl8" });
dataModel.Add(M11 = new Cylinder() { X=360; Y=100; Description="Cyl9" });
dataModel.Add(M12 = new Inertia() { X=390; Y=100; Description="M12" });
dataModel.Add(M13 = new Inertia() { X=420; Y=100; Description="M13" });
dataModel.Add(M14 = new Inertia() { X=450; Y=100; Description="M14" });
dataModel.Add(M15 = new Inertia() { X=480; Y=100; Description="M15" });
dataModel.Add(M16 = new Inertia() { X=510; Y=100; Description="M16" });
dataModel.Add(M17 = new Inertia() { X=540; Y=100; Description="M17" });
dataModel.Add(M18 = new Inertia() { X=570; Y=100; Description="M18" });

// Add stiffness
dataModel.Add(S1 = new Stiffness(M1, M2));
dataModel.Add(S2 = new Stiffness(M2, M3));
dataModel.Add(S3 = new Crankthrow(M3, M4));
dataModel.Add(S4 = new Crankthrow(M4, M5));
dataModel.Add(S5 = new Crankthrow(M5, M6));
dataModel.Add(S6 = new Crankthrow(M6, M7));
dataModel.Add(S7 = new Crankthrow(M7, M8));
dataModel.Add(S8 = new Crankthrow(M8, M9));
dataModel.Add(S9 = new Crankthrow(M9, M10));
dataModel.Add(S10 = new Crankthrow(M10, M11));
dataModel.Add(S11 = new Stiffness(M11, M12));
dataModel.Add(S12 = new Stiffness(M12, M13));
dataModel.Add(S13 = new Stiffness(M13, M14));
dataModel.Add(S14 = new Stiffness(M14, M15));
dataModel.Add(S15 = new Stiffness(M15, M16));
dataModel.Add(S16 = new Stiffness(M16, M17));
dataModel.Add(S17 = new Stiffness(M17, M18));

// Group into diesel engine
DieselEngine1 = new DieselEngine();
DieselEngine1.Add(M3);
DieselEngine1.Add(M4);
DieselEngine1.Add(M5);
DieselEngine1.Add(M6);
DieselEngine1.Add(M7);
DieselEngine1.Add(M8);
DieselEngine1.Add(M9);
DieselEngine1.Add(M10);
DieselEngine1.Add(M11);
dataModel.Add(DieselEngine1);

// Mass properties
M1.MomentOfInertia=550.00 kg*m^2;
M2.MomentOfInertia=18.67 kg*m^2;
M3.MomentOfInertia=133.30 kg*m^2;
M4.MomentOfInertia=133.30 kg*m^2;
M5.MomentOfInertia=133.30 kg*m^2;
M6.MomentOfInertia=133.30 kg*m^2;
M7.MomentOfInertia=133.30 kg*m^2;
M8.MomentOfInertia=133.30 kg*m^2;
M9.MomentOfInertia=133.30 kg*m^2;
M10.MomentOfInertia=133.30 kg*m^2;
M11.MomentOfInertia=133.30 kg*m^2;
M12.MomentOfInertia=34.60 kg*m^2;
M13.MomentOfInertia=1024.00 kg*m^2;
M14.MomentOfInertia=69.20 kg*m^2;
M15.MomentOfInertia=68.50 kg*m^2;
M16.MomentOfInertia=9.70 kg*m^2;
M17.MomentOfInertia=139.80 kg*m^2;
M18.MomentOfInertia=136.50 kg*m^2;

// Stiffness properties
S1.TorsionalStiffness = 18250000 N*m/rad;
S2.TorsionalStiffness = 201600000 N*m/rad;
S3.TorsionalStiffness = 138300000 N*m/rad;
S4.TorsionalStiffness = 138300000 N*m/rad;
S5.TorsionalStiffness = 138300000 N*m/rad;
S6.TorsionalStiffness = 138300000 N*m/rad;
S7.TorsionalStiffness = 138300000 N*m/rad;
S8.TorsionalStiffness = 138300000 N*m/rad;
S9.TorsionalStiffness = 138300000 N*m/rad;
S10.TorsionalStiffness = 138300000 N*m/rad;
S11.TorsionalStiffness = 195300000 N*m/rad;
S12.TorsionalStiffness = 170600000 N*m/rad;
S13.TorsionalStiffness = 921000 N*m/rad;
S14.TorsionalStiffness = 63110000 N*m/rad;
S15.TorsionalStiffness = 128000000 N*m/rad;
S16.TorsionalStiffness = 30170000 N*m/rad;
S17.TorsionalStiffness = 1808000000 N*m/rad;

// Outer diameter on shafts
S1.DiamOuter = 0 mm;
S2.DiamOuter = 330 mm;
S3.DiamOuter = 350 mm;
S4.DiamOuter = 350 mm;
S5.DiamOuter = 350 mm;
S6.DiamOuter = 350 mm;
S7.DiamOuter = 350 mm;
S8.DiamOuter = 350 mm;
S9.DiamOuter = 350 mm;
S10.DiamOuter = 350 mm;
S11.DiamOuter = 340 mm;
S12.DiamOuter = 340 mm;
S13.DiamOuter = 340 mm;
S14.DiamOuter = 335 mm;
S15.DiamOuter = 0 mm;
S16.DiamOuter = 245 mm;
S17.DiamOuter = 0 mm;

// Diesel engine properties
DieselEngine1.Manufacturer = "Wartsila";
DieselEngine1.TypeDesignation = "9ZA40S";
DieselEngine1.PowerMCR = 6200 kW;
DieselEngine1.SpeedMCR = 530 rpm;
DieselEngine1.NumberOfStrokes = "4";
DieselEngine1.Bore = 400 mm;
DieselEngine1.StrokeLength = 560 mm;
DieselEngine1.ConnectingRodRatio = 0.25;
DieselEngine1.ReciprocatingMass = 330 kg;
DieselEngine1.EfficiencyMechanical = 0.90;

// Cylinder index and firing order
M3.CylinderIndex = 1;
M4.CylinderIndex = 2;
M5.CylinderIndex = 3;
M6.CylinderIndex = 4;
M7.CylinderIndex = 5;
M8.CylinderIndex = 6;
M9.CylinderIndex = 7;
M10.CylinderIndex = 8;
M11.CylinderIndex = 9;
M3.FiringAngleBankA = 0 deg;
M4.FiringAngleBankA = 480 deg;
M5.FiringAngleBankA = 240 deg;
M6.FiringAngleBankA = 560 deg;
M7.FiringAngleBankA = 80 deg;
M8.FiringAngleBankA = 320 deg;
M9.FiringAngleBankA = 640 deg;
M10.FiringAngleBankA = 400 deg;
M11.FiringAngleBankA = 160 deg;

// Engine excitation data (theoretical cylinder pressure)
DieselEngine1.ExcitationMethod = ExcitationMethodType.Theoretical;
DieselEngine1.ExcitationData.CompressionRatio = 13.0;
DieselEngine1.ExcitationData.AngleIgnition = -5 deg;
DieselEngine1.ExcitationData.AngleEndOfCombustion = 55 deg;
DieselEngine1.ExcitationData.AngleExhaustStart = 162 deg;
DieselEngine1.ExcitationData.PressureChargeAir = 2.72 bar;
DieselEngine1.ExcitationData.PressureCompression = 130 bar;
DieselEngine1.ExcitationData.PressureMax = 155 bar;
DieselEngine1.ExcitationData.TemperatureChargeAir = 40;
DieselEngine1.ExcitationData.EfficiencyThermal = 0.40;
DieselEngine1.ExcitationData.ExponentCompression = 1.51;
DieselEngine1.ExcitationData.ExponentExpansion = 1.45;
DieselEngine1.ExcitationData.FormFactor = 1;
