1 package com.billkuker.rocketry.motorsim.fuel.editable;
\r
3 import java.util.HashMap;
\r
4 import java.util.Map;
\r
6 import javax.measure.quantity.Pressure;
\r
7 import javax.measure.quantity.VolumetricDensity;
\r
9 import org.jscience.physics.amount.Amount;
\r
11 import com.billkuker.rocketry.motorsim.fuel.EditableCombustionProduct;
\r
12 import com.billkuker.rocketry.motorsim.fuel.PiecewiseSaintRobertFuel;
\r
14 public class EditablePiecewiseSaintRobertFuel extends PiecewiseSaintRobertFuel implements EditableFuel {
\r
16 @SuppressWarnings("unchecked")
\r
17 private Amount<VolumetricDensity> idealDensity = (Amount<VolumetricDensity>) Amount
\r
18 .valueOf("1 g/mm^3");
\r
20 private double combustionEfficiency = 1;
\r
21 private double densityRatio = 1;
\r
22 private EditableCombustionProduct cp;
\r
23 private String name = "New Fuel";
\r
25 public EditablePiecewiseSaintRobertFuel() {
\r
28 cp = new EditableCombustionProduct();
\r
31 private Map<Amount<Pressure>, Double> aMap;
\r
32 private Map<Amount<Pressure>, Double> nMap;
\r
34 public void clear(){
\r
36 aMap = new HashMap<Amount<Pressure>, Double>();
\r
37 nMap = new HashMap<Amount<Pressure>, Double>();
\r
40 public void setType(Type t){
\r
44 public void add(Amount<Pressure> p, final double _a, final double _n) {
\r
45 super.add(p, _a, _n);
\r
50 public Amount<VolumetricDensity> getIdealDensity() {
\r
51 return idealDensity;
\r
54 public void setIdealDensity(Amount<VolumetricDensity> idealDensity) {
\r
55 this.idealDensity = idealDensity;
\r
58 public double getCombustionEfficiency() {
\r
59 return combustionEfficiency;
\r
62 public void setCombustionEfficiency(double combustionEfficiency) {
\r
63 this.combustionEfficiency = combustionEfficiency;
\r
66 public double getDensityRatio() {
\r
67 return densityRatio;
\r
70 public void setDensityRatio(double densityRatio) {
\r
71 this.densityRatio = densityRatio;
\r
75 public CombustionProduct getCombustionProduct() {
\r
79 public void setCombustionProduct(final CombustionProduct product){
\r
80 this.cp = (EditableCombustionProduct)product;
\r
83 public String getName() {
\r
87 public void setName(String name) {
\r
91 public Map<Amount<Pressure>, Double> getAMap() {
\r
95 public void setAMap(Map<Amount<Pressure>, Double> aMap) {
\r
100 public Map<Amount<Pressure>, Double> getNMap() {
\r
104 public void setNMap(Map<Amount<Pressure>, Double> nMap) {
\r
109 private void reset(){
\r
110 if (nMap != null && aMap != null && nMap.size() == aMap.size()){
\r
111 for ( Amount<Pressure> p : aMap.keySet() ){
\r
112 add(p, aMap.get(p), nMap.get(p));
\r