+package com.billkuker.rocketry.motorsim.motors.example;\r
+\r
+import java.awt.Shape;\r
+import java.awt.geom.Ellipse2D;\r
+import java.awt.geom.Rectangle2D;\r
+\r
+import javax.measure.unit.SI;\r
+\r
+import org.jscience.physics.amount.Amount;\r
+\r
+import com.billkuker.rocketry.motorsim.Burn;\r
+import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle;\r
+import com.billkuker.rocketry.motorsim.CylindricalChamber;\r
+import com.billkuker.rocketry.motorsim.Motor;\r
+import com.billkuker.rocketry.motorsim.fuel.KNSU;\r
+import com.billkuker.rocketry.motorsim.grain.ExtrudedShapeGrain;\r
+\r
+public class CSlot extends Motor {\r
+ public CSlot() {\r
+ setName("C-Slot");\r
+ setFuel(new KNSU());\r
+\r
+ CylindricalChamber c = new CylindricalChamber();\r
+ c.setLength(Amount.valueOf(150, SI.MILLIMETER));\r
+ c.setID(Amount.valueOf(50, SI.MILLIMETER));\r
+ setChamber(c);\r
+\r
+ setGrain(new ExtrudedShapeGrain() {\r
+ {\r
+ try {\r
+ Shape outside = new Ellipse2D.Double(0, 0, 30, 30);\r
+ xsection.add(outside);\r
+ xsection.inhibit(outside);\r
+ xsection.subtract(new Rectangle2D.Double(12.5,13, 5, 30));\r
+ setLength(Amount.valueOf(150, SI.MILLIMETER));\r
+ setForeEndInhibited(false);\r
+ setAftEndInhibited(false);\r
+ } catch (Exception e) {\r
+ throw new Error(e);\r
+ }\r
+ }\r
+ });\r
+\r
+ ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
+ n.setThroatDiameter(Amount.valueOf(7, SI.MILLIMETER));\r
+ n.setExitDiameter(Amount.valueOf(10, SI.MILLIMETER));\r
+ n.setEfficiency(.85);\r
+ setNozzle(n);\r
+ }\r
+ \r
+ public static void main(String args[]){\r
+ new Burn(new CSlot());\r
+ }\r
+\r
+}\r