(no commit message)
[sw/motorsim] / src / com / billkuker / rocketry / motorsim / fuel / KNER.java
1 package com.billkuker.rocketry.motorsim.fuel;\r
2 \r
3 import javax.measure.quantity.Pressure;\r
4 import javax.measure.quantity.Temperature;\r
5 import javax.measure.quantity.Velocity;\r
6 import javax.measure.quantity.VolumetricDensity;\r
7 import javax.measure.unit.SI;\r
8 \r
9 import org.jscience.physics.amount.Amount;\r
10 \r
11 import com.billkuker.rocketry.motorsim.RocketScience.MolarWeight;\r
12 import com.billkuker.rocketry.motorsim.visual.Chart;\r
13 \r
14 public class KNER extends SaintRobertFuel {\r
15 \r
16         public KNER() {\r
17                 super(SaintRobertFuel.Type.NONSI);\r
18         }\r
19         \r
20 \r
21         @Override\r
22         protected double burnrateCoefficient(Amount<Pressure> pressure) {\r
23                 return .0037;\r
24         }\r
25 \r
26         @Override\r
27         protected double burnrateExponent(Amount<Pressure> pressure) {\r
28                 return .64;\r
29         }\r
30 \r
31         @Override\r
32         public Amount<VolumetricDensity> getIdealDensity() {\r
33                 return Amount.valueOf(1819.9, 0, SI.KILOGRAM.divide(SI.METER.pow(3))).to(VolumetricDensity.UNIT);\r
34         }\r
35 \r
36         public CombustionProduct getCombustionProduct() {\r
37                 return new CombustionProduct(){\r
38                         \r
39                         public Amount<Temperature> getIdealCombustionTemperature() {\r
40                                 return Amount.valueOf(1600, SI.KELVIN);\r
41                         }\r
42                 \r
43                         public Amount<MolarWeight> getEffectiveMolarWeight() {\r
44                                 return Amount.valueOf("38.78 kg/kmol").to(MolarWeight.UNIT);\r
45                         }\r
46                 \r
47                         public double getRatioOfSpecificHeats() {\r
48                                 return 1.1391;\r
49                         }\r
50                 \r
51                         public double getRatioOfSpecificHeats2Phase() {\r
52                                 return 1.0426;\r
53                         }\r
54                 };\r
55         }\r
56         \r
57         public static void main( String args[]) throws Exception{\r
58                 KNER f = new KNER();\r
59                 \r
60                 Chart<Pressure, Velocity> burnRate = new Chart<Pressure, Velocity>(\r
61                                 SI.MEGA(SI.PASCAL),\r
62                                 SI.METERS_PER_SECOND,\r
63                                 f,\r
64                                 "burnRate");\r
65                 burnRate.setDomain(\r
66                                 burnRate.new IntervalDomain(\r
67                                                 Amount.valueOf(0, SI.MEGA(SI.PASCAL)),\r
68                                                 Amount.valueOf(11, SI.MEGA(SI.PASCAL)),\r
69                                                 20\r
70                                                 ));\r
71                 \r
72                 burnRate.show();\r
73         }\r
74 \r
75         public double getCombustionEfficiency() {\r
76                 return .97;\r
77         }\r
78 \r
79         public double getDensityRatio() {\r
80                 return .96;\r
81         }\r
82 \r
83 \r
84 }\r