Add volume loading
authorBill Kuker <bkuker@billkuker.com>
Tue, 23 Nov 2010 16:16:46 +0000 (16:16 +0000)
committerBill Kuker <bkuker@billkuker.com>
Tue, 23 Nov 2010 16:16:46 +0000 (16:16 +0000)
gui/com/billkuker/rocketry/motorsim/visual/SummaryPanel.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MotorsEditor.java
gui/com/billkuker/rocketry/motorsim/visual/workbench/MultiMotorTable.java
src/com/billkuker/rocketry/motorsim/BurnSummary.java

index 33ae34e22d9df258110f0ecb02e689d61aead791..b78d2172eb91c43b0ffa72c7fd40bafd05cc41f4 100644 (file)
@@ -74,6 +74,7 @@ public class SummaryPanel extends JPanel implements Burn.BurnProgressListener, R
                                SummaryPanel.this.add(new JLabel("Average Thust"));\r
                                SummaryPanel.this.add(new JLabel("Max Pressure"));\r
                                SummaryPanel.this.add(new JLabel("Fuel Mass"));\r
+                               SummaryPanel.this.add(new JLabel("Volume Loading"));\r
                                SummaryPanel.this.add(new JLabel("Safty Factor"));\r
 \r
                                SummaryPanel.this.add(new JLabel(bi.getRating()));\r
@@ -89,6 +90,7 @@ public class SummaryPanel extends JPanel implements Burn.BurnProgressListener, R
                                                .ammountToRoundedString(bi.maxPressure())));\r
                                SummaryPanel.this.add(new JLabel(RocketScience\r
                                                .ammountToRoundedString(bi.getPropellantMass())));\r
+                               SummaryPanel.this.add(new JLabel(Integer.toString((int)(bi.getVolumeLoading()*100.0)) + "%"));\r
                                \r
                                Color saftyColor;\r
                                if (bi.getSaftyFactor() == null) {\r
index e805f8acef95bbd7ba72c9d0a0e2e881ab5292ce..c5b771dd4e65743542342eb5f8369d436b516678 100644 (file)
@@ -2,6 +2,7 @@ package com.billkuker.rocketry.motorsim.visual.workbench;
 \r
 import java.awt.FileDialog;\r
 import java.awt.event.ActionEvent;\r
+import java.awt.event.ActionListener;\r
 import java.io.File;\r
 import java.io.FileInputStream;\r
 import java.io.FileOutputStream;\r
@@ -13,7 +14,6 @@ import javax.swing.JMenu;
 import javax.swing.JMenuItem;\r
 import javax.swing.JScrollPane;\r
 import javax.swing.JSeparator;\r
-import java.awt.event.ActionListener;\r
 \r
 import com.billkuker.rocketry.motorsim.Burn;\r
 import com.billkuker.rocketry.motorsim.Motor;\r
index 518904f0830f38c69d32ca9787cc2e4a63b3ad1a..c7f33026091dac14a74173dd773034166893f4a9 100644 (file)
@@ -42,6 +42,8 @@ public class MultiMotorTable extends JTable implements BurnWatcher, RocketScienc
                        case 7:\r
                                return "Max Pressure";\r
                        case 8:\r
+                               return "Volume Loading";\r
+                       case 9:\r
                                return "Fuel Mass";\r
                        }\r
                        return null;\r
@@ -49,7 +51,7 @@ public class MultiMotorTable extends JTable implements BurnWatcher, RocketScienc
                \r
                @Override\r
                public int getColumnCount() {\r
-                       return 9;\r
+                       return 10;\r
                }\r
 \r
                @Override\r
@@ -81,6 +83,8 @@ public class MultiMotorTable extends JTable implements BurnWatcher, RocketScienc
                        case 7:\r
                                return RocketScience.ammountToRoundedString(bs.maxPressure());\r
                        case 8:\r
+                               return Integer.toString((int)(bs.getVolumeLoading()*100.0)) + "%";\r
+                       case 9:\r
                                return RocketScience.ammountToRoundedString(bs.getPropellantMass());\r
                        }\r
                        throw new IndexOutOfBoundsException("Col out of bounds");\r
index beb145c3c02b1862d5275c4e16065aa5035b03cf..5f2f68c18c6d13c2f10987a1021be7d2c0aac45b 100644 (file)
@@ -24,6 +24,7 @@ public class BurnSummary {
        Amount<Duration> isp;\r
        Amount<Mass> propellantMass;\r
        Double saftyFactor;\r
+       Double volumeLoading;\r
        \r
        public BurnSummary(Burn b) {\r
                for (Interval i : b.getData().values()) {\r
@@ -58,6 +59,9 @@ public class BurnSummary {
                Amount<VolumetricDensity> ideal = b.getMotor().getFuel().getIdealDensity();\r
                Amount<VolumetricDensity> actual = ideal.times(b.getMotor().getFuel().getDensityRatio());\r
                propellantMass = vol.times(actual).to(SI.GRAM);\r
+               \r
+               Amount<Volume> chamber = b.getMotor().getChamber().chamberVolume();\r
+               volumeLoading = vol.divide(chamber).to(Dimensionless.UNIT).doubleValue(Dimensionless.UNIT);\r
        }\r
 \r
        public String getRating() {\r
@@ -108,5 +112,9 @@ public class BurnSummary {
        public Amount<Mass> getPropellantMass() {\r
                return propellantMass;\r
        }\r
+       \r
+       public double getVolumeLoading() {\r
+               return volumeLoading;\r
+       }\r
 \r
 }\r