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
.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
\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
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
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
\r
@Override\r
public int getColumnCount() {\r
- return 9;\r
+ return 10;\r
}\r
\r
@Override\r
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
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
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
public Amount<Mass> getPropellantMass() {\r
return propellantMass;\r
}\r
+ \r
+ public double getVolumeLoading() {\r
+ return volumeLoading;\r
+ }\r
\r
}\r