1 package com.billkuker.rocketry.motorsim.test;
\r
3 import javax.measure.quantity.Area;
\r
4 import javax.measure.quantity.Force;
\r
5 import javax.measure.quantity.Pressure;
\r
6 import javax.measure.unit.SI;
\r
8 import junit.framework.Assert;
\r
10 import org.jscience.physics.amount.Amount;
\r
11 import org.junit.Test;
\r
13 import com.billkuker.rocketry.motorsim.ConvergentDivergentNozzle;
\r
14 import com.billkuker.rocketry.motorsim.fuel.KNSU;
\r
16 public class ConvergentDivergentNozzleTest extends AbstractRocketTest {
\r
18 ConvergentDivergentNozzle n = new ConvergentDivergentNozzle();
\r
21 n.setThroatDiameter(Amount.valueOf(6.6, SI.MILLIMETER));
\r
22 n.setExitDiameter(Amount.valueOf(20.87, SI.MILLIMETER));
\r
23 n.setEfficiency(0.85);
\r
27 public void testThroatArea() {
\r
28 Amount<Area> a = n.throatArea().to(SI.MILLIMETER.pow(2).asType(Area.class));
\r
29 assertApproximate(Amount.valueOf(34.2, .1, SI.MILLIMETER.pow(2)), a);
\r
33 public void testExitArea() {
\r
34 Amount<Area> a = n.exitArea();
\r
35 assertApproximate(Amount.valueOf(342, .1, SI.MILLIMETER.pow(2)), a);
\r
39 public void testThrust() {
\r
40 Amount<Pressure> Patm = Amount.valueOf(101000, SI.PASCAL);
\r
41 Amount<Pressure> Po = Amount.valueOf(2046491, SI.PASCAL);
\r
42 Amount<Pressure> Pe = Patm;
\r
44 KNSU f = new KNSU();
\r
46 Amount<Force> t = n.thrust(Po, Pe, Patm, f.getCombustionProduct().getRatioOfSpecificHeats2Phase());
\r
48 Amount<Force> expected = Amount.valueOf(87.2, .1, SI.NEWTON);
\r
50 assertApproximate(t, expected);
\r
54 public void testThrustCoefficient() {
\r
55 Amount<Pressure> Patm = Amount.valueOf(101000, SI.PASCAL);
\r
56 Amount<Pressure> Po = Amount.valueOf(2046491, SI.PASCAL);
\r
57 Amount<Pressure> Pe = Patm;
\r
59 KNSU f = new KNSU();
\r
61 double cF = n.thrustCoefficient(Po, Pe, Patm, f.getCombustionProduct().getRatioOfSpecificHeats2Phase());
\r
64 Assert.assertEquals(cF, 1.2454812344324655);
\r