--- /dev/null
+package com.billkuker.rocketry.motorsim.cases;\r
+\r
+import java.awt.Shape;\r
+\r
+import javax.measure.quantity.Length;\r
+import javax.measure.quantity.Pressure;\r
+import javax.measure.quantity.Volume;\r
+import javax.measure.unit.NonSI;\r
+\r
+import org.jscience.physics.amount.Amount;\r
+\r
+import com.billkuker.rocketry.motorsim.Chamber;\r
+import com.billkuker.rocketry.motorsim.CylindricalChamber;\r
+import com.billkuker.rocketry.motorsim.RocketScience;\r
+\r
+public class Schedule80 implements Chamber {\r
+ public static enum Size { \r
+ \r
+ //Dimensions: http://www.harvel.com/pipepvc-sch40-80-dim.asp\r
+ //Pressure: http://www.engineeringtoolbox.com/pvc-cpvc-pipes-pressures-d_796.html\r
+ //Also: http://www.jacobsrocketry.com/aer/misc_tables.htm\r
+ //OneEighth( "\u215B\u2033", 0.405, 0.249, 0.051, 2630),\r
+ OneQuarter( "\u00BC\u2033", 0.54, 0.282, 10, 7319),\r
+ ThreeEights( "\u215C\u2033", 0.675, 0.403, 13.8, 5400),\r
+ OneHalf( "\u00BD\u2033", 0.84, 0.546, 20.2, 4308),\r
+ ThreeQuarters( "\u00BE\u2033", 1.05, 0.722, 27.3, 3634),\r
+ OneInch( "1\u2033", 1.315, 0.936, 40.2, 3239),\r
+ OneAndAQuarter( "1\u00BC\u2033", 1.66, 1.255, 55.4, 2582),\r
+ OneAndOneHalf( "1\u00BD\u2033", 1.9, 1.476, 67.3, 2298),\r
+ TwoInch( "2\u2033", 2.375, 1.913, 93.2, 1932),\r
+ TowAndOneHalf( "2\u00BD\u2033", 2.875, 2.29, 141.9, 2044),\r
+ ThreeInch( "3\u2033", 3.5, 2.864, 190.3, 1777),\r
+ FourInch( "4\u2033", 4.5, 3.786, 278.2, 1509),\r
+ SixInch( "6\u2033", 6.625, 5.709, 531.3, 1284);\r
+\r
+ private final Amount<Length> iD, oD;\r
+ private final Amount<Pressure> burst;\r
+ private final String name;\r
+ public String toString(){\r
+ return name + " Schedule 80";\r
+ }\r
+ Size(String name, double oD, double iD, double wt, double psi) {\r
+ this.oD = Amount.valueOf(oD, NonSI.INCH);\r
+ this.iD = Amount.valueOf(iD, NonSI.INCH);\r
+ this.name = name;\r
+ this.burst = Amount.valueOf(psi, RocketScience.PSI);\r
+ }\r
+ }\r
+\r
+ private CylindricalChamber chamber = new CylindricalChamber();\r
+ private Size size;\r
+\r
+ {\r
+ setSize(Size.OneInch);\r
+ }\r
+\r
+ @Override\r
+ public Amount<Volume> chamberVolume() {\r
+ return chamber.chamberVolume();\r
+ }\r
+\r
+ @Override\r
+ public Amount<Pressure> getBurstPressure() {\r
+ return size.burst;\r
+ }\r
+\r
+ @Override\r
+ public Shape chamberShape() {\r
+ return chamber.chamberShape();\r
+ }\r
+\r
+ public void setLength(Amount<Length> length) {\r
+ chamber.setLength(length);\r
+ }\r
+\r
+ public Amount<Length> getLength() {\r
+ return chamber.getLength();\r
+ }\r
+\r
+ public void setSize(Size size) {\r
+ this.size = size;\r
+ chamber.setID(size.iD);\r
+ chamber.setOD(size.oD);\r
+ }\r
+\r
+ public Size getSize() {\r
+ return size;\r
+ }\r
+ \r
+ public Amount<Length> getID() {\r
+ return chamber.getID();\r
+ }\r
+ \r
+ public Amount<Length> getOD() {\r
+ return chamber.getOD();\r
+ }\r
+}\r