Add fuel mass to summary
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / BurnSummary.java
index adc340cc685893693f52277af8efb4c7e819c788..beb145c3c02b1862d5275c4e16065aa5035b03cf 100644 (file)
@@ -3,7 +3,10 @@ package com.billkuker.rocketry.motorsim;
 import javax.measure.quantity.Dimensionless;\r
 import javax.measure.quantity.Duration;\r
 import javax.measure.quantity.Force;\r
+import javax.measure.quantity.Mass;\r
 import javax.measure.quantity.Pressure;\r
+import javax.measure.quantity.Volume;\r
+import javax.measure.quantity.VolumetricDensity;\r
 import javax.measure.unit.SI;\r
 \r
 import org.jscience.physics.amount.Amount;\r
@@ -19,6 +22,7 @@ public class BurnSummary {
        Amount<Force> maxThrust = Amount.valueOf(0, SI.NEWTON);\r
        Amount<Pressure> maxPressure = Amount.valueOf(0, SI.MEGA(SI.PASCAL));\r
        Amount<Duration> isp;\r
+       Amount<Mass> propellantMass;\r
        Double saftyFactor;\r
        \r
        public BurnSummary(Burn b) {\r
@@ -47,8 +51,13 @@ public class BurnSummary {
                .divide(Amount.valueOf(9.81,\r
                                SI.METERS_PER_SQUARE_SECOND)).to(SI.SECOND);\r
 \r
-               if ( b.getMotor().getChamber().burstPressure() != null )\r
-                       saftyFactor = b.getMotor().getChamber().burstPressure().divide(maxPressure).to(Dimensionless.UNIT).doubleValue(Dimensionless.UNIT);\r
+               if ( b.getMotor().getChamber().getBurstPressure() != null )\r
+                       saftyFactor = b.getMotor().getChamber().getBurstPressure().divide(maxPressure).to(Dimensionless.UNIT).doubleValue(Dimensionless.UNIT);\r
+\r
+               Amount<Volume> vol = b.getMotor().getGrain().volume(Amount.valueOf(0, SI.MILLIMETER));\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
 \r
        public String getRating() {\r
@@ -95,5 +104,9 @@ public class BurnSummary {
        public Amount<Pressure> maxPressure(){\r
                return maxPressure;\r
        }\r
+       \r
+       public Amount<Mass> getPropellantMass() {\r
+               return propellantMass;\r
+       }\r
 \r
 }\r