<classpath>\r
<classpathentry kind="src" path="src"/>\r
<classpathentry kind="src" path="test"/>\r
+ <classpathentry kind="src" path="motors"/>\r
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
<classpathentry kind="lib" path="jscience.jar"/>\r
<classpathentry kind="lib" path="jfreechart-1.0.12.jar"/>\r
--- /dev/null
+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.util.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
--- /dev/null
+package com.billkuker.rocketry.motorsim.motors.example;\r
+\r
+import java.awt.Shape;\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.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.util.RotatedShapeGrain;\r
+\r
+public class EndBurner extends Motor {\r
+ public EndBurner() {\r
+ setName("End Burner");\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 RotatedShapeGrain() {\r
+ {\r
+ try {\r
+ Shape outside = new Rectangle2D.Double(0, 0, 15, 70);\r
+ shape.add(outside);\r
+ shape.inhibit(outside);\r
+ shape.subtract(new Rectangle2D.Double(0, 50, 5, 70));\r
+ shape.subtract(new Rectangle2D.Double(0, 70, 15, 10));\r
+ } catch (Exception e) {\r
+ throw new Error(e);\r
+ }\r
+ }\r
+ });\r
+\r
+ ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
+ n.setThroatDiameter(Amount.valueOf(4, SI.MILLIMETER));\r
+ n.setExitDiameter(Amount.valueOf(9, SI.MILLIMETER));\r
+ n.setEfficiency(.85);\r
+ setNozzle(n);\r
+ }\r
+\r
+}\r
--- /dev/null
+package com.billkuker.rocketry.motorsim.motors.kuker;\r
+\r
+import java.beans.PropertyVetoException;\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.CoredCylindricalGrain;\r
+import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
+import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
+\r
+public class PVC9 extends Motor {\r
+ public PVC9(){\r
+ setName("PVC9");\r
+ setFuel(new KNSU());\r
+ \r
+ CylindricalChamber c = new CylindricalChamber();\r
+ c.setLength(Amount.valueOf(200, SI.MILLIMETER));\r
+ c.setID(Amount.valueOf(25, SI.MILLIMETER));\r
+ setChamber(c);\r
+ \r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ try{\r
+ g.setLength(Amount.valueOf(70, SI.MILLIMETER));\r
+ g.setOD(Amount.valueOf(23.5, SI.MILLIMETER));\r
+ g.setID(Amount.valueOf(7.9375, SI.MILLIMETER));\r
+ } catch ( PropertyVetoException v ){\r
+ throw new Error(v);\r
+ }\r
+ \r
+ setGrain( new MultiGrain(g, 2) );\r
+ \r
+ ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
+ n.setThroatDiameter(Amount.valueOf(7.962, SI.MILLIMETER));\r
+ n.setExitDiameter(Amount.valueOf(13.79, SI.MILLIMETER));\r
+ n.setEfficiency(.85);\r
+ setNozzle(n);\r
+ }\r
+ \r
+ public static void main(String args[]) throws Exception{\r
+ PVC9 m = new PVC9();\r
+ Burn b = new Burn(m);\r
+ new BurnPanel(b).showAsWindow();\r
+ }\r
+}\r
--- /dev/null
+package com.billkuker.rocketry.motorsim.motors.nakka;\r
+\r
+import java.beans.PropertyVetoException;\r
+\r
+import javax.measure.unit.NonSI;\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.KNSB;\r
+import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain;\r
+import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
+import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
+\r
+public class KappaSB extends Motor{\r
+ public KappaSB(){\r
+ setName("Kappa-Sorbitol");\r
+ setFuel(new KNSB());\r
+ \r
+ CylindricalChamber c = new CylindricalChamber();\r
+ c.setLength(Amount.valueOf(16, NonSI.INCH));\r
+ c.setID(Amount.valueOf(2.37, NonSI.INCH));\r
+ setChamber(c);\r
+ \r
+ CoredCylindricalGrain g = new CoredCylindricalGrain();\r
+ try{\r
+ g.setLength(Amount.valueOf(3.8, NonSI.INCH));\r
+ g.setOD(Amount.valueOf(2.23, NonSI.INCH));\r
+ g.setID(Amount.valueOf(.75, NonSI.INCH));\r
+ } catch (PropertyVetoException v){\r
+ throw new Error(v);\r
+ }\r
+ \r
+ setGrain( new MultiGrain(g, 4) );\r
+ \r
+ ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
+ n.setThroatDiameter(Amount.valueOf(.502, NonSI.INCH));\r
+ n.setExitDiameter(Amount.valueOf(1.67, NonSI.INCH));\r
+ n.setEfficiency(.87);\r
+ setNozzle(n);\r
+ }\r
+ \r
+ public static void main(String args[]) throws Exception{\r
+ KappaSB m = new KappaSB();\r
+ Burn b = new Burn(m);\r
+ new BurnPanel(b).showAsWindow();\r
+ }\r
+\r
+}\r
+++ /dev/null
-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.util.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
+++ /dev/null
-package com.billkuker.rocketry.motorsim.motors.example;\r
-\r
-import java.awt.Shape;\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.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.util.RotatedShapeGrain;\r
-\r
-public class EndBurner extends Motor {\r
- public EndBurner() {\r
- setName("End Burner");\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 RotatedShapeGrain() {\r
- {\r
- try {\r
- Shape outside = new Rectangle2D.Double(0, 0, 15, 70);\r
- shape.add(outside);\r
- shape.inhibit(outside);\r
- shape.subtract(new Rectangle2D.Double(0, 50, 5, 70));\r
- shape.subtract(new Rectangle2D.Double(0, 70, 15, 10));\r
- } catch (Exception e) {\r
- throw new Error(e);\r
- }\r
- }\r
- });\r
-\r
- ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
- n.setThroatDiameter(Amount.valueOf(4, SI.MILLIMETER));\r
- n.setExitDiameter(Amount.valueOf(9, SI.MILLIMETER));\r
- n.setEfficiency(.85);\r
- setNozzle(n);\r
- }\r
-\r
-}\r
+++ /dev/null
-package com.billkuker.rocketry.motorsim.motors.kuker;\r
-\r
-import java.beans.PropertyVetoException;\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.CoredCylindricalGrain;\r
-import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
-import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
-\r
-public class PVC9 extends Motor {\r
- public PVC9(){\r
- setName("PVC9");\r
- setFuel(new KNSU());\r
- \r
- CylindricalChamber c = new CylindricalChamber();\r
- c.setLength(Amount.valueOf(200, SI.MILLIMETER));\r
- c.setID(Amount.valueOf(25, SI.MILLIMETER));\r
- setChamber(c);\r
- \r
- CoredCylindricalGrain g = new CoredCylindricalGrain();\r
- try{\r
- g.setLength(Amount.valueOf(70, SI.MILLIMETER));\r
- g.setOD(Amount.valueOf(23.5, SI.MILLIMETER));\r
- g.setID(Amount.valueOf(7.9375, SI.MILLIMETER));\r
- } catch ( PropertyVetoException v ){\r
- throw new Error(v);\r
- }\r
- \r
- setGrain( new MultiGrain(g, 2) );\r
- \r
- ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
- n.setThroatDiameter(Amount.valueOf(7.962, SI.MILLIMETER));\r
- n.setExitDiameter(Amount.valueOf(13.79, SI.MILLIMETER));\r
- n.setEfficiency(.85);\r
- setNozzle(n);\r
- }\r
- \r
- public static void main(String args[]) throws Exception{\r
- PVC9 m = new PVC9();\r
- Burn b = new Burn(m);\r
- new BurnPanel(b).showAsWindow();\r
- }\r
-}\r
+++ /dev/null
-package com.billkuker.rocketry.motorsim.motors.nakka;\r
-\r
-import java.beans.PropertyVetoException;\r
-\r
-import javax.measure.unit.NonSI;\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.KNSB;\r
-import com.billkuker.rocketry.motorsim.grain.CoredCylindricalGrain;\r
-import com.billkuker.rocketry.motorsim.grain.MultiGrain;\r
-import com.billkuker.rocketry.motorsim.visual.BurnPanel;\r
-\r
-public class KappaSB extends Motor{\r
- public KappaSB(){\r
- setName("Kappa-Sorbitol");\r
- setFuel(new KNSB());\r
- \r
- CylindricalChamber c = new CylindricalChamber();\r
- c.setLength(Amount.valueOf(16, NonSI.INCH));\r
- c.setID(Amount.valueOf(2.37, NonSI.INCH));\r
- setChamber(c);\r
- \r
- CoredCylindricalGrain g = new CoredCylindricalGrain();\r
- try{\r
- g.setLength(Amount.valueOf(3.8, NonSI.INCH));\r
- g.setOD(Amount.valueOf(2.23, NonSI.INCH));\r
- g.setID(Amount.valueOf(.75, NonSI.INCH));\r
- } catch (PropertyVetoException v){\r
- throw new Error(v);\r
- }\r
- \r
- setGrain( new MultiGrain(g, 4) );\r
- \r
- ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();\r
- n.setThroatDiameter(Amount.valueOf(.502, NonSI.INCH));\r
- n.setExitDiameter(Amount.valueOf(1.67, NonSI.INCH));\r
- n.setEfficiency(.87);\r
- setNozzle(n);\r
- }\r
- \r
- public static void main(String args[]) throws Exception{\r
- KappaSB m = new KappaSB();\r
- Burn b = new Burn(m);\r
- new BurnPanel(b).showAsWindow();\r
- }\r
-\r
-}\r