enhanced motor handling, bug fixes, initial optimization code
authorplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 2 Sep 2010 21:10:11 +0000 (21:10 +0000)
committerplaa <plaa@180e2498-e6e9-4542-8430-84ac67f01cd8>
Thu, 2 Sep 2010 21:10:11 +0000 (21:10 +0000)
git-svn-id: https://openrocket.svn.sourceforge.net/svnroot/openrocket/trunk@70 180e2498-e6e9-4542-8430-84ac67f01cd8

664 files changed:
ChangeLog
TODO
datafiles/thrustcurves/00INDEX.txt [new file with mode: 0644]
datafiles/thrustcurves/AMW_I220.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_I271.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_I285.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_I315.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_I375.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J357.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J365.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J370.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J400.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J440.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J450_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J480.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_J500.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K1000.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K1075.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K365.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K450.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K470.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K475.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K500.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K530.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K555.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K560.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K570.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K600_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K605.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K650.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K670_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K700.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K800.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K950_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_K975.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L1060_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L1080.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L1111.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L1300.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L1400.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L666.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L700.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L777_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_L900.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1350.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1480.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1730.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1850.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1850_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M1900.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M2500.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_M3000.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_N2020.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_N2600.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_N2700.eng [new file with mode: 0644]
datafiles/thrustcurves/AMW_N4000.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_E11.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_E12.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_E15_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_E7.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F13.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F16.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F20.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F22.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F23.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F23_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F25.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F26.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F32.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F32_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F32_1.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F37.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F40.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F42.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F50.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F52.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F62.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_F72.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G104.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G12.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G25.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G33.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G339.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G35.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G38.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G40.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G53.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G54.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G55.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G61.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G64.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G67.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G69.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G71.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G75.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G75.rse
datafiles/thrustcurves/AeroTech_G75_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G75_1.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G76.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G77.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G77_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G78.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G79_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_G80_2.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H112.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H123.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H125.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H128.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H148.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H165.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H170.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H180.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H210.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H220.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H238.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H242.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H242_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H250.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H268.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H45.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H55.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H669.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H70.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H73.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H97.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_H999.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I1299.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I132.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I154.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I161.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I195.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I195_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I200.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I211.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I218.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I225.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I245.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I284.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I284_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I285.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I300.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I305.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I357.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I364.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I366.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I435.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I435_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I49.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I59.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I600.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_I65.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J1299.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J135.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J145.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J180.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J1999.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J210.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J260.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J275.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J315.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J340.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J350.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J350_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J390.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J415.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J420.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J460.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J500.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J540.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J570.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J575.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J800.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_J90.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1000.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1050.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1050_1.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1100.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1499.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K185.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K1999.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K250.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K270.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K375.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K375.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K458.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K480.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K485.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K540.rse [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K550.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K560.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K650.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K680.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K695.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K700.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K780.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_K828.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L1120.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L1150.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L1300.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L1420.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L1500.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L850.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_L952.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1297.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1315.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1419.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1550.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1600.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M1780.eng
datafiles/thrustcurves/AeroTech_M1939.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M2000.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M2400.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M2500.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M650.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M750.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_M845.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_N2000.eng [new file with mode: 0644]
datafiles/thrustcurves/AeroTech_N4800.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_1_2A2.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_1_4A2.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_A2.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_B2.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_B7.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_C10.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_C4.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_C6.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_D10.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_D3.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_E6.eng [new file with mode: 0644]
datafiles/thrustcurves/Apogee_F10.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F120.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F240.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F240.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F29.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F30.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F30.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F36.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F36.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F59.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F79.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_F79.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G106.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G107.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G107.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G117.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G117.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G118.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G125.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G126.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G131.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G150.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G150.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G250.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G50.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G54.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G57.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G58.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G58.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G60.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G65.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G65.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G68.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G68.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G69.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G79.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G79.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G80.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G83.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G84.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G84.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_G88.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H100.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H110.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H110.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H118.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H123.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H133.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H135.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H135.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H140.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H143.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H151.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H152.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H159.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H160.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H163.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H170.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H175.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H180.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H194.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H200.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H226.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H233.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H237.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H255.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H255.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H295.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H340.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H399.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H410.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H54.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H54.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H87.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_H90.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I100.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I100.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I120.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I140.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I150.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I175.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I175.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I180.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I204.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I216.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I218.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I223.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I224.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I240.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I242.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I242.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I243.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I243.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I287.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I297.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I350.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I360.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I445.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_I540.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J140.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J140.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J210.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J250.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J270.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J270.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J280.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J285.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J290.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J290.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J293.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J295.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J300.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J354.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J354.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J360.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J360_1.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J381.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J394.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J394.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J400.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J420.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J430.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J430.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J440.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J449.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J475.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J520.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J520.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J530.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J580.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J595.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J595.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J600.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J760.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_J760.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K1075.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K1075.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K1130.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K1250.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K160.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K260.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K261.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K261.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K300.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K400.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K445.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K454.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K490.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K510.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K510_1.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K515.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K570.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K575.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K610.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K630.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K650.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K660.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K675.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K710.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K780.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K815.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K820.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K940.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_K940.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1090.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1115.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1276.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1290.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1355.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1395.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1410.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L1685.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L585.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L610.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L640.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L730.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L800.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L800_1.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L820.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L820.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L890.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L935.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L990.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_L995.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1230.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1300.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1400.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1520.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1540.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1545.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1545.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1560.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1590.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1630.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1670.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1675.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1790.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1800.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M1810.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2020.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2020.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2045.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2050.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2075.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2080.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2080.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2150.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M2250.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M3100.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M3400.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M3700.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M520.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_M795.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N10000.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N1100.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N1975.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N2600.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N2850.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N2900.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N3400.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N3800.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N4100.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_N5800.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O3700.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O3700.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O4900.rse [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O5100.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O5800.eng [new file with mode: 0644]
datafiles/thrustcurves/Cesaroni_O8000.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_G100.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_G123.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_G130.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_G234.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_G300.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H121.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H141.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H211.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H222.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H246.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H277.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H300.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H303.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_H340.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I155.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I210.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I221.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I290.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I307.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I333.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I400.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I500.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I727.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_I747.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J150.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J222.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J234.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J245.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J246.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J272.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J292.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J333.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J345.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J355.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J358.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J416.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J555.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J642.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_J800.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K234.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K265.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K300.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K321.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K404.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K456.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K630.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K678.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K707.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_K777.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_L1222.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_L2525.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_L369.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_L800.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_M1575.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_M2700.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_M2800.eng [new file with mode: 0644]
datafiles/thrustcurves/Contrail_O6300.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_G20.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_G35.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_G37.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_H275.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_H48.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_H50.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I130.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I134.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I150.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I160.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I230.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_I69.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_J110.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_J148.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_J228.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_J270.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_J330.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_K475.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_L330.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_L600.eng [new file with mode: 0644]
datafiles/thrustcurves/Ellis_M1000.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_1_2A3.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_1_2A6.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_1_4A3.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_A10.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_A3.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_A8.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_B4.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_B6.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_C11.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_C5.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_C6.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_D11.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_D12.eng [new file with mode: 0644]
datafiles/thrustcurves/Estes_E9.eng [new file with mode: 0644]
datafiles/thrustcurves/Hypertek_J250_1.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I170.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I280.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I301.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I310.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I370.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I450.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_I550.rse [new file with mode: 0644]
datafiles/thrustcurves/KBA_J405.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_J605.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_K1750.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_K400.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_K750.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_L1000.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_L1400.eng [new file with mode: 0644]
datafiles/thrustcurves/KBA_M1450.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_G80.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_H100.rse [new file with mode: 0644]
datafiles/thrustcurves/Loki_H144.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_H160.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_H500_1.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_H90.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_I210.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_I405.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_J320.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_J396.rse [new file with mode: 0644]
datafiles/thrustcurves/Loki_J525.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_J528.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_J712.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_K250.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_K350.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_K960.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_L1400.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_L930.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_M1882.eng [new file with mode: 0644]
datafiles/thrustcurves/Loki_M3000.eng [new file with mode: 0644]
datafiles/thrustcurves/PML_F50.eng [new file with mode: 0644]
datafiles/thrustcurves/Quest_A6.eng [new file with mode: 0644]
datafiles/thrustcurves/Quest_B6.eng [new file with mode: 0644]
datafiles/thrustcurves/Quest_C6.eng [new file with mode: 0644]
datafiles/thrustcurves/Quest_D5.eng [new file with mode: 0644]
datafiles/thrustcurves/Quest_D5_2.eng [new file with mode: 0644]
datafiles/thrustcurves/Roadrunner_E25.eng [new file with mode: 0644]
datafiles/thrustcurves/Roadrunner_F35.eng [new file with mode: 0644]
datafiles/thrustcurves/Roadrunner_F45.eng [new file with mode: 0644]
datafiles/thrustcurves/Roadrunner_F60.eng [new file with mode: 0644]
datafiles/thrustcurves/Roadrunner_G80.eng [new file with mode: 0644]
datafiles/thrustcurves/SkyR_G125.eng [new file with mode: 0644]
datafiles/thrustcurves/SkyR_G63.eng [new file with mode: 0644]
datafiles/thrustcurves/SkyR_G69.eng [new file with mode: 0644]
datafiles/thrustcurves/SkyR_H78.eng [new file with mode: 0644]
fileformat.txt
src/net/sf/openrocket/arch/SystemInfo.java [new file with mode: 0644]
src/net/sf/openrocket/communication/UpdateInfoRetriever.java
src/net/sf/openrocket/file/DirectoryIterator.java [deleted file]
src/net/sf/openrocket/file/GeneralMotorLoader.java [deleted file]
src/net/sf/openrocket/file/MotorLoader.java [deleted file]
src/net/sf/openrocket/file/RegularDirectoryIterator.java [deleted file]
src/net/sf/openrocket/file/UnknownFileTypeException.java [new file with mode: 0644]
src/net/sf/openrocket/file/ZipDirectoryIterator.java [deleted file]
src/net/sf/openrocket/file/iterator/DirectoryIterator.java [new file with mode: 0644]
src/net/sf/openrocket/file/iterator/FileIterator.java [new file with mode: 0644]
src/net/sf/openrocket/file/iterator/ZipDirectoryIterator.java [new file with mode: 0644]
src/net/sf/openrocket/file/motor/AbstractMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/motor/GeneralMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/motor/MotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/file/motor/MotorLoaderHelper.java [new file with mode: 0644]
src/net/sf/openrocket/file/motor/RASPMotorLoader.java
src/net/sf/openrocket/file/motor/RockSimMotorLoader.java
src/net/sf/openrocket/file/motor/ZipFileMotorLoader.java [new file with mode: 0644]
src/net/sf/openrocket/gui/components/DescriptionArea.java
src/net/sf/openrocket/gui/configdialog/RocketConfig.java
src/net/sf/openrocket/gui/dialogs/preferences/PreferencesDialog.java
src/net/sf/openrocket/gui/main/ComponentAddButtons.java
src/net/sf/openrocket/optimization/Function.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/FunctionCache.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/FunctionCacheComparator.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/FunctionCallable.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/FunctionDecorator.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/FunctionOptimizer.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/MultidirectionalSearchOptimizer.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/MultipleOptimizationController.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/OptimizationController.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/ParallelExecutorCache.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/ParallelFunctionCache.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/Point.java [new file with mode: 0644]
src/net/sf/openrocket/optimization/SearchPattern.java [new file with mode: 0644]
src/net/sf/openrocket/startup/Startup.java
src/net/sf/openrocket/util/MathUtil.java
src/net/sf/openrocket/util/Prefs.java
src/net/sf/openrocket/util/Statistics.java [new file with mode: 0644]
src/net/sf/openrocket/util/TestRockets.java
src/net/sf/openrocket/util/UncloseableInputStream.java [new file with mode: 0644]
src/net/sf/openrocket/utils/GraphicalMotorSelector.java
src/net/sf/openrocket/utils/MotorCheck.java
src/net/sf/openrocket/utils/MotorCompare.java
src/net/sf/openrocket/utils/MotorCompareAll.java
src/net/sf/openrocket/utils/MotorCorrelation.java
src/net/sf/openrocket/utils/MotorDigester.java
src/net/sf/openrocket/utils/MotorPlot.java
src/net/sf/openrocket/utils/MotorPrinter.java
src/net/sf/openrocket/utils/TestFunctionOptimizer.java [new file with mode: 0644]
src/net/sf/openrocket/utils/TestFunctionOptimizerLoop.java [new file with mode: 0644]
test/net/sf/openrocket/arch/TestSystemInfo.java [new file with mode: 0644]
test/net/sf/openrocket/file/iterator/TestDirectoryIterator.java [new file with mode: 0644]
test/net/sf/openrocket/file/iterator/TestFileIterator.java [new file with mode: 0644]
test/net/sf/openrocket/file/motor/TestMotorLoader.java [new file with mode: 0644]
test/net/sf/openrocket/file/motor/test.txt [new file with mode: 0644]
test/net/sf/openrocket/file/motor/test.zip [new file with mode: 0644]
test/net/sf/openrocket/file/motor/test1.eng [new file with mode: 0644]
test/net/sf/openrocket/file/motor/test2.rse [new file with mode: 0644]
test/net/sf/openrocket/optimization/TestSearchPattern.java [new file with mode: 0644]
test/net/sf/openrocket/util/MathUtilTest.java
web/html/actions/updates.php

index 5223bc3879d96f5b097b18aca3ab9db7bad77977..9b5e1dbe23340b67b144c0cd416137e89680a3c9 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2010-09-01  Sampo Niskanen
+
+       * [BUG] Fixed rocket config dialog being too large
+
+2010-08-31  Sampo Niskanen
+
+       * Updated all thrust curves from thrustcurve.org
+
+2010-08-30  Sampo Niskanen
+
+       * Implemented user-defined thrust curve loading
+
 2010-07-30  Sampo Niskanen
 
        * [BUG] Fixed motor statistic computation
diff --git a/TODO b/TODO
index af114709d91a58bb81c2a7d55c17194ac89172cb..f5ceebe8cde2a2c3795444949664ef79c2dd4f9e 100644 (file)
--- a/TODO
+++ b/TODO
@@ -7,8 +7,6 @@ Must have:
 - Logging system into use
 - Reduce memory footprint
 - Reduce memory leakage
-- Load thrust curves from external directory
-- Support duplicate motor definitions
 
 
 Maybe:
@@ -18,9 +16,25 @@ Maybe:
 
 Done:
 
+In 1.1.0:
 - Reading .RKT
 - Central logging system
 - Simulation refactoring
+In 1.1.1:
+- Load thrust curves from external directory
+- Support duplicate motor definitions
+- Combine duplicates into one display in the selection dialog
+  - A single manufacturer/designation can contain multiple thrust curves
+  - Delays are combined
+  - Type is selected based on any not-unknown type
+  - Hybrid type always includes P delay
+  - Default delay selected based on heuristics
+  - Store recently used motors, use in default selection
+- Plot motor thrust curve
+- Change databases and icon loading to bean instances, implement stubs
+  for unit tests
+- Remove database etc. initialization from class initialization,
+  create separate set of test motors
 
 
 
@@ -39,16 +53,7 @@ Memory usage:
 
 Motor support:
 
-- Combine duplicates into one display in the selection dialog
-  - A single manufacturer/designation can contain multiple thrust curves
-  - Delays are combined
-  - Type is selected based on any not-unknown type
-  - Hybrid type always includes P delay
-  - Default delay selected based on heuristics
-  - Store recently used motors, use in default selection
 - Integration with thrustcurve.org (syncing?)
-- Reading thrust curves from external directory
-- Plot motor thrust curve
 - Water rocket modeling
 
 
@@ -81,6 +86,8 @@ UI issues:
 - Drag and drop of components / other table items
 - Ctrl+scroll wheel to zoom in/out
 - Move components by dragging on the figure
+- Add tool tips to component tree and figure, display component comment
+- Make simulation table columns configurable
 
 
 Simulation:
@@ -113,17 +120,14 @@ Component support:
 
 File support:
 
-- Reading (and writing) SpaceCad format
+- Reading (and writing?) SpaceCad format
 - Writing .RKT format ?
 
 
 Refactoring tasks:
 
-- Change databases and icon loading to bean instances, implement stubs
-  for unit tests
-- Remove database etc. initialization from class initialization,
-  create separate set of test motors
-- Extract event rules and data saving from Simulator into listeners
+- Extract event rules and data saving from Simulator into listeners?
 - Change SimulationStatus to include methods for obtaining basic
   position (maybe even change to an interface, implements Cloneable)
 
+
diff --git a/datafiles/thrustcurves/00INDEX.txt b/datafiles/thrustcurves/00INDEX.txt
new file mode 100644 (file)
index 0000000..d228d56
--- /dev/null
@@ -0,0 +1,10314 @@
+Rocket motor simulation data downloaded from ThrustCurve.org.\r
+This ZIP file contains 1473 simulator data files.\r
+For more info, please see http://www.thrustcurve.org/\r
+\r
+AMW_I195.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-38-390\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John DeMar\r
+\r
+AMW_I195.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-38-390\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I220.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-38-390\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John DeMar\r
+\r
+AMW_I220.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-38-390\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I271.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-38-390\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AMW_I271.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-38-390\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I285.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-38-390\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AMW_I285.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-38-390\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I315.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-38-640\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Koen Loeven\r
+\r
+AMW_I315.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-38-640\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I325.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-38-640\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John DeMar\r
+\r
+AMW_I325.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-38-640\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_I375.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-38-640\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Robert DeHate\r
+\r
+AMW_I375.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-38-640\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J230.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  J230SK-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AMW_J230.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  J230SK-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J357.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_J357.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1050\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J365.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-1400\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Robert DeHate\r
+\r
+AMW_J365.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-1400\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J370.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J370.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1050\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J400.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J400.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1050\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J440.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-38-640\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Robert DeHate\r
+\r
+AMW_J440.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-38-640\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J450.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_J450.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1050\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J450_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_J480.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1050\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J480.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1050\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J500.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  J500ST\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_J500.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  J500ST\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K1000.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-2550\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K1000.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-2550\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K1075.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-2550\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K1075.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-2550\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K365.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-1700\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K365.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-1700\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K450.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-1700\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K450.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-1700\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K470.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-1700\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K470.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-1700\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K475.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1400\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K475.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1400\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K500.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  K500SK\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K500.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  K500SK\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K530.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1400\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K530.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1400\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K555.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Koen Loeven\r
+\r
+AMW_K555.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  Koen Loeven\r
+\r
+AMW_K560.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1400\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K560.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1400\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K570.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_K570.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K600.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-2500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_K600.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-2500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K600_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-2500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_K605.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-2500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K605.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-2500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K650.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Koen Loeven\r
+\r
+AMW_K650.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K670.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_K670.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K670_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_K700.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1400\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K700.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1400\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K800.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Koen Loeven\r
+\r
+AMW_K800.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K950.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_K950.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1750\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_K950_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-54-1750\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_K975.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-2550\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_K975.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-54-2550\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1060.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_L1060.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1060_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_L1080.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1080.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1100.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-2550\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1100.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-54-2550\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1111.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1111.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1300.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-2550\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1300.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-54-2550\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L1400.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John DeMar\r
+\r
+AMW_L1400.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-75-6000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L666.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Joel Rogers\r
+\r
+AMW_L666.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L700.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-2500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L700.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-2500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L777.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_L777.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L777_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_L900.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-3500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_L900.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-3500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1350.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_M1350.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-75-6000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1480.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1480.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  RR-75-6000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1730.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-98-11000\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Joel Rogers\r
+\r
+AMW_M1730.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-98-11000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1850.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_M1850.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-6000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1850_1.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_M1900.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-6000\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M1900.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-75-6000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M2200.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  SK-75-7600\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M2500.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-7600\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Carl Tulanko\r
+\r
+AMW_M2500.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-75-7600\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_M3000.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-7600\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Conway Stevens\r
+\r
+AMW_M3000.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  ST-75-7600\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2020.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-98-11000\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Joel Rogers\r
+\r
+AMW_N2020.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WT-98-11000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2600.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-98-11000\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2600.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  GG-98-11000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2700.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-98-11000\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2700.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-98-11000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N2800.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-98-17500\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John DeMar\r
+\r
+AMW_N2800.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  WW-98-17500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AMW_N4000.eng\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-98-17500\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Robert DeHate\r
+\r
+AMW_N4000.rse\r
+    Manufacturer: Animal Motor Works\r
+    Designation:  BB-98-17500\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D10.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D10\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_D13.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D13\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_D13.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D13\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D15.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D15\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_D15.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D15\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D21.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D21\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_D21.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D21\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D24.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D24\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_D24.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D24\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D7.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D7\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D7.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D7\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_D9.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  D9\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_D9.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  D9\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E11.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E11J\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E11.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E11J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E12.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E12J\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E12.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E12J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E15.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E15\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_E15.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E15\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E15_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E15\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E16.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E16\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E16.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E16\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E18.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E18\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E18.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E18\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E20.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E20W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E23.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E23\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E23.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E23\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E28.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E28\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E28.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E28\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E30.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E30\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_E30.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E30\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E6.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E6\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_E6.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E6-RC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E7.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  E7\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_E7.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  E7\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F10.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F10\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_F12.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F12\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_F12.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F12\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F13.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F13-RC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F13.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F13-RC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F16.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F16-RC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F16.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F16-RC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F20.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F20\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F20.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F20\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F21.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F21W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_F21.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F21W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F22.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F22\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F22.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F22\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F23.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F23FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F23.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F23FJ\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F23_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F23-RC-SK\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F23_1.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F23-RC-SK\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F24.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F24\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_F24.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F24\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F25.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F25W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F25.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F25W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F26.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F26FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F26.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F26FJ\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F27.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F27R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F32.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F32T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F32.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F32T\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F32_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F32W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F32_1.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F32W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F35.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F35W\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_F37.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F37\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F37.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F37\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F39.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F39\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_F39.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F39\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F40.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F40\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F40.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F40\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F42.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F42T\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F42.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F42T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F50.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F50\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F50.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F50\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F52.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F52\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F52.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F52\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F62.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F62T\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_F62.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F62T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F72.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  F72\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_F72.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  F72\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G101.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G101T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_G104.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G104T\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_G104.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G104T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G12.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G12-RC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G12.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G12-RC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G142.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G142\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G25.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G25\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G25.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G25\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G33.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G33\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G33.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G33\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G339.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G339N-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Bill Wagstaff\r
+\r
+AeroTech_G339.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G339N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G35.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G35\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G35.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G35\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G38.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G38FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G38.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G38FJ\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G40.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G40W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G40.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G40W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G53.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G53FJ\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_G53.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G53FJ\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Rich Thompson\r
+\r
+AeroTech_G54.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G54\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G54.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G54\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G55.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G55\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G55.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G55\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G61.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G61W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G61.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G61W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G64.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G64\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G64.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G64\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G67.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G67R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_G67.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G67R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G69.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G69N\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_G69.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G69N\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G71.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G71R\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_G71.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G71R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G71_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G71R\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Edward K. Chess\r
+\r
+AeroTech_G75.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G75J\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_G75.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G75M\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_G75_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G75J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G75_1.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G75J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G76.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G76G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_G76.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G76G\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G76_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G76G\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John DeMar\r
+\r
+AeroTech_G77.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G77R-SU\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G77.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G77R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G77_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G77R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Stan Hemphill\r
+\r
+AeroTech_G78.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G78G\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G78_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G78G\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G79.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G79W-SU\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G79.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G79W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G79_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G79W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G80.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G80\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John DeMar\r
+\r
+AeroTech_G80.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  G80\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_G80_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G80\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John DeMar\r
+\r
+AeroTech_G80_2.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  G80\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John DeMar\r
+\r
+AeroTech_H112.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H112J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H112.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H112J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H123.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H123W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H123.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H123W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H125.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H125W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H125.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H125W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H128.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H128W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H128.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H128W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H148.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H148R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H148.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H148R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H165.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H165R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H165.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H165R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H170.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H170M\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_H180.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H180W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H180.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H180W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H210.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H210R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H210.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H210R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H220.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H220T\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H220.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H220T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H238.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H238T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H238.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H238T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H242.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H242T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H242.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H242T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H242_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H242T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H250.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H250G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_H250.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H250G\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_H268.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H268R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H268.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H268R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H45.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H45W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H45.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H45W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H55.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H55W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H55.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H55W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H669.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H669N-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_H669.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H669N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H70.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H70W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H70.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H70W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H73.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H73J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H73.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H73J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H97.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H97J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H97.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H97J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_H999.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  H999\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_H999.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  H999\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I115.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I115W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I117.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I117FJ\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I1299.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I1299N-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_I1299.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I1299N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_I132.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I132W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I132.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I132W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I154.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I154J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I154.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I154J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I161.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I161W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I161.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I161W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I195.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I195J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I195.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I195J\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I195_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I195J\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I200.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I200W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I200.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I200W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I211.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I211W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I211.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I211W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I215.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I215R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I218.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I218R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I218.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I218R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I225.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I225FJ\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_I225.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I225FJ\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Victor Merle Barlow\r
+\r
+AeroTech_I229.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I229T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I245.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I245G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_I245.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I245G\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_I284.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I284W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I284.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I284W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I284_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I284W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I285.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I285R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I285.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I285R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I300.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I300T\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I300.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I300T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I305.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I305FJ\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_I305.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I305FJ\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I357.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I357T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I357.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I357T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I364.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I364FJ\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_I364.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I364FJ\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I366.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I366R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I366.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I366R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I435.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I435T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I435.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I435T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I435_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I435T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I49.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I49N\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I49.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I49N\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I59.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I59WN\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I59.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I59WN\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I599.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I599N\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_I600.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I600R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I600.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I600R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I65.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  I65W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_I65.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  I65W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J125.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J125W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J125.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J125W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J1299.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J1299N-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_J1299.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J1299N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J135.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J135W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J135.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J135W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J145.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J145H 2-jet std.\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J145.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J145H 2-jet std.\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J180.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J180T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J180.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J180T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J1999.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J1999N-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_J1999.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J1999N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J210.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J210H 4-jet std.\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J210.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J210H 4-jet std.\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J250.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J250FJ\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_J260.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J260HW 3-jet EFX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J260.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J260HW 3-jet EFX\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J275.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J275W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J275.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J275W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J315.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J315R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J315.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J315R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J340.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J340M\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_J350.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J350W-L\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J350.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J350W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J350_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J350W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J350_1.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J350W-L\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J390.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J390-turbo\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J390.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J390-turbo\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J401.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J401FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J415.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J415W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J415.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J415W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J420.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J420R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J420.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J420R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J460.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J460T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J460.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J460T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J500.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J500G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_J500.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J500G\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_J510.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J510W\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J540.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J540R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J540.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J540R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J570.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J570W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J570.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J570W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J575.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J575FJ\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Simon Crafts\r
+\r
+AeroTech_J575.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J575FJ\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Simon Crafts\r
+\r
+AeroTech_J800.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J800T-PS\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J800.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J800T-PS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J825.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J825R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_J825.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J825R\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Tim Durbin\r
+\r
+AeroTech_J90.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J90W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J90.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  J90W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_J99.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  J99N\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1000.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1000NT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_K1050.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1050W-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1050.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K1050W-SU\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1050_1.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1050W-SU\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1100.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1100T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1100.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K1100T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1275.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1275\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1275.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K1275\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1499.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1499N-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_K1499.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K1499N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  Jim Yehle\r
+\r
+AeroTech_K185.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K185W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K185.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K185W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K1999.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K1999N-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_K1999.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K1999N-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K250.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K250W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K250.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K250W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K270.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K270W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_K270.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K270W\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Victor Merle Barlow\r
+\r
+AeroTech_K375.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K375NW-PS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_K375.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K375NW-PS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  Robert Geer\r
+\r
+AeroTech_K458.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K458W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K458.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K458W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K480.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K480W-PS\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_K485.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K485H (3 jet)\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K485.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K485H (3 jet)\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K513.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K513FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K540.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K540M\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_K550.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K550W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K550.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K550W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K560.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K560W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K560.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K560W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K650.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K650T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K650.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K650T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K680.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K680R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K680.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K680R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K695.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K695R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K695.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K695R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K700.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K700W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K700.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K700W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K780.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K780R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K780.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K780R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_K805.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K805G-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Tom Koszuta\r
+\r
+AeroTech_K805.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K805G-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  J Brent\r
+\r
+AeroTech_K828.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  K828FJ\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_K828.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  K828FJ\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Victor Merle Barlow\r
+\r
+AeroTech_L1120.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1120W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1120.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L1120W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1150.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1150R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1150.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L1150R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1170.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1170 FJ\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_L1300.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1300R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1300.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L1300R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1390.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1390G\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1420.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1420R\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1420.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L1420R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1500.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L1500T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L1500.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L1500T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L2200.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L2200G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_L339.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L339N\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L850.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L850W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L850.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L850W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L952.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  L952W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_L952.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  L952W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1297.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1297W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_M1297.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1297W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1315.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1315W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1315.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1315W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1419.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1419W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1419.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1419W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1500.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1500G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Christopher Kobel\r
+\r
+AeroTech_M1550.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1550R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1550.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1550R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1600.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1600R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1600.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1600R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1780.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1780T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+AeroTech_M1800.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1800FJ\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1845.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1845T\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1850.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1850W-PS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_M1939.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M1939W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M1939.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M1939W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2000.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M2000R\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2000.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M2000R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2030.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M2030G-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  J Brent\r
+\r
+AeroTech_M2100.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M2100G-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2400.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M2400T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2400.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M2400T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2500.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M2500T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M2500.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M2500T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M650.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M650W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_M650.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M650W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M750.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M750W\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Greg Gardner\r
+\r
+AeroTech_M750.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M750W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M845.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  M845\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_M845.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  M845\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N1000.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  N1000W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N2000.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  N2000W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N2000.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  N2000W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N3300.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  N3300R\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N4800.eng\r
+    Manufacturer: AeroTech\r
+    Designation:  N4800T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+AeroTech_N4800.rse\r
+    Manufacturer: AeroTech\r
+    Designation:  N4800T\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Alpha_I250.eng\r
+    Manufacturer: Alpha Hybrids\r
+    Designation:  I250\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Edward Wranosky\r
+\r
+Apogee_1_2A2.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  1/2A2\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_1_2A2.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  1/2A2\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_1_4A2.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  1/4A2\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_1_4A2.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  1/4A2\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_A2.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  A2\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_A2.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  A2\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_B2.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  B2\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_B2.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  B2\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_B7.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  B7\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_B7.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  B7\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C10.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  C10\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C10.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  C10\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C4.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  C4\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C4.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  C4\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C6.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  C6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_C6.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  C6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_D10.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  D10\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_D10.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  D10\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_D3.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  D3\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_D3.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  D3\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_E6.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  E6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_E6.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  E6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_F10.eng\r
+    Manufacturer: Apogee Components\r
+    Designation:  F10\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Apogee_F10.rse\r
+    Manufacturer: Apogee Components\r
+    Designation:  F10\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_F120.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  56-F120-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_F120.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  56-F120-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_F240.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  68-F240-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F240.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  68-F240-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F29.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  55-F29-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_F29.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  55-F29-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_F30.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  73-F30-6A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F30.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  73-F30-6A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F36.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  41-F36-11A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F36.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  51-F36-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F36_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  51-F36-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F36_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  41-F36-11A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F59.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  57-F59-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F59.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  57-F59-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F79.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  68-F79-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_F79.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  68-F79-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G106.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  138-G106-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G106.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  138-G106-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G107.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  139-G107-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G107.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  139-G107-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G115.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  141 G115-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G117.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  142-G117-11A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G117.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  142-G117-11A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G118.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G118-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G118.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G118-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G125.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G125-RL\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G125.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G125-RL\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Cesaroni_G126.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  116-G126-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G126.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  116-G126-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G131.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  125-G131-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G131.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  125-G131-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G150.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  143-G150-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G150.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  143-G150-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G185.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  G185-12A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_G250.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  110-G250-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G250.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  110-G250-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G46.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  127 G46-11A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_G50.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  150-G50-IM-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G50.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  150-G50-IM-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G54.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G54-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G54.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  159-G54-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G57.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  108-G57-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G57.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  108-G57-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G58.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  137-G58-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G58.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  137-G58-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G60.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  134 G60-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_G60.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  134 G60-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_G65.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  144-G65-8A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G65.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  144-G65-8A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G68.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  108-G68-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G68.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  108-G68-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G69.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  121 G69-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G69.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  117G69-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G69_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  117G69-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mike Caplinger\r
+\r
+Cesaroni_G69_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  121 G69-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_G69_2.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  121 G69-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Pete Carr\r
+\r
+Cesaroni_G69_3.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  121 G69-14A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_G78.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  141G78-15A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mike Caplinger\r
+\r
+Cesaroni_G79.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  129 G79SS-13A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Pete Carr\r
+\r
+Cesaroni_G79.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  129 G79SS-13A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_G79_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  129 G79SS-13A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_G80.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  93-G80-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G80.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  93-G80-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_G83.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  107-G83-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G83.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  107-G83-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G84.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  131-G84-10A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G84.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  131-G84-10A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G88.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  84-G88-11A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_G88.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  84-G88-11A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  286-H100-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  286-H100-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H110.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  269-H110-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H110.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  269-H110-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H118.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  216-H118-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H118.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  216-H118-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H120.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  261 H120-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H120.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  261 H120-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H123.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  176-H123-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H123.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  176-H123-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H123_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  232 H123-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H123_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  232 H123-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H123_2.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  232 H123-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H125.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  266 H125-12A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_H125.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  266 H125-12A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_H133.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  163-H133-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H133.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  163-H133-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H135.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  217-H135-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H135.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  217-H135-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H140.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  268-H140-11A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H140.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  268-H140-11A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H143.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  247 H143SS-13A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_H143.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  247 H143SS-13A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H151.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  207-H151-RL-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H151.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  207-H151-RL-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H152.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  276H152-15A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_H152.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  276H152-15A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_H153.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  H153\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_H153.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  H153\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H159.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  298-H159-GR-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H159.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  298-H159-GR-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H160.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  312-H160-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H160.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  312-H160-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H160_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  220-H160-SK-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H163.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  166-H163-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H163.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  166-H163-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H170.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  217-H170-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H170.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  217-H170-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H175.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  166-H175-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H175.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  166-H175-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H180.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  258-H180-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H180.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  258-H180-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H194.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  260-H194-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H194.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  260-H194-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H200.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  261-H200-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H200.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  261-H200-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H225.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  273 H225-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H226.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  305-H226-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H226.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  305-H226-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H233.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  311-H233-RL-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H233.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  311-H233-RL-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Cesaroni_H237.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  206-H237-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H237.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  206-H237-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H255.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  315-H255-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H255.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  315-H255-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H255_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  229-H255-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H255_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  229-H255-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H295.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  253-H295-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H295.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  253-H295-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H340.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  287-H340-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H340.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  287-H340-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H399.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  282-H399-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H399.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  282-H399-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  H400-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H410.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168-H410-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H410.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168-H410-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_H54.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168-H54-10A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H54.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168-H54-10A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H565.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  H565\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H565.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  H565\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_H87.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168 H87-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H87.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  168 H87-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H90.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  164-H90-12A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_H90.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  164-H90-12A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  614-I100-17A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  614-I100-17A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I120.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  502-I120-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I120.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  502-I120-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I140.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  396-I140-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I140.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  396-I140-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I150.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  465I150-11A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I150.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  465I150-11A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I170.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  382 I170-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I170.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  382 I170-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I175.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  411-I175-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I175.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  411-I175-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I180.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  338I180-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I180.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  338I180-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I195.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  396 I195-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I204.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  348-I204-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I204.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  348-I204-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I205.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I205\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_I205.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I205\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I212.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  364 I212SS-14A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_I212.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  364 I212SS-14A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I216.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  636-I216-CL-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I216.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  636-I216-CL-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I218.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  491I218-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I218.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  491I218-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I223.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  434I223-14A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I223.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  434I223-14A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I224.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  381-I224-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I224.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  381-I224-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I236.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  413I236-17A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_I236.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  413I236-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_I240.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I240\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I240.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I240\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I242.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  548-I242-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I242.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  548-I242-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I243.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  382-I243-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I243.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  382-I243-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I255.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  517 I255-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I285.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I285\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_I285.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I285\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I287.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  486 I287SS-15A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_I287.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  486 I287SS-15A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I297.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  543I297-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I297.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  543I297-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_I303.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  538I303-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_I303.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  538I303-16A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_I345.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  408 I345-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I350.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  601 I350SS-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_I350.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  601 I350SS-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I360.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I360\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I360.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I360\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I445.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  475-I445-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I445.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  475-I445-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I470.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  540 I470-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_I540.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  634I540WT\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I540.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  634I540WT\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I566.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I566-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_I800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  I800-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J1055.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  747 J1055-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_J1365.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  932 J1365-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J140.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1211-J140-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J140.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1211-J140-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J1520.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1092 J1520-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_J210.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  836 J210-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J210.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  836 J210-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J240.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  806 J240-16A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_J250.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  683J250-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J250.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  683J250-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J270.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  650-J270-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J270.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  650-J270-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J280.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J280SS\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J280.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J280SS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J285.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  648 J285-15A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J285.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  648 J285-15A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J290.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  684-J290-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J290.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  684-J290-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J293.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  838J293-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J293.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  838J293-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J295.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1195 J295-15A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J295.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1195 J295-15A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J300.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J300\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J300.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J300\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J325.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1099 J325-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J330.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  765 J330-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J330.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  765 J330-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J335.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  649 J335-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J354.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  819-J354-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J354.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  819-J354-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J355.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1190 J355-16A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_J357.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  658J357-17A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_J357.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  658J357-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_J360.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1016J360-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J360.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1016J360-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J360_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J360\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J360_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J360\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J380.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1043 J380SS-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J380.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1043 J380SS-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J381.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  660J381-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J381.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  660J381-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J394.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  970-J394-13A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J394.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  970-J394-13A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J395.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1079 J395-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J400.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J400SS\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_J400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  J400SS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J401.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  977 J401-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J410.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  774 J410-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J410.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  774 J410-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J420.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1008-J420-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J420.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1008-J420-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J425.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  784J425-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_J425.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  784J425-16A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Rich Thompson\r
+\r
+Cesaroni_J430.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  821-J430-18A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J430.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  821-J430-18A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J440.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1109-J440-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J440.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1109-J440-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J449.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1261J449-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J449.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1261J449-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J475.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1233-J475-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J475.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1233-J475-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J475_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1025-J475-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J520.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  848J520-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J520.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  848J520-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J530.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1115-J530-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J530.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1115-J530-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J580.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  896J580-17A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J580.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  896J580-17A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J595.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  985J595-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J595.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  985J595-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J600.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  999J600-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J600.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  999J600-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_J745.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1196 J745-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_J760.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1266-J760-19A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_J760.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1266-J760-19A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1075.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2245-K1075-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1075.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2245-K1075-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1085.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  K1085WT-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K1130.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2551-K1130-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1130.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2551-K1130-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1200.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  K1200-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K1250.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1951-K1250-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1250.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1951-K1250-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K1440.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  K1440-17A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K160.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1526-K160-6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K160.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1526-K160-6\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K1620.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2440 K1620-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_K1720.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1176 K1720-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K2045.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1408 K2045-17A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Karl Baumheckel\r
+\r
+Cesaroni_K2045.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1408 K2045-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_K260.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2285-K260-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K260.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2285-K260-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K261.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2021-K261-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K261.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2021-K261-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K300.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2546-K300-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K300.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2546-K300-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K400.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1597-K400-14A\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1597-K400-14A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K445.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1635 K445-A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K445.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1635 K445-A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K454.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1364-K454-19A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K454.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1364-K454-19A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K455.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1483 K455-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K490.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  CTI 1990-K490-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K490.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  CTI 1990-K490-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K500.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1596 K500-18A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_K510.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2486 K510-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Len Lekx\r
+\r
+Cesaroni_K510.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2486 K510-P-U\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K510_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2486 K510-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K515.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1654-K515-16A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K515.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1654-K515-16A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K530.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1412 K530SS-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K530.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1412 K530SS-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K535.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1442 K535-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K570.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2060 K570-A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K570.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2060 K570-A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K575.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2493 K575-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K575.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2493 K575-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K590.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1337 K590-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_K610.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1531-K610-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K610.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1531-K610-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K630.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1679K630-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K630.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1679K630-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K635.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1994 K635-17A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_K650.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1750 K650SS-16A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K650.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1750 K650SS-16A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K660.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2437 K660-17A\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_K660.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2437 K660-17A\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K665.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1379 K665-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K671.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1806 K671-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K675.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2010-K675-18A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K675.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2010-K675-18A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K701.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1660 K701-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K710.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1791-K710-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K710.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1791-K710-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K750.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2352 K750-18A\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Craig Rutherford\r
+\r
+Cesaroni_K780.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2108K780-15A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K780.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2108K780-15A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_K815.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2304-K815-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K815.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2304-K815-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K820.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2383-K820-17A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K820.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2383-K820-17A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K855.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1725 K855-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_K940.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1633-K940-18A\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_K940.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  1633-K940-18A\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1030.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2788 L1030-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_L1090.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4815 L1090-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L1090.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4815 L1090-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L1115.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5015 L1115-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Len Lekx\r
+\r
+Cesaroni_L1115.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5015 L1115-P-U\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L1115_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5015 L1115-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_L1276.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  L1276RR-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L1276.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  L1276RR-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L1290.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4701-L1290-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L1290.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4701-L1290-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L1355.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4025-L1355-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1355.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4025-L1355-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1395.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4895-L1395-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1395.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4895-L1395-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1410.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4828-L1410-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1410.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4828-L1410-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1685.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5069-L1685-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1685.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5069-L1685-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L1720.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  L1720WT-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L2375.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  L2375WT-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L3150.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4807 L3150-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_L585.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2653-L585-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L585.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2653-L585-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L610.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4842 L610-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L610.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  4842 L610-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L640.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2772-L640-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L640.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2772-L640-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L730.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2765 L730-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_L730.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2765 L730-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L800.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3757 L800-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Len Lekx\r
+\r
+Cesaroni_L800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3757 L800-P-U\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L800_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3757 L800-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_L820.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2946-L820-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L820.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2946-L820-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L890.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3762 L890-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L890.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3762 L890-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L935.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3147-L935-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L935.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3147-L935-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_L985.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2665 L985-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_L990.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2771-L990-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L990.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  2771-L990-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L995.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3618-L995-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_L995.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  3618-L995-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1060.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7441 M1060-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M1060.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7441 M1060-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M1230.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5506-M1230-IM-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1230.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5506-M1230-IM-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1300.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6438-M1300-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1300.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6438-M1300-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1400.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6251 M1400-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Len Lekx\r
+\r
+Cesaroni_M1400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6251 M1400-P-U\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M1400_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6251 M1400-P-U\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_M1450.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9955 M1450-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M1450.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9955 M1450-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M1520.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7579-M1520-BS-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1520.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7579-M1520-BS-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1540.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6819-M1540-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1540.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6819-M1540-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1545.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8187-M1545-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1545.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8187-M1545-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1560.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5342-M1560-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1560.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5342-M1560-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1590.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7545-M1590-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1590.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7545-M1590-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1630.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8212-M1630-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1630.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8212-M1630-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1670.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6026-M1670-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1670.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6026-M1670-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1675.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6162-M1675-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1675.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6162-M1675-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1770.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5933-M1770-SK\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Cesaroni_M1770_1.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5933-M1770-SK\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Cesaroni_M1790.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8088-M1790-SK-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1790.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8088-M1790-SK-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1800.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9870-M1800-BS-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9870-M1800-BS-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M1810.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6128-M1810-RL-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1810.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6128-M1810-RL-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M1890.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9876 M1890-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_M2020.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8429-M2020-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M2020.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  8429-M2020-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M2045.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7388-M2045-BS-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2045.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7388-M2045-BS-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2050.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6774-M2050-SK-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2050.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6774-M2050-SK-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2075.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6287-M2075-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2075.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6287-M2075-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2080.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6827-M2080-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M2080.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6827-M2080-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_M2150.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7455-M2150-RL-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2150.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7455-M2150-RL-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2250.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5472-M2250-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2250.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  5472-M2250-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M2505.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7450 M2505-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_M2505.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7450 M2505-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M3100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6118-M3100-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M3100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6118-M3100-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M3400.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9994-M3400-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M3400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  9994-M3400-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M3700.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6800-M3700-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M3700.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  6800-M3700-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_M4770.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7312 M4770-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_M520.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7400 M520-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_M520.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  7400 M520-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M795.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  10133 M795-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_M795.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  10133 M795-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_N10000.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  10347-N10000-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N10000.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  10347-N10000-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N1100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14005 N1100-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_N1100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14005 N1100-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_N1975.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14272-N1975-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N1975.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14272-N1975-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2500.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  13766 N2500-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Casey Hatch\r
+\r
+Cesaroni_N2500.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  13766 N2500-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_N2600.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  11077-N2600-SK-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2600.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  11077-N2600-SK-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2850.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  13767-N2850-BS-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2850.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  13767-N2850-BS-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2900.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17613-N2900-CL-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N2900_1.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17613-N2900-CL-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N3180.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14200 N3180-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Thomas Raithby\r
+\r
+Cesaroni_N3400.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14263-N3400-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N3400.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  14263-N3400-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N3800.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17631-N3800-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N3800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17631-N3800-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N4100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17790-N4100-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N4100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  17790-N4100-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N5800.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  20146-N5800-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_N5800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  20146-N5800-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Andre Choquette\r
+\r
+Cesaroni_O3700.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  29920-O3700-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O3700.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  29920-O3700-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O4900.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  37148-O4900-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O4900.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  37148-O4900-P\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O5100.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  29990 O5100-P\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_O5100.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  29990 O5100-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_O5800.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  30605 O5800-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O5800.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  30605 O5800-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Cesaroni_O8000.eng\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  40960 O8000-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Len Bryan\r
+\r
+Cesaroni_O8000.rse\r
+    Manufacturer: Cesaroni Technology\r
+    Designation:  40960 O8000-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G100.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G100-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G100.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G100-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G123.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G123-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G123.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G123-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G130.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G130-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G130.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G130-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G234.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G234-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G234.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G234-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G300.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G300-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_G300.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  G300-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H121.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H121-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H121.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H121-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H141.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H141-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H141.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H141-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H211.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H211-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H211.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H211-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H222.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H222-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H222.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H222-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H246.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H246-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H246.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H246-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H248.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H248-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H277.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H277-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H277.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H277-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H300.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H300-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H300.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H300-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H303.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H303-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H303.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H303-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H340.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H340-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_H340.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  H340-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I155.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I155-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I155.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I155-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I210.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I210-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I210.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I210-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I221.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I221-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I221.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I221-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I250.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I250-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I290.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I290-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I290.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I290-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I307.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I307-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I307.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I307-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I333.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I333-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I333.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I333-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I400.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I400-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I400.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I400-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I500.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I500-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I500.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I500-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I727.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I727-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I727.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I727-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I747.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I747-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_I747.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  I747-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J150.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J150-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J150.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J150-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J222.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J222-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J222.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J222-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J234.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J234-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J234.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J234-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J242.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J242-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J242.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J242-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J245.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J245-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J245.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J245-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J246.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J246-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J246.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J246-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J272.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J272-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J272.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J272-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J292.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J292-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J292.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J292-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J333.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J333-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J333.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J333-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J345.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J345-PVC\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J345.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J345-PVC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J355.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J355-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J355.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J355-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J358.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J358-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J358.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J358-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J416.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J416-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J416.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J416-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J555.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J555-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J555.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J555-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J642.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J642-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J642.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J642-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J800.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J800-HP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_J800.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  J800-HP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K234.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K234-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K234.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K234-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K265.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K265-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K265.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K265-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K300.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K300-BS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K300.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K300-BS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K321.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K321-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K321.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K321-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K404.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K404-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K404.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K404-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K456.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K456-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K456.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K456-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K543.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K543-BS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K555.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K555-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K630.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K630-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K630.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K630-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K678.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K678-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K678.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K678-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K707.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K707-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K707.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K707-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K777.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K777-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K777.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K777-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_K888.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  K888-BM\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L1222.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L1222-SM\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L1222.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L1222-SM\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L1428.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L1428-SF\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L2525.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L2525-GF\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L2525.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L2525-GF\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L369.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L369-SP\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L369.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L369-SP\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L800.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L800-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_L800.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  L800-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M1491.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M1491-BM\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M1575.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M1575-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M1575.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M1575-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M2281.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M2281-BF\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M2700.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M2700-BS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M2700.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M2700-BS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M2800.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M2800-BG\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M2800.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M2800-BG\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M711.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M711-BS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_M711.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  M711-BS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_O6300.eng\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  O6300-BS\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Contrail_O6300.rse\r
+    Manufacturer: Contrail Rockets\r
+    Designation:  O6300-BS\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_E12.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  E12\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_F23.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  F23\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G20.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G20\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G20.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G20\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G35.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G35\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G35.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G35\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G37.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G37\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_G37.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  G37\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H275.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H275\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H275.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H275\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H48.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H48\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H48.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H48\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H50.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H50\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_H50.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  H50\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I130.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I130\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I130.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I130\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I134.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I134\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I134.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I134\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I150.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I150\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_I150.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I150\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I160.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I160\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_I160.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I160\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I230.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I230\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_I230.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I230\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I69.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I69\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_I69.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  I69\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J110.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J110\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J110.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J110\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J148.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J148\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J148.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J148\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J228.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J228\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J228.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J228\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J270.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J270\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_J270.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J270\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_J330.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J330\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_J330.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  J330\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_K475.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  K475\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_K475.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  K475\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_L330.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  L330\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_L330.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  L330\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_L600.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  L600\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_L600.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  L600\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Ellis_M1000.eng\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  M1000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Ellis_M1000.rse\r
+    Manufacturer: Ellis Mountain\r
+    Designation:  M1000\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_2A3.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/2A3\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_2A3.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/2A3\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_2A6.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/2A6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_2A6.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/2A6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_4A3.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/4A3\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_1_4A3.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  1/4A3\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A10.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  A10\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A10.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  A10\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A3.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  A3\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A3.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  A3\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A8.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  A8\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_A8.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  A8\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_B4.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  B4\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_B4.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  B4\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_B6.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  B6\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Estes_B6.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  B6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C11.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  C11\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C11.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  C11\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C5.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  C5\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C5.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  C5\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C6.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  C6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_C6.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  C6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_D11.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  D11\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_D11.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  D11\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_D12.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  D12\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_D12.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  D12\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Estes_E9.eng\r
+    Manufacturer: Estes Industries\r
+    Designation:  E9\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Estes_E9.rse\r
+    Manufacturer: Estes Industries\r
+    Designation:  E9\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_H186.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  H186RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_H225.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  H225BL\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_I223.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  I223GT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_I324.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  I324RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_I389.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  I389GT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_J167.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J167WC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_J365.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J365BL\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_J395.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J395RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_J450.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J450BL\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_J465.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J465GT\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_J485.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  J485WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K1075.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K1075RT\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K1185.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K1185GT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_K222.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K222WC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_K327.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K327WC\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_K470.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K470WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K520.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K520RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_K533.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K533BL\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+GR_K555.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K555GT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K630.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K630WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K700.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K700RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_K763.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K763GT\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K805.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K805WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_K980.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  K980BL\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_L1065.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L1065BL\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_L1150.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L1150WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_L425.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L425WC\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_L695.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L695BL\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_L789.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L789RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_L985.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  L985GT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_M1355.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  M1355RT\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+GR_M1610.rse\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  M1610BL\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+GR_M1665.eng\r
+    Manufacturer: Gorilla Rocket Motors\r
+    Designation:  M1665WC\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I130.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC098J - I130\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I136.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC098J2 - I136\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I145.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC098JFX - I145FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I205.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC125J - I205\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I222.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC125J2 - I222\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I225.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  300CC125JFX - I225FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I260.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC172J - I260\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_I310.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC172J - I310\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J115.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC076J - J115\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J120.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC076JFX - J120FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J150.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC086J - J150\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J170.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC098J - J170\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J190.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC098JFX - J190FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J220.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC110J - J220\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J250.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC125J - J250\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J250_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC125J - J250\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J270.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC125JFX - J270FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J295.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  440CC172JFX - J295FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J317.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  835CC172J - J317\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J330.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  835CC172JFX - J330FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_J330_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  835CC172JFX - J330FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_K240.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  835CC125J - K240\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L200.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC098L - L200\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L225.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC098LFX - L225FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L350.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC125L - L350\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L355.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC125LFX - L355FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L475.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC172L - L475\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L535.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CC172LFX - L535FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L540.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC172L - L540\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L540_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC172L - L540\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L550.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CCRGL - L550\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L570.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC172LFX - L570FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L570_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC172LFX - L570FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L575.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CCRGL - L575\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L575_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CCRGL - L575\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L610.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  1685CCRGLFX - L610FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L625.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CCRGLFX - L625FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L625_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CCRGLFX - L625FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L740.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC200MFX - L740FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_L970.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC300M - L970\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1000.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  4630CCRGM - M1000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1000_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  4630CCRGM - M1000\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1001.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  5478CCRGM - M1001\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1010.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  4630CCRGMFX - M1010FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1010_1.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  4630CCRGMFX - M1010FX\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1015.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  3500CCRGMFX - M1015FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M1040.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  4630CCRGMFX - M1040FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M740.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC200M - M740\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M956.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  3500CCRGM - M956\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Hypertek_M960.eng\r
+    Manufacturer: Hypertek\r
+    Designation:  2800CC300MFX - M960FX\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_G135.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  G135R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_G82.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  G82W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_H130.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  H130W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_H225.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  H225R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I170.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I170S\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I170.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I170S\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I280.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I280F\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I280.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I280F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I301.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I301W\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+KBA_I301.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I301W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I310.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I310S\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I310.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I310S\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I370.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I370F\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I370.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I370F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I450.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I450F\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I450.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I450F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_I550.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I550R\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+KBA_I550.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  I550R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J405.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J405S\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J405.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J405S\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J520.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J520F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J605.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J605F\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J605.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J605F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_J740.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  J740G\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_K1750.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K1750R\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+KBA_K1750.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K1750R\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Victor Merle Barlow\r
+\r
+KBA_K400.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K400S\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_K400.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K400S\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_K600.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K600F\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+KBA_K700.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K700F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_K750.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K750W\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+KBA_K750.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  K750W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_L1000.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  L1000S\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+KBA_L1000.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  L1000S\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_L1400.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  L1400F\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_L1400.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  L1400F\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_L2300.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  L2300G\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_M1450.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  M1450W\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+KBA_M1450.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  M1450W\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_M2900.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  M2900R\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+KBA_M3500.eng\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  M3500R-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+KBA_M3500.rse\r
+    Manufacturer: Kosdon by AeroTech\r
+    Designation:  M3500R-P\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_G69.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  G69-SF\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_G80.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  G80-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_G80.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  G80-LW\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_H100.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H100-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_H100.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  H100-SF\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_H144.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H144-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_H144.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  H144-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_H160.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H160-LB\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_H160.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  H160-LB\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_H500.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H500-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_H500.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  H500-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_H500_1.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H500-LW\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_H90.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  H90-LR\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_H90.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  H90-LR\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_I110.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  I110-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_I110.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  I110-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_I210.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  I210-LR\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_I210.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  I210-LR\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_I316.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  I316-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_I405.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  I405-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_I405.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  I405-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_I430.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  I430-LB\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew Grippo\r
+\r
+Loki_J1000.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J1000-LW\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_J175.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J175-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J175.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J175-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_J320.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J320-LR\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J320.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J320-LR\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_J350.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J350-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J396.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J396-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J396.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J396-SF\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_J525.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J525-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_J525.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J525-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_J528.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J528-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_J528.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J528-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_J650.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J650-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J712.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J712-LB\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J712.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J712-LB\r
+    Data Format:  RockSim\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_J820.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  J820-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_J820.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  J820-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_K250.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  K250-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_K250.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  K250-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_K350.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  K350-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_K350.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  K350-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_K690.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  K690-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_K830.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  K830-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_K960.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  K960-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_K960.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  K960-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_L1400.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  L1400-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_L1400.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  L1400-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_L1482.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  L1482-LB\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_L1482.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  L1482-LB\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_L480.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  L480-LR\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_L780.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  L780-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_L930.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  L930-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_L930.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  L930-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_M1200.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  M1200-SF\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_M1882.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  M1882-LW\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  William Carney\r
+\r
+Loki_M1882.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  M1882-LW\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Loki_M2550.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  M2550-LB\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+Loki_M2550.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  M2550-LB\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_M3000.eng\r
+    Manufacturer: Loki Research\r
+    Designation:  M3000-LW\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  Clay Dunsworth\r
+\r
+Loki_M3000.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  M3000-LW\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_M900.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  M900-LR\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+Loki_N3800.rse\r
+    Manufacturer: Loki Research\r
+    Designation:  N3800-LW\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Mark Koelsch\r
+\r
+PML_F50.eng\r
+    Manufacturer: Public Missiles, Ltd.\r
+    Designation:  F50T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+PML_G40.eng\r
+    Manufacturer: Public Missiles, Ltd.\r
+    Designation:  G40W\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+PML_G80.eng\r
+    Manufacturer: Public Missiles, Ltd.\r
+    Designation:  G80T\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+PP_H70.eng\r
+    Manufacturer: Propulsion Polymers\r
+    Designation:  240NS-H70\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+PP_I160.eng\r
+    Manufacturer: Propulsion Polymers\r
+    Designation:  484NS-I160\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+PP_I80.eng\r
+    Manufacturer: Propulsion Polymers\r
+    Designation:  460NS-I80\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+PP_J140.eng\r
+    Manufacturer: Propulsion Polymers\r
+    Designation:  664NS-J140\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_A6.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  A6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_A6.rse\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  A6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_A8.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  A8-3\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Quest_B4.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  B4-4\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Quest_B6.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  B6\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_B6.rse\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  B6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_C6.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  C6\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Quest_C6.rse\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  C6\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_D5.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  D5\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Quest_D5_1.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  D5\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Quest_D5_2.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  D5-P\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Quest_D8.eng\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  D8\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+Quest_Micro_Maxx.rse\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  Micro Maxx\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+Quest_Micro_Maxx_II.rse\r
+    Manufacturer: Quest Aerospace\r
+    Designation:  Micro Maxx II\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+RATT_H70.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  H70\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+RATT_I80.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  I80\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+RATT_I90.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  I90L\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+RATT_J160.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  J160\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+RATT_K240.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  K240H\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+RATT_L600.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  L600\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+RATT_M900.eng\r
+    Manufacturer: R.A.T.T. Works\r
+    Designation:  M900\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+RV_E15.eng\r
+    Manufacturer: Rocketvision Flight-Star\r
+    Designation:  E15\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  John Coker\r
+\r
+RV_F32.eng\r
+    Manufacturer: Rocketvision Flight-Star\r
+    Designation:  F32\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+RV_F72.eng\r
+    Manufacturer: Rocketvision Flight-Star\r
+    Designation:  F72\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+RV_G55.eng\r
+    Manufacturer: Rocketvision Flight-Star\r
+    Designation:  G55\r
+    Data Format:  RASP\r
+    Data Source:  cert\r
+    Contributor:  Mark Koelsch\r
+\r
+Roadrunner_E25.eng\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  E25\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_E25.rse\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  E25\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F35.eng\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F35\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F35.rse\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F35\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F45.eng\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F45\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F45.rse\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F45\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F60.eng\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F60\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_F60.rse\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  F60\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_G80.eng\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  G80\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+Roadrunner_G80.rse\r
+    Manufacturer: Roadrunner Rocketry\r
+    Designation:  G80\r
+    Data Format:  RockSim\r
+    Data Source:  mfr\r
+    Contributor:  Roadrunner Rocketry\r
+\r
+SkyR_G125.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G125\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_G125.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G125\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_G63.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G63\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_G63.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G63\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_G69.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G69\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_G69.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  G69\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_H124.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H124\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_H124.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H124\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_H155.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H155\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_H155.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H155\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_H78.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H78\r
+    Data Format:  RASP\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_H78.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  H78\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_I117.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I117\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_I117.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I117\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_I119.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I119\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_I119.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I119\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_I147.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I147\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_I147.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  I147\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_J144.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J144\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+SkyR_J144.rse\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J144\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+SkyR_J261.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J261G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+SkyR_J263.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J263G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+SkyR_J337.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J337B\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+SkyR_J348.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  J348B\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+SkyR_K257.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  K257G\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+SkyR_K347.eng\r
+    Manufacturer: Sky Ripper Systems\r
+    Designation:  K347B\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  John Coker\r
+\r
+WCH_G55.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  150 G55-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+WCH_H100.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  246 H100-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+WCH_I110.eng\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  499 I110-P\r
+    Data Format:  RASP\r
+    Data Source:  mfr\r
+    Contributor:  Andrew MacMillen\r
+\r
+WCH_I110.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  499 I110-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+WCH_K460.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  1988 K460-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+WCH_L600.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  3161 L600-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
+\r
+WCH_M700.rse\r
+    Manufacturer: West Coast Hybrids\r
+    Designation:  5592 M700-P\r
+    Data Format:  RockSim\r
+    Data Source:  user\r
+    Contributor:  John Coker\r
diff --git a/datafiles/thrustcurves/AMW_I220.eng b/datafiles/thrustcurves/AMW_I220.eng
new file mode 100644 (file)
index 0000000..c07bea7
--- /dev/null
@@ -0,0 +1,29 @@
+;Animal Motor Works 38-390\r
+I220SK 38 249 20 0.202 0.495 AMW\r
+  0.0050     12.747\r
+  0.019      45.25\r
+  0.036      79.666\r
+  0.052      125.554\r
+  0.069      162.519\r
+  0.076      169.53\r
+  0.095      174.629\r
+  0.167      176.541\r
+  0.229      191.199\r
+  0.447      235.175\r
+  0.602      260.668\r
+  0.733      288.073\r
+  0.85       302.095\r
+  0.974      301.457\r
+  1.094      289.985\r
+  1.184      268.954\r
+  1.268      240.273\r
+  1.302      219.879\r
+  1.388      177.178\r
+  1.418      147.224\r
+  1.435      127.467\r
+  1.473      91.139\r
+  1.504      65.645\r
+  1.543      40.789\r
+  1.593      19.12\r
+  1.622      10.197\r
+  1.65       0.0\r
diff --git a/datafiles/thrustcurves/AMW_I271.eng b/datafiles/thrustcurves/AMW_I271.eng
new file mode 100644 (file)
index 0000000..0827496
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+; AMW 38-390\r
+I271BB 38 258 0 0.189 0.493 AMW\r
+0.011 119.530\r
+0.035 213.907\r
+0.050 245.903\r
+0.074 262.705\r
+0.115 269.446\r
+0.225 267.736\r
+0.346 282.929\r
+0.465 296.411\r
+0.584 303.152\r
+0.727 311.504\r
+0.916 318.245\r
+1.054 324.986\r
+1.162 331.400\r
+1.201 326.696\r
+1.225 313.214\r
+1.242 286.249\r
+1.268 240.990\r
+1.294 188.888\r
+1.323 136.833\r
+1.346 87.565\r
+1.368 45.467\r
+1.392 18.523\r
+1.430 0.000\r
+;\r
diff --git a/datafiles/thrustcurves/AMW_I285.eng b/datafiles/thrustcurves/AMW_I285.eng
new file mode 100644 (file)
index 0000000..ea373d5
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+; AMW 38-390\r
+I285GG 38 258 0 0.206 0.515 AMW\r
+0.013 61.575\r
+0.032 119.327\r
+0.055 164.575\r
+0.076 191.004\r
+0.094 201.014\r
+0.139 212.326\r
+0.232 231.247\r
+0.357 258.876\r
+0.456 267.686\r
+0.592 278.998\r
+0.716 289.358\r
+0.841 291.200\r
+0.936 290.310\r
+1.051 285.204\r
+1.139 277.696\r
+1.204 280.199\r
+1.243 278.998\r
+1.265 268.887\r
+1.286 242.559\r
+1.319 187.200\r
+1.359 134.443\r
+1.387 86.702\r
+1.407 52.776\r
+1.428 31.413\r
+1.448 16.337\r
+1.465 5.026\r
+1.480 0.000\r
+;\r
diff --git a/datafiles/thrustcurves/AMW_I315.eng b/datafiles/thrustcurves/AMW_I315.eng
new file mode 100644 (file)
index 0000000..3769d80
--- /dev/null
@@ -0,0 +1,34 @@
+; This file my be used or given away.  All I ask is that this header \r
+; is maintained to give credit to NAR S&T.  Thank you, Jack Kane\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file.  The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited \r
+; number of points (32) allowed with wRASP up to v1.6.\r
+;Animal Motor Works 38-640 \r
+I315SK 38 369 20 0.3829 0.7166 AMW\r
+0.011    314.573\r
+0.030    312.796\r
+0.066    300.786\r
+0.084    300.502\r
+0.120    304.087\r
+0.175    312.998\r
+0.266    324.086\r
+0.356    332.224\r
+0.447    347.855\r
+0.538    371.972\r
+0.629    382.833\r
+0.719    385.552\r
+0.810    385.586\r
+0.901    384.836\r
+0.992    382.296\r
+1.082    378.323\r
+1.173    370.837\r
+1.264    357.564\r
+1.355    347.122\r
+1.445    328.332\r
+1.536    202.733\r
+1.627    90.867\r
+1.718    35.427\r
+1.808    8.192\r
+1.815    0.000\r
diff --git a/datafiles/thrustcurves/AMW_I375.eng b/datafiles/thrustcurves/AMW_I375.eng
new file mode 100644 (file)
index 0000000..92aa13e
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;Animal Motor Works 38-640 \r
+I375GG 38 369 20 0.3936 0.7338 AMW\r
+0.013  223.878\r
+0.045  273.929\r
+0.092  312.421\r
+0.140  334.383\r
+0.219  357.983\r
+0.298  381.992\r
+0.377  410.267\r
+0.457  431.141\r
+0.536  454.458\r
+0.615  476.825\r
+0.694  495.473\r
+0.773  504.665\r
+0.852  510.942\r
+0.931  511.972\r
+1.011  489.639\r
+1.090  441.350\r
+1.169  392.762\r
+1.248  354.753\r
+1.327  292.385\r
+1.406  177.309\r
+1.486  63.879\r
+1.565  14.901\r
+1.583  0.000\r
diff --git a/datafiles/thrustcurves/AMW_J357.eng b/datafiles/thrustcurves/AMW_J357.eng
new file mode 100644 (file)
index 0000000..b387aa7
--- /dev/null
@@ -0,0 +1,35 @@
+; AMW Animal Motor Works  fixed by dberez 12/08/03\r
+;\r
+;Animal Motor Works J357 White Wolf\r
+J357WW 54 326 0 0.5481 1.2101 AMW\r
+0.02 129.64\r
+0.03 205.95\r
+0.05 265.00\r
+0.06 316.51\r
+0.09 326.05\r
+0.13 314.60\r
+0.18 301.25\r
+0.24 299.34\r
+0.35 312.69\r
+0.50 326.05\r
+0.66 333.68\r
+0.87 345.13\r
+1.07 358.48\r
+1.46 383.18\r
+1.77 398.45\r
+1.86 400.36\r
+1.98 402.35\r
+2.18 398.45\r
+2.29 390.82\r
+2.41 369.93\r
+2.51 354.67\r
+2.55 352.76\r
+2.60 347.03\r
+2.65 335.59\r
+2.69 310.79\r
+2.75 249.73\r
+2.81 175.43\r
+2.84 108.65\r
+2.90 53.38\r
+2.92 20.98\r
+2.95 0.00\r
diff --git a/datafiles/thrustcurves/AMW_J365.eng b/datafiles/thrustcurves/AMW_J365.eng
new file mode 100644 (file)
index 0000000..05fe775
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;Animal Motor Works 54-1400 \r
+J365SK 54 403 0 0.7571 1.4593 AMW\r
+0.029  389.731\r
+0.123  360.219\r
+0.218  334.200\r
+0.376  326.150\r
+0.534  334.217\r
+0.692  341.669\r
+0.850  347.676\r
+1.007  359.408\r
+1.165  370.043\r
+1.323  383.343\r
+1.481  399.248\r
+1.639  417.477\r
+1.797  443.735\r
+1.955  472.683\r
+2.112  501.668\r
+2.270  497.077\r
+2.428  425.371\r
+2.586  349.017\r
+2.744  262.068\r
+2.902  107.073\r
+3.060  41.821\r
+3.157  0.000\r
diff --git a/datafiles/thrustcurves/AMW_J370.eng b/datafiles/thrustcurves/AMW_J370.eng
new file mode 100644 (file)
index 0000000..78837f3
--- /dev/null
@@ -0,0 +1,44 @@
+;\r
+;Animal Motor Works 54-1050\r
+;AMW J370GG RASP.ENG file made from NAR data\r
+;File produced FEB 20, 2003\r
+;This file my be used or given away. All I ask is that this header\r
+;is maintained to give credit to NAR S&T. Thank you, Jack Kane\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+J370GG 54 326 100 0.5983 1.2491 Animal_Motor_Works \r
+0.008 185.496\r
+0.024 149.516\r
+0.063 225.273\r
+0.087 272.647\r
+0.122 304.829\r
+0.158 304.829\r
+0.273 335.212\r
+0.431 363.796\r
+0.573 390.381\r
+0.707 413.168\r
+0.877 428.459\r
+1.019 441.852\r
+1.126 441.852\r
+1.224 458.46\r
+1.284 443.951\r
+1.386 440.153\r
+1.572 438.454\r
+1.651 438.554\r
+1.813 417.765\r
+2.022 404.673\r
+2.141 385.883\r
+2.212 385.883\r
+2.255 374.59\r
+2.299 387.882\r
+2.362 357.599\r
+2.401 384.184\r
+2.421 348.204\r
+2.457 316.122\r
+2.559 251.758\r
+2.697 115.635\r
+2.753 45.624\r
+2.82 0\r
diff --git a/datafiles/thrustcurves/AMW_J400.eng b/datafiles/thrustcurves/AMW_J400.eng
new file mode 100644 (file)
index 0000000..52e017f
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+;AMW J400 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+J400RR 54 326 100 0.558 1.2314 Animal_Motor_Works \r
+0.043 246.55\r
+0.06 317.381\r
+0.081 344.709\r
+0.107 358.372\r
+0.15 356.06\r
+0.201 365.204\r
+0.308 392.532\r
+0.568 435.734\r
+0.863 458.339\r
+1.094 469.24\r
+1.209 467.18\r
+1.466 460.148\r
+1.705 443.972\r
+1.923 423.275\r
+2.132 409.411\r
+2.303 413.831\r
+2.402 420.563\r
+2.47 413.831\r
+2.517 395.445\r
+2.543 347.421\r
+2.568 265.238\r
+2.598 128.198\r
+2.615 68.801\r
+2.632 25.398\r
+2.66 0\r
diff --git a/datafiles/thrustcurves/AMW_J440.eng b/datafiles/thrustcurves/AMW_J440.eng
new file mode 100644 (file)
index 0000000..40adabd
--- /dev/null
@@ -0,0 +1,27 @@
+;Animal Motor Works 38-640 \r
+J440BB 38 369 20 0.3853 0.6985 AMW\r
+0.007  468.505\r
+0.022  509.996\r
+0.037  527.687\r
+0.052  532.792\r
+0.082  530.181\r
+0.127  525.586\r
+0.202  521.566\r
+0.277  519.840\r
+0.352  521.522\r
+0.426  525.414\r
+0.501  531.248\r
+0.576  538.724\r
+0.651  541.761\r
+0.726  538.508\r
+0.801  531.072\r
+0.876  516.175\r
+0.950  494.942\r
+1.025  477.251\r
+1.100  433.297\r
+1.175  313.900\r
+1.250  187.467\r
+1.325  101.546\r
+1.400  45.751\r
+1.474  22.083\r
+1.497  0.000\r
diff --git a/datafiles/thrustcurves/AMW_J450_1.eng b/datafiles/thrustcurves/AMW_J450_1.eng
new file mode 100644 (file)
index 0000000..5b444e7
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Animal Motor Works J450 Super Tiger\r
+J450ST 54 326 0 0.5331 1.1964 AMW\r
+0.009 251.586\r
+0.016 376.074\r
+0.030 413.450\r
+0.051 430.832\r
+0.094 423.296\r
+0.162 413.149\r
+0.262 395.566\r
+0.402 420.182\r
+0.495 444.898\r
+0.805 504.078\r
+1.048 536.028\r
+1.223 550.597\r
+1.299 563.180\r
+1.334 555.319\r
+1.470 560.042\r
+1.588 559.841\r
+1.764 546.980\r
+1.921 516.838\r
+1.993 496.743\r
+2.025 499.154\r
+2.047 479.160\r
+2.086 414.354\r
+2.115 344.525\r
+2.141 252.290\r
+2.177 140.161\r
+2.213 82.780\r
+2.239 50.347\r
+2.271 27.861\r
+2.296 12.860\r
+2.330 0.000\r
diff --git a/datafiles/thrustcurves/AMW_J480.eng b/datafiles/thrustcurves/AMW_J480.eng
new file mode 100644 (file)
index 0000000..0eca688
--- /dev/null
@@ -0,0 +1,32 @@
+;\r
+;AMW J480 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+J480BB 54 326 100 0.556 1.2131 Animal_Motor_Works \r
+0.015 225.429\r
+0.041 348.18\r
+0.071 388.127\r
+0.194 422.453\r
+0.385 459.49\r
+0.699 502.347\r
+0.968 528.042\r
+1.2 536.573\r
+1.454 543.15\r
+1.674 533.763\r
+1.887 522.321\r
+2.044 519.41\r
+2.108 525.131\r
+2.164 528.042\r
+2.197 488.095\r
+2.25 419.543\r
+2.283 333.928\r
+2.328 231.15\r
+2.354 176.95\r
+2.392 111.309\r
+2.418 68.501\r
+2.436 37.106\r
+2.49 0\r
diff --git a/datafiles/thrustcurves/AMW_J500.eng b/datafiles/thrustcurves/AMW_J500.eng
new file mode 100644 (file)
index 0000000..f5a0889
--- /dev/null
@@ -0,0 +1,32 @@
+;\r
+;J500ST entered by Tim Van Milligan\r
+;For RockSim - http://www.rocksim.com\r
+;Based on TRA Certification paperwork from 06-01-2002\r
+;Initial Mass from Jim Robinson at AMW\r
+;Not approved by TRA or AMW.\r
+J500ST 38 370 20 0.3265 0.744 Animal_Motor_Works \r
+0.006 444.822\r
+0.025 475.651\r
+0.04 418.397\r
+0.053 466.843\r
+0.059 409.589\r
+0.071 458.035\r
+0.077 409.589\r
+0.1 444.822\r
+0.127 506.481\r
+0.204 590.16\r
+0.25 644.992\r
+0.3 678.244\r
+0.34 709.073\r
+0.402 735.498\r
+0.445 766.327\r
+0.516 783.944\r
+0.6 787.335\r
+0.637 770.732\r
+0.68 744.306\r
+0.76 620.989\r
+0.859 475.651\r
+1.00464 303.888\r
+1.122 171.763\r
+1.227 52.8502\r
+1.3 0\r
diff --git a/datafiles/thrustcurves/AMW_K1000.eng b/datafiles/thrustcurves/AMW_K1000.eng
new file mode 100644 (file)
index 0000000..09d0d32
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;AMW K1000 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K1000SK 54 728 100 1.297 2.556 Animal_Motor_Works \r
+0.019 1155.06\r
+0.045 1426.12\r
+0.094 1248.23\r
+0.161 1112.99\r
+0.239 1128.02\r
+0.343 1113.99\r
+0.377 1149.05\r
+0.44 1121\r
+0.544 1221.18\r
+0.633 1178.11\r
+0.674 1221.18\r
+0.737 1193.13\r
+0.883 1200.14\r
+1.009 1194.13\r
+1.057 1236.21\r
+1.188 1137.03\r
+1.299 1145.05\r
+1.396 1087.94\r
+1.516 954.104\r
+1.631 855.228\r
+1.717 827.077\r
+1.777 650.061\r
+1.848 465.932\r
+1.93 303.141\r
+2.023 147.463\r
+2.083 83.879\r
+2.132 41.484\r
+2.18 0\r
diff --git a/datafiles/thrustcurves/AMW_K1075.eng b/datafiles/thrustcurves/AMW_K1075.eng
new file mode 100644 (file)
index 0000000..6a1cbb4
--- /dev/null
@@ -0,0 +1,39 @@
+;\r
+;Animal Motor Works K1075 RASP.ENG file made from NAR data\r
+;File produced Feb 22, 2003\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K1075GG 54 726 100 1.3999 2.6658 Animal_Motor_Works \r
+0.009 672.664\r
+0.015 963.511\r
+0.022 860.518\r
+0.047 987.857\r
+0.075 975.835\r
+0.106 921.332\r
+0.215 958.001\r
+0.529 1092.05\r
+0.878 1220.29\r
+1.077 1269.39\r
+1.158 1311.47\r
+1.235 1293.43\r
+1.448 1330.5\r
+1.577 1318.48\r
+1.672 1319.48\r
+1.721 1337.52\r
+1.759 1337.52\r
+1.805 1337.52\r
+1.829 1331.5\r
+1.856 1384.67\r
+1.889 1277.4\r
+1.906 1216.29\r
+1.938 1052.98\r
+1.96 871.338\r
+1.988 659.239\r
+2.027 453.352\r
+2.062 301.967\r
+2.115 138.46\r
+2.168 41.608\r
+2.2 0\r
diff --git a/datafiles/thrustcurves/AMW_K365.eng b/datafiles/thrustcurves/AMW_K365.eng
new file mode 100644 (file)
index 0000000..25fe1b1
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;AMW K365RR RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K365RR 75 111 100 0.946 2.3456 Animal_Motor_Works \r
+0.049 138.157\r
+0.068 381.241\r
+0.084 454.75\r
+0.106 481.536\r
+0.164 488.182\r
+0.291 514.867\r
+0.435 545.982\r
+0.666 561.49\r
+0.868 565.73\r
+1.082 565.518\r
+1.296 550.111\r
+1.591 529.871\r
+1.805 509.731\r
+1.828 536.517\r
+1.886 498.554\r
+2.124 467.237\r
+2.501 411.35\r
+2.924 328.677\r
+3.296 241.573\r
+3.638 172.293\r
+3.969 100.798\r
+4.195 56.098\r
+4.265 51.607\r
+4.346 35.959\r
+4.433 15.859\r
+4.51 0\r
diff --git a/datafiles/thrustcurves/AMW_K450.eng b/datafiles/thrustcurves/AMW_K450.eng
new file mode 100644 (file)
index 0000000..ece0bac
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;AMW K450BB RASP.ENG file made from NAR published data\r
+;File produced Aug 19, 2003\r
+;This file my be used or given away. All I ask is that this header\r
+;is maintained to give credit to NAR S&T. Thank you, Jack Kane.\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K450BB 75 302 100 0.8816 2.8349 Animal_Motor_Works \r
+0.03 78.903\r
+0.045 227.9\r
+0.064 449.955\r
+0.069 508.417\r
+0.094 555.187\r
+0.151 563.956\r
+0.362 625.442\r
+0.562 651.85\r
+0.825 660.62\r
+1.134 652.254\r
+1.453 626.147\r
+1.793 594.296\r
+2.113 538.958\r
+2.458 469.106\r
+2.798 384.538\r
+3.165 276.686\r
+3.201 279.609\r
+3.325 232.94\r
+3.51 171.757\r
+3.732 107.65\r
+3.861 58.018\r
+3.959 40.55\r
+4.036 20.149\r
+4.11 0\r
diff --git a/datafiles/thrustcurves/AMW_K470.eng b/datafiles/thrustcurves/AMW_K470.eng
new file mode 100644 (file)
index 0000000..bd780c1
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;AMW K470ST RASP.ENG file made from Tripoli published data\r
+;File produced May 15, 2004\r
+;This file my be used or given away. All I ask is that this header\r
+;is maintained to give credit to the people who produced the data.\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K470ST 75 302 100 0.826 2.779 Animal_Motor_Works \r
+0.028 699.309\r
+0.039 799.337\r
+0.09 765.845\r
+0.157 770.311\r
+0.258 785.941\r
+0.41 804\r
+0.572 794.425\r
+0.707 794.425\r
+0.886 792.192\r
+0.998 783.261\r
+1.15 752.002\r
+1.318 709.579\r
+1.447 655.992\r
+1.593 595.707\r
+1.728 522.025\r
+1.885 444.101\r
+2.092 354.923\r
+2.356 270.167\r
+2.664 187.554\r
+2.945 131.734\r
+3.27 78.058\r
+3.433 55.686\r
+3.478 48.987\r
+3.556 28.909\r
+3.7 0\r
diff --git a/datafiles/thrustcurves/AMW_K475.eng b/datafiles/thrustcurves/AMW_K475.eng
new file mode 100644 (file)
index 0000000..8551ed5
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+;Animal Motor Works K475 RASP.ENG file made from NAR data\r
+;File produced Feb 22, 2003\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K475WW 54 403 100 0.7286 1.4925 Animal_Motor_Works \r
+0.022 127.831\r
+0.041 386.016\r
+0.063 548.326\r
+0.096 521.308\r
+0.134 499.129\r
+0.18 486.83\r
+0.285 486.83\r
+0.478 501.649\r
+0.731 523.727\r
+1.096 553.266\r
+1.433 577.962\r
+1.601 588.29\r
+1.756 582.704\r
+1.895 580.284\r
+1.958 575.344\r
+2.063 550.746\r
+2.209 518.788\r
+2.344 477.051\r
+2.495 417.974\r
+2.561 354.058\r
+2.582 334.399\r
+2.599 331.98\r
+2.62 297.501\r
+2.67 226.226\r
+2.707 157.37\r
+2.74 98.353\r
+2.799 49.176\r
+2.853 17.208\r
+2.94 0\r
diff --git a/datafiles/thrustcurves/AMW_K500.eng b/datafiles/thrustcurves/AMW_K500.eng
new file mode 100644 (file)
index 0000000..0eb594d
--- /dev/null
@@ -0,0 +1,36 @@
+; Entered by Tim Van Milligan. Used John Coker's ThrustCurve Tracer software and\r
+; data from NAR certification dated May 7, 2007\r
+K500SK 75 368 100 1.1235 2.713 Animal\r
+   0.018 194.373\r
+   0.031 207.161\r
+   0.036 268.542\r
+   0.103 319.693\r
+   0.138 322.251\r
+   0.17 314.578\r
+   0.67 309.463\r
+   0.692 322.251\r
+   0.902 319.693\r
+   0.929 332.481\r
+   1.263 355.499\r
+   1.585 383.632\r
+   1.969 411.765\r
+   2.112 416.88\r
+   2.272 447.57\r
+   2.415 488.491\r
+   2.46 485.934\r
+   2.634 534.527\r
+   2.83 618.926\r
+   3.018 710.997\r
+   3.143 767.263\r
+   3.228 815.857\r
+   3.339 841.432\r
+   3.402 826.087\r
+   3.504 785.166\r
+   3.585 718.67\r
+   3.661 631.714\r
+   3.728 519.182\r
+   3.772 365.729\r
+   3.826 181.586\r
+   3.862 99.744\r
+   3.893 43.478\r
+   3.946 0.0\r
diff --git a/datafiles/thrustcurves/AMW_K530.eng b/datafiles/thrustcurves/AMW_K530.eng
new file mode 100644 (file)
index 0000000..e1c460f
--- /dev/null
@@ -0,0 +1,43 @@
+;\r
+;Animal Motor Works 54-1400\r
+;AMW K530GG RASP.ENG file made from NAR data\r
+;File produced Feb 25, 2003\r
+;This file my be used or given away. All I ask is that this header\r
+;is maintained to give credit to NAR S&T. Thank you, Jack Kane\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K530GG 54 403 1000 0.7967 1.616 Animal_Motor_Works \r
+0.013 129.764\r
+0.054 171.852\r
+0.096 284.122\r
+0.138 392.892\r
+0.171 455.975\r
+0.217 501.662\r
+0.238 498.063\r
+0.326 508.66\r
+0.542 564.745\r
+0.755 613.831\r
+1.01 645.423\r
+1.17 657.23\r
+1.273 648.922\r
+1.51 638.425\r
+1.656 634.925\r
+1.702 606.833\r
+1.803 606.833\r
+1.857 585.839\r
+1.936 589.338\r
+1.974 575.242\r
+2.015 589.338\r
+2.04 564.745\r
+2.132 536.652\r
+2.207 540.251\r
+2.291 522.656\r
+2.357 487.566\r
+2.42 375.297\r
+2.478 242.033\r
+2.529 140.361\r
+2.583 66.651\r
+2.66 0\r
diff --git a/datafiles/thrustcurves/AMW_K555.eng b/datafiles/thrustcurves/AMW_K555.eng
new file mode 100644 (file)
index 0000000..522291a
--- /dev/null
@@ -0,0 +1,33 @@
+;Animal Motor Works 54-1750 K555 skidmark\r
+;File provide by Joel Rogers of AMW\r
+K555SK 54 492 0 0.8707 1.7343 AMW\r
+0.063  507.328\r
+0.144  535.181\r
+0.226  559.826\r
+0.308  585.793\r
+0.389  607.239\r
+0.471  629.034\r
+0.553  664.586\r
+0.634  683.688\r
+0.716  697.625\r
+0.798  719.618\r
+0.879  756.521\r
+0.961  777.700\r
+1.043  789.004\r
+1.124  797.934\r
+1.206  801.689\r
+1.288  804.331\r
+1.369  799.414\r
+1.451  768.014\r
+1.533  704.469\r
+1.614  641.709\r
+1.696  568.727\r
+1.778  481.013\r
+1.859  401.614\r
+1.941  333.897\r
+2.023  277.226\r
+2.104  205.009\r
+2.186  129.425\r
+2.268  73.717\r
+2.349  22.380\r
+2.368    0.000\r
diff --git a/datafiles/thrustcurves/AMW_K560.eng b/datafiles/thrustcurves/AMW_K560.eng
new file mode 100644 (file)
index 0000000..cebab56
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;AMW K560 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K560RR 54 430 100 0.75 1.5866 Animal_Motor_Works \r
+0.023 229.13\r
+0.046 415.135\r
+0.059 485.264\r
+0.078 512.268\r
+0.106 525.67\r
+0.154 523.05\r
+0.211 528.39\r
+0.261 536.451\r
+0.369 560.734\r
+0.511 587.738\r
+0.657 603.86\r
+0.77 612.022\r
+1.096 625.75\r
+1.358 620.083\r
+1.627 612.022\r
+1.839 603.86\r
+2.057 590.459\r
+2.218 598.52\r
+2.335 609.301\r
+2.385 601.24\r
+2.407 585.018\r
+2.426 533.831\r
+2.467 385.511\r
+2.507 283.037\r
+2.542 164.441\r
+2.576 67.399\r
+2.595 29.653\r
+2.62 0\r
diff --git a/datafiles/thrustcurves/AMW_K570.eng b/datafiles/thrustcurves/AMW_K570.eng
new file mode 100644 (file)
index 0000000..7c32b5d
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;Animal Motor Works K570 White Wolf\r
+K570WW 54 492 0 0.9146 1.8151 AMW\r
+0.020 364.42\r
+0.030 664.79\r
+0.051 751.47\r
+0.071 745.81\r
+0.096 705.25\r
+0.137 674.93\r
+0.284 661.38\r
+0.528 651.24\r
+0.913 644.51\r
+1.192 651.24\r
+1.430 651.24\r
+1.649 651.24\r
+1.872 644.51\r
+2.176 624.23\r
+2.318 600.64\r
+2.394 597.33\r
+2.455 546.63\r
+2.501 485.89\r
+2.562 421.84\r
+2.597 340.83\r
+2.638 266.54\r
+2.734 175.48\r
+2.836 97.86\r
+2.927 47.24\r
+3.040 0.00\r
diff --git a/datafiles/thrustcurves/AMW_K600_1.eng b/datafiles/thrustcurves/AMW_K600_1.eng
new file mode 100644 (file)
index 0000000..2d078aa
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+;Animal Motor Works K600 White Wolf\r
+K600WW 75 368 0 1.2233 2.9129 AMW\r
+0.010 412.229\r
+0.029 522.21\r
+0.059 547.215\r
+0.083 524.8\r
+0.122 497.305\r
+0.181 484.852\r
+0.333 495.113\r
+0.690 560.464\r
+1.195 643.548\r
+1.400 673.833\r
+1.420 708.799\r
+1.508 701.427\r
+1.591 721.551\r
+1.782 731.712\r
+2.017 752.035\r
+2.174 756.816\r
+2.257 765.2\r
+2.502 766.44\r
+2.727 752.931\r
+2.918 738.187\r
+3.143 705.91\r
+3.408 643.847\r
+3.603 569.131\r
+3.692 526.793\r
+3.745 439.426\r
+3.799 289.596\r
+3.883 112.272\r
+3.922 64.862\r
+3.971 37.437\r
+3.995 22.474\r
+4.070 0\r
diff --git a/datafiles/thrustcurves/AMW_K605.eng b/datafiles/thrustcurves/AMW_K605.eng
new file mode 100644 (file)
index 0000000..da7701a
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+;AMW K605 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K605RR 75 368 100 1.231 2.7688 Animal_Motor_Works \r
+0.03 165.845\r
+0.053 309.12\r
+0.077 361.916\r
+0.142 392.042\r
+0.527 501.412\r
+0.988 606.905\r
+1.515 682.37\r
+2.101 730.593\r
+2.355 737.58\r
+2.692 731.289\r
+3 712.497\r
+3.361 671.036\r
+3.503 663.479\r
+3.586 659.701\r
+3.645 633.353\r
+3.692 573\r
+3.734 444.838\r
+3.775 297.785\r
+3.828 162.066\r
+3.864 98.015\r
+3.905 41.471\r
+3.95 0\r
diff --git a/datafiles/thrustcurves/AMW_K650.eng b/datafiles/thrustcurves/AMW_K650.eng
new file mode 100644 (file)
index 0000000..e3789b2
--- /dev/null
@@ -0,0 +1,38 @@
+; Animal Motor Works 54-1750\r
+; AMW K650RR RASP.ENG file made from NAR published data\r
+; File produced April 19, 2004\r
+; This file my be used or given away.  All I ask is that this header \r
+; is maintained to give credit to NAR S&T.  Thank you, Jack Kane\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file.  The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited \r
+; number of points (32) allowed with wRASP up to v1.6.\r
+K650RR    54   492   0   0.931   1.8087   AMW\r
+0.022    308.257\r
+0.045    566.480\r
+0.058    620.440\r
+0.081    639.668\r
+0.135    639.668\r
+0.229    643.494\r
+0.351    662.823\r
+0.594    701.380\r
+0.810    724.434\r
+0.999    743.763\r
+1.151    751.220\r
+1.381    747.588\r
+1.610    736.001\r
+1.835    709.031\r
+2.073    685.876\r
+2.244    674.400\r
+2.334    682.051\r
+2.429    685.876\r
+2.469    666.648\r
+2.528    597.285\r
+2.573    481.714\r
+2.609    358.391\r
+2.631    250.471\r
+2.681    146.477\r
+2.721    65.507\r
+2.748    23.124\r
+2.770    0.000\r
diff --git a/datafiles/thrustcurves/AMW_K670_1.eng b/datafiles/thrustcurves/AMW_K670_1.eng
new file mode 100644 (file)
index 0000000..fecc65a
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;Animal Motor Works K670 Green Gorilla\r
+K670GG 54 492 0 1.0140 1.9145 AMW\r
+0.016 294.05\r
+0.035 398.577\r
+0.086 506.292\r
+0.153 496.428\r
+0.264 506.093\r
+0.461 558.108\r
+0.722 629.553\r
+0.983 688.044\r
+1.116 714.051\r
+1.193 785.795\r
+1.409 788.784\r
+1.737 804.56\r
+2.074 781.41\r
+2.195 764.87\r
+2.226 781.211\r
+2.277 764.77\r
+2.398 751.517\r
+2.440 744.941\r
+2.468 718.834\r
+2.484 666.521\r
+2.525 418.107\r
+2.551 218.818\r
+2.573 120.768\r
+2.595 52.143\r
+2.620 0\r
diff --git a/datafiles/thrustcurves/AMW_K700.eng b/datafiles/thrustcurves/AMW_K700.eng
new file mode 100644 (file)
index 0000000..5529b06
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;AMW K700 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+K700BB 54 430 100 0.754 1.4831 Animal_Motor_Works \r
+0.014 359.559\r
+0.022 625.425\r
+0.03 737.756\r
+0.047 771.505\r
+0.082 786.516\r
+0.106 771.505\r
+0.144 775.233\r
+0.272 786.516\r
+0.477 812.71\r
+0.693 842.632\r
+0.97 847.06\r
+1.283 838.904\r
+1.516 816.438\r
+1.706 801.427\r
+1.779 793.972\r
+1.811 775.233\r
+1.841 726.573\r
+1.873 625.425\r
+1.909 509.367\r
+1.95 393.208\r
+1.982 337.093\r
+2.035 292.16\r
+2.073 228.489\r
+2.111 153.535\r
+2.155 86.137\r
+2.193 37.446\r
+2.24 0\r
diff --git a/datafiles/thrustcurves/AMW_K800.eng b/datafiles/thrustcurves/AMW_K800.eng
new file mode 100644 (file)
index 0000000..19f99de
--- /dev/null
@@ -0,0 +1,35 @@
+; This file my be used or given away.  All I ask is that this header \r
+; is maintained to give credit to NAR S&T.  Thank you, Jack Kane\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file.  The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited \r
+; number of points (32) allowed with wRASP up to v1.6.\r
+K800BB    54   492   0   0.9140   1.7866   AMW\r
+0.017    516.316\r
+0.035    745.845\r
+0.046    817.592\r
+0.090    860.560\r
+0.191    889.338\r
+0.270    908.424\r
+0.438    918.017\r
+0.689    945.892\r
+0.996    955.090\r
+1.325    922.713\r
+1.557    894.035\r
+1.726    874.949\r
+1.849    884.542\r
+1.920    894.035\r
+1.954    894.035\r
+1.984    855.863\r
+2.011    741.048\r
+2.049    592.859\r
+2.079    492.433\r
+2.113    430.280\r
+2.154    377.719\r
+2.196    329.854\r
+2.237    243.818\r
+2.275    152.986\r
+2.309    71.716\r
+2.339    33.465\r
+2.380    0.000\r
diff --git a/datafiles/thrustcurves/AMW_K950_1.eng b/datafiles/thrustcurves/AMW_K950_1.eng
new file mode 100644 (file)
index 0000000..78854cc
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Animal Motor Works K950 Super Tiger\r
+K950ST 54 492 0 .8874 1.7949 AMW\r
+0.011 771.836\r
+0.025 1204.520\r
+0.039 1083.244\r
+0.053 1158.054\r
+0.067 1036.364\r
+0.085 1110.176\r
+0.099 1022.399\r
+0.135 982.102\r
+0.220 968.835\r
+0.404 1010.430\r
+0.566 1044.343\r
+0.701 1079.254\r
+0.867 1106.186\r
+0.995 1134.115\r
+1.211 1114.166\r
+1.313 1101.199\r
+1.430 1067.285\r
+1.529 1020.404\r
+1.579 993.772\r
+1.642 892.430\r
+1.674 818.119\r
+1.717 757.273\r
+1.738 621.918\r
+1.766 466.313\r
+1.791 351.306\r
+1.823 249.864\r
+1.865 175.553\r
+1.908 87.696\r
+1.943 33.654\r
+1.970 0.000\r
diff --git a/datafiles/thrustcurves/AMW_K975.eng b/datafiles/thrustcurves/AMW_K975.eng
new file mode 100644 (file)
index 0000000..1d4be16
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;Animal Motor Works K975 White Wolf\r
+K975WW 54 728 0 1.357 2.5985 AMW\r
+0.017 526.644\r
+0.029 901.850\r
+0.038 1098.918\r
+0.046 1151.722\r
+0.076 1112.867\r
+0.130 1060.063\r
+0.219 1053.089\r
+0.336 1053.089\r
+0.479 1059.066\r
+0.609 1091.944\r
+0.866 1136.778\r
+1.046 1176.630\r
+1.164 1175.634\r
+1.202 1228.437\r
+1.239 1208.511\r
+1.315 1215.486\r
+1.353 1267.293\r
+1.387 1228.437\r
+1.487 1241.389\r
+1.538 1260.319\r
+1.634 1290.900\r
+1.723 1281.241\r
+1.794 1266.297\r
+1.836 1207.515\r
+1.933 1049.103\r
+1.992 851.437\r
+2.080 666.923\r
+2.118 640.521\r
+2.193 462.582\r
+2.269 212.311\r
+2.378 119.854\r
+2.510 0.000\r
diff --git a/datafiles/thrustcurves/AMW_L1060_1.eng b/datafiles/thrustcurves/AMW_L1060_1.eng
new file mode 100644 (file)
index 0000000..4f83de1
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Animal Motor Works L1060 Green Gorilla\r
+L1060GG 75 497 0 1.9188 3.9388 AMW\r
+0.020 258.773\r
+0.024 368.235\r
+0.032 328.386\r
+0.076 427.96\r
+0.100 567.284\r
+0.116 751.352\r
+0.128 791.202\r
+0.169 816.071\r
+0.225 816.071\r
+0.309 875.795\r
+0.518 985.257\r
+0.763 1079.639\r
+1.024 1174.519\r
+1.308 1229.45\r
+1.606 1288.375\r
+1.782 1298.25\r
+1.983 1293.369\r
+2.256 1239.437\r
+2.525 1184.506\r
+2.822 1129.576\r
+3.038 1069.651\r
+3.111 1044.683\r
+3.135 995.145\r
+3.183 835.946\r
+3.239 552.303\r
+3.299 268.661\r
+3.327 164.193\r
+3.339 84.593\r
+3.360 44.783\r
+3.400 0\r
diff --git a/datafiles/thrustcurves/AMW_L1080.eng b/datafiles/thrustcurves/AMW_L1080.eng
new file mode 100644 (file)
index 0000000..985fc4e
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;AMW L1080 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+L1080BB 75 497 100 1.717 3.5922 Animal_Motor_Works \r
+0.024 406.295\r
+0.043 812.489\r
+0.052 895.202\r
+0.088 929.641\r
+0.314 991.55\r
+0.626 1087.69\r
+0.988 1163.44\r
+1.346 1218.99\r
+1.638 1246.25\r
+1.864 1257.91\r
+2.247 1254.84\r
+2.6 1218.99\r
+2.766 1211.92\r
+2.851 1197.78\r
+2.942 1204.85\r
+3.002 1226.06\r
+3.033 1204.85\r
+3.089 1040.23\r
+3.124 874.499\r
+3.15 660.999\r
+3.191 461.336\r
+3.232 275.408\r
+3.268 144.622\r
+3.303 75.744\r
+3.339 41.316\r
+3.39 0\r
diff --git a/datafiles/thrustcurves/AMW_L1111.eng b/datafiles/thrustcurves/AMW_L1111.eng
new file mode 100644 (file)
index 0000000..e8b36e8
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;L1111ST entered by Tim Van Milligan\r
+;For RockSim - http://www.rocksim.com\r
+;Based on TRA Certification paperwork from 06-01-2002\r
+;Initial Mass from Jim Robinson at AMW\r
+;Not approved by TRA or AMW.\r
+L1111ST 75 497 100 1.642 3.517 Animal_Motor_Works \r
+0.015 1023.97\r
+0.1 924.878\r
+0.147 902.857\r
+0.502 1034.98\r
+0.75 1156.1\r
+1.005 1266.2\r
+1.229 1354.29\r
+1.492 1398.33\r
+1.739 1398.33\r
+2.009 1354.29\r
+2.272 1244.18\r
+2.504 1123.07\r
+2.728 968.92\r
+2.782 902.857\r
+2.836 770.732\r
+2.98 363.345\r
+3.053 99.094\r
+3.083 22.021\r
+3.14 0\r
diff --git a/datafiles/thrustcurves/AMW_L1300.eng b/datafiles/thrustcurves/AMW_L1300.eng
new file mode 100644 (file)
index 0000000..f36b59f
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;AMW L1300 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+L1300BB 75 728 100 1.314 2.5454 Animal_Motor_Works \r
+0.014 710.467\r
+0.025 1247.64\r
+0.039 1384.13\r
+0.053 1447.83\r
+0.074 1420.53\r
+0.12 1447.83\r
+0.276 1474.12\r
+0.475 1519.61\r
+0.712 1555\r
+0.942 1586.74\r
+1.147 1562.08\r
+1.36 1534.78\r
+1.484 1551.97\r
+1.537 1551.97\r
+1.569 1497.37\r
+1.59 1406.38\r
+1.604 1451.87\r
+1.615 1333.58\r
+1.64 1168.78\r
+1.689 986.687\r
+1.753 767.749\r
+1.824 512.503\r
+1.891 275.512\r
+1.933 147.816\r
+1.987 74.737\r
+2.06 0\r
diff --git a/datafiles/thrustcurves/AMW_L1400.eng b/datafiles/thrustcurves/AMW_L1400.eng
new file mode 100644 (file)
index 0000000..b83ca81
--- /dev/null
@@ -0,0 +1,35 @@
+; @File: SK-75-6000.txt, @Pts-I: 3609, @Pts-O: 31, @Sm: 6, @CO: 5%\r
+; @TI: 4740.56, @TIa: 4732.91, @TIe: 0.0%, @ThMax: 1908.398, @ThAvg: 1382.678, @Tb: 3.423\r
+; Exported using ThrustCurveTool, www.ThrustGear.com, by John DeMar\r
+L1400SK 75 785 P 2.8267 5.1985 AMW\r
+  0.0        68.1234\r
+  0.0040     193.7893\r
+  0.016      690.259\r
+  0.021      814.579\r
+  0.027      900.741\r
+  0.045      997.475\r
+  0.076      1251.156\r
+  0.092      1354.553\r
+  0.107      1405.971\r
+  0.132      1440.082\r
+  0.169      1453.774\r
+  0.368      1397.446\r
+  0.525      1411.875\r
+  0.705      1488.288\r
+  1.082      1734.489\r
+  1.414      1906.629\r
+  1.556      1875.238\r
+  1.766      1882.261\r
+  1.899      1803.008\r
+  2.142      1745.497\r
+  2.34       1659.082\r
+  2.504      1522.458\r
+  2.58       1402.287\r
+  2.819      844.839\r
+  2.847      841.674\r
+  2.893      730.795\r
+  3.068      406.536\r
+  3.176      265.8\r
+  3.425      94.9644\r
+  3.608      0.874524\r
+  3.609      0\r
diff --git a/datafiles/thrustcurves/AMW_L666.eng b/datafiles/thrustcurves/AMW_L666.eng
new file mode 100644 (file)
index 0000000..7379b89
--- /dev/null
@@ -0,0 +1,34 @@
+;Animal Motor Works 75-3500\r
+L666SK 75 497 0 1.8877 3.5344 AMW\r
+0.096  105.880\r
+0.175  509.783\r
+0.312  549.481\r
+0.449  577.319\r
+0.586  602.900\r
+0.722  615.605\r
+0.859  632.540\r
+0.996  652.072\r
+1.133  671.418\r
+1.270  685.671\r
+1.407  701.286\r
+1.543  718.069\r
+1.680  734.116\r
+1.817  753.292\r
+1.954  771.589\r
+2.091  790.453\r
+2.228  819.222\r
+2.364  846.663\r
+2.501  874.629\r
+2.638  890.083\r
+2.775  898.271\r
+2.912  899.312\r
+3.049  881.683\r
+3.185  845.157\r
+3.322  768.451\r
+3.459  672.771\r
+3.596  525.466\r
+3.733  304.694\r
+3.870  86.663\r
+3.968  0.000\r
+;\r
+;\r
diff --git a/datafiles/thrustcurves/AMW_L700.eng b/datafiles/thrustcurves/AMW_L700.eng
new file mode 100644 (file)
index 0000000..0f7f0ce
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;\r
+L700BB  75.0 368.00 100 1.19310 2.73200 AMW\r
+   0.02     221.87 \r
+   0.03     399.33 \r
+   0.05     467.56 \r
+   0.08     494.89 \r
+   0.13     498.41 \r
+   0.24     535.99 \r
+   0.48     614.67 \r
+   0.77     683.20 \r
+   1.23     755.25 \r
+   1.62     789.72 \r
+   1.92     810.42 \r
+   2.26     821.14 \r
+   2.58     817.85 \r
+   2.91     801.07 \r
+   3.14     773.94 \r
+   3.25     750.13 \r
+   3.32     743.39 \r
+   3.37     729.83 \r
+   3.42     688.83 \r
+   3.46     593.37 \r
+   3.50     484.14 \r
+   3.53     368.18 \r
+   3.57     248.80 \r
+   3.62     149.82 \r
+   3.66      61.13 \r
+   3.72       0.00 \r
diff --git a/datafiles/thrustcurves/AMW_L777_1.eng b/datafiles/thrustcurves/AMW_L777_1.eng
new file mode 100644 (file)
index 0000000..a908a0d
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+;Animal Motor Works L777 White Wolf\r
+L777WW 75 497 0 1.7623 3.6987 AMW\r
+0.025 140.882\r
+0.064 209.474\r
+0.108 360.055\r
+0.204 652.185\r
+0.360 641.518\r
+0.373 693.745\r
+0.418 683.28\r
+0.528 730.073\r
+0.670 761.268\r
+0.761 781.998\r
+0.787 802.828\r
+0.871 802.728\r
+1.065 854.754\r
+1.338 911.811\r
+1.668 963.636\r
+1.914 989.498\r
+2.115 1000.16\r
+2.368 962.831\r
+2.647 926\r
+2.985 878.603\r
+3.303 805.143\r
+3.472 752.815\r
+3.550 705.72\r
+3.602 648.26\r
+3.647 611.631\r
+3.693 512.409\r
+3.779 334.897\r
+3.857 178.216\r
+3.935 89.379\r
+3.981 26.687\r
+4.050 0\r
diff --git a/datafiles/thrustcurves/AMW_L900.eng b/datafiles/thrustcurves/AMW_L900.eng
new file mode 100644 (file)
index 0000000..4299eed
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;AMW L900 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+L900RR 75 497 100 1.771 3.5888 Animal_Motor_Works \r
+0.029 464.292\r
+0.053 630.937\r
+0.059 684.506\r
+0.096 702.328\r
+0.133 696.387\r
+0.201 714.311\r
+0.486 803.524\r
+0.777 910.661\r
+1.099 988.093\r
+1.26 1041.16\r
+1.284 1071.37\r
+1.378 1053.24\r
+1.607 1101.57\r
+1.917 1142.86\r
+2.208 1173.56\r
+2.413 1160.98\r
+2.624 1107.62\r
+2.866 976.211\r
+3.053 886.897\r
+3.208 839.27\r
+3.314 827.388\r
+3.382 809.465\r
+3.432 720.252\r
+3.495 547.564\r
+3.57 345.273\r
+3.627 214.273\r
+3.714 77.382\r
+3.79 0\r
diff --git a/datafiles/thrustcurves/AMW_M1350.eng b/datafiles/thrustcurves/AMW_M1350.eng
new file mode 100644 (file)
index 0000000..c3799a6
--- /dev/null
@@ -0,0 +1,21 @@
+;\r
+;Animal Motor Works M1350 White Wolf\r
+M1350WW  75 781 0 2.92700 5.40300 AMW\r
+0.03 1197.771588\r
+0.04 1465.181058\r
+0.07 1660.167131\r
+0.09 1665.738162\r
+0.16 1587.743733\r
+0.45 1587.743733\r
+0.61 1576.601671\r
+1.86 1649.02507\r
+2.27 1643.454039\r
+2.64 1598.885794\r
+3.18 1504.178273\r
+3.29 1353.760446\r
+3.41 991.643454\r
+3.49 841.2256267\r
+3.62 646.2395543\r
+3.74 428.9693593\r
+3.90 373.2590529\r
+4.22 0\r
diff --git a/datafiles/thrustcurves/AMW_M1480.eng b/datafiles/thrustcurves/AMW_M1480.eng
new file mode 100644 (file)
index 0000000..10efe8a
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;AMW M1480 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+M1480RR 75 785 100 3 5.5248 Animal_Motor_Works \r
+0.022 713.002\r
+0.032 1254.68\r
+0.055 1473.37\r
+0.078 1569.11\r
+0.156 1569.11\r
+0.352 1559.03\r
+0.642 1597.33\r
+0.974 1644.69\r
+1.289 1702.13\r
+1.52 1739.42\r
+1.918 1796.87\r
+2.279 1814.83\r
+2.481 1796.87\r
+2.707 1739.42\r
+2.968 1644.69\r
+3.058 1616.47\r
+3.135 1520.73\r
+3.218 1378.64\r
+3.284 1217.39\r
+3.332 1065.22\r
+3.344 1140.8\r
+3.368 1016.85\r
+3.41 741.522\r
+3.5 522.935\r
+3.613 275.727\r
+3.691 171.12\r
+3.768 66.553\r
+3.85 0\r
diff --git a/datafiles/thrustcurves/AMW_M1730.eng b/datafiles/thrustcurves/AMW_M1730.eng
new file mode 100644 (file)
index 0000000..5c636e2
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;Animal Motor Works 98-11000\r
+M1730SK 98 870 0 4.9452 9.8718 AMW\r
+0.040  682.642\r
+0.064  1153.387\r
+0.221  1354.665\r
+0.269  1414.771\r
+0.381  1458.026\r
+0.541  1526.924\r
+0.701  1589.200\r
+0.861  1675.203\r
+1.021  1732.669\r
+1.181  1802.227\r
+1.341  1886.644\r
+1.500  1973.713\r
+1.660  2070.514\r
+1.820  2183.822\r
+1.980  2299.313\r
+2.140  2433.862\r
+2.300  2568.119\r
+2.460  2679.423\r
+2.620  2638.376\r
+2.780  2484.185\r
+2.940  2306.038\r
+3.099  2173.849\r
+3.259  2074.688\r
+3.419  1961.303\r
+3.579  1807.810\r
+3.739  1640.258\r
+3.899  1303.035\r
+4.059  940.600\r
+4.219  567.152\r
+4.379  309.143\r
+4.539  188.981\r
+4.637    0.000\r
+;\r
diff --git a/datafiles/thrustcurves/AMW_M1850.eng b/datafiles/thrustcurves/AMW_M1850.eng
new file mode 100644 (file)
index 0000000..72764e0
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+; Animal Motor Works M1850GG\r
+; estimated from TRA graph by John DeMar jsdemar@syr.edu\r
+; motor mass is a guess based on similar types\r
+M1850GG  75 781 0 3.3750 4.5000 AMW\r
+   0.08     979.00 \r
+   0.13    1180.00 \r
+   0.28    1290.00 \r
+   0.33    1468.00 \r
+   0.73    1936.00 \r
+   1.33    2202.00 \r
+   1.73    2279.00 \r
+   2.58    2105.00 \r
+   2.83    2007.00 \r
+   2.88    1860.00 \r
+   3.08     538.00 \r
+   3.20     174.00 \r
+   3.30       0.00 \r
diff --git a/datafiles/thrustcurves/AMW_M1850_1.eng b/datafiles/thrustcurves/AMW_M1850_1.eng
new file mode 100644 (file)
index 0000000..48a109a
--- /dev/null
@@ -0,0 +1,30 @@
+;\r
+;Animal Motor Works M1850 Green Gorilla\r
+M1850GG  75 781 0 3.37000 5.85100 AMW\r
+0.12 1201.01994\r
+0.25 1321.121934\r
+0.37 1579.11881\r
+0.50 1699.220804\r
+0.62 1846.01213\r
+0.75 1930.528348\r
+0.87 1997.251678\r
+1.00 2059.526786\r
+1.12 2126.250116\r
+1.25 2192.973446\r
+1.37 2224.111\r
+1.50 2246.35211\r
+1.62 2268.59322\r
+1.75 2277.489664\r
+1.87 2268.59322\r
+2.00 2246.35211\r
+2.12 2224.111\r
+2.25 2192.973446\r
+2.37 2166.284114\r
+2.50 2144.043004\r
+2.62 2099.560784\r
+2.75 2046.18212\r
+2.87 1912.73546\r
+3.00 831.817514\r
+3.12 311.37554\r
+3.25 84.516218\r
+3.3 0.000\r
diff --git a/datafiles/thrustcurves/AMW_M1900.eng b/datafiles/thrustcurves/AMW_M1900.eng
new file mode 100644 (file)
index 0000000..8b85d34
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+;AMW M1900 RASP.ENG file made from NAR published data\r
+;File produced April 19, 2004\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+M1900BB 75 785 100 2.733 5.4225 Animal_Motor_Works \r
+0.018 1109.21\r
+0.044 1761.75\r
+0.061 1910.65\r
+0.085 1938.62\r
+0.159 1929.63\r
+0.29 1956.62\r
+0.409 2031.56\r
+0.438 1974.6\r
+0.569 2011.58\r
+0.815 2104.51\r
+1.073 2197.44\r
+1.401 2280.39\r
+1.688 2324.7\r
+1.905 2297.37\r
+2.073 2241.41\r
+2.254 2138.49\r
+2.397 2063.54\r
+2.479 2016.57\r
+2.54 2025.57\r
+2.581 2006.58\r
+2.63 1885.67\r
+2.716 1493.94\r
+2.805 1120.21\r
+2.887 840.605\r
+2.972 569.996\r
+3.046 299.488\r
+3.119 150.193\r
+3.168 56.829\r
+3.23 0\r
diff --git a/datafiles/thrustcurves/AMW_M2500.eng b/datafiles/thrustcurves/AMW_M2500.eng
new file mode 100644 (file)
index 0000000..6634e31
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Animal Motor Works M2500 Green Gorilla\r
+M2500GG 75 1039 0 4.248 7.5515 AMW\r
+0.026 1288.791\r
+0.053 2021.398\r
+0.079 2140.011\r
+0.123 2105.125\r
+0.207 2117.086\r
+0.540 2309.458\r
+0.971 2560.637\r
+1.265 2727.094\r
+1.480 2836.736\r
+1.678 2920.462\r
+1.757 2980.267\r
+1.946 2995.51\r
+2.047 2959.335\r
+2.240 2889.563\r
+2.310 2854.677\r
+2.486 2820.788\r
+2.526 2880.593\r
+2.592 2773.941\r
+2.653 2821.785\r
+2.706 2752.012\r
+2.758 2752.012\r
+2.807 2763.973\r
+2.842 2504.82\r
+2.886 2115.092\r
+2.930 1630.674\r
+2.987 1051.565\r
+3.040 437.571\r
+3.057 284.072\r
+3.079 142.434\r
+3.110 0\r
diff --git a/datafiles/thrustcurves/AMW_M3000.eng b/datafiles/thrustcurves/AMW_M3000.eng
new file mode 100644 (file)
index 0000000..c5b66ce
--- /dev/null
@@ -0,0 +1,32 @@
+;\r
+; Animal Motor Works M3000ST\r
+; estimated from TRA graph by Rob Bazinet rbazinet66@hotmail.com\r
+; motor mass is a guess based on similar types\r
+M3000ST  75 1038 0 3.8190 6.72 AMW\r
+   0.032    2494.225\r
+   0.113    2621.05  \r
+   0.242    2705.6\r
+   0.355    2811.288\r
+   0.435    2895.838\r
+   0.5      2959.25\r
+   0.645    3128.35\r
+   0.75     3297.45\r
+   0.871    3382\r
+   0.968    3551.1\r
+   1.032    3656.788\r
+   1.145    3804.75\r
+   1.355    3973.85\r
+   1.452    4037.263\r
+   1.629    4079.538\r
+   1.742    4142.95\r
+   1.903    4185.225\r
+   1.935    3847.025\r
+   2.081    3424.275\r
+   2.129    2959.25\r
+   2.177    2536.5\r
+   2.194    2113.75\r
+   2.226    1691\r
+   2.274    1268.25\r
+   2.323    845.5\r
+   2.403    422.75\r
+   2.5      0\r
diff --git a/datafiles/thrustcurves/AMW_N2020.eng b/datafiles/thrustcurves/AMW_N2020.eng
new file mode 100644 (file)
index 0000000..d26216d
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;Animal Motor Works 98-11000\r
+N2020WT 98 870 0 5.1609 9.9693 AMW\r
+.106   1941.344\r
+0.221  2151.149\r
+0.381  2253.406\r
+0.541  2340.792\r
+0.701  2400.847\r
+0.861  2453.821\r
+1.021  2506.314\r
+1.181  2556.306\r
+1.341  2607.251\r
+1.500  2652.790\r
+1.660  2688.660\r
+1.820  2710.675\r
+1.980  2729.797\r
+2.140  2733.895\r
+2.300  2704.255\r
+2.460  2634.582\r
+2.620  2532.160\r
+2.780  2433.380\r
+2.940  2329.740\r
+3.099  2234.246\r
+3.259  2165.804\r
+3.419  2099.684\r
+3.579  2028.350\r
+3.739  1951.013\r
+3.899  1871.316\r
+4.059  1558.113\r
+4.219  1053.376\r
+4.379  890.506\r
+4.539  636.689\r
+4.998  0.000\r
+\r
+;\r
diff --git a/datafiles/thrustcurves/AMW_N2600.eng b/datafiles/thrustcurves/AMW_N2600.eng
new file mode 100644 (file)
index 0000000..93afa68
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;Animal Motor Works 98-11000\r
+N2600GG 98 870 1000 4.8812 10.4726 Animal_Motor_Works \r
+0.024 1674.37\r
+0.064 1949.62\r
+0.104 2039.52\r
+0.306 2189.98\r
+0.508 2334.45\r
+0.709 2491.23\r
+0.911 2668.93\r
+1.113 2874.7\r
+1.314 3038.83\r
+1.516 3191.29\r
+1.718 3266.01\r
+1.92 3318.98\r
+2.121 3336.18\r
+2.323 3229.26\r
+2.525 3089.68\r
+2.726 2943.98\r
+2.928 2847.69\r
+3.13 2751.68\r
+3.331 2682.22\r
+3.533 2463.48\r
+3.735 1339.63\r
+3.937 269.834\r
+4.034 0\r
diff --git a/datafiles/thrustcurves/AMW_N2700.eng b/datafiles/thrustcurves/AMW_N2700.eng
new file mode 100644 (file)
index 0000000..56d7f90
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;Animal Motor Works 98-11000\r
+N2700BB 98 870 1000 4.7837 9.9308 Animal_Motor_Works \r
+0.027 2229.53\r
+0.069 2476.18\r
+0.111 2539.74\r
+0.36 2723.21\r
+0.527 2863.83\r
+0.735 3016.48\r
+0.943 3141.25\r
+1.151 3241.72\r
+1.359 3335.56\r
+1.567 3519.92\r
+1.775 3425.88\r
+1.983 3420.56\r
+2.191 3356.08\r
+2.399 3270.48\r
+2.607 3182.6\r
+2.815 3098.31\r
+3.023 3002.95\r
+3.231 2888.73\r
+3.439 2266.61\r
+3.647 1498.26\r
+3.855 780.04\r
+4.063 233.545\r
+4.16 0\r
diff --git a/datafiles/thrustcurves/AMW_N4000.eng b/datafiles/thrustcurves/AMW_N4000.eng
new file mode 100644 (file)
index 0000000..e001573
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;Animal Motor Works 98-17500\r
+N4000BB 98 1213 0 6.1026 13.6683 AMW\r
+0.029  4207.591\r
+0.071  4709.549\r
+0.113  4906.310\r
+0.155  5007.780\r
+0.239  5041.557\r
+0.323  4993.595\r
+0.534  5046.912\r
+0.744  5145.819\r
+0.954  5248.063\r
+1.165  5293.196\r
+1.375  5232.456\r
+1.585  5209.528\r
+1.796  5165.473\r
+2.006  5047.698\r
+2.216  4913.086\r
+2.427  4783.447\r
+2.637  4659.163\r
+2.847  4195.994\r
+3.058  2850.731\r
+3.268  1981.973\r
+3.478  1295.536\r
+3.689  907.699\r
+3.899  490.196\r
+4.110  316.338\r
+4.207  0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_E11.eng b/datafiles/thrustcurves/AeroTech_E11.eng
new file mode 100644 (file)
index 0000000..4bdcce9
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;Based On NAR Test Data\r
+;12/23/93\r
+E11J 24 70 4 0.025 0.0624 Aerotech\r
+0.0725446 14.3704\r
+0.16183 17.6296\r
+0.206473 18.3704\r
+0.418527 19.2593\r
+0.731027 18.3704\r
+1.31696 14.2222\r
+1.91964 9.03704\r
+2.51116 2.22222\r
+2.83 0\r
diff --git a/datafiles/thrustcurves/AeroTech_E12.eng b/datafiles/thrustcurves/AeroTech_E12.eng
new file mode 100644 (file)
index 0000000..7ba80db
--- /dev/null
@@ -0,0 +1,42 @@
+;\r
+;\r
+;Aerotech E12JRC RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+E12JRC 24 70 100 0.0303 0.0594 AT\r
+0.054 16.764\r
+0.095 18.33\r
+0.197 16.545\r
+0.313 16.654\r
+0.36 17.211\r
+0.401 16.316\r
+0.442 17.55\r
+0.476 16.206\r
+0.578 16.316\r
+0.666 16.764\r
+0.7 15.649\r
+0.768 16.316\r
+0.89 16.097\r
+1.019 15.649\r
+1.162 14.983\r
+1.23 14.983\r
+1.25 13.968\r
+1.291 14.754\r
+1.332 13.749\r
+1.373 14.197\r
+1.434 13.53\r
+1.488 13.749\r
+1.597 12.635\r
+1.726 11.401\r
+1.828 10.615\r
+1.889 9.613\r
+1.957 9.613\r
+1.998 8.495\r
+2.093 8.607\r
+2.277 7.042\r
+2.487 5.813\r
+3.05 0\r
diff --git a/datafiles/thrustcurves/AeroTech_E15_1.eng b/datafiles/thrustcurves/AeroTech_E15_1.eng
new file mode 100644 (file)
index 0000000..2bd38b2
--- /dev/null
@@ -0,0 +1,41 @@
+; Aerotech E15 RASP.ENG file made from NAR published data\r
+; File produced July 4, 2000\r
+; Submitted to ThrustCurve.org by Chris Kobel (3/30/07)\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file. The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited\r
+; number of points (32) allowed with wRASP up to v1.6.\r
+E15W 24 70 4-7 .0201 .0501 AT\r
+   0.020 23.330\r
+   0.036 27.318\r
+   0.058 28.840\r
+   0.079 27.171\r
+   0.139 25.638\r
+   0.183 24.263\r
+   0.237 24.106\r
+   0.297 22.426\r
+   0.373 21.964\r
+   0.400 20.894\r
+   0.443 21.355\r
+   0.487 20.442\r
+   0.617 19.833\r
+   0.742 18.457\r
+   0.812 20.000\r
+   0.850 18.006\r
+   0.899 18.467\r
+   1.035 17.711\r
+   1.100 16.945\r
+   1.160 16.945\r
+   1.377 15.736\r
+   1.426 14.656\r
+   1.436 16.198\r
+   1.463 14.813\r
+   1.550 14.361\r
+   1.572 15.432\r
+   1.610 13.752\r
+   1.827 12.839\r
+   2.126 10.098\r
+   2.337 6.116\r
+   2.538 1.369\r
+   2.600 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_E7.eng b/datafiles/thrustcurves/AeroTech_E7.eng
new file mode 100644 (file)
index 0000000..a8f0097
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+;Aerotech E7TRC RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+E7RC 24 70 100 0.0171 0.0484 AT\r
+0.038 6.636\r
+0.063 10.056\r
+0.087 11.019\r
+0.134 11.42\r
+0.206 11.58\r
+0.312 11.149\r
+0.466 10.738\r
+0.667 9.777\r
+0.94 8.132\r
+1.223 6.281\r
+1.484 5.182\r
+1.709 4.701\r
+2.112 4.423\r
+2.776 4.279\r
+3.31 4.205\r
+3.926 4.266\r
+4.401 4.192\r
+4.638 4.258\r
+4.744 4.119\r
+5.124 3.979\r
+5.219 3.977\r
+5.266 3.156\r
+5.313 1.992\r
+5.36 0.965\r
+5.43 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F13.eng b/datafiles/thrustcurves/AeroTech_F13.eng
new file mode 100644 (file)
index 0000000..7de9988
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+;Aerotech F13RCJ RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F13RCJ 32 107 100 0.0323 0.1105 AT\r
+0.048 15.309\r
+0.084 18.629\r
+0.143 19.98\r
+0.311 18.968\r
+0.538 18.172\r
+0.729 17.138\r
+0.992 15.428\r
+1.279 13.828\r
+1.673 12.456\r
+1.984 11.879\r
+2.044 12.227\r
+2.139 11.313\r
+2.378 11.193\r
+2.51 11.084\r
+2.558 12.108\r
+2.641 10.855\r
+2.976 10.736\r
+3.49 10.627\r
+3.873 10.507\r
+3.992 10.965\r
+4.028 10.627\r
+4.41 10.507\r
+4.625 10.736\r
+4.769 9.941\r
+4.829 8.684\r
+4.865 6.742\r
+4.96 3.199\r
+5.02 1.485\r
+5.1 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F16.eng b/datafiles/thrustcurves/AeroTech_F16.eng
new file mode 100644 (file)
index 0000000..898c017
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Aerotech F16RCJ RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F16RCJ 32 107 100 0.0625 0.1404 AT\r
+0.046 26.35\r
+0.116 22.388\r
+0.139 21.374\r
+0.185 21.886\r
+0.22 20.54\r
+0.301 19.696\r
+0.498 18.35\r
+0.579 19.194\r
+0.637 16.492\r
+0.718 18.35\r
+0.834 18.35\r
+0.95 18.35\r
+1.054 19.194\r
+1.147 17.848\r
+1.181 18.853\r
+1.263 17.336\r
+1.436 18.009\r
+1.633 17.165\r
+1.784 17.336\r
+1.865 18.682\r
+1.934 16.834\r
+1.981 17.336\r
+2.178 16.332\r
+2.375 16.332\r
+2.502 18.18\r
+2.664 15.659\r
+2.896 15.488\r
+3.29 13.8\r
+3.718 11.611\r
+4.181 9.426\r
+4.888 5.891\r
+5.69 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F20.eng b/datafiles/thrustcurves/AeroTech_F20.eng
new file mode 100644 (file)
index 0000000..18edb27
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;\r
+F20EJ 29 83 4-7 0.03 0.0746 AeroTech\r
+0.01 52.08\r
+0.03 49.81\r
+0.06 46.98\r
+0.1 45.56\r
+0.15 44.49\r
+0.18 45.55\r
+0.21 43.42\r
+0.24 43.78\r
+0.32 43.77\r
+0.36 44.11\r
+0.44 43.04\r
+0.45 40.58\r
+0.53 39.86\r
+0.62 38.08\r
+0.76 36.3\r
+0.8 37.35\r
+0.84 34.88\r
+0.89 36.99\r
+0.9 33.46\r
+1.03 30.61\r
+1.06 32.02\r
+1.09 29.55\r
+1.23 26\r
+1.32 22.45\r
+1.35 23.16\r
+1.36 21.39\r
+1.58 16.42\r
+1.8 11.1\r
+2.01 6.48\r
+2.19 3.63\r
+2.39 1.13\r
+2.68 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F22.eng b/datafiles/thrustcurves/AeroTech_F22.eng
new file mode 100644 (file)
index 0000000..8cd24a5
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+;Aerotech F22 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F22 29 125 4-7 0.0463 0.1342 AT\r
+0.014 11.527\r
+0.075 20.126\r
+0.157 26.572\r
+0.293 29.113\r
+0.382 30.278\r
+0.45 29.69\r
+0.539 30.667\r
+0.614 30.089\r
+0.662 31.15\r
+0.771 30.478\r
+0.948 29.89\r
+0.996 28.714\r
+1.078 28.136\r
+1.187 27.738\r
+1.289 26.761\r
+1.337 26.96\r
+1.412 25.984\r
+1.474 25.008\r
+1.515 26.173\r
+1.542 24.808\r
+1.706 22.856\r
+1.938 20.903\r
+2.101 18.173\r
+2.129 19.338\r
+2.251 16.21\r
+2.402 13.48\r
+2.64 8.791\r
+2.961 3.32\r
+3.31 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F23.eng b/datafiles/thrustcurves/AeroTech_F23.eng
new file mode 100644 (file)
index 0000000..e6c5c2b
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;F23FJ Motor Thrust Curve created by Tim Van Milligan\r
+;for RockSim Users - www.rocksim.com\r
+;file produced March 2, 2005\r
+;Based on data supplied by Aerotech for the newer molded case F23 econojet.\r
+F23FJ 29 83 4-7 0.033 0.0839 AeroTech\r
+0.03 48.7\r
+0.05 43.11\r
+0.08 41.41\r
+0.1 42.26\r
+0.13 40.84\r
+0.17 39.42\r
+0.23 38.85\r
+0.27 38.85\r
+0.3 37.44\r
+0.31 38.57\r
+0.36 37.72\r
+0.43 36.59\r
+0.5 36.02\r
+0.56 36.02\r
+0.59 34.6\r
+0.69 33.18\r
+0.77 32.61\r
+0.85 31.2\r
+0.94 29.5\r
+1.04 27.79\r
+1.18 24.39\r
+1.2 25.24\r
+1.25 22.97\r
+1.37 20.98\r
+1.53 16.73\r
+1.69 12.48\r
+1.83 9.07\r
+1.95 5.11\r
+2.07 2.27\r
+2.22 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F23_1.eng b/datafiles/thrustcurves/AeroTech_F23_1.eng
new file mode 100644 (file)
index 0000000..ae21a8c
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Aerotech F23RCWSK RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F23-RC-SK 32 107 100 0.0378 0.1287 AT\r
+0.042 22.644\r
+0.133 28.191\r
+0.161 27.261\r
+0.189 29.57\r
+0.252 31.419\r
+0.343 32.578\r
+0.399 32.348\r
+0.441 33.737\r
+0.476 30.729\r
+0.539 33.507\r
+0.609 34.197\r
+0.777 34.886\r
+0.826 34.656\r
+0.896 36\r
+0.938 34.656\r
+1.015 34.656\r
+1.071 34.197\r
+1.12 33.038\r
+1.218 32.578\r
+1.267 29.81\r
+1.351 29.34\r
+1.393 27.731\r
+1.54 26.802\r
+1.645 24.263\r
+1.799 21.255\r
+1.862 19.866\r
+2.051 15.479\r
+2.317 11.552\r
+2.618 6.7\r
+2.884 3.234\r
+3.185 1.386\r
+3.47 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F25.eng b/datafiles/thrustcurves/AeroTech_F25.eng
new file mode 100644 (file)
index 0000000..b6e3f77
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;F25 Motor Thrust Curve created by Tim Van Milligan\r
+;for RockSim Users - www.rocksim.com\r
+;file produced March 2, 2005\r
+;Based on data supplied by Aerotech for the newer molded case F25.\r
+F25 29 98 4-6-9 0.0388 0.0972 Aerotech\r
+0.039 57.631\r
+0.187 53.491\r
+0.342 51.239\r
+0.5 47.86\r
+1 33.806\r
+1.5 22.94\r
+2 10.135\r
+2.207 4.504\r
+2.69 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F26.eng b/datafiles/thrustcurves/AeroTech_F26.eng
new file mode 100644 (file)
index 0000000..53613c0
--- /dev/null
@@ -0,0 +1,20 @@
+;\r
+;F26FJ Motor Thrust Curve created by Tim Van Milligan\r
+;for RockSim Users - www.rocksim.com\r
+;File created March 2, 2005\r
+;Based on data supplied by Aerotech prior to NAR certification.\r
+F26FJ 29 98 6-9 0.0431 0.1007 Aerotech\r
+0.041 38.289\r
+0.114 36.318\r
+0.293 34.347\r
+0.497 32.939\r
+0.774 32.376\r
+1 31.25\r
+1.254 28.716\r
+1.498 25.338\r
+1.743 22.241\r
+2.003 17.737\r
+2.077 15.484\r
+2.304 5.349\r
+2.484 1.689\r
+2.61 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F32.eng b/datafiles/thrustcurves/AeroTech_F32.eng
new file mode 100644 (file)
index 0000000..caf0e09
--- /dev/null
@@ -0,0 +1,36 @@
+; @File: F32T.txt, @Pts-I: 1501, @Pts-O: 32, @Sm: 3, @CO: 5%\r
+; @TI: 56.7109, @TIa: 56.4715, @TIe: 0.0%, @ThMax: 58.525, @ThAvg: 34.2667, @Tb: 1.648\r
+; Exported using ThrustCurveTool, www.ThrustGear.com\r
+F32 24 90 4-6-8 0.0258 0.064 Aerotech/RCS\r
+0.0 0.00669778\r
+0.17 0.236738\r
+0.192 0.794052\r
+0.202 2.68628\r
+0.204 3.57052\r
+0.208 7.96887\r
+0.21 11.79011\r
+0.212 16.82641\r
+0.22 39.2314\r
+0.224 46.779\r
+0.228 51.8968\r
+0.232 55.296\r
+0.236 56.9612\r
+0.258 58.4048\r
+0.288 55.2426\r
+0.316 53.4728\r
+0.394 49.5892\r
+0.458 47.4002\r
+0.73 41.2237\r
+0.904 39.3815\r
+1.11 35.6689\r
+1.198 35.0946\r
+1.22 33.8331\r
+1.2599 33.5013\r
+1.4779 27.3792\r
+1.4899 27.7527\r
+1.5099 25.4378\r
+1.6759 11.26592\r
+1.7679 5.94688\r
+1.8519 2.91383\r
+1.9519 0.745781\r
+2.0639 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_F32_1.eng b/datafiles/thrustcurves/AeroTech_F32_1.eng
new file mode 100644 (file)
index 0000000..d4b5b65
--- /dev/null
@@ -0,0 +1,40 @@
+;\r
+;Aerotech F32 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F32 24 124 5-10-15 0.0377 0.0814 AeroTech\r
+0.025 46.699\r
+0.031 51.846\r
+0.061 55.64\r
+0.085 52.868\r
+0.126 47.37\r
+0.245 45.637\r
+0.34 44.946\r
+0.394 42.873\r
+0.447 42.873\r
+0.572 41.14\r
+0.72 39.408\r
+0.744 40.78\r
+0.786 38.026\r
+1.041 35.592\r
+1.136 33.179\r
+1.177 34.541\r
+1.225 32.818\r
+1.379 31.436\r
+1.474 30.394\r
+1.635 28.311\r
+1.676 27.28\r
+1.694 29.683\r
+1.712 26.929\r
+1.854 25.537\r
+1.943 23.815\r
+2.092 21.051\r
+2.187 18.287\r
+2.276 13.82\r
+2.382 7.281\r
+2.525 2.457\r
+2.72 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F32_1.rse b/datafiles/thrustcurves/AeroTech_F32_1.rse
new file mode 100644 (file)
index 0000000..149dfe3
--- /dev/null
@@ -0,0 +1,48 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="214.23" Itot="79.202" Type="single-use" auto-calc-cg="1" auto-calc-mass="1" avgThrust="29.118" burn-time="2.72" cgDiv="10" cgFix="1" cgStep="-1." code="F32" delays="5,10,15" dia="24." exitDia="0." initWt="81.4" len="124." mDiv="10" mFix="1" mStep="-1." massFrac="46.31" mfg="Aerotech" peakThrust="55.64" propWt="37.7" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<comments>Aerotech F32 RASP.ENG file made from NAR published data\r
+File produced July 4, 2000\r
+The total impulse, peak thrust, average thrust and burn time are\r
+the same as the averaged static test data on the NAR web site in\r
+the certification file. The curve drawn with these data points is as\r
+close to the certification curve as can be with such a limited\r
+number of points (32) allowed with wRASP up to v1.6.\r
+</comments>\r
+<data>\r
+<eng-data cg="62." f="0." m="37.7" t="0."/>\r
+<eng-data cg="62." f="46.699" m="37.4221" t="0.025"/>\r
+<eng-data cg="62." f="51.846" m="37.2814" t="0.031"/>\r
+<eng-data cg="62." f="55.64" m="36.514" t="0.061"/>\r
+<eng-data cg="62." f="52.868" m="35.8942" t="0.085"/>\r
+<eng-data cg="62." f="47.37" m="34.9161" t="0.126"/>\r
+<eng-data cg="62." f="45.637" m="32.2819" t="0.245"/>\r
+<eng-data cg="62." f="44.946" m="30.2339" t="0.34"/>\r
+<eng-data cg="62." f="42.873" m="29.1052" t="0.394"/>\r
+<eng-data cg="62." f="42.873" m="28.0236" t="0.447"/>\r
+<eng-data cg="62." f="41.14" m="25.5243" t="0.572"/>\r
+<eng-data cg="62." f="39.408" m="22.6871" t="0.72"/>\r
+<eng-data cg="62." f="40.78" m="22.229" t="0.744"/>\r
+<eng-data cg="62." f="38.026" m="21.4413" t="0.786"/>\r
+<eng-data cg="62." f="35.592" m="16.9735" t="1.041"/>\r
+<eng-data cg="62." f="33.179" m="15.4186" t="1.136"/>\r
+<eng-data cg="62." f="34.541" m="14.7578" t="1.177"/>\r
+<eng-data cg="62." f="32.818" m="13.9882" t="1.225"/>\r
+<eng-data cg="62." f="31.436" m="11.6332" t="1.379"/>\r
+<eng-data cg="62." f="30.394" m="10.2353" t="1.474"/>\r
+<eng-data cg="62." f="28.311" m="7.98582" t="1.635"/>\r
+<eng-data cg="62." f="27.28" m="7.44337" t="1.676"/>\r
+<eng-data cg="62." f="29.683" m="7.19934" t="1.694"/>\r
+<eng-data cg="62." f="26.929" m="6.95681" t="1.712"/>\r
+<eng-data cg="62." f="25.537" m="5.18369" t="1.854"/>\r
+<eng-data cg="62." f="23.815" m="4.13832" t="1.943"/>\r
+<eng-data cg="62." f="21.051" m="2.54729" t="2.092"/>\r
+<eng-data cg="62." f="18.287" m="1.65787" t="2.187"/>\r
+<eng-data cg="62." f="13.82" m="0.977781" t="2.276"/>\r
+<eng-data cg="62." f="7.281" m="0.445449" t="2.382"/>\r
+<eng-data cg="62." f="2.457" m="0.114029" t="2.525"/>\r
+<eng-data cg="62." f="0." m="0." t="2.72"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_F37.eng b/datafiles/thrustcurves/AeroTech_F37.eng
new file mode 100644 (file)
index 0000000..89c087f
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+;Aerotech F37 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F37 29 99 6-10-14 0.0282 0.1086 AT\r
+0.018 7.251\r
+0.053 13.626\r
+0.088 22.331\r
+0.106 25.227\r
+0.141 26.385\r
+0.183 28.411\r
+0.26 37.685\r
+0.31 41.449\r
+0.422 44.035\r
+0.524 45.183\r
+0.59 46.47\r
+0.682 45.153\r
+0.864 43.386\r
+0.934 40.471\r
+1.042 35.23\r
+1.151 29.699\r
+1.246 25.037\r
+1.354 19.796\r
+1.445 13.397\r
+1.498 7.586\r
+1.54 3.226\r
+1.6 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F40.eng b/datafiles/thrustcurves/AeroTech_F40.eng
new file mode 100644 (file)
index 0000000..ec729de
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+;Aerotech F40 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F40 29 124 4-7-10 0.04 0.126 AT\r
+0.015 17.776\r
+0.049 41.016\r
+0.089 58.793\r
+0.124 62.9\r
+0.148 65.173\r
+0.183 62.442\r
+0.242 68.07\r
+0.292 60.617\r
+0.321 61.524\r
+0.415 60.617\r
+0.524 58.334\r
+0.741 52.412\r
+0.87 48.314\r
+0.889 49.221\r
+0.914 47.397\r
+1.102 40.109\r
+1.285 33.728\r
+1.492 25.064\r
+1.665 15.952\r
+1.808 8.659\r
+1.942 3.19\r
+2.06 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F42.eng b/datafiles/thrustcurves/AeroTech_F42.eng
new file mode 100644 (file)
index 0000000..092f2ee
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;F42T Motor Thrust Curve created by Tim Van Milligan\r
+;for RockSim Users - www.rocksim.com\r
+;Based on data supplied by Aerotech prior to NAR certification.\r
+F42T 29 83 4-8 0.027 0.076 Aerotech\r
+0.01 68.694\r
+0.029 65.879\r
+0.202 62.5\r
+0.511 51.802\r
+0.739 43.356\r
+0.993 31.532\r
+1.02 29.279\r
+1.072 23.086\r
+1.199 9.572\r
+1.262 4.505\r
+1.319 2.815\r
+1.47 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F50.eng b/datafiles/thrustcurves/AeroTech_F50.eng
new file mode 100644 (file)
index 0000000..9b33bfb
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;Aerotech F50 RASP.ENG file made by Tim Van Milligan\r
+;For RockSim www.RockSim.com\r
+;File Created March 2, 2005\r
+;Thrust curve supplied by Aerotech for the molded case F50T motors.\r
+F50T 29 98 4-6-9 0.0336 0.0898 AeroTech\r
+0.013 73.762\r
+0.0326 70.383\r
+0.267 69.82\r
+0.518 67.005\r
+0.792 56.87\r
+0.906 50.676\r
+1 44.482\r
+1.036 39.978\r
+1.107 23.649\r
+1.199 6.194\r
+1.316 1.126\r
+1.43 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F52.eng b/datafiles/thrustcurves/AeroTech_F52.eng
new file mode 100644 (file)
index 0000000..e808de9
--- /dev/null
@@ -0,0 +1,39 @@
+;\r
+;Aerotech F52 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F52 29 124 5-8-11 0.0366 0.1214 AT\r
+0.012 46.899\r
+0.033 61.778\r
+0.056 69.441\r
+0.097 73.483\r
+0.115 76.636\r
+0.13 74.381\r
+0.153 74.82\r
+0.168 78.422\r
+0.182 78.95\r
+0.206 77.963\r
+0.238 77.504\r
+0.258 73.892\r
+0.314 72.974\r
+0.39 72.046\r
+0.428 70.679\r
+0.501 65.699\r
+0.565 62.975\r
+0.688 58.874\r
+0.749 56.15\r
+0.837 52.517\r
+0.901 49.793\r
+0.971 46.161\r
+1.088 39.365\r
+1.144 34.386\r
+1.173 29.417\r
+1.222 20.376\r
+1.275 13.151\r
+1.339 5.461\r
+1.389 1.838\r
+1.42 0\r
diff --git a/datafiles/thrustcurves/AeroTech_F62.eng b/datafiles/thrustcurves/AeroTech_F62.eng
new file mode 100644 (file)
index 0000000..f00317c
--- /dev/null
@@ -0,0 +1,33 @@
+; Aerotech F62T (Blue Thunder)\r
+;\r
+; AeroTech RMS-29/60 Easy Access Reloadable Motor Hardware.\r
+;\r
+; RASP.ENG file made from manufacturers catalog data.\r
+;\r
+; File produced May, 17 2004.\r
+;\r
+; The file was produced by scaling 16 data points off\r
+; the thrust curves in the manufacturers catalog.\r
+;\r
+; The F62T cannot be found on thrustcurve.org.\r
+; Hence the amateur file production.\r
+; The file was created by Stan Hemphill.\r
+; Contact at stanley_hemphill@hotmail.com.\r
+;\r
+; Motor Dia Len Delay Prop Gross Mfg\r
+F62T 29 99 6-8-9-10-11-13-14-16-18 0.025 0.109 AT\r
+0.0046 053.6364\r
+0.0416 055.2727\r
+0.0909 058.3636\r
+0.1356 061.6364\r
+0.1649 064.9091\r
+0.1864 067.6364\r
+0.5085 067.6364\r
+0.5701 064.7273\r
+0.6687 060.0000\r
+0.7427 055.0909\r
+0.7982 049.6364\r
+0.9029 048.7273\r
+0.9492 024.7273\r
+0.9661 020.1818\r
+0.9985 000.0000\r
diff --git a/datafiles/thrustcurves/AeroTech_F72.eng b/datafiles/thrustcurves/AeroTech_F72.eng
new file mode 100644 (file)
index 0000000..25d9203
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Aerotech F72 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F72 24 124 5-10-15 0.0368 0.0742 AeroTech\r
+0.012 62.586\r
+0.017 84.986\r
+0.02 98.78\r
+0.03 94.748\r
+0.05 90.152\r
+0.069 82.688\r
+0.089 85.556\r
+0.104 80.39\r
+0.136 83.255\r
+0.146 80.96\r
+0.176 82.688\r
+0.198 78.672\r
+0.213 80.96\r
+0.253 80.39\r
+0.315 80.96\r
+0.38 79.821\r
+0.429 79.241\r
+0.489 78.092\r
+0.523 78.672\r
+0.536 75.225\r
+0.675 73.496\r
+0.699 67.182\r
+0.719 68.331\r
+0.747 64.884\r
+0.769 66.033\r
+0.858 60.867\r
+0.923 52.824\r
+0.98 40.195\r
+1.012 29.864\r
+1.034 20.092\r
+1.089 11.48\r
+1.21 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G104.eng b/datafiles/thrustcurves/AeroTech_G104.eng
new file mode 100644 (file)
index 0000000..8045a05
--- /dev/null
@@ -0,0 +1,45 @@
+;\r
+; Aerotech G104T (Blue Thunder)\r
+;\r
+; AeroTech RMS-29/100 EZ Access Reloadable Motors.\r
+;\r
+; File produced 28 Feb 2005.\r
+;\r
+; The file was produced by scaling data points off the\r
+; thrust curve in the manufacturers catalog sheet.\r
+;\r
+; The motor is not yet on www.thrustcurve.org.\r
+; Hence the amateur file production.\r
+; The file was created by Stan Hemphill.\r
+; Contact at stanley_hemphill@hotmail.com.\r
+;\r
+; Motor Dia  Len  Delay Prop Gross Mfg\r
+G104T 29 124 6-8-9-10-11-13-14-16-18 0.0408 0.136 AT\r
+0.0067 125.3426\r
+0.0471 123.5424\r
+0.0856 121.9671\r
+0.1019 121.4046\r
+0.1462 121.1795\r
+0.1837 120.8420\r
+0.2029 120.5044\r
+0.2385 118.8167\r
+0.2644 117.2415\r
+0.2798 116.9039\r
+0.3279 116.6789\r
+0.3923 116.6789\r
+0.4298 116.1163\r
+0.4615 114.0910\r
+0.5067 110.1530\r
+0.5404 104.6397\r
+0.5760 096.2010\r
+0.6067 089.5626\r
+0.6817 078.8736\r
+0.7692 067.9595\r
+0.7865 064.9216\r
+0.7990 062.5588\r
+0.8058 058.0582\r
+0.8192 050.5196\r
+0.8385 039.0430\r
+0.8625 027.5664\r
+0.8769 016.6523\r
+0.9019 000.0000\r
diff --git a/datafiles/thrustcurves/AeroTech_G12.eng b/datafiles/thrustcurves/AeroTech_G12.eng
new file mode 100644 (file)
index 0000000..aac501c
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Aerotech G12RC RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G12RC 32 107 100 0.0511 0.131 AT\r
+0.03 18.549\r
+0.117 19.96\r
+0.239 20.64\r
+0.362 20.111\r
+0.519 18.982\r
+0.694 17.138\r
+0.886 15.02\r
+1.131 13.186\r
+1.375 11.915\r
+1.689 11.069\r
+2.021 10.363\r
+2.422 10.232\r
+3.172 9.677\r
+4.114 9.267\r
+5.039 8.857\r
+6.137 8.733\r
+7.132 8.607\r
+7.795 8.335\r
+7.952 8.196\r
+8.074 8.055\r
+8.179 6.924\r
+8.319 4.661\r
+8.476 1.973\r
+8.55 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G25.eng b/datafiles/thrustcurves/AeroTech_G25.eng
new file mode 100644 (file)
index 0000000..02d639e
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Aerotech G25 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G25 29 124 5-10-15 0.0625 0.1197 AeroTech\r
+0.035 30.499\r
+0.047 36.712\r
+0.059 41.18\r
+0.13 40.669\r
+0.177 38.969\r
+0.295 38.969\r
+0.343 40.947\r
+0.413 40.38\r
+0.437 38.69\r
+0.484 39.824\r
+0.532 37.845\r
+0.65 37.557\r
+0.721 38.969\r
+0.803 38.69\r
+0.85 37.279\r
+0.98 39.535\r
+1.063 36.434\r
+1.098 38.124\r
+1.252 37.845\r
+1.37 37.279\r
+1.583 37\r
+1.819 35.3\r
+1.984 33.61\r
+2.185 31.344\r
+2.315 28.809\r
+2.622 24.286\r
+3.024 18.917\r
+3.39 13.838\r
+3.839 7.624\r
+4.323 4.518\r
+4.783 2.541\r
+5.3 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G33.eng b/datafiles/thrustcurves/AeroTech_G33.eng
new file mode 100644 (file)
index 0000000..b0fd50e
--- /dev/null
@@ -0,0 +1,40 @@
+;\r
+;Aerotech G33 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G33 29 124 5-7 0.0722 0.1593 AT\r
+0.027 22.642\r
+0.061 42.201\r
+0.117 47.354\r
+0.243 46.678\r
+0.34 46.339\r
+0.438 47.384\r
+0.48 50.92\r
+0.508 46.359\r
+0.543 47.732\r
+0.662 45.693\r
+0.851 42.28\r
+1.039 41.266\r
+1.116 42.987\r
+1.193 39.226\r
+1.221 42.31\r
+1.312 38.888\r
+1.326 40.609\r
+1.479 38.221\r
+1.675 35.157\r
+1.843 32.77\r
+1.878 36.888\r
+1.899 32.093\r
+1.997 30.382\r
+2.13 26.622\r
+2.263 23.547\r
+2.444 19.11\r
+2.591 13.977\r
+2.752 8.502\r
+2.892 4.743\r
+3.053 2.014\r
+3.27 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G339.eng b/datafiles/thrustcurves/AeroTech_G339.eng
new file mode 100644 (file)
index 0000000..5bf8159
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+; 38-120\r
+;  Created from TRA Certification Record issued 23 Nov 2006\r
+;  Bill Wagstaff - 04/30/07\r
+G339N  38 97  0  0.049  0.190  AT\r
+0.009 371\r
+0.05 375\r
+0.10 375\r
+0.15 364\r
+0.20 349\r
+0.25 310\r
+0.30 264\r
+0.324 257\r
+0.342 39\r
+0.359 0\r
+;\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_G35.eng b/datafiles/thrustcurves/AeroTech_G35.eng
new file mode 100644 (file)
index 0000000..91dac9a
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;\r
+G35EJ 29 98 4-7 0.05 0.1005 AeroTech\r
+0.01 39.14\r
+0.02 76.22\r
+0.05 64.46\r
+0.13 57.54\r
+0.21 57.53\r
+0.24 64.43\r
+0.25 57.06\r
+0.35 56.12\r
+0.43 55.2\r
+0.48 57.49\r
+0.51 52.41\r
+0.55 53.33\r
+0.76 50.54\r
+0.91 50.06\r
+1.11 44.96\r
+1.32 41.24\r
+1.55 35.68\r
+1.6 36.13\r
+1.63 33.36\r
+1.67 34.28\r
+1.8 30.12\r
+2 25.02\r
+2.14 21.32\r
+2.23 19.46\r
+2.3 15.77\r
+2.41 9.76\r
+2.53 6.52\r
+2.65 3.74\r
+2.74 1.88\r
+2.91 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G38.eng b/datafiles/thrustcurves/AeroTech_G38.eng
new file mode 100644 (file)
index 0000000..18fc774
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;Aerotech G38FJ RASP.ENG file made by Tim Van Milligan\r
+;For RockSim www.RockSim.com\r
+;File Created March 2, 2005\r
+;Thrust curve supplied by Aerotech for the molded case G38FJ motors.\r
+G38FJ 29 124 4-7 0.0597 0.1264 Aerotech\r
+0.024 52.928\r
+0.171 48.424\r
+0.497 45.045\r
+1 42.23\r
+1.279 39.978\r
+1.498 36.599\r
+1.783 30.406\r
+2.011 23.086\r
+2.272 10.135\r
+2.467 3.941\r
+2.64 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G40.eng b/datafiles/thrustcurves/AeroTech_G40.eng
new file mode 100644 (file)
index 0000000..cd2f4c3
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;Aerotech G40W RASP.ENG file made by Tim Van Milligan\r
+;For RockSim www.RockSim.com\r
+;File Created March 2, 2005\r
+;Thrust curve supplied by Aerotech for the molded case G40W motors.\r
+G40W 29 124 4-7-10 0.0538 0.123 AeroTech\r
+0.024 74.325\r
+0.057 67.005\r
+0.252 65.879\r
+0.5 63.063\r
+0.765 60.248\r
+1 54.054\r
+1.25 47.298\r
+1.502 36.599\r
+1.751 25.338\r
+1.999 12.951\r
+2.121 3.941\r
+2.3 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G53.eng b/datafiles/thrustcurves/AeroTech_G53.eng
new file mode 100644 (file)
index 0000000..ac94658
--- /dev/null
@@ -0,0 +1,26 @@
+; G53FJ based on Aerotech instruction sheet by C. Kobel 12/9/07\r
+G53FJ 29 124 5-7-10 0.060 0.152 AT\r
+   0.012 44.898\r
+   0.031 71.504\r
+   0.064 80.234\r
+   0.081 83.976\r
+   0.100 86.47\r
+   0.150 84.599\r
+   0.200 81.897\r
+   0.300 78.571\r
+   0.400 76.493\r
+   0.500 73.583\r
+   0.600 70.881\r
+   0.700 67.347\r
+   0.800 63.813\r
+   0.900 60.072\r
+   1.000 54.667\r
+   1.100 47.392\r
+   1.200 39.909\r
+   1.300 32.426\r
+   1.400 25.983\r
+   1.500 20.578\r
+   1.600 10.601\r
+   1.700 3.949\r
+   1.800 1.247\r
+   1.850 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_G54.eng b/datafiles/thrustcurves/AeroTech_G54.eng
new file mode 100644 (file)
index 0000000..8b0dd00
--- /dev/null
@@ -0,0 +1,39 @@
+;\r
+;Aerotech G54 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G54 29 124 6-10-14 0.046 0.1365 AT\r
+0.018 10.953\r
+0.042 39.215\r
+0.083 66.888\r
+0.14 72.075\r
+0.223 74.958\r
+0.25 76.694\r
+0.282 80.156\r
+0.315 79.577\r
+0.336 79.577\r
+0.354 81.64\r
+0.365 77.841\r
+0.374 80.724\r
+0.389 76.694\r
+0.455 76.116\r
+0.523 74.39\r
+0.639 70.928\r
+0.722 67.467\r
+0.82 64.005\r
+0.897 58.817\r
+0.992 51.894\r
+1.084 43.824\r
+1.197 34.017\r
+1.268 28.251\r
+1.283 29.987\r
+1.295 27.104\r
+1.328 23.642\r
+1.366 16.719\r
+1.399 9.803\r
+1.435 4.612\r
+1.51 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G55.eng b/datafiles/thrustcurves/AeroTech_G55.eng
new file mode 100644 (file)
index 0000000..94f21d7
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Aerotech G55 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G55 24 117 5-10-15 0.0625 0.1148 AeroTech\r
+0.009 81.136\r
+0.014 84.65\r
+0.034 80.557\r
+0.084 77.064\r
+0.13 71.823\r
+0.18 72.422\r
+0.206 68.919\r
+0.342 69.538\r
+0.483 68.989\r
+0.513 66.663\r
+0.543 68.42\r
+0.664 66.114\r
+0.876 66.164\r
+0.901 64.418\r
+0.997 65.026\r
+1.062 66.793\r
+1.088 63.879\r
+1.148 63.889\r
+1.158 66.813\r
+1.173 63.31\r
+1.209 62.741\r
+1.325 61.593\r
+1.395 59.277\r
+1.456 57.541\r
+1.486 58.129\r
+1.587 52.32\r
+1.708 40.094\r
+1.824 26.11\r
+1.95 15.63\r
+2.112 7.498\r
+2.258 3.446\r
+2.44 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G61.eng b/datafiles/thrustcurves/AeroTech_G61.eng
new file mode 100644 (file)
index 0000000..6301a6e
--- /dev/null
@@ -0,0 +1,21 @@
+;\r
+;G61W Data Entered by Tim Van Milligan\r
+;For RockSim: www.RockSim.com\r
+;Based on TRA Certification Test date: June 13, 2004\r
+;Not Approved by TRA or Aerotech\r
+G61W 38 106.7 6-10-14 0.0613 0.1904 AT\r
+0.008 3.083\r
+0.054 71.348\r
+0.089 72.229\r
+0.174 75.312\r
+0.216 78.394\r
+0.247 79.716\r
+0.502 81.037\r
+0.753 77.073\r
+1.001 72.669\r
+1.132 66.944\r
+1.252 55.933\r
+1.503 38.316\r
+1.754 10.13\r
+1.905 3.523\r
+2.04 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G64.eng b/datafiles/thrustcurves/AeroTech_G64.eng
new file mode 100644 (file)
index 0000000..d3f077a
--- /dev/null
@@ -0,0 +1,38 @@
+;\r
+;Aerotech G64 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+G64 29 124 4-8-10 0.0625 0.1512 AT\r
+0.014 54.325\r
+0.032 81.488\r
+0.059 98.31\r
+0.101 85.021\r
+0.165 83.847\r
+0.274 85.614\r
+0.37 87.39\r
+0.476 86.798\r
+0.503 91.516\r
+0.517 85.614\r
+0.585 83.847\r
+0.723 80.896\r
+0.745 82.07\r
+0.773 77.945\r
+0.883 75.576\r
+0.988 74.401\r
+1.093 69.673\r
+1.262 61.412\r
+1.28 61.994\r
+1.326 58.451\r
+1.372 54.907\r
+1.422 47.238\r
+1.505 34.841\r
+1.591 23.027\r
+1.701 13.581\r
+1.829 7.085\r
+1.902 4.133\r
+1.966 1.771\r
+2.09 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G67.eng b/datafiles/thrustcurves/AeroTech_G67.eng
new file mode 100644 (file)
index 0000000..4c6e790
--- /dev/null
@@ -0,0 +1,49 @@
+;\r
+; Aerotech G67R (Redline)\r
+;\r
+; AeroTech RMS-38/120 EZ Access Reloadable Motors (New! Hardware).\r
+; New AeroTech Redline Motor. Just announced on AeroTech's Website!\r
+; File produced 28 Feb 2005.\r
+;\r
+; The file was produced by scaling data points off the\r
+; thrust curve in the manufacturers catalog sheet.\r
+;\r
+; The motor is not yet on www.thrustcurve.org.\r
+; Hence the amateur file production.\r
+; The file was created by Stan Hemphill.\r
+; Contact at stanley_hemphill@hotmail.com.\r
+;\r
+; Motor Dia  Len  Delay Prop Gross Mfg\r
+G67R 38 106 4-6-8-9-10-12-13-15-17 0.0576 0.191 AT\r
+0.0400 004.9200\r
+0.0500 006.5600\r
+0.0600 009.8400\r
+0.0700 016.4100\r
+0.0800 032.8100\r
+0.1000 049.2200\r
+0.1300 068.0800\r
+0.1500 076.2900\r
+0.1800 080.3900\r
+0.2400 082.8500\r
+0.2600 085.3100\r
+0.3100 087.7700\r
+0.5100 089.4100\r
+0.5300 091.0500\r
+0.5600 087.7700\r
+0.6000 086.9500\r
+0.6100 088.5900\r
+0.6700 086.9500\r
+0.6900 085.3100\r
+0.7100 086.9500\r
+0.7200 085.3100\r
+0.7400 086.1300\r
+0.7700 085.3100\r
+0.8100 082.0300\r
+0.9500 078.7500\r
+1.0500 073.8200\r
+1.4300 053.3200\r
+1.5000 052.5000\r
+1.5200 050.8600\r
+1.5400 045.9400\r
+1.6200 011.4800\r
+1.6400 000.0000\r
diff --git a/datafiles/thrustcurves/AeroTech_G69.eng b/datafiles/thrustcurves/AeroTech_G69.eng
new file mode 100644 (file)
index 0000000..19cffae
--- /dev/null
@@ -0,0 +1,28 @@
+; Submitted to ThrustCurve.org by Chris Kobel (4/13/07)\r
+; G69N based on Aerotech instruction sheet by C. Kobel 3/29/07\r
+G69N 38 106 0 0.0622 0.195 AT\r
+   0.020 51.972\r
+   0.050 75.574\r
+   0.100 76.709\r
+   0.200 77.617\r
+   0.300 79.206\r
+   0.400 81.475\r
+   0.500 84.425\r
+   0.600 86.922\r
+   0.700 88.737\r
+   0.800 89.645\r
+   0.900 91.688\r
+   1.000 93.503\r
+   1.100 94.411\r
+   1.200 94.638\r
+   1.300 93.957\r
+   1.350 93.05\r
+   1.400 89.418\r
+   1.500 62.865\r
+   1.600 33.362\r
+   1.650 19.518\r
+   1.700 12.028\r
+   1.750 7.489\r
+   1.800 4.539\r
+   1.900 1.816\r
+   2.000 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_G71.eng b/datafiles/thrustcurves/AeroTech_G71.eng
new file mode 100644 (file)
index 0000000..0fc4607
--- /dev/null
@@ -0,0 +1,21 @@
+; G71R based on Aerotech instruction sheet by C. Kobel 3/29/07\r
+G71R 29 124 4-7-10 0.0569 0.147 AT\r
+   0.000 0.389\r
+   0.050 109.714\r
+   0.100 117.884\r
+   0.200 113.216\r
+   0.300 109.714\r
+   0.400 105.045\r
+   0.500 99.21\r
+   0.600 92.207\r
+   0.700 83.258\r
+   0.800 75.477\r
+   0.900 68.085\r
+   1.000 57.97\r
+   1.100 47.465\r
+   1.200 33.848\r
+   1.300 21.009\r
+   1.400 11.283\r
+   1.500 5.447\r
+   1.600 2.334\r
+   1.700 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_G75.eng b/datafiles/thrustcurves/AeroTech_G75.eng
new file mode 100644 (file)
index 0000000..e3e4aa5
--- /dev/null
@@ -0,0 +1,83 @@
+;\r
+; Aerotech G75J (Black Jack)\r
+;\r
+; AeroTech RMS-29/180 Easy Access Reloadable Motor Hardware.\r
+;\r
+; RASP.ENG file made from made from NAR or TMT published data.\r
+;\r
+; File produced May, 17 2004.\r
+;\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data from NAR or TMT files.\r
+;\r
+; The curve drawn with these data points is as accurate as could\r
+; could be made scaling the data from the curve on the TMT html\r
+; page. The file is 63 data points. NOT wRASP v1.6 compatible.\r
+;\r
+; The file was created by Stan Hemphill.\r
+; Contact at stanley_hemphill@hotmail.com.\r
+;\r
+; Motor Dia Len Delay Prop Gross Mfg\r
+G75J 29 194 1-3--4-6-7-9-10 0.114 0.236 AT\r
+0.0281 068.8604\r
+0.0380 078.6517\r
+0.0561 075.9230\r
+0.0660 073.0337\r
+0.0776 070.4655\r
+0.1139 069.3419\r
+0.1403 068.6998\r
+0.1667 067.5762\r
+0.1881 070.3050\r
+0.2013 069.0209\r
+0.2294 072.5522\r
+0.2541 076.4045\r
+0.2723 071.4286\r
+0.3102 076.2440\r
+0.3350 071.9101\r
+0.4208 075.6019\r
+0.4604 072.3917\r
+0.5215 079.2937\r
+0.5941 073.3547\r
+0.6436 080.0963\r
+0.7013 073.8363\r
+0.7393 076.4045\r
+0.7541 074.6388\r
+0.7657 077.3676\r
+0.7937 078.6517\r
+0.8036 077.0465\r
+0.8168 080.2568\r
+0.8267 075.2809\r
+0.8383 081.5409\r
+0.8581 075.7624\r
+0.8795 077.8491\r
+0.9340 074.1573\r
+0.9868 079.9358\r
+1.0380 076.7255\r
+1.0561 072.2311\r
+1.0941 078.8122\r
+1.1221 075.6019\r
+1.1502 080.8989\r
+1.1617 076.8860\r
+1.1848 080.0963\r
+1.1997 076.7255\r
+1.2327 078.8122\r
+1.2508 076.4045\r
+1.2871 082.5040\r
+1.3102 077.5281\r
+1.3267 081.8620\r
+1.3564 075.2809\r
+1.3729 080.0963\r
+1.4076 075.7624\r
+1.4884 079.9358\r
+1.5116 073.6758\r
+1.5297 081.0594\r
+1.5512 074.6388\r
+1.5611 080.8989\r
+1.6040 072.8732\r
+1.7211 075.6019\r
+1.7607 068.6998\r
+1.7789 070.1445\r
+1.8119 066.9342\r
+1.8267 070.7865\r
+1.8482 070.7865\r
+2.3878 000.0000\r
index 36c02d9aa4ac8e0e50ecca3ce0a6f086eb98f50f..c055bd11bfbe694354f4e9bbf141b78df89b3e5e 100644 (file)
@@ -1,19 +1,48 @@
 <engine-database>\r
- <engine-list>\r
-<engine FDiv="10" FFix="1" FStep="-1." Isp="155.88" Itot="161.429" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="73.377" burn-time="2.2" cgDiv="10" cgFix="1" cgStep="-1." code="G75J" delays="6,10" dia="29." exitDia="0." initWt="227.9" len="195." mDiv="10" mFix="1" mStep="-1." massFrac="46.34" mfg="Aerotech" peakThrust="87.27" propWt="105.6" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
-<data>\r
-<eng-data cg="97.5" f="0." m="105.6" t="0."/>\r
-<eng-data cg="97.5" f="0.04" m="105.6" t="0."/>\r
-<eng-data cg="97.5" f="82.64" m="102.896" t="0.1"/>\r
-<eng-data cg="97.5" f="78.06" m="97.6396" t="0.2"/>\r
-<eng-data cg="97.5" f="78.06" m="92.5332" t="0.3"/>\r
-<eng-data cg="97.5" f="87.27" m="81.718" t="0.5"/>\r
-<eng-data cg="97.5" f="87.27" m="24.6297" t="1.5"/>\r
-<eng-data cg="97.5" f="82.64" m="13.5149" t="1.7"/>\r
-<eng-data cg="97.5" f="64.27" m="3.90467" t="1.9"/>\r
-<eng-data cg="97.5" f="18.37" m="1.20169" t="2."/>\r
-<eng-data cg="97.5" f="0." m="0." t="2.2"/>\r
-</data>\r
-</engine>\r
- </engine-list>\r
+  <engine-list>\r
+    <engine  mfg="Aerotech" code="G75M" Type="single-use" dia="29." len="124." initWt="131."\r
+propWt="66.8" delays="4,7,10" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="60.51" peakThrust="101.497" throatDia="0." exitDia="0." Itot="119.265"\r
+burn-time="1.97" massFrac="50.99" Isp="182.06" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>29mm Aerotech G75 Metal Storm single use</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="66.8" cg="62."/>\r
+      <eng-data  t="0.01" f="81.492" m="66.5718" cg="62."/>\r
+      <eng-data  t="0.013" f="94.731" m="66.4237" cg="62."/>\r
+      <eng-data  t="0.021" f="101.497" m="65.9841" cg="62."/>\r
+      <eng-data  t="0.037" f="87.964" m="65.1352" cg="62."/>\r
+      <eng-data  t="0.068" f="86.199" m="63.6232" cg="62."/>\r
+      <eng-data  t="0.154" f="87.67" m="59.4357" cg="62."/>\r
+      <eng-data  t="0.188" f="90.906" m="57.7353" cg="62."/>\r
+      <eng-data  t="0.211" f="90.024" m="56.5699" cg="62."/>\r
+      <eng-data  t="0.31" f="95.613" m="51.4232" cg="62."/>\r
+      <eng-data  t="0.357" f="91.494" m="48.9604" cg="62."/>\r
+      <eng-data  t="0.464" f="93.848" m="43.4066" cg="62."/>\r
+      <eng-data  t="0.696" f="92.083" m="31.3264" cg="62."/>\r
+      <eng-data  t="0.879" f="84.728" m="22.265" cg="62."/>\r
+      <eng-data  t="0.907" f="85.611" m="20.9293" cg="62."/>\r
+      <eng-data  t="0.92" f="92.965" m="20.2792" cg="62."/>\r
+      <eng-data  t="0.939" f="77.667" m="19.3713" cg="62."/>\r
+      <eng-data  t="1.014" f="72.96" m="16.2075" cg="62."/>\r
+      <eng-data  t="1.027" f="78.55" m="15.656" cg="62."/>\r
+      <eng-data  t="1.053" f="71.489" m="14.5635" cg="62."/>\r
+      <eng-data  t="1.171" f="64.134" m="10.0817" cg="62."/>\r
+      <eng-data  t="1.304" f="52.367" m="5.74245" cg="62."/>\r
+      <eng-data  t="1.312" f="56.78" m="5.49792" cg="62."/>\r
+      <eng-data  t="1.325" f="52.661" m="5.09948" cg="62."/>\r
+      <eng-data  t="1.374" f="48.542" m="3.71074" cg="62."/>\r
+      <eng-data  t="1.411" f="44.129" m="2.7505" cg="62."/>\r
+      <eng-data  t="1.442" f="36.186" m="2.05324" cg="62."/>\r
+      <eng-data  t="1.492" f="22.359" m="1.23347" cg="62."/>\r
+      <eng-data  t="1.538" f="14.121" m="0.76352" cg="62."/>\r
+      <eng-data  t="1.585" f="7.649" m="0.476977" cg="62."/>\r
+      <eng-data  t="1.643" f="3.825" m="0.290606" cg="62."/>\r
+      <eng-data  t="1.7" f="2.648" m="0.187279" cg="62."/>\r
+      <eng-data  t="1.802" f="1.471" m="0.0696199" cg="62."/>\r
+      <eng-data  t="1.971" f="0." m="0." cg="62."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
 </engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_G75_1.eng b/datafiles/thrustcurves/AeroTech_G75_1.eng
new file mode 100644 (file)
index 0000000..0b7c25f
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech G75J\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+G75J 29 194 10 0.112 0.23296 AT\r
+   0.047 65.701\r
+   0.143 68.564\r
+   0.239 72.143\r
+   0.334 73.261\r
+   0.430 73.960\r
+   0.526 75.036\r
+   0.622 75.705\r
+   0.718 75.030\r
+   0.814 77.886\r
+   0.909 76.183\r
+   1.005 76.852\r
+   1.101 75.729\r
+   1.197 78.854\r
+   1.293 78.669\r
+   1.389 76.464\r
+   1.484 76.440\r
+   1.580 74.976\r
+   1.676 72.657\r
+   1.772 69.460\r
+   1.868 62.121\r
+   1.964 39.090\r
+   2.059 19.703\r
+   2.155 7.554\r
+   2.251 2.062\r
+   2.347 0.382\r
+   2.443 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_G75_1.rse b/datafiles/thrustcurves/AeroTech_G75_1.rse
new file mode 100644 (file)
index 0000000..36c02d9
--- /dev/null
@@ -0,0 +1,19 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="155.88" Itot="161.429" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="73.377" burn-time="2.2" cgDiv="10" cgFix="1" cgStep="-1." code="G75J" delays="6,10" dia="29." exitDia="0." initWt="227.9" len="195." mDiv="10" mFix="1" mStep="-1." massFrac="46.34" mfg="Aerotech" peakThrust="87.27" propWt="105.6" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<data>\r
+<eng-data cg="97.5" f="0." m="105.6" t="0."/>\r
+<eng-data cg="97.5" f="0.04" m="105.6" t="0."/>\r
+<eng-data cg="97.5" f="82.64" m="102.896" t="0.1"/>\r
+<eng-data cg="97.5" f="78.06" m="97.6396" t="0.2"/>\r
+<eng-data cg="97.5" f="78.06" m="92.5332" t="0.3"/>\r
+<eng-data cg="97.5" f="87.27" m="81.718" t="0.5"/>\r
+<eng-data cg="97.5" f="87.27" m="24.6297" t="1.5"/>\r
+<eng-data cg="97.5" f="82.64" m="13.5149" t="1.7"/>\r
+<eng-data cg="97.5" f="64.27" m="3.90467" t="1.9"/>\r
+<eng-data cg="97.5" f="18.37" m="1.20169" t="2."/>\r
+<eng-data cg="97.5" f="0." m="0." t="2.2"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_G76.eng b/datafiles/thrustcurves/AeroTech_G76.eng
new file mode 100644 (file)
index 0000000..c70eca0
--- /dev/null
@@ -0,0 +1,41 @@
+; Curve fit of AT Instruction sheet by C. Kobel  7/29/08\r
+G76G 29 124 4-7-10 0.06 0.147 AT\r
+   0.025 89.368\r
+   0.042 133.581\r
+   0.052 144.87\r
+   0.067 154.277\r
+   0.098 144.399\r
+   0.117 136.873\r
+   0.150 132.64\r
+   0.196 129.348\r
+   0.255 123.233\r
+   0.299 118.059\r
+   0.349 112.885\r
+   0.399 108.652\r
+   0.449 101.126\r
+   0.486 101.597\r
+   0.511 105.36\r
+   0.516 118.53\r
+   0.543 100.186\r
+   0.601 95.482\r
+   0.656 88.897\r
+   0.720 81.842\r
+   0.737 93.601\r
+   0.754 80.431\r
+   0.797 70.553\r
+   0.856 63.498\r
+   0.898 58.794\r
+   0.948 51.739\r
+   1.000 47.976\r
+   1.063 43.273\r
+   1.102 41.391\r
+   1.152 39.04\r
+   1.200 36.688\r
+   1.301 30.103\r
+   1.347 25.399\r
+   1.401 19.755\r
+   1.499 12.229\r
+   1.547 7.996\r
+   1.599 5.644\r
+   1.699 2.352\r
+   1.750 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_G77.eng b/datafiles/thrustcurves/AeroTech_G77.eng
new file mode 100644 (file)
index 0000000..1ad999d
--- /dev/null
@@ -0,0 +1,33 @@
+; Single-Use Casing. Entered by Tim Van Milligan for RockSim Users. Used John\r
+; Coker's ThrustCurve Tracer software and NAR cert paperwork dated 7-29-06.\r
+G77R 29 124 4 0.0591 0.122 Aerotech\r
+   0.01 19.124\r
+   0.018 15.668\r
+   0.059 66.59\r
+   0.084 72.35\r
+   0.122 75.115\r
+   0.151 77.419\r
+   0.173 77.65\r
+   0.271 85.945\r
+   0.337 88.018\r
+   0.424 91.935\r
+   0.475 93.318\r
+   0.523 94.931\r
+   0.57 96.313\r
+   0.61 96.313\r
+   0.644 99.309\r
+   0.656 96.774\r
+   0.728 95.622\r
+   0.792 94.24\r
+   0.902 91.014\r
+   0.961 88.479\r
+   1.017 88.018\r
+   1.047 84.562\r
+   1.071 81.106\r
+   1.099 76.037\r
+   1.127 69.355\r
+   1.158 61.06\r
+   1.188 44.931\r
+   1.213 30.184\r
+   1.231 18.203\r
+   1.277 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_G77_1.eng b/datafiles/thrustcurves/AeroTech_G77_1.eng
new file mode 100644 (file)
index 0000000..097b721
--- /dev/null
@@ -0,0 +1,40 @@
+;\r
+; Aerotech G77R (Redline)\r
+;\r
+; AeroTech RMS-29/120 EZ Access Reloadable Motors (New! Hardware).\r
+; New AeroTech Redline Motor. Just announced on AeroTech's Website!\r
+; File produced 28 Feb 2005.\r
+;\r
+; The file was produced by scaling data points off the\r
+; thrust curve in the manufacturers catalog sheet.\r
+;\r
+; The motor is not yet on www.thrustcurve.org.\r
+; Hence the amateur file production.\r
+; The file was created by Stan Hemphill.\r
+; Contact at stanley_hemphill@hotmail.com.\r
+;\r
+; Motor Dia  Len  Delay Prop Gross Mfg\r
+G77R 29 150 4-6-8-9-10-12-13-15-17 0.0554 0.155 AT\r
+0.0132 014.8333\r
+0.0243 032.4479\r
+0.0331 046.3542\r
+0.0375 052.8438\r
+0.0463 056.5521\r
+0.0617 059.3333\r
+0.2580 073.2396\r
+0.6548 087.1458\r
+0.8709 089.0000\r
+0.8885 085.2917\r
+1.0252 086.2188\r
+1.0472 084.3646\r
+1.0715 086.2188\r
+1.1002 084.3646\r
+1.1332 085.2917\r
+1.1950 076.9479\r
+1.2104 076.0208\r
+1.2369 065.8229\r
+1.2611 043.5729\r
+1.2898 027.8125\r
+1.3317 012.0521\r
+1.3625 004.6354\r
+1.4000 000.0000\r
diff --git a/datafiles/thrustcurves/AeroTech_G78.eng b/datafiles/thrustcurves/AeroTech_G78.eng
new file mode 100644 (file)
index 0000000..c309c32
--- /dev/null
@@ -0,0 +1,35 @@
+; @File: NewATG80.txt, @Pts-I: 905, @Pts-O: 31, @Sm: 0, @CO: 5% \r
+; @TI: 133.2377, @TIa: 133.1309, @TIe: 0.0%, @ThMax: 102.2, @ThAvg: 77.9911, @Tb: 1.707 \r
+; Exported using ThrustCurveTool, www.ThrustGear.com \r
+G78 29 128 7,10,13 0.0625 0.1282 RCS/Aerotech \r
+  0.0060     1.158086 \r
+  0.0080     7.48984 \r
+  0.01       33.7575 \r
+  0.012      64.5955 \r
+  0.014      62.9316 \r
+  0.016      58.8272 \r
+  0.018      74.9118 \r
+  0.02       85.0062 \r
+  0.022      91.1072 \r
+  0.026      93.9913 \r
+  0.028      98.4284 \r
+  0.032      97.652 \r
+  0.038      102.2 \r
+  0.074      97.3192 \r
+  0.124      95.4334 \r
+  0.376      99.3159 \r
+  0.68       99.4268 \r
+  0.994      91.6619 \r
+  1.2459     83.0095 \r
+  1.2819     77.3522 \r
+  1.3159     61.9332 \r
+  1.3599     44.6285 \r
+  1.4239     29.0986 \r
+  1.5039     21.2227 \r
+  1.5979     19.33693 \r
+  1.6559     16.34188 \r
+  1.6759     13.90147 \r
+  1.6779     11.79384 \r
+  1.7139     5.0938 \r
+  1.7339     1.388816 \r
+  1.8079     0.0 \r
diff --git a/datafiles/thrustcurves/AeroTech_G79_1.eng b/datafiles/thrustcurves/AeroTech_G79_1.eng
new file mode 100644 (file)
index 0000000..508cb9d
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;G79W Data Entered by Tim Van Milligan\r
+;For RockSim: www.RockSim.com\r
+;Based on TRA Certification Test date: June 13, 2004\r
+;Not Approved by TRA or Aerotech\r
+G79W 29 149.86 6-10-14 0.0609 0.154 AT\r
+0.015 7.157\r
+0.074 91.937\r
+0.09 91.387\r
+0.114 84.781\r
+0.145 84.23\r
+0.201 89.185\r
+0.291 94.69\r
+0.4 98.544\r
+0.6 99.645\r
+0.708 96.892\r
+0.8 93.038\r
+0.915 85.331\r
+1 77.624\r
+1.085 71.017\r
+1.175 68.265\r
+1.199 44.59\r
+1.28 22.021\r
+1.36 4.955\r
+1.42 0\r
diff --git a/datafiles/thrustcurves/AeroTech_G80_2.eng b/datafiles/thrustcurves/AeroTech_G80_2.eng
new file mode 100644 (file)
index 0000000..7943632
--- /dev/null
@@ -0,0 +1,34 @@
+; Aerotech G80 RASP.ENG file made from NAR published data\r
+; File produced July 4, 2000\r
+; Note: This is for the 116N-sec G80T produced before Sept. 2006\r
+G80 29 124 4-7-10 0.0574 0.1049 A\r
+  0.0060     101.291\r
+  0.013      105.18\r
+  0.031      103.473\r
+  0.038      104.069\r
+  0.067      99.803\r
+  0.103      96.906\r
+  0.181      94.733\r
+  0.271      94.039\r
+  0.303      96.985\r
+  0.367      95.547\r
+  0.428      94.842\r
+  0.456      97.055\r
+  0.463      92.65\r
+  0.51       94.872\r
+  0.596      93.444\r
+  0.606      95.646\r
+  0.624      91.985\r
+  0.635      95.656\r
+  0.646      91.995\r
+  0.696      90.547\r
+  0.846      85.477\r
+  0.96       80.388\r
+  1.071      74.564\r
+  1.207      62.878\r
+  1.296      52.639\r
+  1.35       37.252\r
+  1.382      20.397\r
+  1.418      10.139\r
+  1.457      4.281\r
+  1.5        0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_H112.eng b/datafiles/thrustcurves/AeroTech_H112.eng
new file mode 100644 (file)
index 0000000..9ebe149
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H112J\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H112J 38 202 0 0.187712 0.379456 AT\r
+   0.064 85.431\r
+   0.194 101.938\r
+   0.324 101.897\r
+   0.454 102.839\r
+   0.584 104.479\r
+   0.715 103.845\r
+   0.845 103.439\r
+   0.975 104.286\r
+   1.106 104.922\r
+   1.236 104.390\r
+   1.367 102.768\r
+   1.497 102.237\r
+   1.627 100.032\r
+   1.757 98.345\r
+   1.888 94.560\r
+   2.018 89.018\r
+   2.148 82.857\r
+   2.279 77.685\r
+   2.409 72.373\r
+   2.540 67.041\r
+   2.670 59.764\r
+   2.800 37.616\r
+   2.930 14.457\r
+   3.060 4.642\r
+   3.192 1.818\r
+   3.323 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H123.eng b/datafiles/thrustcurves/AeroTech_H123.eng
new file mode 100644 (file)
index 0000000..ecf537a
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H123W\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H123W 38 154 0 0.126336 0.278656 AT\r
+   0.047 96.764\r
+   0.143 146.256\r
+   0.239 150.699\r
+   0.334 152.496\r
+   0.430 151.248\r
+   0.526 149.875\r
+   0.622 150.200\r
+   0.718 149.176\r
+   0.814 144.858\r
+   0.909 143.536\r
+   1.005 141.414\r
+   1.101 135.125\r
+   1.198 125.288\r
+   1.295 114.035\r
+   1.391 101.556\r
+   1.486 90.175\r
+   1.582 78.694\r
+   1.678 66.364\r
+   1.774 54.260\r
+   1.870 46.872\r
+   1.966 38.186\r
+   2.061 22.737\r
+   2.157 13.478\r
+   2.253 7.587\r
+   2.350 5.252\r
+   2.447 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H125.rse b/datafiles/thrustcurves/AeroTech_H125.rse
new file mode 100644 (file)
index 0000000..53954ae
--- /dev/null
@@ -0,0 +1,14 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="223.2" Itot="320.005" Type="single-use" auto-calc-cg="1" auto-calc-mass="1" avgThrust="125.002" burn-time="2.56" cgDiv="10" cgFix="1" cgStep="-1." code="H125W" delays="6,10,14" dia="38." exitDia="0." initWt="225." len="191." mDiv="10" mFix="1" mStep="-1." massFrac="64.98" mfg="Aerotech" peakThrust="167." propWt="146.2" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<data>\r
+<eng-data cg="95.5" f="0." m="146.2" t="0."/>\r
+<eng-data cg="95.5" f="100." m="145.058" t="0.05"/>\r
+<eng-data cg="95.5" f="167." m="117.611" t="0.5"/>\r
+<eng-data cg="95.5" f="129." m="47.9666" t="1.53"/>\r
+<eng-data cg="95.5" f="145." m="18.5488" t="2."/>\r
+<eng-data cg="95.5" f="0." m="0." t="2.56"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_H128.rse b/datafiles/thrustcurves/AeroTech_H128.rse
new file mode 100644 (file)
index 0000000..50058ab
--- /dev/null
@@ -0,0 +1,21 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="172.31" Itot="155.795" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="103.863" burn-time="1.5" cgDiv="10" cgFix="1" cgStep="-1." code="H128W" delays="6,10,14" dia="29." exitDia="0." initWt="214.5" len="195." mDiv="10" mFix="1" mStep="-1." massFrac="42.98" mfg="Aerotech" peakThrust="157.28" propWt="92.2" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<data>\r
+<eng-data cg="97.5" f="0." m="92.2" t="0."/>\r
+<eng-data cg="97.5" f="0.62" m="92.2" t="0."/>\r
+<eng-data cg="97.5" f="157.28" m="87.5277" t="0.1"/>\r
+<eng-data cg="97.5" f="129.75" m="79.0344" t="0.2"/>\r
+<eng-data cg="97.5" f="129.75" m="71.3558" t="0.3"/>\r
+<eng-data cg="97.5" f="125.26" m="63.81" t="0.4"/>\r
+<eng-data cg="97.5" f="125.26" m="56.3971" t="0.5"/>\r
+<eng-data cg="97.5" f="125.26" m="26.7454" t="0.9"/>\r
+<eng-data cg="97.5" f="120.81" m="19.4641" t="1."/>\r
+<eng-data cg="97.5" f="102.93" m="6.22311" t="1.2"/>\r
+<eng-data cg="97.5" f="44.75" m="1.85323" t="1.3"/>\r
+<eng-data cg="97.5" f="8.94" m="0.264536" t="1.4"/>\r
+<eng-data cg="97.5" f="0." m="0." t="1.5"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_H148.eng b/datafiles/thrustcurves/AeroTech_H148.eng
new file mode 100644 (file)
index 0000000..af5e0ad
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech H148R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H148R 38 152 0 0.14784 0.30912 AT\r
+   0.027 77.232\r
+   0.088 174.296\r
+   0.148 185.046\r
+   0.208 190.458\r
+   0.268 192.497\r
+   0.327 191.996\r
+   0.388 188.790\r
+   0.448 187.548\r
+   0.509 182.697\r
+   0.570 178.151\r
+   0.630 172.906\r
+   0.690 169.607\r
+   0.750 164.510\r
+   0.810 158.375\r
+   0.870 153.019\r
+   0.930 146.810\r
+   0.991 139.443\r
+   1.053 132.001\r
+   1.112 123.271\r
+   1.173 112.559\r
+   1.233 104.737\r
+   1.292 97.657\r
+   1.353 94.932\r
+   1.413 60.644\r
+   1.474 13.007\r
+   1.535 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H165.eng b/datafiles/thrustcurves/AeroTech_H165.eng
new file mode 100644 (file)
index 0000000..be08011
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech H165R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H165R 29 194 0 0.0896 0.2016 AT\r
+   0.018 55.047\r
+   0.059 157.258\r
+   0.101 168.509\r
+   0.144 173.219\r
+   0.186 179.237\r
+   0.229 183.947\r
+   0.271 187.872\r
+   0.314 188.134\r
+   0.356 188.919\r
+   0.399 190.488\r
+   0.441 187.349\r
+   0.484 189.180\r
+   0.525 186.547\r
+   0.566 185.517\r
+   0.609 180.807\r
+   0.651 177.667\r
+   0.694 170.602\r
+   0.736 167.201\r
+   0.779 158.828\r
+   0.821 155.688\r
+   0.864 153.333\r
+   0.906 136.325\r
+   0.949 73.526\r
+   0.991 20.671\r
+   1.034 4.448\r
+   1.076 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H170.rse b/datafiles/thrustcurves/AeroTech_H170.rse
new file mode 100644 (file)
index 0000000..7fe6fa5
--- /dev/null
@@ -0,0 +1,47 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Aerotech" code="H170M" Type="reloadable" dia="38." len="191." initWt="330."\r
+propWt="182.5" delays="2,4,6,8,10,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="148.737" peakThrust="205.821" throatDia="0." exitDia="0." Itot="318."\r
+burn-time="2.14" massFrac="55.3" Isp="177.68" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>AT H170 Metalstorm for 38-360</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="182.5" cg="95.5"/>\r
+      <eng-data  t="0.017" f="182.491" m="181.61" cg="95.5"/>\r
+      <eng-data  t="0.032" f="199.6" m="179.965" cg="95.5"/>\r
+      <eng-data  t="0.104" f="195.971" m="171.793" cg="95.5"/>\r
+      <eng-data  t="0.205" f="180.936" m="160.869" cg="95.5"/>\r
+      <eng-data  t="0.292" f="188.712" m="151.641" cg="95.5"/>\r
+      <eng-data  t="0.314" f="198.563" m="149.196" cg="95.5"/>\r
+      <eng-data  t="0.324" f="187.157" m="148.089" cg="95.5"/>\r
+      <eng-data  t="0.364" f="180.936" m="143.864" cg="95.5"/>\r
+      <eng-data  t="0.423" f="192.86" m="137.536" cg="95.5"/>\r
+      <eng-data  t="0.458" f="189.231" m="133.698" cg="95.5"/>\r
+      <eng-data  t="0.574" f="197.526" m="120.825" cg="95.5"/>\r
+      <eng-data  t="0.616" f="205.821" m="115.964" cg="95.5"/>\r
+      <eng-data  t="0.663" f="190.268" m="110.622" cg="95.5"/>\r
+      <eng-data  t="0.71" f="190.268" m="105.49" cg="95.5"/>\r
+      <eng-data  t="0.735" f="197.526" m="102.708" cg="95.5"/>\r
+      <eng-data  t="0.876" f="188.712" m="87.0805" cg="95.5"/>\r
+      <eng-data  t="0.963" f="193.897" m="77.5288" cg="95.5"/>\r
+      <eng-data  t="1.22" f="176.788" m="50.1923" cg="95.5"/>\r
+      <eng-data  t="1.245" f="185.083" m="47.5963" cg="95.5"/>\r
+      <eng-data  t="1.279" f="172.122" m="44.1113" cg="95.5"/>\r
+      <eng-data  t="1.46" f="152.422" m="27.2552" cg="95.5"/>\r
+      <eng-data  t="1.47" f="159.68" m="26.3596" cg="95.5"/>\r
+      <eng-data  t="1.515" f="147.237" m="22.3964" cg="95.5"/>\r
+      <eng-data  t="1.591" f="136.35" m="16.2119" cg="95.5"/>\r
+      <eng-data  t="1.7" f="131.165" m="7.84471" cg="95.5"/>\r
+      <eng-data  t="1.73" f="114.575" m="5.72926" cg="95.5"/>\r
+      <eng-data  t="1.782" f="67.397" m="3.01398" cg="95.5"/>\r
+      <eng-data  t="1.824" f="39.401" m="1.72686" cg="95.5"/>\r
+      <eng-data  t="1.886" f="18.145" m="0.70307" cg="95.5"/>\r
+      <eng-data  t="1.93" f="8.813" m="0.362704" cg="95.5"/>\r
+      <eng-data  t="2." f="3.111" m="0.123193" cg="95.5"/>\r
+      <eng-data  t="2.138" f="0." m="0." cg="95.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_H180.rse b/datafiles/thrustcurves/AeroTech_H180.rse
new file mode 100644 (file)
index 0000000..88a17d7
--- /dev/null
@@ -0,0 +1,22 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="175.79" Itot="212.042" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="151.459" burn-time="1.4" cgDiv="10" cgFix="1" cgStep="-1." code="H180W" delays="6,10,14" dia="29." exitDia="0." initWt="263.6" len="239." mDiv="10" mFix="1" mStep="-1." massFrac="46.66" mfg="Aerotech" peakThrust="305.84" propWt="123." tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<data>\r
+<eng-data cg="119.5" f="0." m="123." t="0."/>\r
+<eng-data cg="119.5" f="305.84" m="123." t="0."/>\r
+<eng-data cg="119.5" f="196.56" m="108.429" t="0.1"/>\r
+<eng-data cg="119.5" f="187.79" m="86.1335" t="0.3"/>\r
+<eng-data cg="119.5" f="200.87" m="63.5884" t="0.5"/>\r
+<eng-data cg="119.5" f="174.67" m="52.6964" t="0.6"/>\r
+<eng-data cg="119.5" f="161.6" m="42.9433" t="0.7"/>\r
+<eng-data cg="119.5" f="152.88" m="33.8223" t="0.8"/>\r
+<eng-data cg="119.5" f="144.12" m="25.2082" t="0.9"/>\r
+<eng-data cg="119.5" f="139.71" m="16.9761" t="1."/>\r
+<eng-data cg="119.5" f="135.4" m="8.99692" t="1.1"/>\r
+<eng-data cg="119.5" f="74.28" m="2.91544" t="1.2"/>\r
+<eng-data cg="119.5" f="13.12" m="0.380527" t="1.3"/>\r
+<eng-data cg="119.5" f="0." m="0." t="1.4"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_H210.eng b/datafiles/thrustcurves/AeroTech_H210.eng
new file mode 100644 (file)
index 0000000..fbbc08e
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech H210R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H210R 29 238 0 0.12096 0.2464 AT\r
+   0.019 105.923\r
+   0.059 211.290\r
+   0.099 219.770\r
+   0.139 229.639\r
+   0.179 235.082\r
+   0.220 241.594\r
+   0.260 242.706\r
+   0.300 245.347\r
+   0.341 249.100\r
+   0.381 253.410\r
+   0.421 258.553\r
+   0.461 260.221\r
+   0.502 257.997\r
+   0.543 259.248\r
+   0.583 256.607\r
+   0.623 252.436\r
+   0.663 245.056\r
+   0.704 219.909\r
+   0.744 209.344\r
+   0.784 200.587\r
+   0.824 193.565\r
+   0.865 184.323\r
+   0.905 153.881\r
+   0.945 58.244\r
+   0.986 13.210\r
+   1.027 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H220.eng b/datafiles/thrustcurves/AeroTech_H220.eng
new file mode 100644 (file)
index 0000000..6c34838
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+H220T 29 239 6-10-14 0.1064 0.2386 AT\r
+0 314.1\r
+0.1 236.61\r
+0.2 269.23\r
+0.3 261.06\r
+0.4 252.9\r
+0.72 252.9\r
+0.8 112.58\r
+0.9 9.78\r
+0.96 0\r
diff --git a/datafiles/thrustcurves/AeroTech_H238.rse b/datafiles/thrustcurves/AeroTech_H238.rse
new file mode 100644 (file)
index 0000000..5673734
--- /dev/null
@@ -0,0 +1,18 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="208.55" Itot="163.202" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="204.002" burn-time="0.8" cgDiv="10" cgFix="1" cgStep="-1." code="H238T" delays="6,10,14" dia="29." exitDia="0." initWt="202.1" len="195." mDiv="10" mFix="1" mStep="-1." massFrac="39.49" mfg="Aerotech" peakThrust="265.1" propWt="79.8" tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<data>\r
+<eng-data cg="97.5" f="0." m="79.8" t="0."/>\r
+<eng-data cg="97.5" f="239.12" m="79.8" t="0."/>\r
+<eng-data cg="97.5" f="239.04" m="68.1098" t="0.1"/>\r
+<eng-data cg="97.5" f="252.07" m="56.1031" t="0.2"/>\r
+<eng-data cg="97.5" f="265.1" m="43.4592" t="0.3"/>\r
+<eng-data cg="97.5" f="265.1" m="30.4967" t="0.4"/>\r
+<eng-data cg="97.5" f="221.69" m="18.5956" t="0.5"/>\r
+<eng-data cg="97.5" f="191.22" m="8.50065" t="0.6"/>\r
+<eng-data cg="97.5" f="78.24" m="1.91283" t="0.7"/>\r
+<eng-data cg="97.5" f="0." m="0." t="0.8"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_H242.eng b/datafiles/thrustcurves/AeroTech_H242.eng
new file mode 100644 (file)
index 0000000..ec805ea
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H242T\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H242T 38 152 10 0.11648 0.2688 AT\r
+   0.030 164.060\r
+   0.093 197.516\r
+   0.155 204.324\r
+   0.218 208.970\r
+   0.280 211.481\r
+   0.343 211.261\r
+   0.405 209.291\r
+   0.468 208.438\r
+   0.531 206.707\r
+   0.595 203.967\r
+   0.657 198.175\r
+   0.720 192.137\r
+   0.782 186.840\r
+   0.845 180.802\r
+   0.907 174.635\r
+   0.970 165.581\r
+   1.033 159.726\r
+   1.097 151.690\r
+   1.159 144.167\r
+   1.222 138.550\r
+   1.284 119.114\r
+   1.347 69.055\r
+   1.409 21.396\r
+   1.472 3.473\r
+   1.535 0.594\r
+   1.599 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H242_1.eng b/datafiles/thrustcurves/AeroTech_H242_1.eng
new file mode 100644 (file)
index 0000000..2c785d4
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H242T\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H242T 38 154 0 0.114688 0.264768 AT\r
+   0.025 207.058\r
+   0.077 237.941\r
+   0.129 240.171\r
+   0.181 241.906\r
+   0.234 246.425\r
+   0.287 245.971\r
+   0.340 247.210\r
+   0.392 246.516\r
+   0.445 245.710\r
+   0.498 244.881\r
+   0.550 242.997\r
+   0.602 240.518\r
+   0.655 235.271\r
+   0.708 229.464\r
+   0.760 222.871\r
+   0.813 216.278\r
+   0.866 206.959\r
+   0.919 195.458\r
+   0.971 184.255\r
+   1.023 174.490\r
+   1.076 170.067\r
+   1.129 99.588\r
+   1.181 25.281\r
+   1.233 12.839\r
+   1.286 7.769\r
+   1.340 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H250.eng b/datafiles/thrustcurves/AeroTech_H250.eng
new file mode 100644 (file)
index 0000000..24c0e99
--- /dev/null
@@ -0,0 +1,26 @@
+;I don't know that \r
+;these ejection \r
+;delays are correct.  \r
+;This was made \r
+;using the Aerotech \r
+;test thrust curves.  \r
+;By Tobin Yehle, \r
+;11/11/07.\r
+H250G 29 228.93 0-6-10-14 0.1163 0.256 Aerotech \r
+0.00250627 88.6915\r
+0.0125313 177.383\r
+0.0300752 279.719\r
+0.0726817 311.103\r
+0.145363 320.654\r
+0.24812 311.103\r
+0.308271 297.458\r
+0.398496 282.448\r
+0.45614 270.168\r
+0.593985 238.785\r
+0.691729 221.047\r
+0.799499 218.318\r
+0.83208 210.131\r
+0.844612 189.663\r
+0.907268 13.6449\r
+0.92 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_H268.eng b/datafiles/thrustcurves/AeroTech_H268.eng
new file mode 100644 (file)
index 0000000..a200864
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech H268R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H268R 29 333 0 0.18368 0.3584 AT\r
+   0.022 268.095\r
+   0.069 332.446\r
+   0.116 312.429\r
+   0.164 306.810\r
+   0.211 305.757\r
+   0.259 306.576\r
+   0.306 312.546\r
+   0.354 319.687\r
+   0.401 321.234\r
+   0.448 320.974\r
+   0.495 321.208\r
+   0.542 321.794\r
+   0.590 323.315\r
+   0.638 322.847\r
+   0.685 307.044\r
+   0.732 291.593\r
+   0.779 277.713\r
+   0.826 267.127\r
+   0.874 257.529\r
+   0.921 252.846\r
+   0.969 222.645\r
+   1.016 159.668\r
+   1.064 108.747\r
+   1.111 52.091\r
+   1.159 15.569\r
+   1.207 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H45.eng b/datafiles/thrustcurves/AeroTech_H45.eng
new file mode 100644 (file)
index 0000000..9077b1b
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H45W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H45W 38 194 0 0.193984 0.294784 AT\r
+   0.141 62.554\r
+   0.424 63.504\r
+   0.707 65.913\r
+   0.992 68.370\r
+   1.276 69.315\r
+   1.559 68.523\r
+   1.843 67.231\r
+   2.127 65.705\r
+   2.411 63.154\r
+   2.695 59.210\r
+   2.979 55.600\r
+   3.264 50.790\r
+   3.547 45.237\r
+   3.830 39.835\r
+   4.115 34.562\r
+   4.399 29.213\r
+   4.682 24.720\r
+   4.967 20.616\r
+   5.251 17.475\r
+   5.534 14.498\r
+   5.818 12.697\r
+   6.102 10.792\r
+   6.386 9.229\r
+   6.670 7.754\r
+   6.954 6.075\r
+   7.239 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H55.eng b/datafiles/thrustcurves/AeroTech_H55.eng
new file mode 100644 (file)
index 0000000..a37175b
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H55W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H55W 29 191 0 0.09856 0.18816 AT\r
+   0.052 92.752\r
+   0.159 98.019\r
+   0.268 95.821\r
+   0.375 96.162\r
+   0.482 97.146\r
+   0.591 96.927\r
+   0.699 95.915\r
+   0.806 94.447\r
+   0.914 92.001\r
+   1.022 88.756\r
+   1.129 86.970\r
+   1.236 84.072\r
+   1.345 80.172\r
+   1.453 74.343\r
+   1.560 64.990\r
+   1.668 46.380\r
+   1.776 32.835\r
+   1.883 25.734\r
+   1.991 19.920\r
+   2.099 16.229\r
+   2.207 13.059\r
+   2.315 10.451\r
+   2.422 7.700\r
+   2.530 5.696\r
+   2.639 3.979\r
+   2.747 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H669.eng b/datafiles/thrustcurves/AeroTech_H669.eng
new file mode 100644 (file)
index 0000000..2bddd5e
--- /dev/null
@@ -0,0 +1,42 @@
+;\r
+; 38-240\r
+;  Greg Gardner - 09/15/06\r
+H669N  38 152  0  0.096  0.252  AT\r
+0.003  141\r
+0.006  523\r
+0.009  934\r
+0.012  1178\r
+0.016  926\r
+0.019  684\r
+0.022  487\r
+0.025  415\r
+0.028  622\r
+0.031  801\r
+0.0325  906\r
+0.034  866\r
+0.037  755\r
+0.04   737\r
+0.043  666\r
+0.047  737\r
+0.0485  802\r
+0.05   755\r
+0.053  791\r
+0.056  765\r
+0.059  755\r
+0.062  747\r
+0.069  737\r
+0.075  761\r
+0.082  755\r
+0.088  729\r
+0.093  741\r
+0.1    751\r
+0.2    703\r
+0.25   640\r
+0.3    586\r
+0.306  584\r
+0.309  576\r
+0.312  506\r
+0.318  292\r
+0.325  93\r
+0.329  0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_H70.eng b/datafiles/thrustcurves/AeroTech_H70.eng
new file mode 100644 (file)
index 0000000..976cc93
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H70W\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H70W 29 229 0 0.11648 0.224 AT\r
+   0.055 114.847\r
+   0.169 131.427\r
+   0.283 126.879\r
+   0.397 127.136\r
+   0.510 127.254\r
+   0.625 125.894\r
+   0.739 124.917\r
+   0.852 122.031\r
+   0.967 119.032\r
+   1.080 115.071\r
+   1.194 108.446\r
+   1.308 102.273\r
+   1.422 96.098\r
+   1.535 86.953\r
+   1.650 75.702\r
+   1.764 62.402\r
+   1.877 48.132\r
+   1.992 36.862\r
+   2.105 28.065\r
+   2.219 21.592\r
+   2.333 16.894\r
+   2.447 12.686\r
+   2.560 9.681\r
+   2.675 6.818\r
+   2.790 4.488\r
+   2.904 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H73.eng b/datafiles/thrustcurves/AeroTech_H73.eng
new file mode 100644 (file)
index 0000000..e3db2a9
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H73J\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H73J 38 152 6 0.14784 0.30912 AT\r
+   0.056 49.252\r
+   0.172 82.004\r
+   0.287 82.130\r
+   0.403 84.596\r
+   0.520 86.883\r
+   0.635 88.888\r
+   0.751 89.652\r
+   0.867 91.342\r
+   0.982 92.980\r
+   1.099 94.571\r
+   1.215 94.641\r
+   1.330 93.549\r
+   1.446 91.447\r
+   1.561 88.189\r
+   1.678 82.436\r
+   1.794 77.397\r
+   1.909 70.772\r
+   2.025 61.173\r
+   2.141 51.161\r
+   2.257 38.540\r
+   2.373 21.562\r
+   2.489 12.213\r
+   2.604 7.327\r
+   2.720 3.706\r
+   2.836 1.777\r
+   2.953 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H97.eng b/datafiles/thrustcurves/AeroTech_H97.eng
new file mode 100644 (file)
index 0000000..76f2fb3
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech H97J\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+H97J 29 238 6 0.1344 0.27776 AT\r
+   0.045 89.405\r
+   0.136 100.289\r
+   0.228 100.463\r
+   0.320 102.019\r
+   0.411 102.813\r
+   0.503 103.550\r
+   0.595 101.701\r
+   0.686 103.056\r
+   0.778 103.331\r
+   0.870 102.613\r
+   0.961 103.394\r
+   1.053 100.963\r
+   1.145 101.226\r
+   1.236 99.864\r
+   1.328 98.420\r
+   1.420 96.827\r
+   1.511 95.034\r
+   1.603 93.241\r
+   1.695 93.485\r
+   1.786 88.068\r
+   1.878 64.358\r
+   1.970 30.264\r
+   2.061 8.691\r
+   2.153 1.399\r
+   2.245 0.525\r
+   2.336 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_H999.eng b/datafiles/thrustcurves/AeroTech_H999.eng
new file mode 100644 (file)
index 0000000..15d7e2b
--- /dev/null
@@ -0,0 +1,42 @@
+;\r
+; 38-360\r
+;  Greg Gardner - 09/15/06\r
+H999N 38 203 0 0.144 0.331 AT\r
+0.003  204\r
+0.006  757\r
+0.009  1357\r
+0.012  1710\r
+0.016  1345\r
+0.019  995\r
+0.022  710\r
+0.025  606\r
+0.028  905\r
+0.031  1165\r
+0.0325  1311\r
+0.034  1258\r
+0.037  1098\r
+0.04   1072\r
+0.043  969\r
+0.047  1072\r
+0.0485  1166\r
+0.05   1098\r
+0.053  1160\r
+0.056  1117\r
+0.059  1103\r
+0.062  1093\r
+0.069  1076\r
+0.075  1110\r
+0.082  1105\r
+0.088  1065\r
+0.093  1082\r
+0.1    1092\r
+0.2    1022\r
+0.25   931\r
+0.3    853\r
+0.306  850\r
+0.309  838\r
+0.312  735\r
+0.318  435\r
+0.325  161\r
+0.329  0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_I1299.eng b/datafiles/thrustcurves/AeroTech_I1299.eng
new file mode 100644 (file)
index 0000000..f698f30
--- /dev/null
@@ -0,0 +1,24 @@
+;Entered by Jim Yehle\r
+;from TRA cert document\r
+I1299N 38 249 1000 0.192 0.422 AT-RMS \r
+0 15.7171\r
+0.00361 222.5\r
+0.0115 1112\r
+0.0134228 1237.11\r
+0.02 1287\r
+0.04 1359\r
+0.1 1451\r
+0.12 1470\r
+0.18 1491\r
+0.2 1483\r
+0.22 1462\r
+0.24 1399\r
+0.28 1208\r
+0.294743 1131.63\r
+0.3 1065\r
+0.304251 974.46\r
+0.32 305\r
+0.330537 55.0098\r
+0.333893 11.7878\r
+0.34 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_I132.eng b/datafiles/thrustcurves/AeroTech_I132.eng
new file mode 100644 (file)
index 0000000..a7aea82
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I132W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I132W 38 335 0 0.365568 0.512064 AT\r
+   0.096 204.011\r
+   0.290 174.236\r
+   0.484 168.865\r
+   0.679 170.783\r
+   0.874 173.028\r
+   1.069 174.287\r
+   1.264 174.647\r
+   1.458 174.364\r
+   1.652 174.645\r
+   1.847 173.002\r
+   2.042 169.209\r
+   2.236 164.309\r
+   2.431 157.149\r
+   2.626 149.580\r
+   2.821 138.360\r
+   3.016 124.171\r
+   3.210 107.626\r
+   3.404 89.785\r
+   3.599 71.747\r
+   3.794 55.124\r
+   3.989 42.264\r
+   4.183 31.373\r
+   4.378 21.980\r
+   4.573 14.389\r
+   4.768 8.794\r
+   4.962 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I154.eng b/datafiles/thrustcurves/AeroTech_I154.eng
new file mode 100644 (file)
index 0000000..b6a9a37
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I154J\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I154J 38 250 0 0.25088 0.491904 AT\r
+   0.066 120.409\r
+   0.199 150.638\r
+   0.332 151.666\r
+   0.466 156.806\r
+   0.599 150.331\r
+   0.732 150.602\r
+   0.866 145.101\r
+   0.999 144.469\r
+   1.133 145.159\r
+   1.268 145.912\r
+   1.401 141.710\r
+   1.534 142.828\r
+   1.668 141.187\r
+   1.801 140.970\r
+   1.934 137.832\r
+   2.068 128.417\r
+   2.202 122.339\r
+   2.336 111.986\r
+   2.470 105.295\r
+   2.603 96.602\r
+   2.736 90.469\r
+   2.870 57.427\r
+   3.003 20.489\r
+   3.136 4.707\r
+   3.271 2.966\r
+   3.405 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I161.eng b/datafiles/thrustcurves/AeroTech_I161.eng
new file mode 100644 (file)
index 0000000..dbcfb7e
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I161W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I161W 38 191 0 0.189952 0.370048 AT\r
+   0.043 178.900\r
+   0.131 206.770\r
+   0.221 206.101\r
+   0.310 205.175\r
+   0.400 206.924\r
+   0.490 210.603\r
+   0.579 210.475\r
+   0.669 211.555\r
+   0.758 212.379\r
+   0.848 212.096\r
+   0.938 209.060\r
+   1.027 202.345\r
+   1.116 192.439\r
+   1.204 179.499\r
+   1.294 162.159\r
+   1.383 148.446\r
+   1.473 135.222\r
+   1.563 120.095\r
+   1.652 104.041\r
+   1.742 87.962\r
+   1.831 74.789\r
+   1.921 54.362\r
+   2.010 23.386\r
+   2.100 7.332\r
+   2.190 5.171\r
+   2.279 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I195.eng b/datafiles/thrustcurves/AeroTech_I195.eng
new file mode 100644 (file)
index 0000000..c0dbe03
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I195J\r
+; converted from TMT test stand data 1996 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I195J 38 298 10 0.3136 0.59136 AT\r
+   0.050 258.670\r
+   0.152 353.638\r
+   0.254 300.655\r
+   0.356 265.354\r
+   0.458 266.338\r
+   0.560 283.233\r
+   0.662 332.442\r
+   0.765 283.040\r
+   0.867 230.795\r
+   0.969 222.867\r
+   1.071 217.091\r
+   1.173 210.600\r
+   1.275 202.722\r
+   1.377 192.671\r
+   1.479 182.571\r
+   1.581 171.964\r
+   1.683 162.238\r
+   1.785 148.138\r
+   1.888 130.259\r
+   1.990 107.022\r
+   2.092 80.230\r
+   2.194 51.074\r
+   2.296 26.313\r
+   2.398 10.397\r
+   2.500 3.977\r
+   2.602 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I195_1.eng b/datafiles/thrustcurves/AeroTech_I195_1.eng
new file mode 100644 (file)
index 0000000..25e6b13
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I195J\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I195J 38 297 0 0.296576 0.563136 AT\r
+   0.033 190.099\r
+   0.103 354.046\r
+   0.173 393.473\r
+   0.243 414.842\r
+   0.314 379.747\r
+   0.383 364.640\r
+   0.453 364.776\r
+   0.524 357.242\r
+   0.594 355.802\r
+   0.664 355.644\r
+   0.734 353.557\r
+   0.804 339.941\r
+   0.874 309.753\r
+   0.944 275.017\r
+   1.014 243.739\r
+   1.084 218.135\r
+   1.154 197.291\r
+   1.224 173.680\r
+   1.295 147.000\r
+   1.365 116.506\r
+   1.434 83.105\r
+   1.505 51.011\r
+   1.575 26.480\r
+   1.645 13.927\r
+   1.716 7.273\r
+   1.786 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I200.eng b/datafiles/thrustcurves/AeroTech_I200.eng
new file mode 100644 (file)
index 0000000..9b2bf33
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I200W\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I200W 29 333 0 0.181888 0.357504 AT\r
+   0.033 303.951\r
+   0.103 273.452\r
+   0.174 276.061\r
+   0.245 271.625\r
+   0.316 268.233\r
+   0.386 258.449\r
+   0.457 252.480\r
+   0.528 246.642\r
+   0.599 242.304\r
+   0.670 237.737\r
+   0.741 234.769\r
+   0.811 233.171\r
+   0.882 230.660\r
+   0.953 224.985\r
+   1.024 221.658\r
+   1.095 214.548\r
+   1.166 177.365\r
+   1.236 154.208\r
+   1.307 119.146\r
+   1.378 91.586\r
+   1.449 65.330\r
+   1.520 32.877\r
+   1.591 28.702\r
+   1.661 22.211\r
+   1.732 15.558\r
+   1.803 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I211.eng b/datafiles/thrustcurves/AeroTech_I211.eng
new file mode 100644 (file)
index 0000000..43dd444
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I211W\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I211W 38 240 0 0.247296 0.466368 AT\r
+   0.044 257.326\r
+   0.134 295.533\r
+   0.226 296.087\r
+   0.318 298.204\r
+   0.408 295.082\r
+   0.499 287.669\r
+   0.591 282.578\r
+   0.682 272.875\r
+   0.773 266.997\r
+   0.864 257.602\r
+   0.955 250.495\r
+   1.047 238.574\r
+   1.138 228.571\r
+   1.228 215.135\r
+   1.320 198.047\r
+   1.411 180.631\r
+   1.502 161.261\r
+   1.593 146.708\r
+   1.684 134.484\r
+   1.776 101.241\r
+   1.867 52.688\r
+   1.957 35.461\r
+   2.049 24.321\r
+   2.141 11.165\r
+   2.232 4.587\r
+   2.324 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I218.eng b/datafiles/thrustcurves/AeroTech_I218.eng
new file mode 100644 (file)
index 0000000..f9bf8c9
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech I218R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I218R 38 191 0 0.19264 0.37184 AT\r
+   0.027 136.078\r
+   0.088 275.030\r
+   0.148 280.998\r
+   0.208 284.371\r
+   0.268 284.037\r
+   0.327 279.311\r
+   0.388 277.791\r
+   0.448 276.309\r
+   0.509 269.384\r
+   0.570 266.041\r
+   0.630 261.907\r
+   0.690 256.366\r
+   0.750 250.565\r
+   0.810 242.206\r
+   0.870 234.607\r
+   0.930 225.488\r
+   0.991 216.166\r
+   1.053 205.415\r
+   1.112 193.238\r
+   1.173 177.206\r
+   1.233 161.304\r
+   1.292 139.118\r
+   1.353 96.082\r
+   1.413 38.848\r
+   1.474 5.978\r
+   1.535 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I225.rse b/datafiles/thrustcurves/AeroTech_I225.rse
new file mode 100644 (file)
index 0000000..a0a2c51
--- /dev/null
@@ -0,0 +1,37 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AT-RMS" code="I225FJ" Type="reloadable" dia="38." len="240." initWt="486."\r
+propWt="264." auto-calc-mass="1" auto-calc-cg="1" avgThrust="206.264"\r
+peakThrust="275.9" throatDia="0." exitDia="0." Itot="371.275" burn-time="1.8"\r
+massFrac="54.32" Isp="143.41" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Converted from RASP file by Chris Kobel mfr data\r
+Curvefit to instruction sheet on Aerotech website (12/27/06)</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="264." cg="120."/>\r
+      <eng-data  t="0.04" f="213.6" m="260.962" cg="120."/>\r
+      <eng-data  t="0.1" f="213.6" m="251.849" cg="120."/>\r
+      <eng-data  t="0.2" f="213.6" m="236.661" cg="120."/>\r
+      <eng-data  t="0.28" f="218.1" m="224.382" cg="120."/>\r
+      <eng-data  t="0.3" f="235.9" m="221.154" cg="120."/>\r
+      <eng-data  t="0.4" f="249.2" m="203.907" cg="120."/>\r
+      <eng-data  t="0.5" f="262.6" m="185.711" cg="120."/>\r
+      <eng-data  t="0.6" f="267." m="166.882" cg="120."/>\r
+      <eng-data  t="0.7" f="271.5" m="147.737" cg="120."/>\r
+      <eng-data  t="0.8" f="275.9" m="128.275" cg="120."/>\r
+      <eng-data  t="0.87" f="275.9" m="114.542" cg="120."/>\r
+      <eng-data  t="0.9" f="271.5" m="108.704" cg="120."/>\r
+      <eng-data  t="1." f="258.1" m="89.8748" cg="120."/>\r
+      <eng-data  t="1.1" f="240.3" m="72.1551" cg="120."/>\r
+      <eng-data  t="1.2" f="218.1" m="55.8576" cg="120."/>\r
+      <eng-data  t="1.3" f="200.3" m="40.9821" cg="120."/>\r
+      <eng-data  t="1.4" f="178." m="27.5324" cg="120."/>\r
+      <eng-data  t="1.5" f="160.2" m="15.5083" cg="120."/>\r
+      <eng-data  t="1.6" f="97.9" m="6.33202" cg="120."/>\r
+      <eng-data  t="1.7" f="40.1" m="1.42568" cg="120."/>\r
+      <eng-data  t="1.8" f="0." m="0." cg="120."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_I245.eng b/datafiles/thrustcurves/AeroTech_I245.eng
new file mode 100644 (file)
index 0000000..6c0c393
--- /dev/null
@@ -0,0 +1,30 @@
+;Ejection delays may not be corrrect.\r
+;From Aerotech pre-cert data.\r
+;Created 11/11/07 by Jim Yehle.\r
+I245G 38 192.532 0-6-10-14 0.1813 0.365 Aerotech \r
+0.0244989 234.061\r
+0.0550162 257.888\r
+0.0868597 368.567\r
+0.106904 382.335\r
+0.13363 390.808\r
+0.200445 405.635\r
+0.262806 410.931\r
+0.302895 411.99\r
+0.363029 408.813\r
+0.401294 398.43\r
+0.501114 363.271\r
+0.594655 320.907\r
+0.68932 278.355\r
+0.797327 212.879\r
+0.893204 181.477\r
+1.00647 154.187\r
+1.09061 133.72\r
+1.16036 120.737\r
+1.1804 122.856\r
+1.23625 106.43\r
+1.30421 75.0467\r
+1.3608 36.0094\r
+1.40312 19.0638\r
+1.43875 5.2955\r
+1.46325 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_I284.eng b/datafiles/thrustcurves/AeroTech_I284.eng
new file mode 100644 (file)
index 0000000..3c0084a
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I284W\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I284W 38 298 10 0.3136 0.55552 AT\r
+   0.033 370.682\r
+   0.103 483.606\r
+   0.174 483.282\r
+   0.245 486.856\r
+   0.316 490.842\r
+   0.386 499.428\r
+   0.457 508.800\r
+   0.528 506.326\r
+   0.599 485.287\r
+   0.670 481.043\r
+   0.741 455.776\r
+   0.811 426.920\r
+   0.882 393.422\r
+   0.953 367.404\r
+   1.024 347.490\r
+   1.095 325.191\r
+   1.166 304.064\r
+   1.236 284.158\r
+   1.307 271.165\r
+   1.378 228.579\r
+   1.449 130.521\r
+   1.520 57.212\r
+   1.591 29.552\r
+   1.661 16.413\r
+   1.732 10.365\r
+   1.803 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I284_1.eng b/datafiles/thrustcurves/AeroTech_I284_1.eng
new file mode 100644 (file)
index 0000000..b15b05b
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I284W\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I284W 38 297 0 0.310016 0.555072 AT\r
+   0.041 422.031\r
+   0.125 448.597\r
+   0.210 459.029\r
+   0.295 451.940\r
+   0.379 439.556\r
+   0.465 427.370\r
+   0.549 407.558\r
+   0.633 399.734\r
+   0.719 380.049\r
+   0.803 368.042\r
+   0.887 352.020\r
+   0.973 342.102\r
+   1.057 325.767\r
+   1.142 306.936\r
+   1.227 292.029\r
+   1.311 267.283\r
+   1.396 251.784\r
+   1.481 227.534\r
+   1.566 210.504\r
+   1.650 168.299\r
+   1.735 110.789\r
+   1.820 71.036\r
+   1.904 32.505\r
+   1.990 17.537\r
+   2.075 7.317\r
+   2.160 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I285.eng b/datafiles/thrustcurves/AeroTech_I285.eng
new file mode 100644 (file)
index 0000000..306ebff
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech I285R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I285R 38 250 0 0.25088 0.4928 AT\r
+   0.027 171.405\r
+   0.088 325.573\r
+   0.148 341.697\r
+   0.208 358.916\r
+   0.268 373.706\r
+   0.327 373.966\r
+   0.388 368.442\r
+   0.448 367.497\r
+   0.507 361.900\r
+   0.568 351.928\r
+   0.628 346.109\r
+   0.687 340.993\r
+   0.749 329.382\r
+   0.810 321.625\r
+   0.870 310.856\r
+   0.930 295.955\r
+   0.990 283.704\r
+   1.050 269.655\r
+   1.110 253.419\r
+   1.170 240.222\r
+   1.230 224.116\r
+   1.290 204.118\r
+   1.350 118.730\r
+   1.410 23.483\r
+   1.471 2.046\r
+   1.532 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I300.eng b/datafiles/thrustcurves/AeroTech_I300.eng
new file mode 100644 (file)
index 0000000..b0249ef
--- /dev/null
@@ -0,0 +1,20 @@
+;\r
+;\r
+I300T 38 250 6-10-14 0.2216 0.4405 AT\r
+0 473.17\r
+0.1 395.68\r
+0.2 375.31\r
+0.3 367.14\r
+0.4 358.97\r
+0.5 346.72\r
+0.6 338.56\r
+0.7 318.19\r
+0.8 305.94\r
+0.9 295.35\r
+1.07 269.23\r
+1.1 258.01\r
+1.2 246.79\r
+1.3 179.49\r
+1.4 48.95\r
+1.5 13.91\r
+1.6 0\r
diff --git a/datafiles/thrustcurves/AeroTech_I305.eng b/datafiles/thrustcurves/AeroTech_I305.eng
new file mode 100644 (file)
index 0000000..ac446a2
--- /dev/null
@@ -0,0 +1,21 @@
+; I305FJ based on Aerotech instruction sheet by C. Kobel 3/30/07\r
+I305FJ 38 298 6-10-14 0.302 0.581 AT\r
+   0.020 341.398\r
+   0.100 365.497\r
+   0.200 383.571\r
+   0.300 403.653\r
+   0.400 405.662\r
+   0.500 405.662\r
+   0.600 404.657\r
+   0.700 374.534\r
+   0.800 342.402\r
+   0.900 309.267\r
+   1.000 272.115\r
+   1.100 238.979\r
+   1.150 224.921\r
+   1.200 194.798\r
+   1.300 119.489\r
+   1.400 62.255\r
+   1.450 33.136\r
+   1.500 23.095\r
+   1.600 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_I357.eng b/datafiles/thrustcurves/AeroTech_I357.eng
new file mode 100644 (file)
index 0000000..e16e7c5
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I357T\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I357T 38 203 14 0.1792 0.34944 AT\r
+   0.028 311.629\r
+   0.087 351.768\r
+   0.147 349.074\r
+   0.206 346.175\r
+   0.266 341.229\r
+   0.325 336.857\r
+   0.384 333.748\r
+   0.444 326.960\r
+   0.503 319.679\r
+   0.563 312.533\r
+   0.622 300.790\r
+   0.681 292.787\r
+   0.741 283.766\r
+   0.800 274.578\r
+   0.859 264.915\r
+   0.919 254.273\r
+   0.978 241.755\r
+   1.037 229.020\r
+   1.097 216.238\r
+   1.156 187.776\r
+   1.216 109.940\r
+   1.275 56.459\r
+   1.334 24.476\r
+   1.394 10.977\r
+   1.454 3.450\r
+   1.515 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I364.eng b/datafiles/thrustcurves/AeroTech_I364.eng
new file mode 100644 (file)
index 0000000..c2fffb8
--- /dev/null
@@ -0,0 +1,25 @@
+; AeroTech I364FJ\r
+; Curvefit to instruction sheet on Aerotech website (12/27/06)\r
+; by Chris Kobel\r
+; burn time: 1.7 seconds\r
+; total impulse: 551.2 newton-seconds\r
+; average thrust: 72.9 pounds\r
+I364FJ 38 345 6-10-14 0.3625 0.678 AT\r
+  0.02    356.0\r
+  0.10    373.8\r
+  0.20    387.2\r
+  0.30    400.5\r
+  0.40    400.5\r
+  0.50    409.4\r
+  0.60    413.9\r
+  0.70    409.4\r
+  0.80    382.7\r
+  0.90    373.8\r
+  1.00    351.6\r
+  1.10    333.8\r
+  1.20    320.4\r
+  1.30    311.5\r
+  1.40    244.8\r
+  1.50    178.0\r
+  1.60     80.1\r
+  1.70 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_I366.eng b/datafiles/thrustcurves/AeroTech_I366.eng
new file mode 100644 (file)
index 0000000..324ddf1
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech I366R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I366R 38 298 0 0.3136 0.55552 AT\r
+   0.027 323.256\r
+   0.088 485.393\r
+   0.148 483.744\r
+   0.208 479.926\r
+   0.268 473.365\r
+   0.327 466.192\r
+   0.388 457.444\r
+   0.448 448.751\r
+   0.509 441.477\r
+   0.570 430.236\r
+   0.630 421.524\r
+   0.690 411.757\r
+   0.750 398.876\r
+   0.810 387.496\r
+   0.870 375.430\r
+   0.930 361.325\r
+   0.991 345.057\r
+   1.053 330.392\r
+   1.112 312.636\r
+   1.173 293.508\r
+   1.233 275.085\r
+   1.292 262.408\r
+   1.353 230.881\r
+   1.413 118.008\r
+   1.474 23.611\r
+   1.535 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I435.eng b/datafiles/thrustcurves/AeroTech_I435.eng
new file mode 100644 (file)
index 0000000..e8b87be
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I435T\r
+; converted from TMT test stand data 1996 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I435T 38 298 6 0.28672 0.52864 AT\r
+   0.026 684.626\r
+   0.080 702.334\r
+   0.134 655.130\r
+   0.190 638.942\r
+   0.245 624.098\r
+   0.299 611.802\r
+   0.354 602.601\r
+   0.409 590.237\r
+   0.464 575.712\r
+   0.519 563.654\r
+   0.574 548.912\r
+   0.628 527.885\r
+   0.683 504.211\r
+   0.739 480.412\r
+   0.793 459.219\r
+   0.848 436.771\r
+   0.903 414.493\r
+   0.957 392.151\r
+   1.012 366.634\r
+   1.068 299.670\r
+   1.122 182.639\r
+   1.177 106.457\r
+   1.232 55.447\r
+   1.286 23.628\r
+   1.342 11.052\r
+   1.397 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I435_1.eng b/datafiles/thrustcurves/AeroTech_I435_1.eng
new file mode 100644 (file)
index 0000000..c6dae9b
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I435T\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I435T 38 297 0 0.26656 0.513408 AT\r
+   0.024 808.049\r
+   0.074 749.691\r
+   0.124 709.215\r
+   0.174 656.216\r
+   0.224 636.578\r
+   0.274 621.839\r
+   0.324 592.267\r
+   0.374 584.551\r
+   0.424 573.277\r
+   0.474 547.725\r
+   0.524 539.962\r
+   0.574 525.268\r
+   0.624 500.456\r
+   0.674 484.978\r
+   0.724 464.323\r
+   0.774 442.837\r
+   0.824 424.540\r
+   0.874 405.872\r
+   0.924 393.443\r
+   0.974 317.157\r
+   1.024 217.630\r
+   1.074 126.188\r
+   1.124 74.391\r
+   1.174 30.034\r
+   1.224 9.380\r
+   1.274 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_I49.eng b/datafiles/thrustcurves/AeroTech_I49.eng
new file mode 100644 (file)
index 0000000..5d73150
--- /dev/null
@@ -0,0 +1,29 @@
+; Aerotech I49N-P\r
+I49N-P 38 184 P 0.20500000000000002 0.398 AT\r
+   0.0080 1.406\r
+   0.025 48.594\r
+   0.093 52.031\r
+   0.429 57.344\r
+   0.665 60.313\r
+   0.841 60.625\r
+   1.06 62.344\r
+   1.295 63.438\r
+   1.556 62.344\r
+   1.825 62.344\r
+   1.994 60.625\r
+   2.212 60.156\r
+   3.003 56.719\r
+   3.785 52.344\r
+   4.349 49.375\r
+   4.997 46.563\r
+   5.998 43.438\r
+   6.393 42.031\r
+   6.831 41.563\r
+   6.999 36.875\r
+   7.083 33.125\r
+   7.184 31.406\r
+   7.369 23.125\r
+   7.495 16.406\r
+   7.764 4.219\r
+   7.882 1.875\r
+   7.941 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_I59.eng b/datafiles/thrustcurves/AeroTech_I59.eng
new file mode 100644 (file)
index 0000000..11a81c7
--- /dev/null
@@ -0,0 +1,37 @@
+; Aerotech I59WN-P\r
+I59WN-P 38 232 P 0.272 0.487 AT\r
+   0.0090 0.357\r
+   0.046 138.571\r
+   0.12 150.0\r
+   0.193 147.857\r
+   0.368 157.857\r
+   0.506 167.857\r
+   0.699 171.071\r
+   0.791 171.786\r
+   0.893 168.571\r
+   1.058 158.214\r
+   1.233 146.429\r
+   1.417 132.143\r
+   1.509 125.714\r
+   1.61 100.357\r
+   1.675 80.357\r
+   1.785 60.357\r
+   1.96 53.571\r
+   2.209 48.571\r
+   2.531 45.357\r
+   2.669 43.214\r
+   3.009 40.714\r
+   3.387 40.714\r
+   4.021 38.929\r
+   4.261 37.5\r
+   4.997 36.429\r
+   6.0 33.929\r
+   6.883 31.429\r
+   7.003 33.571\r
+   7.187 30.714\r
+   7.334 27.5\r
+   7.574 22.5\r
+   7.96 17.5\r
+   8.117 9.643\r
+   8.319 4.643\r
+   8.604 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_I600.eng b/datafiles/thrustcurves/AeroTech_I600.eng
new file mode 100644 (file)
index 0000000..8499b0c
--- /dev/null
@@ -0,0 +1,23 @@
+;\r
+;I600R Data Entered by Tim Van Milligan\r
+;For RockSim: www.RockSim.com\r
+;Based on Aerotech's Reload Kit Instruction Sheet.\r
+;Not Officially Approved by TRA or Aerotech\r
+I600R 38 344.68 6-10-14 0.3237 0.617 AT\r
+0.005 40.438\r
+0.046 817.754\r
+0.059 813.261\r
+0.1 772.822\r
+0.2 736.877\r
+0.4 696.439\r
+0.5 669.48\r
+0.6 620.055\r
+0.796 539.178\r
+0.894 485.261\r
+0.951 453.809\r
+0.964 435.836\r
+1 274.082\r
+1.052 152.767\r
+1.106 62.904\r
+1.144 13.48\r
+1.18 0\r
diff --git a/datafiles/thrustcurves/AeroTech_I65.eng b/datafiles/thrustcurves/AeroTech_I65.eng
new file mode 100644 (file)
index 0000000..6e0111c
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech I65W\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I65W 54 235 0 0.41216 0.7616 AT\r
+   0.180 125.414\r
+   0.544 139.304\r
+   0.908 145.369\r
+   1.273 148.283\r
+   1.638 146.745\r
+   2.002 139.049\r
+   2.367 131.200\r
+   2.731 123.276\r
+   3.096 113.454\r
+   3.460 102.368\r
+   3.825 90.210\r
+   4.190 78.084\r
+   4.554 66.812\r
+   4.919 55.780\r
+   5.283 47.281\r
+   5.648 39.154\r
+   6.012 32.528\r
+   6.377 27.069\r
+   6.742 22.099\r
+   7.106 18.095\r
+   7.471 14.819\r
+   7.835 12.097\r
+   8.200 9.763\r
+   8.565 7.875\r
+   8.929 5.999\r
+   9.294 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J1299.eng b/datafiles/thrustcurves/AeroTech_J1299.eng
new file mode 100644 (file)
index 0000000..cf0b523
--- /dev/null
@@ -0,0 +1,39 @@
+;\r
+; AT 54-852\r
+;  Greg Gardner - 09/15/06\r
+J1299N  54  230  0 0.3716  0.834  AT\r
+0.01  548\r
+0.02  1152\r
+0.03  1232\r
+0.04  1277\r
+0.05  1272\r
+0.06  1288\r
+0.07  1333\r
+0.08  1347\r
+0.09  1378\r
+0.10  1383\r
+0.12  1405\r
+0.14  1410\r
+0.16  1440\r
+0.18  1444\r
+0.20  1446\r
+0.25  1449\r
+0.30  1452\r
+0.35  1448\r
+0.40  1440\r
+0.45  1405\r
+0.50  1320\r
+0.55  1248\r
+0.57  1224\r
+0.59  1210\r
+0.60  1180\r
+0.61  1188\r
+0.615 1195\r
+0.62  1188\r
+0.63  510\r
+0.64  220\r
+0.65  96\r
+0.66  46\r
+0.67  26\r
+0.678 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_J135.eng b/datafiles/thrustcurves/AeroTech_J135.eng
new file mode 100644 (file)
index 0000000..d6cacd7
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J135W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J135W 54 368 0 0.62272 1.14106 AT\r
+   0.147 226.295\r
+   0.444 243.688\r
+   0.742 250.916\r
+   1.040 257.345\r
+   1.338 259.308\r
+   1.635 253.727\r
+   1.933 246.071\r
+   2.231 235.780\r
+   2.529 221.775\r
+   2.827 205.143\r
+   3.125 183.570\r
+   3.423 161.103\r
+   3.720 140.983\r
+   4.017 122.984\r
+   4.315 106.605\r
+   4.612 91.959\r
+   4.910 77.693\r
+   5.208 65.304\r
+   5.506 54.347\r
+   5.804 44.246\r
+   6.102 35.395\r
+   6.400 27.716\r
+   6.698 21.121\r
+   6.996 14.939\r
+   7.294 9.737\r
+   7.592 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J145.eng b/datafiles/thrustcurves/AeroTech_J145.eng
new file mode 100644 (file)
index 0000000..f4ac44d
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J145H\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J145H 54 709 0 0.410816 1.79738 AT\r
+   0.113 253.118\r
+   0.340 293.672\r
+   0.567 300.149\r
+   0.794 289.519\r
+   1.021 253.366\r
+   1.248 251.809\r
+   1.476 246.042\r
+   1.704 236.553\r
+   1.931 229.907\r
+   2.158 222.550\r
+   2.385 211.120\r
+   2.612 201.066\r
+   2.841 191.143\r
+   3.069 139.197\r
+   3.296 79.889\r
+   3.523 63.900\r
+   3.750 51.048\r
+   3.977 40.565\r
+   4.205 31.710\r
+   4.433 24.429\r
+   4.660 19.950\r
+   4.887 15.256\r
+   5.115 12.412\r
+   5.342 10.212\r
+   5.570 9.135\r
+   5.798 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J180.eng b/datafiles/thrustcurves/AeroTech_J180.eng
new file mode 100644 (file)
index 0000000..6c5f915
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J180T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J180T 54 230 0 0.429184 0.809088 AT\r
+   0.093 301.634\r
+   0.281 313.236\r
+   0.470 313.710\r
+   0.658 308.334\r
+   0.847 300.100\r
+   1.035 290.743\r
+   1.224 278.867\r
+   1.412 263.823\r
+   1.601 245.974\r
+   1.790 226.651\r
+   1.978 207.345\r
+   2.167 187.053\r
+   2.355 168.339\r
+   2.544 149.993\r
+   2.732 133.094\r
+   2.921 116.330\r
+   3.109 100.088\r
+   3.298 84.507\r
+   3.486 70.453\r
+   3.675 57.263\r
+   3.864 44.453\r
+   4.052 33.340\r
+   4.241 24.654\r
+   4.429 17.964\r
+   4.619 12.391\r
+   4.808 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J1999.eng b/datafiles/thrustcurves/AeroTech_J1999.eng
new file mode 100644 (file)
index 0000000..b577746
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+; AT 54-1280\r
+;  Greg Gardner - 09/15/06\r
+J1999N  54  314  0  0.5574  1.111  AT\r
+0.01  830\r
+0.02  1716\r
+0.03  1787\r
+0.04  1873\r
+0.05  1896\r
+0.06  1918\r
+0.07  1984\r
+0.08  2007\r
+0.09  2051\r
+0.10  2058\r
+0.12  2090\r
+0.14  2098\r
+0.16  2135\r
+0.18  2138\r
+0.20  2142\r
+0.25  2146\r
+0.30  2150\r
+0.35  2146\r
+0.40  2138\r
+0.45  2096\r
+0.50  1974\r
+0.55  1864\r
+0.57  1829\r
+0.59  1815\r
+0.60  1762\r
+0.61  1673\r
+0.62  1085\r
+0.63  490\r
+0.64  190\r
+0.65  81\r
+0.66  31\r
+0.67  0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_J210.eng b/datafiles/thrustcurves/AeroTech_J210.eng
new file mode 100644 (file)
index 0000000..2182361
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+J210H 54 609.6 100 0.471 1.497 Aerotech\r
+0.00772798 651.819\r
+0.0695518 528.502\r
+0.200927 488.864\r
+0.502318 409.589\r
+0.996909 374.355\r
+1.4915 312.697\r
+1.59196 286.272\r
+2.00927 167.359\r
+2.43431 88.0836\r
+2.50386 101.296\r
+2.55023 74.8711\r
+3.02164 57.2543\r
+4 0\r
diff --git a/datafiles/thrustcurves/AeroTech_J260.eng b/datafiles/thrustcurves/AeroTech_J260.eng
new file mode 100644 (file)
index 0000000..5f07d7f
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+J260HW 54 708.66 100 0.558 1.574 AT\r
+0.00772798 598.969\r
+0.0386399 475.651\r
+0.108192 506.481\r
+0.463679 493.268\r
+0.780526 475.651\r
+1.01236 427.205\r
+2.00155 330.314\r
+2.48841 193.784\r
+2.99073 114.509\r
+4.01082 57.2543\r
+4.5 0\r
diff --git a/datafiles/thrustcurves/AeroTech_J275.eng b/datafiles/thrustcurves/AeroTech_J275.eng
new file mode 100644 (file)
index 0000000..5f28dd7
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J275W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J275W 54 230 0 0.468608 0.864192 AT\r
+   0.075 239.740\r
+   0.227 289.133\r
+   0.380 299.773\r
+   0.533 312.721\r
+   0.686 323.878\r
+   0.840 332.165\r
+   0.992 336.422\r
+   1.145 335.110\r
+   1.298 329.538\r
+   1.451 325.343\r
+   1.604 309.980\r
+   1.756 292.901\r
+   1.909 275.732\r
+   2.063 257.341\r
+   2.216 234.891\r
+   2.369 213.102\r
+   2.521 182.501\r
+   2.674 167.853\r
+   2.827 153.041\r
+   2.980 138.115\r
+   3.133 105.605\r
+   3.285 67.369\r
+   3.439 29.239\r
+   3.592 14.599\r
+   3.745 6.662\r
+   3.898 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J315.eng b/datafiles/thrustcurves/AeroTech_J315.eng
new file mode 100644 (file)
index 0000000..5947864
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech J315R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J315R 54 243 0 0.42112 0.8512 AT\r
+   0.051 189.719\r
+   0.154 337.529\r
+   0.259 354.534\r
+   0.363 364.111\r
+   0.468 371.479\r
+   0.572 373.222\r
+   0.676 376.062\r
+   0.780 372.962\r
+   0.884 368.988\r
+   0.989 366.978\r
+   1.093 358.752\r
+   1.197 351.302\r
+   1.301 339.336\r
+   1.406 325.202\r
+   1.510 311.322\r
+   1.614 300.496\r
+   1.718 288.598\r
+   1.822 278.279\r
+   1.927 270.538\r
+   2.031 262.127\r
+   2.136 245.027\r
+   2.239 236.238\r
+   2.344 188.308\r
+   2.448 63.668\r
+   2.552 18.746\r
+   2.657 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J340.rse b/datafiles/thrustcurves/AeroTech_J340.rse
new file mode 100644 (file)
index 0000000..bbad18d
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Aerotech" code="J340M" Type="reloadable" dia="38." len="337."\r
+initWt="577.3" propWt="365." delays="2,4,6,8,10,14" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="298.067" peakThrust="606.518" throatDia="0."\r
+exitDia="0." Itot="652.767" burn-time="2.19" massFrac="63.23" Isp="182.37"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>AT J340 Metalstorm for 38-720</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="365." cg="168.5"/>\r
+      <eng-data  t="0.005" f="361.55" m="364.495" cg="168.5"/>\r
+      <eng-data  t="0.008" f="501.742" m="363.771" cg="168.5"/>\r
+      <eng-data  t="0.026" f="606.518" m="358.193" cg="168.5"/>\r
+      <eng-data  t="0.096" f="491.412" m="336.706" cg="168.5"/>\r
+      <eng-data  t="0.214" f="453.044" m="305.548" cg="168.5"/>\r
+      <eng-data  t="0.485" f="439.762" m="237.904" cg="168.5"/>\r
+      <eng-data  t="0.772" f="435.335" m="167.687" cg="168.5"/>\r
+      <eng-data  t="0.826" f="426.481" m="154.676" cg="168.5"/>\r
+      <eng-data  t="0.891" f="423.53" m="139.229" cg="168.5"/>\r
+      <eng-data  t="1.048" f="383.685" m="103.797" cg="168.5"/>\r
+      <eng-data  t="1.389" f="311.375" m="37.5323" cg="168.5"/>\r
+      <eng-data  t="1.425" f="308.424" m="31.2941" cg="168.5"/>\r
+      <eng-data  t="1.459" f="309.9" m="25.4165" cg="168.5"/>\r
+      <eng-data  t="1.554" f="182.988" m="12.3254" cg="168.5"/>\r
+      <eng-data  t="1.611" f="103.3" m="7.76309" cg="168.5"/>\r
+      <eng-data  t="1.699" f="57.553" m="3.80562" cg="168.5"/>\r
+      <eng-data  t="1.841" f="11.806" m="1.05205" cg="168.5"/>\r
+      <eng-data  t="1.898" f="8.854" m="0.722815" cg="168.5"/>\r
+      <eng-data  t="2.19" f="0." m="0." cg="168.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_J350.eng b/datafiles/thrustcurves/AeroTech_J350.eng
new file mode 100644 (file)
index 0000000..59076b3
--- /dev/null
@@ -0,0 +1,21 @@
+J350W-L 38 337 P 0.361 0.651 AT\r
+   0.041 841.443\r
+   0.051 767.077\r
+   0.088 698.219\r
+   0.173 644.51\r
+   0.256 621.098\r
+   0.298 564.635\r
+   0.547 543.977\r
+   0.783 487.514\r
+   0.989 418.656\r
+   1.16 359.438\r
+   1.192 340.158\r
+   1.213 320.878\r
+   1.287 216.214\r
+   1.319 179.031\r
+   1.342 126.699\r
+   1.386 84.007\r
+   1.427 53.709\r
+   1.48 45.446\r
+   1.591 20.657\r
+   1.695 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_J350_1.eng b/datafiles/thrustcurves/AeroTech_J350_1.eng
new file mode 100644 (file)
index 0000000..bf37f23
--- /dev/null
@@ -0,0 +1,31 @@
+; AeroTech J350W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J350W 38 337 0 0.375872 0.650944 AT\r
+   0.038 706.781\r
+   0.115 669.055\r
+   0.192 602.539\r
+   0.270 565.084\r
+   0.348 539.143\r
+   0.425 514.910\r
+   0.503 483.098\r
+   0.581 449.128\r
+   0.658 437.256\r
+   0.736 424.199\r
+   0.815 414.461\r
+   0.892 402.956\r
+   0.970 393.604\r
+   1.048 377.837\r
+   1.125 359.785\r
+   1.203 341.916\r
+   1.281 324.721\r
+   1.358 305.935\r
+   1.436 264.279\r
+   1.515 175.471\r
+   1.592 110.912\r
+   1.670 77.100\r
+   1.748 55.472\r
+   1.825 39.990\r
+   1.903 26.276\r
+   1.981 0.000\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_J390.eng b/datafiles/thrustcurves/AeroTech_J390.eng
new file mode 100644 (file)
index 0000000..7dee40e
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+J390HW-TURBO 54 708.66 100 0.69 1.74 AT\r
+0.015456 440.418\r
+0.100464 550.523\r
+0.193199 546.118\r
+0.301391 656.223\r
+0.502318 647.414\r
+0.973725 581.352\r
+1.48377 471.247\r
+1.98609 378.759\r
+2.17929 334.718\r
+2.30294 255.442\r
+2.49614 158.55\r
+3.01391 57.2543\r
+3.5 0\r
diff --git a/datafiles/thrustcurves/AeroTech_J415.eng b/datafiles/thrustcurves/AeroTech_J415.eng
new file mode 100644 (file)
index 0000000..973f7ec
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J415W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J415W 54 314 0 0.686336 1.15718 AT\r
+   0.065 431.300\r
+   0.196 452.427\r
+   0.327 489.904\r
+   0.458 513.542\r
+   0.591 523.192\r
+   0.723 531.440\r
+   0.854 542.165\r
+   0.985 542.731\r
+   1.118 549.788\r
+   1.250 553.889\r
+   1.381 537.331\r
+   1.512 512.126\r
+   1.645 517.338\r
+   1.777 498.098\r
+   1.908 473.365\r
+   2.040 444.157\r
+   2.172 413.187\r
+   2.304 384.854\r
+   2.435 360.556\r
+   2.567 297.571\r
+   2.699 178.288\r
+   2.831 89.889\r
+   2.962 43.066\r
+   3.094 19.126\r
+   3.226 8.995\r
+   3.358 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J420.eng b/datafiles/thrustcurves/AeroTech_J420.eng
new file mode 100644 (file)
index 0000000..10da3b6
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech J420R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J420R 38 337 0 0.37632 0.6496 AT\r
+   0.031 61.083\r
+   0.095 563.470\r
+   0.160 525.283\r
+   0.224 521.242\r
+   0.288 527.371\r
+   0.352 537.088\r
+   0.418 535.138\r
+   0.481 534.623\r
+   0.545 530.245\r
+   0.610 526.447\r
+   0.674 517.203\r
+   0.738 510.279\r
+   0.802 500.887\r
+   0.868 479.450\r
+   0.931 460.675\r
+   0.995 438.594\r
+   1.060 409.647\r
+   1.124 383.454\r
+   1.188 361.024\r
+   1.252 339.741\r
+   1.318 319.194\r
+   1.381 296.714\r
+   1.445 195.191\r
+   1.510 61.984\r
+   1.575 7.220\r
+   1.640 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J460.eng b/datafiles/thrustcurves/AeroTech_J460.eng
new file mode 100644 (file)
index 0000000..269811a
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J460T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J460T 54 230 0 0.413504 0.801024 AT\r
+   0.041 500.927\r
+   0.125 509.423\r
+   0.209 516.357\r
+   0.294 527.752\r
+   0.379 535.135\r
+   0.464 541.858\r
+   0.548 545.793\r
+   0.633 545.678\r
+   0.718 544.832\r
+   0.802 540.278\r
+   0.887 533.698\r
+   0.972 526.340\r
+   1.056 511.003\r
+   1.141 492.475\r
+   1.225 474.977\r
+   1.310 457.021\r
+   1.395 437.203\r
+   1.479 418.093\r
+   1.565 403.240\r
+   1.649 339.173\r
+   1.733 203.861\r
+   1.819 102.620\r
+   1.903 49.295\r
+   1.987 9.538\r
+   2.073 2.155\r
+   2.158 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J500.eng b/datafiles/thrustcurves/AeroTech_J500.eng
new file mode 100644 (file)
index 0000000..4358a4b
--- /dev/null
@@ -0,0 +1,21 @@
+;Delays are speculation.\r
+;Taken from Aerotech curves, not cert docs.\r
+;Jim Yehle 15 Nov 07\r
+J500G 38 335.407 0-6-10-14 0.3626 0.654 Aerotech \r
+0.0134378 40.2458\r
+0.0335946 724.425\r
+0.0403135 781.616\r
+0.0604703 787.971\r
+0.0895857 711.716\r
+0.134378 686.297\r
+0.394177 637.578\r
+0.575588 588.86\r
+0.606943 622.751\r
+0.633819 620.633\r
+1.20045 360.094\r
+1.24076 345.267\r
+1.31019 182.165\r
+1.38186 65.6642\r
+1.43337 23.3002\r
+1.45 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_J540.eng b/datafiles/thrustcurves/AeroTech_J540.eng
new file mode 100644 (file)
index 0000000..58cd385
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech J540R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J540R 54 314 0 0.61376 1.08416 AT\r
+   0.044 498.757\r
+   0.134 639.617\r
+   0.224 649.317\r
+   0.314 657.966\r
+   0.404 664.020\r
+   0.494 666.924\r
+   0.584 663.699\r
+   0.675 658.398\r
+   0.765 651.232\r
+   0.855 638.505\r
+   0.945 626.396\r
+   1.035 612.557\r
+   1.126 590.090\r
+   1.216 562.391\r
+   1.306 536.875\r
+   1.396 511.607\r
+   1.486 490.354\r
+   1.576 468.978\r
+   1.667 451.342\r
+   1.758 430.180\r
+   1.847 414.549\r
+   1.937 398.116\r
+   2.027 305.877\r
+   2.118 55.541\r
+   2.208 1.523\r
+   2.299 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J570.eng b/datafiles/thrustcurves/AeroTech_J570.eng
new file mode 100644 (file)
index 0000000..7c9988c
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J570W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J570W 38 479 0 0.547904 0.886144 AT\r
+   0.039 1149.795\r
+   0.119 1042.846\r
+   0.199 960.891\r
+   0.279 900.020\r
+   0.360 837.772\r
+   0.441 792.834\r
+   0.521 735.510\r
+   0.602 685.857\r
+   0.682 649.599\r
+   0.762 608.757\r
+   0.844 597.350\r
+   0.924 568.934\r
+   1.004 548.552\r
+   1.084 505.080\r
+   1.165 484.626\r
+   1.246 452.328\r
+   1.326 362.439\r
+   1.406 297.973\r
+   1.487 262.381\r
+   1.568 195.696\r
+   1.648 156.733\r
+   1.729 124.649\r
+   1.809 113.749\r
+   1.890 69.812\r
+   1.971 46.023\r
+   2.052 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J575.eng b/datafiles/thrustcurves/AeroTech_J575.eng
new file mode 100644 (file)
index 0000000..e059cc3
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+J575FJ 38 478.79 6-10-14 0.576 0.91424 Aerotech \r
+0.0156556 656.682\r
+0.0195695 840.689\r
+0.037182 840.689\r
+0.0606654 839.001\r
+0.101761 839.001\r
+0.162427 839.001\r
+0.228963 839.001\r
+0.315068 839.001\r
+0.399217 837.312\r
+0.459883 837.312\r
+0.547945 822.119\r
+0.60274 801.862\r
+0.700587 742.777\r
+0.802348 685.381\r
+0.841487 646.554\r
+0.902153 573.964\r
+0.949791 483.69\r
+1 319.581\r
+1.05365 220.66\r
+1.12916 153.62\r
+1.19961 99.5997\r
+1.27593 43.8914\r
+1.34 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_J800.eng b/datafiles/thrustcurves/AeroTech_J800.eng
new file mode 100644 (file)
index 0000000..d67e498
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J800T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J800T 54 314 0 0.613312 1.08595 AT\r
+   0.040 841.341\r
+   0.121 818.497\r
+   0.203 776.386\r
+   0.285 784.308\r
+   0.367 785.314\r
+   0.449 783.315\r
+   0.531 782.539\r
+   0.612 779.977\r
+   0.695 773.680\r
+   0.777 765.307\r
+   0.858 755.517\r
+   0.941 744.777\r
+   1.023 733.131\r
+   1.105 719.947\r
+   1.187 702.235\r
+   1.269 685.369\r
+   1.351 668.265\r
+   1.433 650.327\r
+   1.515 630.472\r
+   1.597 615.483\r
+   1.679 470.262\r
+   1.760 256.617\r
+   1.843 108.716\r
+   1.925 15.005\r
+   2.007 1.249\r
+   2.090 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_J90.eng b/datafiles/thrustcurves/AeroTech_J90.eng
new file mode 100644 (file)
index 0000000..2ca28ce
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech J90W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J90W 54 243 0 0.427392 0.852544 AT\r
+   0.143 116.187\r
+   0.430 165.444\r
+   0.718 176.536\r
+   1.005 184.645\r
+   1.293 187.242\r
+   1.580 183.651\r
+   1.868 175.492\r
+   2.155 167.687\r
+   2.443 156.858\r
+   2.730 143.514\r
+   3.018 128.856\r
+   3.305 110.879\r
+   3.593 94.003\r
+   3.880 79.657\r
+   4.168 67.472\r
+   4.455 57.268\r
+   4.743 48.008\r
+   5.030 40.523\r
+   5.318 33.901\r
+   5.605 28.248\r
+   5.893 23.334\r
+   6.180 19.275\r
+   6.468 15.923\r
+   6.755 12.727\r
+   7.044 9.903\r
+   7.332 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K1000.eng b/datafiles/thrustcurves/AeroTech_K1000.eng
new file mode 100644 (file)
index 0000000..b5d86d2
--- /dev/null
@@ -0,0 +1,36 @@
+; Based on AT Instruction Sheet by C. Kobel  3/17/2010\r
+K1000T-P 75 396 P 1.182 2.575 AT\r
+   0.0040 895.149\r
+   0.015 1119.762\r
+   0.025 1093.337\r
+   0.095 1096.640\r
+   0.200 1109.853\r
+   0.300 1116.459\r
+   0.400 1123.065\r
+   0.500 1132.975\r
+   0.600 1139.581\r
+   0.700 1136.278\r
+   0.800 1136.278\r
+   0.900 1136.278\r
+   1.000 1139.581\r
+   1.100 1132.975\r
+   1.200 1129.672\r
+   1.300 1126.369\r
+   1.400 1119.762\r
+   1.500 1109.853\r
+   1.600 1096.640\r
+   1.700 1063.609\r
+   1.800 1017.365\r
+   1.900 971.121\r
+   2.000 914.968\r
+   2.100 868.724\r
+   2.180 865.421\r
+   2.200 878.634\r
+   2.218 858.815\r
+   2.269 670.536\r
+   2.300 578.048\r
+   2.332 445.923\r
+   2.356 336.920\r
+   2.389 224.613\r
+   2.436 105.7\r
+   2.500 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_K1050.eng b/datafiles/thrustcurves/AeroTech_K1050.eng
new file mode 100644 (file)
index 0000000..0a4bac7
--- /dev/null
@@ -0,0 +1,15 @@
+K1050W 54 635 1000 1.373 2.259 Aerotech \r
+0 934.5\r
+0.05 1468.5\r
+0.1 1335\r
+0.15 1290.5\r
+0.25 1246\r
+0.75 1246\r
+1.25 1201.5\r
+1.5 1157\r
+1.65 1157\r
+1.75 1246\r
+1.9 890\r
+2.1 578.5\r
+2.2 222.5\r
+2.46 0\r
diff --git a/datafiles/thrustcurves/AeroTech_K1050_1.eng b/datafiles/thrustcurves/AeroTech_K1050_1.eng
new file mode 100644 (file)
index 0000000..3ae6dab
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K1050W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K1050W 54 676 0 1.34714 2.12845 AT\r
+   0.049 1305.649\r
+   0.149 1270.386\r
+   0.249 1288.922\r
+   0.349 1327.059\r
+   0.449 1345.719\r
+   0.549 1359.794\r
+   0.649 1364.452\r
+   0.749 1365.493\r
+   0.849 1377.189\r
+   0.949 1379.519\r
+   1.049 1346.586\r
+   1.149 1286.742\r
+   1.249 1232.101\r
+   1.349 1186.480\r
+   1.449 1156.521\r
+   1.549 1120.045\r
+   1.649 1098.708\r
+   1.749 1070.186\r
+   1.849 889.885\r
+   1.949 646.691\r
+   2.049 441.213\r
+   2.149 302.245\r
+   2.249 155.001\r
+   2.349 52.187\r
+   2.449 43.415\r
+   2.549 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K1100.eng b/datafiles/thrustcurves/AeroTech_K1100.eng
new file mode 100644 (file)
index 0000000..52bbbf9
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech K1100T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K1100T 54 398 0 0.7616 1.32518 AT\r
+   0.034 1234.653\r
+   0.105 1233.429\r
+   0.176 1192.393\r
+   0.247 1163.041\r
+   0.318 1147.963\r
+   0.389 1146.319\r
+   0.460 1140.958\r
+   0.532 1132.640\r
+   0.603 1123.824\r
+   0.674 1108.921\r
+   0.745 1090.974\r
+   0.816 1073.937\r
+   0.887 1049.133\r
+   0.959 1021.216\r
+   1.030 994.559\r
+   1.101 966.571\r
+   1.172 940.194\r
+   1.243 909.792\r
+   1.315 880.264\r
+   1.386 844.477\r
+   1.457 643.599\r
+   1.528 401.861\r
+   1.599 145.498\r
+   1.670 28.372\r
+   1.742 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K1499.eng b/datafiles/thrustcurves/AeroTech_K1499.eng
new file mode 100644 (file)
index 0000000..49ebe4c
--- /dev/null
@@ -0,0 +1,13 @@
+;Entered by Jim Yehle\r
+;from TRA cert document\r
+K1499N 75 260 1000 0.604 1.741 AT-RMS \r
+0.01 1450\r
+0.2 1720.12\r
+0.35 1700\r
+0.5 1600\r
+0.6 1575\r
+0.7 1500\r
+0.82 1400\r
+0.84 250\r
+0.88 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_K185.eng b/datafiles/thrustcurves/AeroTech_K185.eng
new file mode 100644 (file)
index 0000000..90cf5a4
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K185W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K185W 54 437 0 0.827008 1.43405 AT\r
+   0.150 279.128\r
+   0.452 308.220\r
+   0.754 328.435\r
+   1.056 338.929\r
+   1.359 339.677\r
+   1.663 333.166\r
+   1.965 321.891\r
+   2.267 309.687\r
+   2.570 293.260\r
+   2.873 271.536\r
+   3.175 247.174\r
+   3.477 216.883\r
+   3.780 186.951\r
+   4.083 161.096\r
+   4.385 138.113\r
+   4.688 117.749\r
+   4.991 99.372\r
+   5.294 82.759\r
+   5.596 68.426\r
+   5.898 55.126\r
+   6.201 44.162\r
+   6.504 34.209\r
+   6.806 25.064\r
+   7.108 16.880\r
+   7.411 9.200\r
+   7.715 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K1999.rse b/datafiles/thrustcurves/AeroTech_K1999.rse
new file mode 100644 (file)
index 0000000..2fb506a
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+ <engine-list>\r
+<engine FDiv="10" FFix="1" FStep="-1." Isp="215.07" Itot="2520.39" Type="reloadable" auto-calc-cg="1" auto-calc-mass="1" avgThrust="1800.28" burn-time="1.4" cgDiv="10" cgFix="1" cgStep="-1." code="K1999N" delays="1000" dia="98." exitDia="0." initWt="2989." len="289." mDiv="10" mFix="1" mStep="-1." massFrac="39.98" mfg="Aerotech" peakThrust="2002." propWt="1195." tDiv="10" tFix="1" tStep="-1." throatDia="0.">\r
+<comments>98-2560\r
+Greg Gardner - 09/15/06\r
+</comments>\r
+<data>\r
+<eng-data cg="144.5" f="0." m="1195." t="0."/>\r
+<eng-data cg="144.5" f="1577." m="1185.65" t="0.025"/>\r
+<eng-data cg="144.5" f="1647." m="1181.83" t="0.03"/>\r
+<eng-data cg="144.5" f="1688." m="1166.02" t="0.05"/>\r
+<eng-data cg="144.5" f="1799." m="1145.35" t="0.075"/>\r
+<eng-data cg="144.5" f="1915." m="1123.34" t="0.1"/>\r
+<eng-data cg="144.5" f="1888." m="1100.8" t="0.125"/>\r
+<eng-data cg="144.5" f="1933." m="1078.16" t="0.15"/>\r
+<eng-data cg="144.5" f="1986." m="1054.93" t="0.175"/>\r
+<eng-data cg="144.5" f="2002." m="1048.31" t="0.182"/>\r
+<eng-data cg="144.5" f="2002." m="205.412" t="1.07"/>\r
+<eng-data cg="144.5" f="1978." m="177.106" t="1.1"/>\r
+<eng-data cg="144.5" f="1910." m="131.021" t="1.15"/>\r
+<eng-data cg="144.5" f="1790." m="87.1633" t="1.2"/>\r
+<eng-data cg="144.5" f="1710." m="66.42" t="1.225"/>\r
+<eng-data cg="144.5" f="1523." m="47.2591" t="1.25"/>\r
+<eng-data cg="144.5" f="1265." m="30.7356" t="1.275"/>\r
+<eng-data cg="144.5" f="998." m="17.3236" t="1.3"/>\r
+<eng-data cg="144.5" f="243." m="2.61365" t="1.35"/>\r
+<eng-data cg="144.5" f="99." m="0.586739" t="1.375"/>\r
+<eng-data cg="144.5" f="0." m="0." t="1.4"/>\r
+</data>\r
+</engine>\r
+ </engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_K250.eng b/datafiles/thrustcurves/AeroTech_K250.eng
new file mode 100644 (file)
index 0000000..bf74219
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K250W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K250W 54 673 0 1.52902 2.21133 AT\r
+   0.199 365.330\r
+   0.599 403.324\r
+   0.999 418.669\r
+   1.400 409.813\r
+   1.801 408.949\r
+   2.201 412.146\r
+   2.602 411.952\r
+   3.003 409.488\r
+   3.403 393.214\r
+   3.804 373.599\r
+   4.205 348.913\r
+   4.605 328.463\r
+   5.006 307.163\r
+   5.407 281.467\r
+   5.807 249.011\r
+   6.208 217.159\r
+   6.609 185.908\r
+   7.009 149.190\r
+   7.410 119.808\r
+   7.811 92.096\r
+   8.211 69.726\r
+   8.613 52.613\r
+   9.014 35.876\r
+   9.414 16.727\r
+   9.815 4.086\r
+   10.216 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K270.rse b/datafiles/thrustcurves/AeroTech_K270.rse
new file mode 100644 (file)
index 0000000..ce9bee6
--- /dev/null
@@ -0,0 +1,52 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AT" code="K270W" Type="reloadable" dia="54." len="579." initWt="2100."\r
+propWt="1188." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="247.914"\r
+peakThrust="425.727" throatDia="0." exitDia="0." Itot="2154.87" burn-time="8.69"\r
+massFrac="56.57" Isp="184.96" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>AeroTech K270W-P Moon Burner from TRA Certification Data\r
+K270W 54 P 1.188 2.1 AT\r
+\r
+Converted from Mark Koelsch submitted RASP file dated Mar 23, 2008.</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1188." cg="28.95"/>\r
+      <eng-data  t="0.046" f="177.061" m="1185.75" cg="28.95"/>\r
+      <eng-data  t="0.062" f="177.061" m="1184.19" cg="28.95"/>\r
+      <eng-data  t="0.092" f="292.932" m="1180.31" cg="28.95"/>\r
+      <eng-data  t="0.154" f="425.727" m="1168.02" cg="28.95"/>\r
+      <eng-data  t="0.277" f="414.01" m="1139.55" cg="28.95"/>\r
+      <eng-data  t="0.446" f="389.273" m="1102.13" cg="28.95"/>\r
+      <eng-data  t="0.585" f="377.556" m="1072.75" cg="28.95"/>\r
+      <eng-data  t="0.738" f="381.462" m="1040.74" cg="28.95"/>\r
+      <eng-data  t="1." f="372.349" m="986.296" cg="28.95"/>\r
+      <eng-data  t="1.154" f="377.556" m="954.462" cg="28.95"/>\r
+      <eng-data  t="1.231" f="376.254" m="938.462" cg="28.95"/>\r
+      <eng-data  t="1.308" f="378.858" m="922.434" cg="28.95"/>\r
+      <eng-data  t="1.4" f="395.783" m="902.789" cg="28.95"/>\r
+      <eng-data  t="1.569" f="380.16" m="866.642" cg="28.95"/>\r
+      <eng-data  t="1.615" f="399.689" m="856.753" cg="28.95"/>\r
+      <eng-data  t="1.846" f="381.462" m="807.012" cg="28.95"/>\r
+      <eng-data  t="2.369" f="381.462" m="697.023" cg="28.95"/>\r
+      <eng-data  t="2.415" f="368.443" m="687.515" cg="28.95"/>\r
+      <eng-data  t="2.554" f="381.462" m="658.781" cg="28.95"/>\r
+      <eng-data  t="3.015" f="360.631" m="564.478" cg="28.95"/>\r
+      <eng-data  t="3.354" f="350.216" m="498.052" cg="28.95"/>\r
+      <eng-data  t="3.723" f="328.083" m="429.058" cg="28.95"/>\r
+      <eng-data  t="4." f="300.743" m="381.043" cg="28.95"/>\r
+      <eng-data  t="4.6" f="273.403" m="286.083" cg="28.95"/>\r
+      <eng-data  t="5.262" f="225.232" m="195.091" cg="28.95"/>\r
+      <eng-data  t="5.677" f="175.759" m="149.219" cg="28.95"/>\r
+      <eng-data  t="6." f="144.513" m="120.703" cg="28.95"/>\r
+      <eng-data  t="6.538" f="124.984" m="80.7357" cg="28.95"/>\r
+      <eng-data  t="7.015" f="89.832" m="52.4901" cg="28.95"/>\r
+      <eng-data  t="8." f="66.398" m="10.0706" cg="28.95"/>\r
+      <eng-data  t="8.323" f="22.133" m="2.18808" cg="28.95"/>\r
+      <eng-data  t="8.508" f="10.415" m="0.528254" cg="28.95"/>\r
+      <eng-data  t="8.692" f="0." m="0." cg="28.95"/>\r
+      <eng-data  t="8.692" f="5.208" m="0." cg="28.95"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_K375.eng b/datafiles/thrustcurves/AeroTech_K375.eng
new file mode 100644 (file)
index 0000000..d05aa5a
--- /dev/null
@@ -0,0 +1,33 @@
+; From AT Instruction Sheet by C. Kobel 3/12/10\r
+K375NW-P 54 568 P 1.238 2.126 AT\r
+   0.027 886.971\r
+   0.036 1115.263\r
+   0.054 1268.705\r
+   0.135 1279.933\r
+   0.197 1313.615\r
+   0.292 1317.357\r
+   0.422 1343.555\r
+   0.444 1302.387\r
+   0.489 1336.07\r
+   0.552 452.842\r
+   0.574 396.704\r
+   0.718 452.842\r
+   0.794 460.327\r
+   0.902 437.872\r
+   0.992 411.674\r
+   1.189 404.189\r
+   1.400 366.764\r
+   1.575 381.734\r
+   1.791 370.507\r
+   4.000 366.764\r
+   4.165 344.309\r
+   4.290 239.520\r
+   4.398 239.520\r
+   4.537 183.382\r
+   4.645 183.382\r
+   4.761 93.562\r
+   5.000 93.562\r
+   5.200 63.622\r
+   5.400 44.910\r
+   5.600 33.682\r
+   5.800 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_K375.rse b/datafiles/thrustcurves/AeroTech_K375.rse
new file mode 100644 (file)
index 0000000..2f2cffe
--- /dev/null
@@ -0,0 +1,48 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Aerotech" code="K375NW-P" Type="reloadable" dia="54." len="568."\r
+initWt="2106." propWt="1318." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="384.474" peakThrust="1343.56" throatDia="0." exitDia="0."\r
+Itot="2229.95" burn-time="5.8" massFrac="62.58" Isp="172.53" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>AeroTech K375\r
+From RASP file created  by C. Kobel 3/12/10\r
+Converted to RockSim 9 by R. Geer 3/22/10</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1318." cg="284."/>\r
+      <eng-data  t="0.027" f="886.971" m="1310.92" cg="284."/>\r
+      <eng-data  t="0.036" f="1115.26" m="1305.6" cg="284."/>\r
+      <eng-data  t="0.054" f="1268.7" m="1292.92" cg="284."/>\r
+      <eng-data  t="0.135" f="1279.93" m="1231.91" cg="284."/>\r
+      <eng-data  t="0.197" f="1313.62" m="1184.39" cg="284."/>\r
+      <eng-data  t="0.292" f="1317.36" m="1110.52" cg="284."/>\r
+      <eng-data  t="0.422" f="1343.56" m="1008.3" cg="284."/>\r
+      <eng-data  t="0.444" f="1302.39" m="991.095" cg="284."/>\r
+      <eng-data  t="0.489" f="1336.07" m="956.008" cg="284."/>\r
+      <eng-data  t="0.552" f="452.842" m="922.702" cg="284."/>\r
+      <eng-data  t="0.574" f="396.704" m="917.179" cg="284."/>\r
+      <eng-data  t="0.718" f="452.842" m="881.026" cg="284."/>\r
+      <eng-data  t="0.794" f="460.327" m="860.517" cg="284."/>\r
+      <eng-data  t="0.902" f="437.872" m="831.849" cg="284."/>\r
+      <eng-data  t="0.992" f="411.674" m="809.254" cg="284."/>\r
+      <eng-data  t="1.189" f="404.189" m="761.756" cg="284."/>\r
+      <eng-data  t="1.4" f="366.764" m="713.683" cg="284."/>\r
+      <eng-data  t="1.575" f="381.734" m="674.973" cg="284."/>\r
+      <eng-data  t="1.791" f="370.507" m="626.955" cg="284."/>\r
+      <eng-data  t="4." f="366.764" m="145.658" cg="284."/>\r
+      <eng-data  t="4.165" f="344.309" m="110.985" cg="284."/>\r
+      <eng-data  t="4.29" f="239.52" m="89.4182" cg="284."/>\r
+      <eng-data  t="4.398" f="239.52" m="74.1289" cg="284."/>\r
+      <eng-data  t="4.537" f="183.382" m="56.7571" cg="284."/>\r
+      <eng-data  t="4.645" f="183.382" m="45.0513" cg="284."/>\r
+      <eng-data  t="4.761" f="93.562" m="35.5575" cg="284."/>\r
+      <eng-data  t="5." f="93.562" m="22.3409" cg="284."/>\r
+      <eng-data  t="5.2" f="63.622" m="13.0506" cg="284."/>\r
+      <eng-data  t="5.4" f="44.91" m="6.6359" cg="284."/>\r
+      <eng-data  t="5.6" f="33.682" m="1.99076" cg="284."/>\r
+      <eng-data  t="5.8" f="0." m="0." cg="284."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_K458.eng b/datafiles/thrustcurves/AeroTech_K458.eng
new file mode 100644 (file)
index 0000000..f4cc5cd
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K458W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K458W 98 275 0 1.42778 3.16378 AT\r
+   0.133 294.911\r
+   0.403 404.808\r
+   0.674 462.021\r
+   0.944 515.863\r
+   1.214 555.072\r
+   1.484 583.153\r
+   1.755 600.299\r
+   2.025 610.254\r
+   2.295 618.543\r
+   2.566 623.155\r
+   2.835 618.885\r
+   3.105 589.082\r
+   3.376 546.307\r
+   3.647 505.042\r
+   3.917 451.412\r
+   4.186 391.651\r
+   4.457 338.409\r
+   4.727 288.429\r
+   4.997 245.814\r
+   5.268 208.209\r
+   5.539 178.153\r
+   5.808 149.825\r
+   6.078 62.931\r
+   6.349 8.427\r
+   6.620 2.562\r
+   6.891 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K480.eng b/datafiles/thrustcurves/AeroTech_K480.eng
new file mode 100644 (file)
index 0000000..3afb639
--- /dev/null
@@ -0,0 +1,44 @@
+; From AT Instruction Sheet by C. Kobel 3/12/10\r
+K480W-P 54 568 P 1.232 2.059 AT\r
+   0.030 535.684\r
+   0.045 860.341\r
+   0.057 915.996\r
+   0.098 830.194\r
+   0.159 832.513\r
+   0.246 795.409\r
+   0.307 811.642\r
+   0.398 793.090\r
+   0.492 809.323\r
+   0.557 823.237\r
+   0.621 811.642\r
+   0.689 779.176\r
+   0.735 795.409\r
+   0.845 767.581\r
+   0.989 718.883\r
+   1.091 707.288\r
+   1.250 684.098\r
+   1.307 667.865\r
+   1.500 653.952\r
+   1.606 656.271\r
+   1.742 651.633\r
+   1.909 628.443\r
+   2.000 605.253\r
+   2.250 586.701\r
+   2.500 565.830\r
+   2.750 547.279\r
+   2.886 544.960\r
+   3.000 524.089\r
+   3.064 491.623\r
+   3.144 417.416\r
+   3.250 394.226\r
+   3.292 338.571\r
+   3.451 271.320\r
+   3.500 231.898\r
+   3.625 178.561\r
+   3.700 143.777\r
+   3.871 132.182\r
+   4.000 88.121\r
+   4.133 41.742\r
+   4.246 23.190\r
+   4.500 18.552\r
+   4.800 0.0\r
diff --git a/datafiles/thrustcurves/AeroTech_K485.eng b/datafiles/thrustcurves/AeroTech_K485.eng
new file mode 100644 (file)
index 0000000..973d6a4
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K485HW\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K485HW 54 699 0 0.910784 2.22029 AT\r
+   0.075 454.453\r
+   0.227 568.735\r
+   0.380 831.332\r
+   0.533 825.584\r
+   0.686 795.935\r
+   0.840 759.473\r
+   0.992 727.238\r
+   1.145 680.051\r
+   1.298 653.091\r
+   1.451 627.316\r
+   1.604 601.548\r
+   1.756 576.270\r
+   1.909 542.033\r
+   2.063 479.078\r
+   2.216 394.184\r
+   2.369 346.719\r
+   2.521 307.435\r
+   2.674 276.291\r
+   2.827 216.608\r
+   2.980 146.021\r
+   3.133 106.838\r
+   3.285 81.226\r
+   3.439 52.105\r
+   3.592 37.385\r
+   3.745 29.462\r
+   3.898 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K540.rse b/datafiles/thrustcurves/AeroTech_K540.rse
new file mode 100644 (file)
index 0000000..84428cc
--- /dev/null
@@ -0,0 +1,44 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AT" code="K540M" Type="unspecified" dia="54." len="401." initWt="1275."\r
+propWt="876.7" delays="2,4,6,8,10,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="484.267" peakThrust="855.514" throatDia="0." exitDia="0."\r
+Itot="1592.75" burn-time="3.29" massFrac="68.76" Isp="185.26" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>AT K540 Metalstorm 54-1706</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="876.7" cg="200.5"/>\r
+      <eng-data  t="0.013" f="625.709" m="874.461" cg="200.5"/>\r
+      <eng-data  t="0.014" f="791.806" m="874.071" cg="200.5"/>\r
+      <eng-data  t="0.03" f="855.514" m="866.817" cg="200.5"/>\r
+      <eng-data  t="0.073" f="764.502" m="847.646" cg="200.5"/>\r
+      <eng-data  t="0.146" f="718.996" m="817.841" cg="200.5"/>\r
+      <eng-data  t="0.33" f="712.17" m="745.367" cg="200.5"/>\r
+      <eng-data  t="0.394" f="734.923" m="719.879" cg="200.5"/>\r
+      <eng-data  t="0.622" f="705.344" m="629.503" cg="200.5"/>\r
+      <eng-data  t="0.866" f="678.041" m="536.605" cg="200.5"/>\r
+      <eng-data  t="1.059" f="655.288" m="465.784" cg="200.5"/>\r
+      <eng-data  t="1.406" f="648.462" m="341.276" cg="200.5"/>\r
+      <eng-data  t="1.445" f="596.13" m="327.917" cg="200.5"/>\r
+      <eng-data  t="1.544" f="605.231" m="295.184" cg="200.5"/>\r
+      <eng-data  t="1.668" f="582.478" m="254.652" cg="200.5"/>\r
+      <eng-data  t="1.689" f="625.709" m="247.669" cg="200.5"/>\r
+      <eng-data  t="1.741" f="566.551" m="230.606" cg="200.5"/>\r
+      <eng-data  t="2.032" f="498.292" m="145.326" cg="200.5"/>\r
+      <eng-data  t="2.088" f="480.089" m="130.247" cg="200.5"/>\r
+      <eng-data  t="2.118" f="511.943" m="122.056" cg="200.5"/>\r
+      <eng-data  t="2.174" f="436.858" m="107.433" cg="200.5"/>\r
+      <eng-data  t="2.324" f="395.903" m="73.0549" cg="200.5"/>\r
+      <eng-data  t="2.435" f="357.223" m="50.0477" cg="200.5"/>\r
+      <eng-data  t="2.525" f="304.891" m="33.6475" cg="200.5"/>\r
+      <eng-data  t="2.542" f="329.919" m="30.6775" cg="200.5"/>\r
+      <eng-data  t="2.65" f="175.198" m="15.6638" cg="200.5"/>\r
+      <eng-data  t="2.774" f="88.737" m="6.65652" cg="200.5"/>\r
+      <eng-data  t="2.89" f="36.405" m="2.66137" cg="200.5"/>\r
+      <eng-data  t="3.006" f="13.652" m="1.0633" cg="200.5"/>\r
+      <eng-data  t="3.289" f="0." m="0." cg="200.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/AeroTech_K550.eng b/datafiles/thrustcurves/AeroTech_K550.eng
new file mode 100644 (file)
index 0000000..aa58f4d
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K550W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K550W 54 410 0 0.919744 1.48736 AT\r
+   0.065 604.264\r
+   0.196 642.625\r
+   0.327 682.197\r
+   0.458 732.995\r
+   0.591 758.236\r
+   0.723 780.289\r
+   0.854 794.452\r
+   0.985 797.939\r
+   1.117 797.601\r
+   1.249 773.842\r
+   1.381 711.608\r
+   1.512 646.522\r
+   1.644 590.724\r
+   1.775 537.505\r
+   1.907 491.012\r
+   2.040 445.836\r
+   2.171 401.461\r
+   2.302 364.291\r
+   2.433 319.614\r
+   2.566 255.577\r
+   2.698 172.573\r
+   2.829 103.501\r
+   2.960 51.795\r
+   3.092 26.814\r
+   3.224 15.203\r
+   3.356 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K560.eng b/datafiles/thrustcurves/AeroTech_K560.eng
new file mode 100644 (file)
index 0000000..47ed528
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K560W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K560W 75 396 0 1.40806 2.71354 AT\r
+   0.096 552.123\r
+   0.290 645.403\r
+   0.484 681.109\r
+   0.679 716.167\r
+   0.874 742.678\r
+   1.069 764.778\r
+   1.264 775.710\r
+   1.458 785.859\r
+   1.653 789.305\r
+   1.848 789.077\r
+   2.043 744.622\r
+   2.237 676.886\r
+   2.432 614.711\r
+   2.627 557.908\r
+   2.822 503.641\r
+   3.017 455.504\r
+   3.211 412.045\r
+   3.406 372.963\r
+   3.601 335.987\r
+   3.796 307.346\r
+   3.991 279.856\r
+   4.185 223.491\r
+   4.380 70.441\r
+   4.575 10.028\r
+   4.770 2.445\r
+   4.965 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K650.eng b/datafiles/thrustcurves/AeroTech_K650.eng
new file mode 100644 (file)
index 0000000..67c2149
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K650T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K650T 98 289 0 1.27008 2.9353 AT\r
+   0.079 514.338\r
+   0.240 594.264\r
+   0.401 618.849\r
+   0.563 641.658\r
+   0.723 665.057\r
+   0.884 686.488\r
+   1.046 704.685\r
+   1.206 720.215\r
+   1.368 730.072\r
+   1.529 736.891\r
+   1.690 743.109\r
+   1.851 747.503\r
+   2.013 747.557\r
+   2.174 744.081\r
+   2.335 732.294\r
+   2.496 710.412\r
+   2.657 682.670\r
+   2.819 653.246\r
+   2.979 627.020\r
+   3.141 595.456\r
+   3.302 563.844\r
+   3.463 551.080\r
+   3.624 236.059\r
+   3.785 1.383\r
+   3.947 1.234\r
+   4.108 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K680.eng b/datafiles/thrustcurves/AeroTech_K680.eng
new file mode 100644 (file)
index 0000000..c92ed34
--- /dev/null
@@ -0,0 +1,21 @@
+;\r
+;Aerotech K680R RASP engine file\r
+;Data Entered by Tim Van Milligan\r
+;Source: TRA Certification paperwork, and\r
+;Aerotech's instruction sheet: RMS 98/2560-10240 REDLINE.\r
+K680R 98 289 100 1.316 3.035 AT\r
+0.085 629.798\r
+0.494 717.881\r
+0.996 797.157\r
+1.29 819.178\r
+1.506 819.178\r
+2.001 775.136\r
+2.519 673.84\r
+2.99 563.735\r
+3.137 541.714\r
+3.176 532.906\r
+3.238 563.735\r
+3.276 563.735\r
+3.408 52.85\r
+3.431 22.02\r
+3.49 0\r
diff --git a/datafiles/thrustcurves/AeroTech_K695.eng b/datafiles/thrustcurves/AeroTech_K695.eng
new file mode 100644 (file)
index 0000000..5932925
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech K695R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K695R 54 410 0 0.9184 1.48736 AT\r
+   0.044 618.611\r
+   0.134 727.840\r
+   0.224 751.996\r
+   0.314 812.480\r
+   0.404 900.125\r
+   0.495 884.763\r
+   0.585 873.457\r
+   0.675 864.561\r
+   0.765 849.672\r
+   0.856 838.886\r
+   0.946 822.550\r
+   1.036 806.240\r
+   1.126 781.342\r
+   1.216 753.973\r
+   1.307 728.472\r
+   1.398 697.629\r
+   1.487 672.979\r
+   1.578 646.660\r
+   1.667 620.897\r
+   1.758 595.574\r
+   1.849 571.720\r
+   1.939 546.822\r
+   2.029 272.824\r
+   2.119 57.950\r
+   2.209 4.509\r
+   2.300 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K700.eng b/datafiles/thrustcurves/AeroTech_K700.eng
new file mode 100644 (file)
index 0000000..b3c12b2
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech K700W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K700W 54 568 0 1.29158 2.03526 AT\r
+   0.069 1005.472\r
+   0.209 1018.916\r
+   0.350 1026.610\r
+   0.491 1028.637\r
+   0.632 1029.337\r
+   0.773 1004.203\r
+   0.914 970.694\r
+   1.055 946.516\r
+   1.196 918.437\r
+   1.336 873.783\r
+   1.478 821.276\r
+   1.619 773.270\r
+   1.759 735.553\r
+   1.900 692.732\r
+   2.041 658.984\r
+   2.182 626.737\r
+   2.323 591.431\r
+   2.464 508.666\r
+   2.605 420.175\r
+   2.746 328.309\r
+   2.886 202.409\r
+   3.028 121.672\r
+   3.169 80.453\r
+   3.309 50.873\r
+   3.451 31.548\r
+   3.593 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K780.eng b/datafiles/thrustcurves/AeroTech_K780.eng
new file mode 100644 (file)
index 0000000..cfda61d
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech K780R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+K780R 75 289 0 1.26784 2.9344 AT\r
+   0.053 383.290\r
+   0.173 718.241\r
+   0.292 849.343\r
+   0.413 885.503\r
+   0.533 903.243\r
+   0.652 924.403\r
+   0.772 938.825\r
+   0.892 938.623\r
+   1.013 947.130\r
+   1.133 953.578\r
+   1.253 944.001\r
+   1.373 935.448\r
+   1.495 929.447\r
+   1.617 920.379\r
+   1.737 897.293\r
+   1.857 888.917\r
+   1.977 861.127\r
+   2.098 840.971\r
+   2.217 812.360\r
+   2.337 779.614\r
+   2.457 747.866\r
+   2.578 726.819\r
+   2.697 729.258\r
+   2.817 279.891\r
+   2.940 10.969\r
+   3.063 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_K828.eng b/datafiles/thrustcurves/AeroTech_K828.eng
new file mode 100644 (file)
index 0000000..2c073f6
--- /dev/null
@@ -0,0 +1,30 @@
+;\r
+K828FJ  54.0 579.00 6-10-14-18 1.45000 2.25500 AT\r
+   0.01    1112.06 \r
+   0.02    1238.60 \r
+   0.04    1303.79 \r
+   0.06    1135.06 \r
+   0.08    1077.54 \r
+   0.13    1031.53 \r
+   0.20    1016.19 \r
+   0.50     993.18 \r
+   0.65    1004.68 \r
+   1.00     985.51 \r
+   1.08     974.01 \r
+   1.19     974.01 \r
+   1.42     954.83 \r
+   1.51     935.66 \r
+   1.69     912.65 \r
+   1.75     885.81 \r
+   1.83     893.48 \r
+   1.89     843.63 \r
+   1.95     774.60 \r
+   2.00     667.23 \r
+   2.15     444.82 \r
+   2.20     364.29 \r
+   2.23     260.76 \r
+   2.27     184.06 \r
+   2.33     111.21 \r
+   2.39      49.85 \r
+   2.50       0.00 \r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_L1120.eng b/datafiles/thrustcurves/AeroTech_L1120.eng
new file mode 100644 (file)
index 0000000..90819c4
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech L1120W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L1120W 75 665 0 2.75699 4.65786 AT\r
+   0.097 1377.215\r
+   0.293 1442.670\r
+   0.489 1496.986\r
+   0.685 1537.057\r
+   0.882 1554.962\r
+   1.078 1554.131\r
+   1.275 1547.973\r
+   1.472 1533.465\r
+   1.668 1510.342\r
+   1.865 1472.279\r
+   2.061 1362.534\r
+   2.257 1245.425\r
+   2.454 1148.864\r
+   2.651 1062.680\r
+   2.847 984.952\r
+   3.044 916.169\r
+   3.241 831.929\r
+   3.436 766.450\r
+   3.633 698.978\r
+   3.830 562.966\r
+   4.026 384.579\r
+   4.223 227.654\r
+   4.420 105.078\r
+   4.616 56.339\r
+   4.813 21.712\r
+   5.009 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_L1150.eng b/datafiles/thrustcurves/AeroTech_L1150.eng
new file mode 100644 (file)
index 0000000..32059ad
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech L1150\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L1150 75 531 0 2.06528 3.6736 AT\r
+   0.053 935.855\r
+   0.175 1292.642\r
+   0.300 1260.926\r
+   0.425 1241.482\r
+   0.550 1257.058\r
+   0.675 1272.287\r
+   0.800 1287.605\r
+   0.925 1301.012\r
+   1.048 1309.708\r
+   1.170 1308.417\r
+   1.295 1304.830\r
+   1.420 1285.265\r
+   1.545 1267.657\r
+   1.670 1255.624\r
+   1.795 1227.212\r
+   1.920 1202.443\r
+   2.043 1182.617\r
+   2.165 1150.712\r
+   2.290 1117.909\r
+   2.415 1081.739\r
+   2.540 1037.547\r
+   2.665 1007.091\r
+   2.790 1008.911\r
+   2.915 643.124\r
+   3.040 64.371\r
+   3.165 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_L1300.eng b/datafiles/thrustcurves/AeroTech_L1300.eng
new file mode 100644 (file)
index 0000000..ec9fc02
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+L1300R 98 443 100 2.508 4.884 AT\r
+0.0231839 1299.23\r
+0.502318 1332.26\r
+0.996909 1497.42\r
+1.49923 1552.47\r
+1.99382 1508.43\r
+2.49614 1354.29\r
+2.99845 1101.05\r
+3.12983 1090.03\r
+3.21484 1145.09\r
+3.3694 176.167\r
+3.5 0\r
diff --git a/datafiles/thrustcurves/AeroTech_L1420.eng b/datafiles/thrustcurves/AeroTech_L1420.eng
new file mode 100644 (file)
index 0000000..022b1ef
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+L1420R 75 443 100 2.56 4.562 AT\r
+0.0386399 1332.26\r
+0.123648 1563.48\r
+0.502318 1519.44\r
+0.996909 1574.49\r
+1.49923 1662.58\r
+2.00155 1574.49\r
+2.48068 1409.34\r
+2.92117 1299.23\r
+2.99073 1167.11\r
+3.11437 187.178\r
+3.24 0\r
diff --git a/datafiles/thrustcurves/AeroTech_L1500.eng b/datafiles/thrustcurves/AeroTech_L1500.eng
new file mode 100644 (file)
index 0000000..3a2ea4a
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech L1500T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L1500T 98 443 0 2.464 4.6592 AT\r
+   0.073 1320.328\r
+   0.222 1454.823\r
+   0.372 1508.992\r
+   0.522 1556.781\r
+   0.672 1602.407\r
+   0.822 1642.004\r
+   0.971 1670.099\r
+   1.120 1694.804\r
+   1.270 1701.295\r
+   1.420 1704.286\r
+   1.570 1701.008\r
+   1.720 1694.550\r
+   1.869 1683.861\r
+   2.018 1659.694\r
+   2.168 1620.161\r
+   2.318 1570.033\r
+   2.468 1517.933\r
+   2.618 1463.319\r
+   2.767 1400.991\r
+   2.916 1331.420\r
+   3.066 1279.479\r
+   3.216 1108.987\r
+   3.366 217.788\r
+   3.516 10.579\r
+   3.666 3.245\r
+   3.816 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_L850.eng b/datafiles/thrustcurves/AeroTech_L850.eng
new file mode 100644 (file)
index 0000000..bbbac92
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech L850W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L850W 75 531 0 2.06528 3.67315 AT\r
+   0.091 1015.926\r
+   0.274 1064.942\r
+   0.458 1101.366\r
+   0.643 1143.358\r
+   0.827 1170.928\r
+   1.011 1184.795\r
+   1.196 1178.044\r
+   1.380 1177.598\r
+   1.564 1174.910\r
+   1.748 1170.021\r
+   1.932 1113.716\r
+   2.117 1042.586\r
+   2.301 972.795\r
+   2.485 908.071\r
+   2.670 844.471\r
+   2.854 773.595\r
+   3.039 714.046\r
+   3.222 649.095\r
+   3.406 597.341\r
+   3.591 557.444\r
+   3.775 422.233\r
+   3.959 200.739\r
+   4.144 79.411\r
+   4.328 43.959\r
+   4.513 14.862\r
+   4.697 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_L952.eng b/datafiles/thrustcurves/AeroTech_L952.eng
new file mode 100644 (file)
index 0000000..a5159ea
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech L952W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L952W 98 427 0 2.73011 5.01222 AT\r
+   0.141 679.073\r
+   0.425 801.562\r
+   0.709 848.474\r
+   0.994 913.345\r
+   1.278 981.614\r
+   1.562 1043.690\r
+   1.847 1088.114\r
+   2.131 1112.556\r
+   2.416 1121.541\r
+   2.700 1118.573\r
+   2.984 1100.665\r
+   3.269 1039.140\r
+   3.553 965.784\r
+   3.837 876.793\r
+   4.122 780.693\r
+   4.406 693.903\r
+   4.691 608.030\r
+   4.975 528.335\r
+   5.259 463.528\r
+   5.544 405.769\r
+   5.828 358.367\r
+   6.112 279.009\r
+   6.397 99.897\r
+   6.681 20.108\r
+   6.967 3.317\r
+   7.252 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M1297.eng b/datafiles/thrustcurves/AeroTech_M1297.eng
new file mode 100644 (file)
index 0000000..8745297
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+; Aerotech M1297W\r
+;  Greg Gardner - 12/20/04\r
+M1297W  75  665  0  2.722  4.637  AT\r
+0.10  1433.4\r
+0.15  1789.3\r
+0.20  1922.8\r
+0.25  1869.4\r
+0.30  1856.0\r
+0.35  1833.8\r
+0.40  1767.0\r
+0.50  1722.6\r
+0.60  1709.2\r
+0.90  1700.3\r
+1.00  1688.1\r
+1.50  1678.7\r
+1.75  1634.6\r
+1.85  1622.3\r
+1.95  1572.8\r
+2.00  1554.0\r
+2.50  1346.5\r
+3.00  1136.0\r
+3.20  1053.3\r
+3.25  1044.1\r
+3.35  1032.0\r
+3.38  1020.0\r
+3.40  937.0\r
+3.50  738.0\r
+3.60  545.0\r
+3.75  393.0\r
+4.00  226.0\r
+4.25  94.0\r
+4.35  45.0\r
+4.40  0.0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_M1315.eng b/datafiles/thrustcurves/AeroTech_M1315.eng
new file mode 100644 (file)
index 0000000..c533a63
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech M1315W\r
+; converted from TMT test stand data 1999 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1315W 75 801 0 3.4496 5.6448 AT\r
+   0.116 1728.683\r
+   0.349 1673.336\r
+   0.582 1686.810\r
+   0.816 1696.068\r
+   1.049 1663.167\r
+   1.282 1631.243\r
+   1.516 1620.471\r
+   1.749 1619.702\r
+   1.982 1621.042\r
+   2.216 1615.320\r
+   2.449 1567.089\r
+   2.682 1493.722\r
+   2.916 1420.079\r
+   3.149 1358.660\r
+   3.382 1292.507\r
+   3.616 1224.806\r
+   3.849 1171.995\r
+   4.082 928.809\r
+   4.316 577.949\r
+   4.549 395.445\r
+   4.782 314.006\r
+   5.016 228.273\r
+   5.249 159.803\r
+   5.482 118.348\r
+   5.716 109.782\r
+   5.949 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M1419.eng b/datafiles/thrustcurves/AeroTech_M1419.eng
new file mode 100644 (file)
index 0000000..8238eca
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech M1419W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1419W 98 579 0 4.032 6.91622 AT\r
+   0.154 1154.896\r
+   0.465 1241.151\r
+   0.776 1300.224\r
+   1.087 1358.364\r
+   1.399 1411.033\r
+   1.710 1461.033\r
+   2.022 1485.747\r
+   2.333 1503.653\r
+   2.644 1513.113\r
+   2.955 1511.947\r
+   3.267 1492.438\r
+   3.578 1418.368\r
+   3.890 1326.608\r
+   4.201 1219.222\r
+   4.513 1087.648\r
+   4.824 937.068\r
+   5.135 810.066\r
+   5.446 709.130\r
+   5.757 624.701\r
+   6.069 557.223\r
+   6.380 437.806\r
+   6.692 252.076\r
+   7.003 107.741\r
+   7.315 19.973\r
+   7.626 0.515\r
+   7.937 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M1550.eng b/datafiles/thrustcurves/AeroTech_M1550.eng
new file mode 100644 (file)
index 0000000..75211cc
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech M1550R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1550R 75 800 0 3.4496 5.6448 AT\r
+   0.069 1720.759\r
+   0.212 2125.329\r
+   0.358 1995.947\r
+   0.501 1908.442\r
+   0.645 1868.713\r
+   0.790 1835.504\r
+   0.935 1808.662\r
+   1.079 1796.300\r
+   1.222 1785.423\r
+   1.368 1773.153\r
+   1.511 1746.590\r
+   1.655 1715.709\r
+   1.800 1689.633\r
+   1.945 1660.720\r
+   2.089 1633.277\r
+   2.232 1606.038\r
+   2.378 1570.222\r
+   2.521 1534.714\r
+   2.665 1503.345\r
+   2.810 1461.317\r
+   2.955 1427.572\r
+   3.099 1393.229\r
+   3.242 939.955\r
+   3.388 268.504\r
+   3.532 4.985\r
+   3.677 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M1600.eng b/datafiles/thrustcurves/AeroTech_M1600.eng
new file mode 100644 (file)
index 0000000..f145847
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech M1600R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1600R 98 579 0 4.032 6.91712 AT\r
+   0.088 1370.361\r
+   0.268 1626.628\r
+   0.448 1672.654\r
+   0.628 1720.596\r
+   0.808 1763.287\r
+   0.987 1801.282\r
+   1.167 1829.825\r
+   1.348 1845.146\r
+   1.529 1856.370\r
+   1.710 1850.089\r
+   1.890 1847.370\r
+   2.070 1829.454\r
+   2.250 1810.982\r
+   2.430 1784.910\r
+   2.610 1754.267\r
+   2.790 1726.898\r
+   2.971 1689.288\r
+   3.152 1641.579\r
+   3.332 1581.589\r
+   3.513 1511.036\r
+   3.692 1431.400\r
+   3.872 1361.032\r
+   4.053 1234.566\r
+   4.232 621.206\r
+   4.414 42.471\r
+   4.595 0.000\r
index b53609836c707a945226181dc2153d979fe59dc8..42b6beb7a730b1a074754bb6cf38dfc85f72beba 100644 (file)
@@ -1,4 +1,4 @@
-M1780 98 665 P 2.56 4.715 AT\r
+M1780 75 665 P 2.56 4.715 AT\r
    0.028 2204.193\r
    0.118 2566.025\r
    0.173 2566.025\r
diff --git a/datafiles/thrustcurves/AeroTech_M1939.eng b/datafiles/thrustcurves/AeroTech_M1939.eng
new file mode 100644 (file)
index 0000000..ed35997
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech M1939W\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1939W 98 732 0 5.656 8.98822 AT\r
+   0.134 1905.185\r
+   0.406 2021.155\r
+   0.679 2095.900\r
+   0.952 2158.087\r
+   1.225 2198.211\r
+   1.498 2219.694\r
+   1.770 2228.643\r
+   2.042 2229.881\r
+   2.315 2225.641\r
+   2.587 2211.713\r
+   2.860 2164.724\r
+   3.133 2047.014\r
+   3.405 1916.238\r
+   3.677 1805.664\r
+   3.950 1658.489\r
+   4.223 1497.704\r
+   4.496 1339.452\r
+   4.769 1213.061\r
+   5.041 1102.130\r
+   5.313 966.508\r
+   5.585 670.253\r
+   5.858 443.975\r
+   6.131 155.355\r
+   6.404 41.358\r
+   6.677 5.775\r
+   6.950 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M2000.eng b/datafiles/thrustcurves/AeroTech_M2000.eng
new file mode 100644 (file)
index 0000000..e2bf3ec
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech M2000R\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M2000R 98 732 0 5.65824 8.98688 AT\r
+   0.091 1530.959\r
+   0.279 2186.270\r
+   0.466 2166.698\r
+   0.655 2187.237\r
+   0.844 2219.069\r
+   1.031 2248.071\r
+   1.220 2273.743\r
+   1.409 2298.306\r
+   1.596 2309.753\r
+   1.785 2315.708\r
+   1.974 2316.158\r
+   2.161 2306.313\r
+   2.350 2282.230\r
+   2.539 2252.104\r
+   2.726 2209.638\r
+   2.915 2168.800\r
+   3.104 2117.175\r
+   3.291 2067.533\r
+   3.480 2004.508\r
+   3.669 1934.442\r
+   3.856 1831.480\r
+   4.045 1745.634\r
+   4.234 1504.269\r
+   4.421 649.796\r
+   4.610 58.178\r
+   4.799 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M2400.eng b/datafiles/thrustcurves/AeroTech_M2400.eng
new file mode 100644 (file)
index 0000000..8ee08b5
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech M2400T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M2400T 98 597 0 3.65254 6.4512 AT\r
+   0.070 2441.945\r
+   0.211 2495.460\r
+   0.353 2556.133\r
+   0.495 2601.596\r
+   0.636 2637.660\r
+   0.778 2660.804\r
+   0.920 2676.486\r
+   1.061 2687.081\r
+   1.203 2695.807\r
+   1.345 2694.493\r
+   1.486 2684.268\r
+   1.628 2667.289\r
+   1.771 2629.961\r
+   1.914 2578.923\r
+   2.055 2522.074\r
+   2.197 2461.704\r
+   2.339 2393.518\r
+   2.480 2303.939\r
+   2.622 2201.610\r
+   2.764 2097.461\r
+   2.905 2010.409\r
+   3.047 1275.776\r
+   3.189 418.836\r
+   3.330 17.586\r
+   3.473 3.669\r
+   3.616 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M2500.eng b/datafiles/thrustcurves/AeroTech_M2500.eng
new file mode 100644 (file)
index 0000000..2865725
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech M2500T\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M2500T 98 751 0 4.6592 8.064 AT\r
+   0.082 2651.855\r
+   0.249 2780.285\r
+   0.416 2820.733\r
+   0.583 2843.010\r
+   0.751 2847.765\r
+   0.918 2851.215\r
+   1.084 2854.737\r
+   1.252 2861.690\r
+   1.420 2858.088\r
+   1.586 2851.086\r
+   1.754 2844.622\r
+   1.922 2830.855\r
+   2.089 2804.711\r
+   2.255 2765.796\r
+   2.423 2710.509\r
+   2.591 2648.262\r
+   2.757 2586.910\r
+   2.925 2520.794\r
+   3.093 2462.217\r
+   3.259 2419.937\r
+   3.426 1894.936\r
+   3.594 808.043\r
+   3.761 282.403\r
+   3.928 97.876\r
+   4.096 24.492\r
+   4.264 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_M650.eng b/datafiles/thrustcurves/AeroTech_M650.eng
new file mode 100644 (file)
index 0000000..38c027e
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;75-6400 case\r
+;  Greg Gardner - 10/25/07\r
+M650W  75 801  0  3.351  5.125  AT\r
+0.08 1240\r
+0.12 1328\r
+0.25 1230\r
+0.5 1142\r
+1.0 1071\r
+1.5 1048\r
+2.0 1018\r
+2.5 982\r
+3.0 950\r
+3.5 853\r
+4.0 781\r
+5.0 595\r
+6.0 443\r
+7.0 297\r
+8.0 155\r
+9.0 88\r
+10.0 32\r
+10.5 12\r
+11.0 4\r
+11.5 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_M750.eng b/datafiles/thrustcurves/AeroTech_M750.eng
new file mode 100644 (file)
index 0000000..903d0a1
--- /dev/null
@@ -0,0 +1,24 @@
+;\r
+;98-10240 case\r
+;  Greg Gardner - 10/25/07\r
+M750W  98 732  0  5.3  8.776  AT\r
+0.1 1032\r
+0.2 992\r
+0.3 974\r
+0.48 966\r
+1.0 1055\r
+1.5 1152\r
+2.0 1192\r
+2.5 1218\r
+4.0 1103\r
+6.0 818\r
+8.0 561\r
+10.0 318\r
+11.0 216\r
+12.0 125\r
+13.0 76\r
+14.0 47\r
+15.0 23\r
+15.5 9\r
+16.0 0\r
+;\r
diff --git a/datafiles/thrustcurves/AeroTech_M845.eng b/datafiles/thrustcurves/AeroTech_M845.eng
new file mode 100644 (file)
index 0000000..a7e8c69
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+M845HW 98 795.02 100 3.569 6.833 AT\r
+0.015456 1332.26\r
+0.0463679 1706.62\r
+0.0772798 1178.12\r
+0.185471 1310.24\r
+0.973725 1222.16\r
+1.51468 1200.14\r
+1.97836 1123.07\r
+3.97218 1057\r
+4.20402 880.836\r
+6.01236 627.596\r
+6.495 418.397\r
+7.017 99.0941\r
+7.5 0\r
diff --git a/datafiles/thrustcurves/AeroTech_N2000.eng b/datafiles/thrustcurves/AeroTech_N2000.eng
new file mode 100644 (file)
index 0000000..1fa87c6
--- /dev/null
@@ -0,0 +1,30 @@
+; AeroTech N2000W\r
+; converted from TMT test stand data 1997 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+N2000W 98 1046 0 7.66707 12.2828 AT\r
+   0.146 2775.075\r
+   0.446 2831.810\r
+   0.746 2834.354\r
+   1.046 2829.564\r
+   1.346 2777.650\r
+   1.646 2688.252\r
+   1.950 2597.973\r
+   2.254 2501.043\r
+   2.554 2415.747\r
+   2.854 2343.624\r
+   3.154 2262.579\r
+   3.454 2178.182\r
+   3.758 2104.164\r
+   4.062 2024.475\r
+   4.362 1935.616\r
+   4.663 1839.781\r
+   4.962 1756.910\r
+   5.262 1351.806\r
+   5.567 954.556\r
+   5.871 681.831\r
+   6.171 475.910\r
+   6.471 361.124\r
+   6.771 194.633\r
+   7.071 44.938\r
+   7.375 6.030\r
+   7.679 0.000\r
diff --git a/datafiles/thrustcurves/AeroTech_N4800.eng b/datafiles/thrustcurves/AeroTech_N4800.eng
new file mode 100644 (file)
index 0000000..b9db511
--- /dev/null
@@ -0,0 +1,29 @@
+; AeroTech N4800T\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+N4800T 98 1194 0 9.7664 14.784 AT\r
+   0.098 4752.717\r
+   0.301 6007.533\r
+   0.506 5594.225\r
+   0.710 5270.361\r
+   0.914 5150.120\r
+   1.119 5108.054\r
+   1.324 5086.206\r
+   1.528 5031.651\r
+   1.731 4941.811\r
+   1.936 4800.400\r
+   2.140 4664.876\r
+   2.344 4527.840\r
+   2.549 4401.003\r
+   2.754 4263.565\r
+   2.958 4120.406\r
+   3.161 3971.136\r
+   3.366 3876.421\r
+   3.570 3916.232\r
+   3.774 3913.510\r
+   3.979 3312.758\r
+   4.184 1649.267\r
+   4.388 523.361\r
+   4.591 327.209\r
+   4.796 251.041\r
+   5.001 128.177\r
+   5.206 0.000\r
diff --git a/datafiles/thrustcurves/Apogee_1_2A2.eng b/datafiles/thrustcurves/Apogee_1_2A2.eng
new file mode 100644 (file)
index 0000000..7471c9d
--- /dev/null
@@ -0,0 +1,39 @@
+;\r
+;Apogee 1/2A2 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+1/2A2 11 57 2-4-6 0.0015 0.0044 Apogee \r
+0.007 0.19\r
+0.045 1.494\r
+0.078 3.152\r
+0.088 3.805\r
+0.093 3.805\r
+0.1 3.97\r
+0.105 3.696\r
+0.11 3.071\r
+0.117 2.554\r
+0.123 2.582\r
+0.132 2.31\r
+0.163 2.146\r
+0.2 1.984\r
+0.242 1.902\r
+0.253 2.01\r
+0.275 1.929\r
+0.342 1.929\r
+0.403 1.929\r
+0.41 1.848\r
+0.42 1.902\r
+0.467 1.902\r
+0.528 1.929\r
+0.565 1.929\r
+0.58 1.902\r
+0.593 1.848\r
+0.603 1.657\r
+0.61 1.141\r
+0.615 0.597\r
+0.622 0.244\r
+0.63 0\r
diff --git a/datafiles/thrustcurves/Apogee_1_4A2.eng b/datafiles/thrustcurves/Apogee_1_4A2.eng
new file mode 100644 (file)
index 0000000..3c66820
--- /dev/null
@@ -0,0 +1,30 @@
+;Apogee 1/4A2 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+1/4A2 11 38 2-4 0.0008 0.0036 Apogee \r
+0.007 0.162\r
+0.023 0.65\r
+0.041 1.463\r
+0.058 2.519\r
+0.074 3.738\r
+0.079 3.9\r
+0.088 4.915\r
+0.097 5.119\r
+0.106 5.4\r
+0.11 5.119\r
+0.118 3.981\r
+0.125 3.656\r
+0.132 3.453\r
+0.136 3.209\r
+0.151 3.169\r
+0.156 2.966\r
+0.168 2.884\r
+0.18 2.397\r
+0.194 1.625\r
+0.207 1.056\r
+0.218 0.406\r
+0.23 0\r
diff --git a/datafiles/thrustcurves/Apogee_A2.eng b/datafiles/thrustcurves/Apogee_A2.eng
new file mode 100644 (file)
index 0000000..00e9585
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;Apogee A2 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+A2 11 58 0-3-5-7 0.003 0.0067 Apogee \r
+0.014 0.241\r
+0.036 0.895\r
+0.064 2.618\r
+0.1 4.82\r
+0.111 4.133\r
+0.125 2.687\r
+0.139 2.307\r
+0.185 2.031\r
+0.296 1.928\r
+0.481 1.825\r
+0.517 1.722\r
+0.538 1.791\r
+0.649 1.688\r
+0.748 1.757\r
+0.869 1.825\r
+1.04 1.894\r
+1.101 1.894\r
+1.119 1.825\r
+1.144 1.928\r
+1.229 1.859\r
+1.265 1.894\r
+1.283 1.757\r
+1.29 1.412\r
+1.293 0.688\r
+1.3 0.275\r
+1.31 0\r
diff --git a/datafiles/thrustcurves/Apogee_B2.eng b/datafiles/thrustcurves/Apogee_B2.eng
new file mode 100644 (file)
index 0000000..50c2fd7
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+;Apogee B2 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+B2 11 88 0-3-5-7-9 0.006 0.0106 Apogee \r
+0.057 1.637\r
+0.093 4.091\r
+0.121 5.48\r
+0.143 4.787\r
+0.157 3.478\r
+0.207 2.578\r
+0.328 2.087\r
+0.371 2.087\r
+0.406 1.882\r
+0.641 1.841\r
+0.869 1.841\r
+1.283 1.882\r
+1.361 1.882\r
+1.397 1.718\r
+1.439 1.841\r
+1.532 1.718\r
+1.71 1.841\r
+1.888 1.882\r
+2.095 1.8\r
+2.23 1.8\r
+2.295 1.677\r
+2.423 1.759\r
+2.444 1.637\r
+2.466 0.982\r
+2.494 0.327\r
+2.53 0\r
diff --git a/datafiles/thrustcurves/Apogee_B7.eng b/datafiles/thrustcurves/Apogee_B7.eng
new file mode 100644 (file)
index 0000000..30c41d6
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;Apogee B7 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+B7 13 50 4-6-8-10 0.0028 0.0091 Apogee \r
+0.007 5.708\r
+0.013 7.211\r
+0.032 6.111\r
+0.045 8.116\r
+0.056 7.717\r
+0.069 9.02\r
+0.078 12.122\r
+0.087 14.76\r
+0.106 13.832\r
+0.117 13.733\r
+0.125 12.636\r
+0.155 12.438\r
+0.168 11.836\r
+0.2 11.243\r
+0.209 11.737\r
+0.219 10.739\r
+0.266 9.846\r
+0.29 9.849\r
+0.299 8.949\r
+0.367 7.456\r
+0.393 7.159\r
+0.429 5.761\r
+0.487 4.567\r
+0.571 2.975\r
+0.607 2.178\r
+0.669 1.084\r
+0.708 0.489\r
+0.74 0\r
diff --git a/datafiles/thrustcurves/Apogee_C10.eng b/datafiles/thrustcurves/Apogee_C10.eng
new file mode 100644 (file)
index 0000000..416c051
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Apogee C10 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C10 18 50 4-7-10 0.0049 0.0176 Apogee \r
+0.01 2.712\r
+0.019 5.842\r
+0.029 17.116\r
+0.037 25.72\r
+0.051 22.535\r
+0.07 20.446\r
+0.106 18.983\r
+0.164 17.085\r
+0.188 17.085\r
+0.2 15.824\r
+0.216 16.036\r
+0.255 15.602\r
+0.293 14.35\r
+0.343 13.503\r
+0.394 12.655\r
+0.41 11.605\r
+0.434 11.605\r
+0.521 9.287\r
+0.631 6.34\r
+0.741 4.021\r
+0.851 2.119\r
+0.911 1.48\r
+0.945 1.264\r
+0.96 0\r
diff --git a/datafiles/thrustcurves/Apogee_C4.eng b/datafiles/thrustcurves/Apogee_C4.eng
new file mode 100644 (file)
index 0000000..af54909
--- /dev/null
@@ -0,0 +1,37 @@
+;\r
+;Apogee C4 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C4 18 50 3-5-7 0.0045 0.017 Apogee \r
+0.018 3.23\r
+0.041 6.874\r
+0.147 8.779\r
+0.294 10.683\r
+0.365 11.31\r
+0.388 10.521\r
+0.412 8.779\r
+0.441 7.04\r
+0.465 4.555\r
+0.529 3.479\r
+0.629 2.981\r
+0.653 3.23\r
+0.718 2.816\r
+0.853 2.733\r
+1.065 2.65\r
+1.253 2.567\r
+1.453 2.401\r
+1.694 2.484\r
+1.794 2.484\r
+1.812 2.733\r
+1.841 2.401\r
+1.947 2.401\r
+2.112 2.401\r
+2.235 2.401\r
+2.282 2.236\r
+2.312 1.656\r
+2.329 0.662\r
+2.35 0\r
diff --git a/datafiles/thrustcurves/Apogee_C6.eng b/datafiles/thrustcurves/Apogee_C6.eng
new file mode 100644 (file)
index 0000000..62cfe24
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Apogee C6 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C6 13 83 4-7-10 0.007 0.0151 Apogee \r
+0.008 13.958\r
+0.016 21.1\r
+0.022 15.511\r
+0.03 12.831\r
+0.052 14.8\r
+0.081 15.927\r
+0.092 14.658\r
+0.114 16.069\r
+0.125 14.658\r
+0.136 15.369\r
+0.168 14.8\r
+0.214 13.816\r
+0.225 12.973\r
+0.247 13.958\r
+0.252 12.831\r
+0.285 12.547\r
+0.307 12.405\r
+0.317 12.831\r
+0.328 11.562\r
+0.347 11.988\r
+0.393 11.42\r
+0.442 10.719\r
+0.464 11.136\r
+0.488 9.164\r
+0.545 8.459\r
+0.624 7.754\r
+0.716 6.485\r
+0.838 5.075\r
+0.977 3.102\r
+1.096 1.833\r
+1.207 0.986\r
+1.32 0\r
diff --git a/datafiles/thrustcurves/Apogee_D10.eng b/datafiles/thrustcurves/Apogee_D10.eng
new file mode 100644 (file)
index 0000000..80d4ff9
--- /dev/null
@@ -0,0 +1,41 @@
+;\r
+;Apogee D10 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+D10 18 70 3-5-7 0.0098 0.0259 Apogee \r
+0.011 14.506\r
+0.018 25.13\r
+0.032 20.938\r
+0.079 19.065\r
+0.122 21.139\r
+0.136 19.686\r
+0.169 21.139\r
+0.201 20.728\r
+0.223 21.76\r
+0.233 20.938\r
+0.255 21.97\r
+0.276 20.938\r
+0.352 20.728\r
+0.402 20.107\r
+0.42 20.728\r
+0.459 20.107\r
+0.488 20.517\r
+0.556 18.243\r
+0.671 15.959\r
+0.707 14.717\r
+0.729 15.127\r
+0.779 12.853\r
+0.793 13.474\r
+0.836 11.401\r
+0.904 10.158\r
+0.926 10.569\r
+0.99 8.083\r
+1.026 8.498\r
+1.123 6.011\r
+1.231 2.487\r
+1.342 0.829\r
+1.4 0\r
diff --git a/datafiles/thrustcurves/Apogee_D3.eng b/datafiles/thrustcurves/Apogee_D3.eng
new file mode 100644 (file)
index 0000000..5c23b40
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+;Apogee D3 RASP.ENG file made from NAR published data\r
+;File produced September 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+D3 18 77 3-5-7 0.0098 0.0249 Apogee \r
+0.05 6.79\r
+0.168 8.788\r
+0.318 10.46\r
+0.385 10.07\r
+0.402 7.909\r
+0.469 5.432\r
+0.486 3.914\r
+0.687 3.115\r
+1.122 2.876\r
+2.06 2.636\r
+3.349 2.397\r
+4.639 2.156\r
+5.727 1.997\r
+6.163 1.837\r
+6.263 3.994\r
+6.347 2.317\r
+6.364 0.719\r
+6.39 0\r
diff --git a/datafiles/thrustcurves/Apogee_E6.eng b/datafiles/thrustcurves/Apogee_E6.eng
new file mode 100644 (file)
index 0000000..75d54c7
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;Aerotech E6 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+E6 24 70 2-4-6-8-100 0.0215 0.0463 Apogee \r
+0.056 18.59\r
+0.112 20.12\r
+0.168 17.575\r
+0.307 14.38\r
+0.531 10.45\r
+0.894 7.696\r
+1.146 6.244\r
+1.691 5.808\r
+2.836 5.663\r
+3.898 5.517\r
+4.275 5.227\r
+4.415 4.937\r
+5.058 5.082\r
+5.519 5.227\r
+5.603 6.679\r
+5.729 3.921\r
+5.882 2.323\r
+5.966 1.016\r
+6.06 0\r
diff --git a/datafiles/thrustcurves/Apogee_F10.eng b/datafiles/thrustcurves/Apogee_F10.eng
new file mode 100644 (file)
index 0000000..66c2154
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;Aerotech F10 RASP.ENG file made from NAR published data\r
+;File produced July 4, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+F10 29 93 4-6-8 0.0407 0.0841 Apogee \r
+0.015 28.22\r
+0.077 26.082\r
+0.201 24.934\r
+0.31 22.806\r
+0.464 20.183\r
+0.573 17.886\r
+0.789 16.075\r
+1.068 13.946\r
+1.393 12.63\r
+1.718 11.155\r
+2.166 9.844\r
+2.677 9.515\r
+3.311 9.187\r
+3.683 8.859\r
+3.791 9.679\r
+4.101 9.679\r
+4.658 9.515\r
+5.168 9.023\r
+5.725 9.023\r
+6.112 8.531\r
+6.329 8.859\r
+6.499 7.546\r
+6.685 5.742\r
+6.778 4.921\r
+6.917 2.625\r
+7.025 1.312\r
+7.13 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F120.eng b/datafiles/thrustcurves/Cesaroni_F120.eng
new file mode 100644 (file)
index 0000000..83b6f0d
--- /dev/null
@@ -0,0 +1,18 @@
+; Pro29-1G 56F120-VM 14A\r
+F120-VM 29 98 14-11-9-7-5 0.0314 0.1062 CTI\r
+   0.013 79.242\r
+   0.017 90.427\r
+   0.04 101.422\r
+   0.125 127.583\r
+   0.179 136.114\r
+   0.222 139.905\r
+   0.289 143.507\r
+   0.354 138.578\r
+   0.394 125.498\r
+   0.406 123.602\r
+   0.416 125.118\r
+   0.423 130.047\r
+   0.431 120.569\r
+   0.447 25.592\r
+   0.453 8.72\r
+   0.455 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F240.eng b/datafiles/thrustcurves/Cesaroni_F240.eng
new file mode 100644 (file)
index 0000000..21b818e
--- /dev/null
@@ -0,0 +1,27 @@
+; Pro-24-3G VMax\r
+68-F240-VM-15A 24 133 3-5-6-8-9-10 0.0303 0.0918 CTI\r
+   0.0040 100.528\r
+   0.0070 197.493\r
+   0.01 222.032\r
+   0.022 241.425\r
+   0.028 237.863\r
+   0.041 239.446\r
+   0.058 252.507\r
+   0.077 263.984\r
+   0.089 275.462\r
+   0.097 271.504\r
+   0.104 273.879\r
+   0.119 278.628\r
+   0.147 281.398\r
+   0.177 272.296\r
+   0.207 258.443\r
+   0.246 226.385\r
+   0.253 218.47\r
+   0.259 188.786\r
+   0.266 127.045\r
+   0.272 74.802\r
+   0.28 31.266\r
+   0.286 15.831\r
+   0.294 8.707\r
+   0.31 3.562\r
+   0.328 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F240.rse b/datafiles/thrustcurves/Cesaroni_F240.rse
new file mode 100644 (file)
index 0000000..aa6cce2
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="68-F240-VM-15A" Type="reloadable" dia="24." len="133."\r
+initWt="91.8" propWt="30.3" delays="3,5,6,8,9,10" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="207.343" peakThrust="281.398" throatDia="0."\r
+exitDia="0." Itot="68.009" burn-time="0.33" massFrac="33.01" Isp="228.88"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-3G VMax</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="30.3" cg="66.5"/>\r
+      <eng-data  t="0.004" f="100.528" m="30.2104" cg="66.5"/>\r
+      <eng-data  t="0.007" f="197.493" m="30.0113" cg="66.5"/>\r
+      <eng-data  t="0.01" f="222.032" m="29.7309" cg="66.5"/>\r
+      <eng-data  t="0.022" f="241.425" m="28.492" cg="66.5"/>\r
+      <eng-data  t="0.028" f="237.863" m="27.8514" cg="66.5"/>\r
+      <eng-data  t="0.041" f="239.446" m="26.4691" cg="66.5"/>\r
+      <eng-data  t="0.058" f="252.507" m="24.6061" cg="66.5"/>\r
+      <eng-data  t="0.077" f="263.984" m="22.42" cg="66.5"/>\r
+      <eng-data  t="0.089" f="275.462" m="20.9779" cg="66.5"/>\r
+      <eng-data  t="0.097" f="271.504" m="20.0032" cg="66.5"/>\r
+      <eng-data  t="0.104" f="273.879" m="19.1527" cg="66.5"/>\r
+      <eng-data  t="0.119" f="278.628" m="17.3065" cg="66.5"/>\r
+      <eng-data  t="0.147" f="281.398" m="13.8134" cg="66.5"/>\r
+      <eng-data  t="0.177" f="272.296" m="10.1131" cg="66.5"/>\r
+      <eng-data  t="0.207" f="258.443" m="6.56615" cg="66.5"/>\r
+      <eng-data  t="0.246" f="226.385" m="2.35403" cg="66.5"/>\r
+      <eng-data  t="0.253" f="218.47" m="1.66034" cg="66.5"/>\r
+      <eng-data  t="0.259" f="188.786" m="1.116" cg="66.5"/>\r
+      <eng-data  t="0.266" f="127.045" m="0.623507" cg="66.5"/>\r
+      <eng-data  t="0.272" f="74.802" m="0.353719" cg="66.5"/>\r
+      <eng-data  t="0.28" f="31.266" m="0.164692" cg="66.5"/>\r
+      <eng-data  t="0.286" f="15.831" m="0.101743" cg="66.5"/>\r
+      <eng-data  t="0.294" f="8.707" m="0.0580127" cg="66.5"/>\r
+      <eng-data  t="0.31" f="3.562" m="0.0142829" cg="66.5"/>\r
+      <eng-data  t="0.328" f="0." m="0." cg="66.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_F29.rse b/datafiles/thrustcurves/Cesaroni_F29.rse
new file mode 100644 (file)
index 0000000..66cb440
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="F29-IM" Type="unspecified" dia="29." len="98." initWt="105.8"\r
+propWt="37.6" delays="12,9,7,5,3" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="27.116" peakThrust="33.159" throatDia="0." exitDia="0." Itot="54.231"\r
+burn-time="2." massFrac="35.54" Isp="147.08" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro29-1G 55F29-IM 12A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="37.6" cg="49."/>\r
+      <eng-data  t="0.006" f="5.661" m="37.5882" cg="49."/>\r
+      <eng-data  t="0.038" f="23.312" m="37.2668" cg="49."/>\r
+      <eng-data  t="0.05" f="26.309" m="37.0604" cg="49."/>\r
+      <eng-data  t="0.229" f="30.257" m="33.5503" cg="49."/>\r
+      <eng-data  t="0.327" f="32.208" m="31.4282" cg="49."/>\r
+      <eng-data  t="0.485" f="33.159" m="27.8479" cg="49."/>\r
+      <eng-data  t="1.031" f="31.78" m="15.5563" cg="49."/>\r
+      <eng-data  t="1.516" f="27.07" m="5.66176" cg="49."/>\r
+      <eng-data  t="1.688" f="24.834" m="2.56692" cg="49."/>\r
+      <eng-data  t="1.765" f="20.172" m="1.36557" cg="49."/>\r
+      <eng-data  t="1.852" f="9.467" m="0.471671" cg="49."/>\r
+      <eng-data  t="1.963" f="2.093" m="0.026846" cg="49."/>\r
+      <eng-data  t="2." f="0." m="0." cg="49."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_F30.eng b/datafiles/thrustcurves/Cesaroni_F30.eng
new file mode 100644 (file)
index 0000000..d35847c
--- /dev/null
@@ -0,0 +1,21 @@
+; Pro-24-3G White Long Burn\r
+73-F30-WH_LB-6A 24 133 2-3-5-6 0.04 0.1022 CTI\r
+   0.014 54.222\r
+   0.056 43.456\r
+   0.092 50.185\r
+   0.16 54.063\r
+   0.232 48.364\r
+   0.363 45.752\r
+   0.499 43.14\r
+   0.655 40.29\r
+   0.843 37.836\r
+   1.216 32.612\r
+   1.368 30.317\r
+   1.54 26.359\r
+   1.675 23.509\r
+   1.861 19.077\r
+   2.013 14.565\r
+   2.159 10.053\r
+   2.302 4.828\r
+   2.462 1.504\r
+   2.598 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F30.rse b/datafiles/thrustcurves/Cesaroni_F30.rse
new file mode 100644 (file)
index 0000000..571bd5c
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="73-F30-WH_LB-6A" Type="reloadable" dia="24." len="133."\r
+initWt="102.2" propWt="40." delays="2,3,5,6" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="28.313" peakThrust="54.222" throatDia="0." exitDia="0." Itot="73.557"\r
+burn-time="2.6" massFrac="39.14" Isp="187.52" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-3G White Long Burn</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="40." cg="66.5"/>\r
+      <eng-data  t="0.014" f="54.222" m="39.7936" cg="66.5"/>\r
+      <eng-data  t="0.056" f="43.456" m="38.6782" cg="66.5"/>\r
+      <eng-data  t="0.092" f="50.185" m="37.7616" cg="66.5"/>\r
+      <eng-data  t="0.16" f="54.063" m="35.8341" cg="66.5"/>\r
+      <eng-data  t="0.232" f="48.364" m="33.829" cg="66.5"/>\r
+      <eng-data  t="0.363" f="45.752" m="30.4767" cg="66.5"/>\r
+      <eng-data  t="0.499" f="43.14" m="27.1897" cg="66.5"/>\r
+      <eng-data  t="0.655" f="40.29" m="23.6509" cg="66.5"/>\r
+      <eng-data  t="0.843" f="37.836" m="19.6574" cg="66.5"/>\r
+      <eng-data  t="1.216" f="32.612" m="12.5127" cg="66.5"/>\r
+      <eng-data  t="1.368" f="30.317" m="9.91196" cg="66.5"/>\r
+      <eng-data  t="1.54" f="26.359" m="7.26144" cg="66.5"/>\r
+      <eng-data  t="1.675" f="23.509" m="5.43099" cg="66.5"/>\r
+      <eng-data  t="1.861" f="19.077" m="3.27729" cg="66.5"/>\r
+      <eng-data  t="2.013" f="14.565" m="1.88693" cg="66.5"/>\r
+      <eng-data  t="2.159" f="10.053" m="0.90967" cg="66.5"/>\r
+      <eng-data  t="2.302" f="4.828" m="0.331079" cg="66.5"/>\r
+      <eng-data  t="2.462" f="1.504" m="0.0556148" cg="66.5"/>\r
+      <eng-data  t="2.598" f="0." m="0." cg="66.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_F36.eng b/datafiles/thrustcurves/Cesaroni_F36.eng
new file mode 100644 (file)
index 0000000..557d583
--- /dev/null
@@ -0,0 +1,21 @@
+F36-SS 29 98 2-4-6-8-11 0.035 0.104 CTI \r
+0.01 12\r
+0.02 46\r
+0.03 75\r
+0.04 79\r
+0.06 77\r
+0.07 62\r
+0.08 32\r
+0.1 35\r
+0.2 38\r
+0.3 39\r
+0.4 41\r
+0.5 43\r
+0.6 43\r
+0.7 43\r
+0.8 43\r
+0.85 47\r
+0.92 54\r
+0.95 32\r
+0.99 8\r
+1.05 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F36.rse b/datafiles/thrustcurves/Cesaroni_F36.rse
new file mode 100644 (file)
index 0000000..ad84b39
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="F36-BS" Type="unspecified" dia="29." len="98." initWt="101."\r
+propWt="32." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="34.767" peakThrust="43." throatDia="0." exitDia="0." Itot="52.15"\r
+burn-time="1.5" massFrac="31.68" Isp="166.18" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="32." cg="49."/>\r
+      <eng-data  t="0.01" f="12." m="31.9632" cg="49."/>\r
+      <eng-data  t="0.02" f="25." m="31.8497" cg="49."/>\r
+      <eng-data  t="0.03" f="41." m="31.6472" cg="49."/>\r
+      <eng-data  t="0.04" f="42." m="31.3925" cg="49."/>\r
+      <eng-data  t="0.05" f="42." m="31.1348" cg="49."/>\r
+      <eng-data  t="0.06" f="40." m="30.8832" cg="49."/>\r
+      <eng-data  t="0.07" f="34." m="30.6562" cg="49."/>\r
+      <eng-data  t="0.08" f="34." m="30.4476" cg="49."/>\r
+      <eng-data  t="0.09" f="35." m="30.2359" cg="49."/>\r
+      <eng-data  t="0.1" f="36." m="30.018" cg="49."/>\r
+      <eng-data  t="0.2" f="40." m="27.6863" cg="49."/>\r
+      <eng-data  t="0.3" f="42." m="25.1705" cg="49."/>\r
+      <eng-data  t="0.4" f="43." m="22.5626" cg="49."/>\r
+      <eng-data  t="0.5" f="43." m="19.9241" cg="49."/>\r
+      <eng-data  t="0.6" f="43." m="17.2855" cg="49."/>\r
+      <eng-data  t="0.7" f="43." m="14.647" cg="49."/>\r
+      <eng-data  t="0.8" f="42." m="12.0391" cg="49."/>\r
+      <eng-data  t="0.9" f="41." m="9.49262" cg="49."/>\r
+      <eng-data  t="1." f="40." m="7.00748" cg="49."/>\r
+      <eng-data  t="1.1" f="38." m="4.61438" cg="49."/>\r
+      <eng-data  t="1.24" f="37." m="1.39291" cg="49."/>\r
+      <eng-data  t="1.3" f="12." m="0.490892" cg="49."/>\r
+      <eng-data  t="1.4" f="2." m="0.0613615" cg="49."/>\r
+      <eng-data  t="1.5" f="0." m="0." cg="49."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_F59.rse b/datafiles/thrustcurves/Cesaroni_F59.rse
new file mode 100644 (file)
index 0000000..0d98a16
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="F59-WT" Type="unspecified" dia="29." len="98." initWt="99."\r
+propWt="31." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="58.959" peakThrust="71." throatDia="0." exitDia="0." Itot="57.19"\r
+burn-time="0.97" massFrac="31.31" Isp="188.12" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="31." cg="49."/>\r
+      <eng-data  t="0.01" f="16." m="30.9566" cg="49."/>\r
+      <eng-data  t="0.02" f="62." m="30.7452" cg="49."/>\r
+      <eng-data  t="0.03" f="67." m="30.3956" cg="49."/>\r
+      <eng-data  t="0.04" f="71." m="30.0216" cg="49."/>\r
+      <eng-data  t="0.07" f="58." m="28.9727" cg="49."/>\r
+      <eng-data  t="0.1" f="63." m="27.9889" cg="49."/>\r
+      <eng-data  t="0.2" f="67." m="24.4656" cg="49."/>\r
+      <eng-data  t="0.3" f="69." m="20.7796" cg="49."/>\r
+      <eng-data  t="0.4" f="67." m="17.0936" cg="49."/>\r
+      <eng-data  t="0.5" f="65." m="13.5161" cg="49."/>\r
+      <eng-data  t="0.6" f="63." m="10.0469" cg="49."/>\r
+      <eng-data  t="0.7" f="61." m="6.68622" cg="49."/>\r
+      <eng-data  t="0.87" f="60." m="1.11121" cg="49."/>\r
+      <eng-data  t="0.9" f="23." m="0.436353" cg="49."/>\r
+      <eng-data  t="0.97" f="0." m="0." cg="49."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_F79.eng b/datafiles/thrustcurves/Cesaroni_F79.eng
new file mode 100644 (file)
index 0000000..6e528da
--- /dev/null
@@ -0,0 +1,25 @@
+; Pro-24-3G Smoky Sam\r
+68-F79-SS-13A 24 133 4-6-7-9-11 0.0401 0.1075 CTI\r
+   0.0050 60.0\r
+   0.013 89.007\r
+   0.022 96.291\r
+   0.043 81.722\r
+   0.119 85.563\r
+   0.198 87.947\r
+   0.267 89.272\r
+   0.343 89.934\r
+   0.404 90.861\r
+   0.498 91.523\r
+   0.555 89.669\r
+   0.622 83.974\r
+   0.663 80.53\r
+   0.704 78.94\r
+   0.729 74.172\r
+   0.747 66.887\r
+   0.768 53.775\r
+   0.793 36.556\r
+   0.821 18.543\r
+   0.852 7.815\r
+   0.892 2.119\r
+   0.928 0.795\r
+   0.997 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_F79.rse b/datafiles/thrustcurves/Cesaroni_F79.rse
new file mode 100644 (file)
index 0000000..26f2dbf
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="68-F79-SS-13A" Type="reloadable" dia="24." len="133."\r
+initWt="107.5" propWt="40.1" delays="4,6,7,9,11" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="68.536" peakThrust="96.291" throatDia="0."\r
+exitDia="0." Itot="68.33" burn-time="1." massFrac="37.3" Isp="173.76" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-3G Smoky Sam</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="40.1" cg="66.5"/>\r
+      <eng-data  t="0.005" f="60." m="40.012" cg="66.5"/>\r
+      <eng-data  t="0.013" f="89.007" m="39.6622" cg="66.5"/>\r
+      <eng-data  t="0.022" f="96.291" m="39.1728" cg="66.5"/>\r
+      <eng-data  t="0.043" f="81.722" m="38.0759" cg="66.5"/>\r
+      <eng-data  t="0.119" f="85.563" m="34.3454" cg="66.5"/>\r
+      <eng-data  t="0.198" f="87.947" m="30.3233" cg="66.5"/>\r
+      <eng-data  t="0.267" f="89.272" m="26.7352" cg="66.5"/>\r
+      <eng-data  t="0.343" f="89.934" m="22.7388" cg="66.5"/>\r
+      <eng-data  t="0.404" f="90.861" m="19.5027" cg="66.5"/>\r
+      <eng-data  t="0.498" f="91.523" m="14.4722" cg="66.5"/>\r
+      <eng-data  t="0.555" f="89.669" m="11.4417" cg="66.5"/>\r
+      <eng-data  t="0.622" f="83.974" m="8.02789" cg="66.5"/>\r
+      <eng-data  t="0.663" f="80.53" m="6.04882" cg="66.5"/>\r
+      <eng-data  t="0.704" f="78.94" m="4.1303" cg="66.5"/>\r
+      <eng-data  t="0.729" f="74.172" m="3.00712" cg="66.5"/>\r
+      <eng-data  t="0.747" f="66.887" m="2.26209" cg="66.5"/>\r
+      <eng-data  t="0.768" f="53.775" m="1.51857" cg="66.5"/>\r
+      <eng-data  t="0.793" f="36.556" m="0.855927" cg="66.5"/>\r
+      <eng-data  t="0.821" f="18.543" m="0.403234" cg="66.5"/>\r
+      <eng-data  t="0.852" f="7.815" m="0.163474" cg="66.5"/>\r
+      <eng-data  t="0.892" f="2.119" m="0.0468778" cg="66.5"/>\r
+      <eng-data  t="0.928" f="0.795" m="0.016096" cg="66.5"/>\r
+      <eng-data  t="0.997" f="0." m="0." cg="66.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G106.rse b/datafiles/thrustcurves/Cesaroni_G106.rse
new file mode 100644 (file)
index 0000000..1f68a20
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G106-SK" Type="unspecified" dia="29." len="187." initWt="187."\r
+propWt="81." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="100.927" peakThrust="131." throatDia="0." exitDia="0." Itot="137.261"\r
+burn-time="1.36" massFrac="43.32" Isp="172.8" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="81." cg="93.5"/>\r
+      <eng-data  t="0.018" f="20." m="80.8938" cg="93.5"/>\r
+      <eng-data  t="0.023" f="80." m="80.7462" cg="93.5"/>\r
+      <eng-data  t="0.03" f="131." m="80.3104" cg="93.5"/>\r
+      <eng-data  t="0.05" f="105." m="78.9178" cg="93.5"/>\r
+      <eng-data  t="0.065" f="75." m="78.1211" cg="93.5"/>\r
+      <eng-data  t="0.1" f="94." m="76.3758" cg="93.5"/>\r
+      <eng-data  t="0.25" f="104." m="67.6126" cg="93.5"/>\r
+      <eng-data  t="0.4" f="111." m="58.097" cg="93.5"/>\r
+      <eng-data  t="0.65" f="120." m="41.0574" cg="93.5"/>\r
+      <eng-data  t="0.86" f="123." m="26.0005" cg="93.5"/>\r
+      <eng-data  t="1.05" f="124." m="12.1535" cg="93.5"/>\r
+      <eng-data  t="1.13" f="121." m="6.37031" cg="93.5"/>\r
+      <eng-data  t="1.17" f="110." m="3.64397" cg="93.5"/>\r
+      <eng-data  t="1.2" f="85." m="1.91788" cg="93.5"/>\r
+      <eng-data  t="1.23" f="40." m="0.81141" cg="93.5"/>\r
+      <eng-data  t="1.25" f="20." m="0.45734" cg="93.5"/>\r
+      <eng-data  t="1.3" f="5." m="0.0885175" cg="93.5"/>\r
+      <eng-data  t="1.36" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G107.eng b/datafiles/thrustcurves/Cesaroni_G107.eng
new file mode 100644 (file)
index 0000000..cef0f56
--- /dev/null
@@ -0,0 +1,29 @@
+; Pro-24-6G White/Dual Thrust\r
+139-G107-WH_DT-12A 24 228 3-5-6-8-9-10 0.0757 0.1698 CTI\r
+   0.0060 133.228\r
+   0.011 198.418\r
+   0.022 221.835\r
+   0.046 212.658\r
+   0.081 218.354\r
+   0.125 214.873\r
+   0.168 210.443\r
+   0.219 204.43\r
+   0.253 195.886\r
+   0.274 183.544\r
+   0.305 88.291\r
+   0.412 93.671\r
+   0.529 93.987\r
+   0.663 94.304\r
+   0.789 93.987\r
+   0.899 91.139\r
+   0.953 89.873\r
+   0.999 87.025\r
+   1.03 81.329\r
+   1.057 69.937\r
+   1.102 54.114\r
+   1.154 42.405\r
+   1.197 31.646\r
+   1.277 17.089\r
+   1.335 9.81\r
+   1.398 3.165\r
+   1.451 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G107.rse b/datafiles/thrustcurves/Cesaroni_G107.rse
new file mode 100644 (file)
index 0000000..b955d83
--- /dev/null
@@ -0,0 +1,42 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="139-G107-WH_DT-12A" Type="reloadable" dia="24." len="228."\r
+initWt="169.8" propWt="75.7" delays="3,5,6,8,9,10" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="96.243" peakThrust="221.835" throatDia="0."\r
+exitDia="0." Itot="139.649" burn-time="1.45" massFrac="44.58" Isp="188.11"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-6G White/Dual Thrust</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="75.7" cg="114."/>\r
+      <eng-data  t="0.006" f="133.228" m="75.4833" cg="114."/>\r
+      <eng-data  t="0.011" f="198.418" m="75.0339" cg="114."/>\r
+      <eng-data  t="0.022" f="221.835" m="73.781" cg="114."/>\r
+      <eng-data  t="0.046" f="212.658" m="70.9546" cg="114."/>\r
+      <eng-data  t="0.081" f="218.354" m="66.8659" cg="114."/>\r
+      <eng-data  t="0.125" f="214.873" m="61.6995" cg="114."/>\r
+      <eng-data  t="0.168" f="210.443" m="56.7426" cg="114."/>\r
+      <eng-data  t="0.219" f="204.43" m="51.0079" cg="114."/>\r
+      <eng-data  t="0.253" f="195.886" m="47.3189" cg="114."/>\r
+      <eng-data  t="0.274" f="183.544" m="45.1592" cg="114."/>\r
+      <eng-data  t="0.305" f="88.291" m="42.8752" cg="114."/>\r
+      <eng-data  t="0.412" f="93.671" m="37.5982" cg="114."/>\r
+      <eng-data  t="0.529" f="93.987" m="31.6473" cg="114."/>\r
+      <eng-data  t="0.663" f="94.304" m="24.8088" cg="114."/>\r
+      <eng-data  t="0.789" f="93.987" m="18.3786" cg="114."/>\r
+      <eng-data  t="0.899" f="91.139" m="12.8592" cg="114."/>\r
+      <eng-data  t="0.953" f="89.873" m="10.2099" cg="114."/>\r
+      <eng-data  t="0.999" f="87.025" m="8.00444" cg="114."/>\r
+      <eng-data  t="1.03" f="81.329" m="6.58991" cg="114."/>\r
+      <eng-data  t="1.057" f="69.937" m="5.48295" cg="114."/>\r
+      <eng-data  t="1.102" f="54.114" m="3.96995" cg="114."/>\r
+      <eng-data  t="1.154" f="42.405" m="2.60962" cg="114."/>\r
+      <eng-data  t="1.197" f="31.646" m="1.74659" cg="114."/>\r
+      <eng-data  t="1.277" f="17.089" m="0.689872" cg="114."/>\r
+      <eng-data  t="1.335" f="9.81" m="0.267017" cg="114."/>\r
+      <eng-data  t="1.398" f="3.165" m="0.045465" cg="114."/>\r
+      <eng-data  t="1.451" f="0." m="0." cg="114."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G117.eng b/datafiles/thrustcurves/Cesaroni_G117.eng
new file mode 100644 (file)
index 0000000..bd5a1a5
--- /dev/null
@@ -0,0 +1,29 @@
+; Pro-24-6G White\r
+142-G117-WH-11A 24 228 4-6-8-9-10 0.0791 0.1725 CTI\r
+   0.0080 168.643\r
+   0.013 177.339\r
+   0.022 177.866\r
+   0.035 171.278\r
+   0.063 157.839\r
+   0.103 154.941\r
+   0.151 151.515\r
+   0.196 148.88\r
+   0.246 147.563\r
+   0.311 144.137\r
+   0.391 140.711\r
+   0.474 138.076\r
+   0.564 135.705\r
+   0.662 131.225\r
+   0.762 125.955\r
+   0.858 116.733\r
+   0.928 101.713\r
+   0.973 83.004\r
+   1.038 57.444\r
+   1.08 42.688\r
+   1.131 31.884\r
+   1.185 17.655\r
+   1.224 9.486\r
+   1.258 5.27\r
+   1.322 2.372\r
+   1.4 0.791\r
+   1.441 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G117.rse b/datafiles/thrustcurves/Cesaroni_G117.rse
new file mode 100644 (file)
index 0000000..8a12dc5
--- /dev/null
@@ -0,0 +1,42 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="142-G117-WH-11A" Type="reloadable" dia="24." len="228."\r
+initWt="172.5" propWt="79.1" delays="4,6,8,9,10" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="99.25" peakThrust="177.866" throatDia="0."\r
+exitDia="0." Itot="143.02" burn-time="1.44" massFrac="45.86" Isp="184.37"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-6G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="79.1" cg="114."/>\r
+      <eng-data  t="0.008" f="168.643" m="78.7269" cg="114."/>\r
+      <eng-data  t="0.013" f="177.339" m="78.2485" cg="114."/>\r
+      <eng-data  t="0.022" f="177.866" m="77.3645" cg="114."/>\r
+      <eng-data  t="0.035" f="171.278" m="76.1093" cg="114."/>\r
+      <eng-data  t="0.063" f="157.839" m="73.561" cg="114."/>\r
+      <eng-data  t="0.103" f="154.941" m="70.1012" cg="114."/>\r
+      <eng-data  t="0.151" f="151.515" m="66.0334" cg="114."/>\r
+      <eng-data  t="0.196" f="148.88" m="62.2952" cg="114."/>\r
+      <eng-data  t="0.246" f="147.563" m="58.1964" cg="114."/>\r
+      <eng-data  t="0.311" f="144.137" m="52.9531" cg="114."/>\r
+      <eng-data  t="0.391" f="140.711" m="46.6515" cg="114."/>\r
+      <eng-data  t="0.474" f="138.076" m="40.2526" cg="114."/>\r
+      <eng-data  t="0.564" f="135.705" m="33.4387" cg="114."/>\r
+      <eng-data  t="0.662" f="131.225" m="26.2048" cg="114."/>\r
+      <eng-data  t="0.762" f="125.955" m="19.0928" cg="114."/>\r
+      <eng-data  t="0.858" f="116.733" m="12.6501" cg="114."/>\r
+      <eng-data  t="0.928" f="101.713" m="8.42152" cg="114."/>\r
+      <eng-data  t="0.973" f="83.004" m="6.12288" cg="114."/>\r
+      <eng-data  t="1.038" f="57.444" m="3.59835" cg="114."/>\r
+      <eng-data  t="1.08" f="42.688" m="2.43537" cg="114."/>\r
+      <eng-data  t="1.131" f="31.884" m="1.38366" cg="114."/>\r
+      <eng-data  t="1.185" f="17.655" m="0.643896" cg="114."/>\r
+      <eng-data  t="1.224" f="9.486" m="0.351183" cg="114."/>\r
+      <eng-data  t="1.258" f="5.27" m="0.212444" cg="114."/>\r
+      <eng-data  t="1.322" f="2.372" m="0.0771935" cg="114."/>\r
+      <eng-data  t="1.4" f="0.791" m="0.00896833" cg="114."/>\r
+      <eng-data  t="1.441" f="0." m="0." cg="114."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G118.rse b/datafiles/thrustcurves/Cesaroni_G118.rse
new file mode 100644 (file)
index 0000000..b833fc4
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G118-BS" Type="unspecified" dia="29." len="187." initWt="188."\r
+propWt="83." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="115.779" peakThrust="156." throatDia="0." exitDia="0." Itot="158.617"\r
+burn-time="1.37" massFrac="44.15" Isp="194.87" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="83." cg="93.5"/>\r
+      <eng-data  t="0.005" f="1.3" m="82.9983" cg="93.5"/>\r
+      <eng-data  t="0.012" f="80." m="82.8494" cg="93.5"/>\r
+      <eng-data  t="0.02" f="156." m="82.3554" cg="93.5"/>\r
+      <eng-data  t="0.04" f="148." m="80.7647" cg="93.5"/>\r
+      <eng-data  t="0.05" f="105." m="80.1027" cg="93.5"/>\r
+      <eng-data  t="0.11" f="121." m="76.5549" cg="93.5"/>\r
+      <eng-data  t="0.3" f="131." m="64.0278" cg="93.5"/>\r
+      <eng-data  t="0.5" f="134." m="50.161" cg="93.5"/>\r
+      <eng-data  t="0.7" f="130." m="36.3466" cg="93.5"/>\r
+      <eng-data  t="0.95" f="126." m="19.6018" cg="93.5"/>\r
+      <eng-data  t="1.13" f="126." m="7.73399" cg="93.5"/>\r
+      <eng-data  t="1.18" f="115." m="4.58126" cg="93.5"/>\r
+      <eng-data  t="1.27" f="40." m="0.931427" cg="93.5"/>\r
+      <eng-data  t="1.31" f="20." m="0.303499" cg="93.5"/>\r
+      <eng-data  t="1.35" f="6." m="0.0313964" cg="93.5"/>\r
+      <eng-data  t="1.37" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G125.eng b/datafiles/thrustcurves/Cesaroni_G125.eng
new file mode 100644 (file)
index 0000000..51545f7
--- /dev/null
@@ -0,0 +1,16 @@
+; Pro29 3G 159G125-RL 14A\r
+G125-RL 29 187 14-11-9-7-5 0.0896 0.1945 CTI\r
+   0.0040 15.683\r
+   0.022 170.834\r
+   0.039 116.877\r
+   0.122 142.642\r
+   0.236 149.737\r
+   0.589 142.642\r
+   0.801 131.253\r
+   1.068 122.104\r
+   1.118 107.915\r
+   1.145 78.416\r
+   1.174 43.129\r
+   1.211 21.471\r
+   1.247 8.775\r
+   1.299 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G126.rse b/datafiles/thrustcurves/Cesaroni_G126.rse
new file mode 100644 (file)
index 0000000..6874c06
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G126-WT" Type="unspecified" dia="29." len="142." initWt="145."\r
+propWt="59." delays="4,6,8,10,13" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="121.716" peakThrust="168." throatDia="0." exitDia="0." Itot="115.63"\r
+burn-time="0.95" massFrac="40.69" Isp="199.85" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="59." cg="71."/>\r
+      <eng-data  t="0.01" f="55." m="58.8597" cg="71."/>\r
+      <eng-data  t="0.02" f="168." m="58.2908" cg="71."/>\r
+      <eng-data  t="0.03" f="157." m="57.4616" cg="71."/>\r
+      <eng-data  t="0.04" f="148." m="56.6835" cg="71."/>\r
+      <eng-data  t="0.05" f="125." m="55.987" cg="71."/>\r
+      <eng-data  t="0.1" f="135." m="52.6704" cg="71."/>\r
+      <eng-data  t="0.2" f="141." m="45.6289" cg="71."/>\r
+      <eng-data  t="0.3" f="142." m="38.4089" cg="71."/>\r
+      <eng-data  t="0.4" f="141." m="31.1889" cg="71."/>\r
+      <eng-data  t="0.6" f="133." m="17.2081" cg="71."/>\r
+      <eng-data  t="0.75" f="127." m="7.25828" cg="71."/>\r
+      <eng-data  t="0.81" f="128." m="3.35488" cg="71."/>\r
+      <eng-data  t="0.86" f="60." m="0.956715" cg="71."/>\r
+      <eng-data  t="0.9" f="15." m="0.191343" cg="71."/>\r
+      <eng-data  t="0.95" f="0." m="0." cg="71."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G131.rse b/datafiles/thrustcurves/Cesaroni_G131.rse
new file mode 100644 (file)
index 0000000..125cf79
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G131-SS" Type="unspecified" dia="29." len="187." initWt="200."\r
+propWt="94." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="113.732" peakThrust="155." throatDia="0." exitDia="0." Itot="125.105"\r
+burn-time="1.1" massFrac="47." Isp="135.71" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="94." cg="93.5"/>\r
+      <eng-data  t="0.01" f="6." m="93.9775" cg="93.5"/>\r
+      <eng-data  t="0.02" f="40." m="93.8046" cg="93.5"/>\r
+      <eng-data  t="0.03" f="116." m="93.2186" cg="93.5"/>\r
+      <eng-data  t="0.04" f="131." m="92.2906" cg="93.5"/>\r
+      <eng-data  t="0.05" f="146." m="91.25" cg="93.5"/>\r
+      <eng-data  t="0.06" f="147." m="90.1492" cg="93.5"/>\r
+      <eng-data  t="0.07" f="140." m="89.071" cg="93.5"/>\r
+      <eng-data  t="0.08" f="136." m="88.0341" cg="93.5"/>\r
+      <eng-data  t="0.09" f="130." m="87.0348" cg="93.5"/>\r
+      <eng-data  t="0.1" f="126." m="86.0731" cg="93.5"/>\r
+      <eng-data  t="0.2" f="129." m="76.4931" cg="93.5"/>\r
+      <eng-data  t="0.3" f="132." m="66.6877" cg="93.5"/>\r
+      <eng-data  t="0.4" f="137." m="56.5818" cg="93.5"/>\r
+      <eng-data  t="0.5" f="139." m="46.2129" cg="93.5"/>\r
+      <eng-data  t="0.6" f="141." m="35.6938" cg="93.5"/>\r
+      <eng-data  t="0.7" f="142." m="25.0619" cg="93.5"/>\r
+      <eng-data  t="0.8" f="145." m="14.2798" cg="93.5"/>\r
+      <eng-data  t="0.85" f="150." m="8.73842" cg="93.5"/>\r
+      <eng-data  t="0.87" f="155." m="6.44674" cg="93.5"/>\r
+      <eng-data  t="0.9" f="116." m="3.39243" cg="93.5"/>\r
+      <eng-data  t="0.93" f="60." m="1.40882" cg="93.5"/>\r
+      <eng-data  t="0.95" f="30." m="0.732585" cg="93.5"/>\r
+      <eng-data  t="1." f="3." m="0.112705" cg="93.5"/>\r
+      <eng-data  t="1.1" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G150.eng b/datafiles/thrustcurves/Cesaroni_G150.eng
new file mode 100644 (file)
index 0000000..efac681
--- /dev/null
@@ -0,0 +1,31 @@
+; Pro-24-6G Blue Streak\r
+143-G150-BS-13A 24 228 4-6-8-9-11-12 0.0659 0.1599 CTI\r
+   0.0050 114.776\r
+   0.0060 177.441\r
+   0.01 222.625\r
+   0.016 243.404\r
+   0.019 247.032\r
+   0.037 215.369\r
+   0.077 206.135\r
+   0.12 204.485\r
+   0.163 200.198\r
+   0.204 195.91\r
+   0.249 192.942\r
+   0.316 186.675\r
+   0.387 180.409\r
+   0.444 176.121\r
+   0.536 168.206\r
+   0.616 160.62\r
+   0.639 156.662\r
+   0.676 142.48\r
+   0.715 114.776\r
+   0.75 93.008\r
+   0.784 72.23\r
+   0.831 49.802\r
+   0.889 31.662\r
+   0.923 21.768\r
+   0.953 14.842\r
+   0.996 8.245\r
+   1.03 5.937\r
+   1.061 2.309\r
+   1.099 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G150.rse b/datafiles/thrustcurves/Cesaroni_G150.rse
new file mode 100644 (file)
index 0000000..72ee546
--- /dev/null
@@ -0,0 +1,44 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="143-G150-BS-13A" Type="reloadable" dia="24." len="228."\r
+initWt="159.9" propWt="65.9" delays="4,6,8,9,11,12" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="130.574" peakThrust="247.032" throatDia="0."\r
+exitDia="0." Itot="143.5" burn-time="1.1" massFrac="41.21" Isp="222.05" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-6G Blue Streak</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="65.9" cg="114."/>\r
+      <eng-data  t="0.005" f="114.776" m="65.7682" cg="114."/>\r
+      <eng-data  t="0.006" f="177.441" m="65.7011" cg="114."/>\r
+      <eng-data  t="0.01" f="222.625" m="65.3337" cg="114."/>\r
+      <eng-data  t="0.016" f="243.404" m="64.6916" cg="114."/>\r
+      <eng-data  t="0.019" f="247.032" m="64.3538" cg="114."/>\r
+      <eng-data  t="0.037" f="215.369" m="62.4427" cg="114."/>\r
+      <eng-data  t="0.077" f="206.135" m="58.5713" cg="114."/>\r
+      <eng-data  t="0.12" f="204.485" m="54.517" cg="114."/>\r
+      <eng-data  t="0.163" f="200.198" m="50.5214" cg="114."/>\r
+      <eng-data  t="0.204" f="195.91" m="46.7923" cg="114."/>\r
+      <eng-data  t="0.249" f="192.942" m="42.7744" cg="114."/>\r
+      <eng-data  t="0.316" f="186.675" m="36.9343" cg="114."/>\r
+      <eng-data  t="0.387" f="180.409" m="30.9498" cg="114."/>\r
+      <eng-data  t="0.444" f="176.121" m="26.2835" cg="114."/>\r
+      <eng-data  t="0.536" f="168.206" m="19.0097" cg="114."/>\r
+      <eng-data  t="0.616" f="160.62" m="12.9694" cg="114."/>\r
+      <eng-data  t="0.639" f="156.662" m="11.2938" cg="114."/>\r
+      <eng-data  t="0.676" f="142.48" m="8.75232" cg="114."/>\r
+      <eng-data  t="0.715" f="114.776" m="6.44858" cg="114."/>\r
+      <eng-data  t="0.75" f="93.008" m="4.77871" cg="114."/>\r
+      <eng-data  t="0.784" f="72.23" m="3.48871" cg="114."/>\r
+      <eng-data  t="0.831" f="49.802" m="2.17174" cg="114."/>\r
+      <eng-data  t="0.889" f="31.662" m="1.08682" cg="114."/>\r
+      <eng-data  t="0.923" f="21.768" m="0.669698" cg="114."/>\r
+      <eng-data  t="0.953" f="14.842" m="0.417511" cg="114."/>\r
+      <eng-data  t="0.996" f="8.245" m="0.189561" cg="114."/>\r
+      <eng-data  t="1.03" f="5.937" m="0.0788429" cg="114."/>\r
+      <eng-data  t="1.061" f="2.309" m="0.020147" cg="114."/>\r
+      <eng-data  t="1.099" f="0." m="0." cg="114."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G250.eng b/datafiles/thrustcurves/Cesaroni_G250.eng
new file mode 100644 (file)
index 0000000..fa5c386
--- /dev/null
@@ -0,0 +1,19 @@
+; Pro29-2G 110G250-VM 14A\r
+G250-VM 29 142 14-11-9-7-5 0.0575 0.1413 CTI\r
+   0.0060 151.621\r
+   0.011 198.079\r
+   0.016 203.121\r
+   0.031 201.681\r
+   0.075 226.17\r
+   0.122 250.3\r
+   0.216 280.192\r
+   0.25 287.035\r
+   0.287 284.874\r
+   0.354 269.748\r
+   0.374 258.583\r
+   0.4 233.373\r
+   0.413 234.094\r
+   0.42 227.611\r
+   0.433 137.935\r
+   0.445 33.854\r
+   0.454 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G50.eng b/datafiles/thrustcurves/Cesaroni_G50.eng
new file mode 100644 (file)
index 0000000..16c214e
--- /dev/null
@@ -0,0 +1,16 @@
+G50-IM 38 127 6-8-11-12-15 0.0777 0.218 CTI\r
+0.02 10\r
+0.04 58\r
+0.052 72\r
+0.07 65\r
+0.106 43\r
+0.23 51\r
+0.4 55\r
+0.85 57\r
+1.5 55\r
+2 51\r
+2.5 44.5\r
+2.78 44\r
+2.86 37\r
+2.93 20\r
+3.02 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G54.eng b/datafiles/thrustcurves/Cesaroni_G54.eng
new file mode 100644 (file)
index 0000000..c280559
--- /dev/null
@@ -0,0 +1,15 @@
+; Pro29-3G 159G54-RL 12A\r
+G54-RL 29 187 12-9-7-5-3 0.0968 0.1982 CTI\r
+   0.018 107.269\r
+   0.031 113.588\r
+   0.059 103.508\r
+   0.135 121.712\r
+   0.22 104.561\r
+   0.299 95.534\r
+   0.432 88.312\r
+   0.959 69.657\r
+   1.757 43.479\r
+   2.418 20.762\r
+   2.851 9.478\r
+   3.013 5.567\r
+   3.026 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G57.rse b/datafiles/thrustcurves/Cesaroni_G57.rse
new file mode 100644 (file)
index 0000000..5024cb7
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G57-CL" Type="unspecified" dia="29." len="142." initWt="146."\r
+propWt="59." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="56.008" peakThrust="88." throatDia="0." exitDia="0." Itot="108.095"\r
+burn-time="1.93" massFrac="40.41" Isp="186.82" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="59." cg="71."/>\r
+      <eng-data  t="0.01" f="8." m="58.9782" cg="71."/>\r
+      <eng-data  t="0.02" f="70." m="58.7653" cg="71."/>\r
+      <eng-data  t="0.04" f="88." m="57.9029" cg="71."/>\r
+      <eng-data  t="0.05" f="80." m="57.4444" cg="71."/>\r
+      <eng-data  t="0.06" f="71." m="57.0323" cg="71."/>\r
+      <eng-data  t="0.08" f="76." m="56.23" cg="71."/>\r
+      <eng-data  t="0.11" f="79." m="54.961" cg="71."/>\r
+      <eng-data  t="0.2" f="81." m="51.0311" cg="71."/>\r
+      <eng-data  t="0.6" f="72." m="34.3291" cg="71."/>\r
+      <eng-data  t="1." f="56." m="20.3562" cg="71."/>\r
+      <eng-data  t="1.5" f="47." m="6.30145" cg="71."/>\r
+      <eng-data  t="1.6" f="48." m="3.70882" cg="71."/>\r
+      <eng-data  t="1.7" f="28." m="1.63472" cg="71."/>\r
+      <eng-data  t="1.8" f="14." m="0.488505" cg="71."/>\r
+      <eng-data  t="1.9" f="3." m="0.0245617" cg="71."/>\r
+      <eng-data  t="1.93" f="0." m="0." cg="71."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G58.eng b/datafiles/thrustcurves/Cesaroni_G58.eng
new file mode 100644 (file)
index 0000000..5767cc5
--- /dev/null
@@ -0,0 +1,26 @@
+; Pro-38-1G White\r
+137-G58-WH-13A 38 127 5-7-8-10-12-13 0.0763 0.2125 CTI\r
+   0.029 90.25\r
+   0.046 69.17\r
+   0.058 59.947\r
+   0.084 47.167\r
+   0.171 57.971\r
+   0.28 59.552\r
+   0.455 61.265\r
+   0.586 61.66\r
+   0.741 62.319\r
+   0.952 63.768\r
+   1.217 64.69\r
+   1.43 63.768\r
+   1.626 61.265\r
+   1.807 58.103\r
+   1.959 53.887\r
+   2.104 48.353\r
+   2.168 47.563\r
+   2.21 44.005\r
+   2.247 37.286\r
+   2.329 22.266\r
+   2.375 10.277\r
+   2.414 2.767\r
+   2.442 1.186\r
+   2.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G58.rse b/datafiles/thrustcurves/Cesaroni_G58.rse
new file mode 100644 (file)
index 0000000..33d5d29
--- /dev/null
@@ -0,0 +1,39 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="137-G58-WH-13A" Type="reloadable" dia="38." len="127."\r
+initWt="212.5" propWt="76.3" delays="5,7,8,10,12,13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="54.822" peakThrust="90.25" throatDia="0."\r
+exitDia="0." Itot="137.054" burn-time="2.5" massFrac="35.91" Isp="183.17"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-1G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="76.3" cg="63.5"/>\r
+      <eng-data  t="0.029" f="90.25" m="75.5715" cg="63.5"/>\r
+      <eng-data  t="0.046" f="69.17" m="74.8171" cg="63.5"/>\r
+      <eng-data  t="0.058" f="59.947" m="74.3858" cg="63.5"/>\r
+      <eng-data  t="0.084" f="47.167" m="73.6106" cg="63.5"/>\r
+      <eng-data  t="0.171" f="57.971" m="71.0645" cg="63.5"/>\r
+      <eng-data  t="0.28" f="59.552" m="67.4987" cg="63.5"/>\r
+      <eng-data  t="0.455" f="61.265" m="61.6134" cg="63.5"/>\r
+      <eng-data  t="0.586" f="61.66" m="57.131" cg="63.5"/>\r
+      <eng-data  t="0.741" f="62.319" m="51.7819" cg="63.5"/>\r
+      <eng-data  t="0.952" f="63.768" m="44.3764" cg="63.5"/>\r
+      <eng-data  t="1.217" f="64.69" m="34.9008" cg="63.5"/>\r
+      <eng-data  t="1.43" f="63.768" m="27.2845" cg="63.5"/>\r
+      <eng-data  t="1.626" f="61.265" m="20.463" cg="63.5"/>\r
+      <eng-data  t="1.807" f="58.103" m="14.4489" cg="63.5"/>\r
+      <eng-data  t="1.959" f="53.887" m="9.7106" cg="63.5"/>\r
+      <eng-data  t="2.104" f="48.353" m="5.58402" cg="63.5"/>\r
+      <eng-data  t="2.168" f="47.563" m="3.87529" cg="63.5"/>\r
+      <eng-data  t="2.21" f="44.005" m="2.80477" cg="63.5"/>\r
+      <eng-data  t="2.247" f="37.286" m="1.96754" cg="63.5"/>\r
+      <eng-data  t="2.329" f="22.266" m="0.608255" cg="63.5"/>\r
+      <eng-data  t="2.375" f="10.277" m="0.191562" cg="63.5"/>\r
+      <eng-data  t="2.414" f="2.767" m="0.0499572" cg="63.5"/>\r
+      <eng-data  t="2.442" f="1.186" m="0.0191476" cg="63.5"/>\r
+      <eng-data  t="2.5" f="0." m="0." cg="63.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G60.eng b/datafiles/thrustcurves/Cesaroni_G60.eng
new file mode 100644 (file)
index 0000000..c39fdf9
--- /dev/null
@@ -0,0 +1,30 @@
+; Cesaroni G60\r
+; converted from TMT test stand data 2002 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+G60 38 125 0 0.077056 0.2016 CSR\r
+   0.043 65.216\r
+   0.130 74.906\r
+   0.218 84.596\r
+   0.305 83.963\r
+   0.393 81.982\r
+   0.480 81.956\r
+   0.568 81.138\r
+   0.655 80.530\r
+   0.743 79.923\r
+   0.830 78.867\r
+   0.918 76.675\r
+   1.005 75.118\r
+   1.094 73.732\r
+   1.182 71.315\r
+   1.270 68.781\r
+   1.357 66.853\r
+   1.445 65.111\r
+   1.532 63.526\r
+   1.620 61.229\r
+   1.707 59.249\r
+   1.795 57.110\r
+   1.882 51.671\r
+   1.970 18.562\r
+   2.057 2.667\r
+   2.146 1.470\r
+   2.234 0.000\r
diff --git a/datafiles/thrustcurves/Cesaroni_G65.eng b/datafiles/thrustcurves/Cesaroni_G65.eng
new file mode 100644 (file)
index 0000000..1997fc2
--- /dev/null
@@ -0,0 +1,24 @@
+; Pro-24-6G White Long Burn\r
+144-G65-WH_LB-8A 24 228 3-5-6-7 0.08 0.1740 CTI\r
+   0.011 157.857\r
+   0.024 149.524\r
+   0.042 132.143\r
+   0.057 125.476\r
+   0.094 134.048\r
+   0.122 131.19\r
+   0.175 106.429\r
+   0.269 94.048\r
+   0.376 87.381\r
+   0.54 82.143\r
+   0.707 78.333\r
+   0.845 74.762\r
+   1.002 71.19\r
+   1.206 65.476\r
+   1.376 57.857\r
+   1.553 48.333\r
+   1.726 39.048\r
+   1.914 28.333\r
+   2.061 18.095\r
+   2.205 8.571\r
+   2.299 3.095\r
+   2.398 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G65.rse b/datafiles/thrustcurves/Cesaroni_G65.rse
new file mode 100644 (file)
index 0000000..719aa2f
--- /dev/null
@@ -0,0 +1,37 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="144-G65-WH_LB-8A" Type="reloadable" dia="24." len="228."\r
+initWt="174." propWt="80." delays="3,5,6,7" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="60.193" peakThrust="157.857" throatDia="0." exitDia="0."\r
+Itot="144.342" burn-time="2.4" massFrac="45.98" Isp="183.99" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-6G White Long Burn</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="80." cg="114."/>\r
+      <eng-data  t="0.011" f="157.857" m="79.5188" cg="114."/>\r
+      <eng-data  t="0.024" f="149.524" m="78.4114" cg="114."/>\r
+      <eng-data  t="0.042" f="132.143" m="77.0065" cg="114."/>\r
+      <eng-data  t="0.057" f="125.476" m="75.9356" cg="114."/>\r
+      <eng-data  t="0.094" f="134.048" m="73.2746" cg="114."/>\r
+      <eng-data  t="0.122" f="131.19" m="71.2165" cg="114."/>\r
+      <eng-data  t="0.175" f="106.429" m="67.7265" cg="114."/>\r
+      <eng-data  t="0.269" f="94.048" m="62.5043" cg="114."/>\r
+      <eng-data  t="0.376" f="87.381" m="57.1246" cg="114."/>\r
+      <eng-data  t="0.54" f="82.143" m="49.4201" cg="114."/>\r
+      <eng-data  t="0.707" f="78.333" m="41.9935" cg="114."/>\r
+      <eng-data  t="0.845" f="74.762" m="36.1388" cg="114."/>\r
+      <eng-data  t="1.002" f="71.19" m="29.7888" cg="114."/>\r
+      <eng-data  t="1.206" f="65.476" m="22.0627" cg="114."/>\r
+      <eng-data  t="1.376" f="57.857" m="16.2525" cg="114."/>\r
+      <eng-data  t="1.553" f="48.333" m="11.0438" cg="114."/>\r
+      <eng-data  t="1.726" f="39.048" m="6.85466" cg="114."/>\r
+      <eng-data  t="1.914" f="28.333" m="3.34422" cg="114."/>\r
+      <eng-data  t="2.061" f="18.095" m="1.45291" cg="114."/>\r
+      <eng-data  t="2.205" f="8.571" m="0.3888" cg="114."/>\r
+      <eng-data  t="2.299" f="3.095" m="0.0849106" cg="114."/>\r
+      <eng-data  t="2.398" f="0." m="0." cg="114."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G68.eng b/datafiles/thrustcurves/Cesaroni_G68.eng
new file mode 100644 (file)
index 0000000..cde6a4f
--- /dev/null
@@ -0,0 +1,32 @@
+; Pro-29-2G White\r
+108-G68-WH-13A 29 142 5-6-7-9-10-11 0.0599 0.1559 CTI\r
+   0.012 50.329\r
+   0.017 79.315\r
+   0.019 86.693\r
+   0.03 91.831\r
+   0.047 73.386\r
+   0.048 81.686\r
+   0.049 65.876\r
+   0.061 58.235\r
+   0.088 66.798\r
+   0.12 70.883\r
+   0.2 72.991\r
+   0.307 75.099\r
+   0.38 75.626\r
+   0.487 76.416\r
+   0.614 76.548\r
+   0.726 75.626\r
+   0.818 73.518\r
+   0.987 70.487\r
+   1.096 68.116\r
+   1.269 63.505\r
+   1.388 61.528\r
+   1.446 57.444\r
+   1.483 49.144\r
+   1.537 29.381\r
+   1.569 18.05\r
+   1.613 5.665\r
+   1.638 2.899\r
+   1.676 1.449\r
+   1.723 0.395\r
+   1.759 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G68.rse b/datafiles/thrustcurves/Cesaroni_G68.rse
new file mode 100644 (file)
index 0000000..196508a
--- /dev/null
@@ -0,0 +1,45 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="108-G68-WH-13A" Type="reloadable" dia="29." len="142."\r
+initWt="155.9" propWt="59.9" delays="5,6,7,9,10,11" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="61.39" peakThrust="91.831" throatDia="0."\r
+exitDia="0." Itot="107.984" burn-time="1.76" massFrac="38.42" Isp="183.83"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-29-2G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="59.9" cg="71."/>\r
+      <eng-data  t="0.012" f="50.329" m="59.7325" cg="71."/>\r
+      <eng-data  t="0.017" f="79.315" m="59.5527" cg="71."/>\r
+      <eng-data  t="0.019" f="86.693" m="59.4606" cg="71."/>\r
+      <eng-data  t="0.03" f="91.831" m="58.916" cg="71."/>\r
+      <eng-data  t="0.047" f="73.386" m="58.137" cg="71."/>\r
+      <eng-data  t="0.048" f="81.686" m="58.0939" cg="71."/>\r
+      <eng-data  t="0.049" f="65.876" m="58.053" cg="71."/>\r
+      <eng-data  t="0.061" f="58.235" m="57.6399" cg="71."/>\r
+      <eng-data  t="0.088" f="66.798" m="56.7036" cg="71."/>\r
+      <eng-data  t="0.12" f="70.883" m="55.4816" cg="71."/>\r
+      <eng-data  t="0.2" f="72.991" m="52.2893" cg="71."/>\r
+      <eng-data  t="0.307" f="75.099" m="47.8944" cg="71."/>\r
+      <eng-data  t="0.38" f="75.626" m="44.8427" cg="71."/>\r
+      <eng-data  t="0.487" f="76.416" m="40.3306" cg="71."/>\r
+      <eng-data  t="0.614" f="76.548" m="34.9425" cg="71."/>\r
+      <eng-data  t="0.726" f="75.626" m="30.2154" cg="71."/>\r
+      <eng-data  t="0.818" f="73.518" m="26.4098" cg="71."/>\r
+      <eng-data  t="0.987" f="70.487" m="19.6598" cg="71."/>\r
+      <eng-data  t="1.096" f="68.116" m="15.4696" cg="71."/>\r
+      <eng-data  t="1.269" f="63.505" m="9.15408" cg="71."/>\r
+      <eng-data  t="1.388" f="61.528" m="5.02733" cg="71."/>\r
+      <eng-data  t="1.446" f="57.444" m="3.11347" cg="71."/>\r
+      <eng-data  t="1.483" f="49.144" m="2.01965" cg="71."/>\r
+      <eng-data  t="1.537" f="29.381" m="0.843567" cg="71."/>\r
+      <eng-data  t="1.569" f="18.05" m="0.422599" cg="71."/>\r
+      <eng-data  t="1.613" f="5.665" m="0.133189" cg="71."/>\r
+      <eng-data  t="1.638" f="2.899" m="0.0738076" cg="71."/>\r
+      <eng-data  t="1.676" f="1.449" m="0.0279818" cg="71."/>\r
+      <eng-data  t="1.723" f="0.395" m="0.003944" cg="71."/>\r
+      <eng-data  t="1.759" f="0." m="0." cg="71."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G69.rse b/datafiles/thrustcurves/Cesaroni_G69.rse
new file mode 100644 (file)
index 0000000..b662478
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G69SK" Type="unspecified" dia="38." len="126." initWt="198."\r
+propWt="67." delays="14,11,9,7,5" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="59.043" peakThrust="91.872" throatDia="0." exitDia="0." Itot="116.255"\r
+burn-time="1.97" massFrac="33.84" Isp="176.94" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-1G 117 G69SK - 14A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="67." cg="63."/>\r
+      <eng-data  t="0.015" f="49.371" m="66.7866" cg="63."/>\r
+      <eng-data  t="0.023" f="79.41" m="66.4897" cg="63."/>\r
+      <eng-data  t="0.035" f="91.872" m="65.8974" cg="63."/>\r
+      <eng-data  t="0.064" f="82.605" m="64.4394" cg="63."/>\r
+      <eng-data  t="0.099" f="52.407" m="63.0777" cg="63."/>\r
+      <eng-data  t="0.166" f="57.041" m="60.9647" cg="63."/>\r
+      <eng-data  t="0.228" f="59.278" m="58.8865" cg="63."/>\r
+      <eng-data  t="0.375" f="64.231" m="53.6548" cg="63."/>\r
+      <eng-data  t="1.297" f="69.024" m="18.2513" cg="63."/>\r
+      <eng-data  t="1.453" f="68.864" m="12.0528" cg="63."/>\r
+      <eng-data  t="1.533" f="67.746" m="8.90358" cg="63."/>\r
+      <eng-data  t="1.589" f="65.189" m="6.75842" cg="63."/>\r
+      <eng-data  t="1.686" f="58.639" m="3.29726" cg="63."/>\r
+      <eng-data  t="1.735" f="42.821" m="1.86466" cg="63."/>\r
+      <eng-data  t="1.781" f="26.363" m="0.947608" cg="63."/>\r
+      <eng-data  t="1.816" f="13.901" m="0.541523" cg="63."/>\r
+      <eng-data  t="1.89" f="5.432" m="0.129271" cg="63."/>\r
+      <eng-data  t="1.954" f="1.278" m="0.005524" cg="63."/>\r
+      <eng-data  t="1.969" f="0." m="0." cg="63."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G79.eng b/datafiles/thrustcurves/Cesaroni_G79.eng
new file mode 100644 (file)
index 0000000..dbbb08d
--- /dev/null
@@ -0,0 +1,30 @@
+;\r
+; Pro38 G79SS\r
+G79SS 38 127 6-8-10-13 0.069000 0.2070 Pro38\r
+0.042 67.279\r
+0.050 72.145\r
+0.065 76.176\r
+0.072 76.176\r
+0.082 74.647\r
+0.094 68.252\r
+0.109 66.167\r
+0.122 65.611\r
+0.433 81.041\r
+0.633 88.130\r
+0.643 87.574\r
+0.684 89.659\r
+0.723 89.798\r
+0.834 92.162\r
+0.939 93.135\r
+1.000 93.969\r
+1.151 91.884\r
+1.160 90.772\r
+1.185 91.189\r
+1.303 86.879\r
+1.499 77.149\r
+1.518 75.064\r
+1.540 66.584\r
+1.587 23.631\r
+1.607 10.982\r
+1.629  4.865\r
+1.631  0.000\r
diff --git a/datafiles/thrustcurves/Cesaroni_G79.rse b/datafiles/thrustcurves/Cesaroni_G79.rse
new file mode 100644 (file)
index 0000000..e608f8f
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+  <engine  mfg="Cesaroni Technology Inc." code="G79SS" Type="reloadable" dia="38."\r
+len="127." initWt="226." propWt="85." delays="13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="79.866" peakThrust="95.81" throatDia="0."\r
+exitDia="0." Itot="130.182" burn-time="1.63" massFrac="37.61" Isp="156.17"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+  <data>\r
+    <eng-data  t="0." f="0." m="85." cg="63.5"/>\r
+    <eng-data  t="0." f="9.07" m="85." cg="63.5"/>\r
+    <eng-data  t="0.03" f="54.45" m="84.3779" cg="63.5"/>\r
+    <eng-data  t="0.07" f="76.33" m="82.6701" cg="63.5"/>\r
+    <eng-data  t="0.09" f="70.95" m="81.7084" cg="63.5"/>\r
+    <eng-data  t="0.11" f="65.92" m="80.8148" cg="63.5"/>\r
+    <eng-data  t="0.17" f="68.59" m="78.18" cg="63.5"/>\r
+    <eng-data  t="0.2" f="70.64" m="76.8164" cg="63.5"/>\r
+    <eng-data  t="0.3" f="74.89" m="72.0653" cg="63.5"/>\r
+    <eng-data  t="0.4" f="80.39" m="66.9959" cg="63.5"/>\r
+    <eng-data  t="0.5" f="83.76" m="61.637" cg="63.5"/>\r
+    <eng-data  t="0.6" f="86.45" m="56.0802" cg="63.5"/>\r
+    <eng-data  t="0.7" f="88.65" m="50.3638" cg="63.5"/>\r
+    <eng-data  t="0.81" f="91.4" m="43.8979" cg="63.5"/>\r
+    <eng-data  t="0.9" f="93.06" m="38.4781" cg="63.5"/>\r
+    <eng-data  t="1." f="93.99" m="32.3716" cg="63.5"/>\r
+    <eng-data  t="1.1" f="95.81" m="26.1753" cg="63.5"/>\r
+    <eng-data  t="1.2" f="90.7" m="20.0863" cg="63.5"/>\r
+    <eng-data  t="1.3" f="86.92" m="14.2876" cg="63.5"/>\r
+    <eng-data  t="1.4" f="81.98" m="8.77362" cg="63.5"/>\r
+    <eng-data  t="1.5" f="76.54" m="3.59848" cg="63.5"/>\r
+    <eng-data  t="1.55" f="58.92" m="1.38732" cg="63.5"/>\r
+    <eng-data  t="1.6" f="16.41" m="0.157683" cg="63.5"/>\r
+    <eng-data  t="1.62" f="5.16" m="0.0168457" cg="63.5"/>\r
+    <eng-data  t="1.63" f="0." m="0." cg="63.5"/>\r
+  </data>\r
+</engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G80.eng b/datafiles/thrustcurves/Cesaroni_G80.eng
new file mode 100644 (file)
index 0000000..223bae4
--- /dev/null
@@ -0,0 +1,19 @@
+; Pro29-3G 93G80-SK 14A\r
+G80-SK 29 142 14-11-9-7-5 0.0564 0.1432 CTI\r
+   0.0070 51.315\r
+   0.025 108.143\r
+   0.047 65.31\r
+   0.122 78.032\r
+   0.307 89.059\r
+   0.446 93.865\r
+   0.581 95.137\r
+   0.75 91.886\r
+   0.924 84.252\r
+   0.972 83.404\r
+   1.038 88.352\r
+   1.064 67.147\r
+   1.08 40.43\r
+   1.093 21.629\r
+   1.11 9.754\r
+   1.131 2.545\r
+   1.178 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G83.rse b/datafiles/thrustcurves/Cesaroni_G83.rse
new file mode 100644 (file)
index 0000000..fbb6ec1
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G83-BS" Type="unspecified" dia="29." len="142." initWt="145."\r
+propWt="58." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="80.173" peakThrust="100." throatDia="0." exitDia="0." Itot="106.63"\r
+burn-time="1.33" massFrac="40." Isp="187.47" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="58." cg="71."/>\r
+      <eng-data  t="0.01" f="13." m="57.9646" cg="71."/>\r
+      <eng-data  t="0.02" f="82." m="57.7063" cg="71."/>\r
+      <eng-data  t="0.03" f="98." m="57.2167" cg="71."/>\r
+      <eng-data  t="0.04" f="100." m="56.6782" cg="71."/>\r
+      <eng-data  t="0.05" f="90." m="56.1615" cg="71."/>\r
+      <eng-data  t="0.06" f="86." m="55.6828" cg="71."/>\r
+      <eng-data  t="0.12" f="93." m="52.7619" cg="71."/>\r
+      <eng-data  t="0.2" f="96." m="48.6497" cg="71."/>\r
+      <eng-data  t="0.3" f="96." m="43.4279" cg="71."/>\r
+      <eng-data  t="0.7" f="92." m="22.9759" cg="71."/>\r
+      <eng-data  t="0.9" f="88." m="13.185" cg="71."/>\r
+      <eng-data  t="1.07" f="83." m="5.27891" cg="71."/>\r
+      <eng-data  t="1.1" f="80." m="3.94898" cg="71."/>\r
+      <eng-data  t="1.2" f="30." m="0.957329" cg="71."/>\r
+      <eng-data  t="1.3" f="4." m="0.0326362" cg="71."/>\r
+      <eng-data  t="1.33" f="0." m="0." cg="71."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G84.eng b/datafiles/thrustcurves/Cesaroni_G84.eng
new file mode 100644 (file)
index 0000000..29bc86e
--- /dev/null
@@ -0,0 +1,31 @@
+; Pro-24-6G Green3\r
+131-G84-GR-10A 24 228 4-5-7-8-9 0.0773 0.1720 CTI\r
+   0.0050 80.264\r
+   0.017 94.69\r
+   0.023 108.745\r
+   0.031 124.835\r
+   0.044 129.828\r
+   0.081 124.28\r
+   0.149 116.513\r
+   0.224 111.149\r
+   0.301 107.635\r
+   0.386 103.382\r
+   0.506 98.203\r
+   0.623 94.135\r
+   0.759 89.696\r
+   0.849 85.997\r
+   0.974 81.374\r
+   1.09 77.86\r
+   1.149 74.716\r
+   1.171 78.97\r
+   1.202 70.832\r
+   1.244 69.168\r
+   1.3 68.243\r
+   1.326 56.777\r
+   1.373 52.523\r
+   1.403 40.687\r
+   1.447 29.036\r
+   1.515 14.425\r
+   1.562 6.103\r
+   1.597 2.034\r
+   1.641 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_G84.rse b/datafiles/thrustcurves/Cesaroni_G84.rse
new file mode 100644 (file)
index 0000000..be2bb34
--- /dev/null
@@ -0,0 +1,44 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="131-G84-GR-10A" Type="reloadable" dia="24." len="228."\r
+initWt="172." propWt="77.3" delays="4,5,7,8,9" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="80.007" peakThrust="129.828" throatDia="0."\r
+exitDia="0." Itot="131.291" burn-time="1.64" massFrac="44.94" Isp="173.19"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-24-6G Green3</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="77.3" cg="114."/>\r
+      <eng-data  t="0.005" f="80.264" m="77.1819" cg="114."/>\r
+      <eng-data  t="0.017" f="94.69" m="76.5638" cg="114."/>\r
+      <eng-data  t="0.023" f="108.745" m="76.2045" cg="114."/>\r
+      <eng-data  t="0.031" f="124.835" m="75.6544" cg="114."/>\r
+      <eng-data  t="0.044" f="129.828" m="74.6798" cg="114."/>\r
+      <eng-data  t="0.081" f="124.28" m="71.912" cg="114."/>\r
+      <eng-data  t="0.149" f="116.513" m="67.0918" cg="114."/>\r
+      <eng-data  t="0.224" f="111.149" m="62.0652" cg="114."/>\r
+      <eng-data  t="0.301" f="107.635" m="57.1059" cg="114."/>\r
+      <eng-data  t="0.386" f="103.382" m="51.8257" cg="114."/>\r
+      <eng-data  t="0.506" f="98.203" m="44.7045" cg="114."/>\r
+      <eng-data  t="0.623" f="94.135" m="38.0798" cg="114."/>\r
+      <eng-data  t="0.759" f="89.696" m="30.7199" cg="114."/>\r
+      <eng-data  t="0.849" f="85.997" m="26.065" cg="114."/>\r
+      <eng-data  t="0.974" f="81.374" m="19.9061" cg="114."/>\r
+      <eng-data  t="1.09" f="77.86" m="14.4684" cg="114."/>\r
+      <eng-data  t="1.149" f="74.716" m="11.8184" cg="114."/>\r
+      <eng-data  t="1.171" f="78.97" m="10.8231" cg="114."/>\r
+      <eng-data  t="1.202" f="70.832" m="9.45598" cg="114."/>\r
+      <eng-data  t="1.244" f="69.168" m="7.725" cg="114."/>\r
+      <eng-data  t="1.3" f="68.243" m="5.45971" cg="114."/>\r
+      <eng-data  t="1.326" f="56.777" m="4.50281" cg="114."/>\r
+      <eng-data  t="1.373" f="52.523" m="2.99052" cg="114."/>\r
+      <eng-data  t="1.403" f="40.687" m="2.16734" cg="114."/>\r
+      <eng-data  t="1.447" f="29.036" m="1.26422" cg="114."/>\r
+      <eng-data  t="1.515" f="14.425" m="0.394212" cg="114."/>\r
+      <eng-data  t="1.562" f="6.103" m="0.110185" cg="114."/>\r
+      <eng-data  t="1.597" f="2.034" m="0.0263462" cg="114."/>\r
+      <eng-data  t="1.641" f="0." m="0." cg="114."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_G88.rse b/datafiles/thrustcurves/Cesaroni_G88.rse
new file mode 100644 (file)
index 0000000..abc8353
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G88-SS" Type="unspecified" dia="29." len="142." initWt="152."\r
+propWt="64." delays="2,4,6,8,11" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="83.955" peakThrust="116." throatDia="0." exitDia="0." Itot="83.955"\r
+burn-time="1." massFrac="42.11" Isp="133.77" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="64." cg="71."/>\r
+      <eng-data  t="0.03" f="7." m="63.92" cg="71."/>\r
+      <eng-data  t="0.04" f="60." m="63.6646" cg="71."/>\r
+      <eng-data  t="0.05" f="90." m="63.0928" cg="71."/>\r
+      <eng-data  t="0.06" f="113." m="62.3191" cg="71."/>\r
+      <eng-data  t="0.07" f="116." m="61.4463" cg="71."/>\r
+      <eng-data  t="0.08" f="113." m="60.5734" cg="71."/>\r
+      <eng-data  t="0.1" f="86." m="59.0564" cg="71."/>\r
+      <eng-data  t="0.12" f="81." m="57.7833" cg="71."/>\r
+      <eng-data  t="0.15" f="86." m="55.8737" cg="71."/>\r
+      <eng-data  t="0.3" f="92." m="45.6969" cg="71."/>\r
+      <eng-data  t="0.4" f="95." m="38.5692" cg="71."/>\r
+      <eng-data  t="0.5" f="97." m="31.251" cg="71."/>\r
+      <eng-data  t="0.75" f="100." m="12.4791" cg="71."/>\r
+      <eng-data  t="0.82" f="108." m="6.92943" cg="71."/>\r
+      <eng-data  t="0.84" f="106." m="5.29808" cg="71."/>\r
+      <eng-data  t="0.9" f="56." m="1.59323" cg="71."/>\r
+      <eng-data  t="0.93" f="25." m="0.667024" cg="71."/>\r
+      <eng-data  t="1." f="0." m="0." cg="71."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H100.eng b/datafiles/thrustcurves/Cesaroni_H100.eng
new file mode 100644 (file)
index 0000000..711f96d
--- /dev/null
@@ -0,0 +1,12 @@
+H100-IM 38 186 6-8-11-12-15 0.1544 0.327 CTI\r
+0.016 68\r
+0.056 116\r
+0.09 118\r
+0.14 115\r
+0.5 116\r
+0.6 114\r
+1.25 113\r
+2.32 99\r
+2.44 100\r
+2.55 89\r
+2.77 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H110.eng b/datafiles/thrustcurves/Cesaroni_H110.eng
new file mode 100644 (file)
index 0000000..e240969
--- /dev/null
@@ -0,0 +1,27 @@
+; Pro-38-2G White\r
+269-H110-WH-14A 38 186 5-7-9-11-13-14 0.1526 0.3253 CTI\r
+   0.029 93.733\r
+   0.052 118.066\r
+   0.093 98.531\r
+   0.153 109.327\r
+   0.238 113.439\r
+   0.461 118.923\r
+   0.592 120.979\r
+   0.72 122.693\r
+   0.896 124.406\r
+   1.15 124.92\r
+   1.246 122.521\r
+   1.461 119.608\r
+   1.622 117.381\r
+   1.79 115.667\r
+   1.922 112.583\r
+   2.114 112.754\r
+   2.174 111.726\r
+   2.21 98.874\r
+   2.259 69.4\r
+   2.319 47.466\r
+   2.365 28.96\r
+   2.441 12.166\r
+   2.526 7.368\r
+   2.597 2.228\r
+   2.692 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H110.rse b/datafiles/thrustcurves/Cesaroni_H110.rse
new file mode 100644 (file)
index 0000000..bb217b1
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="269-H110-WH-14A" Type="reloadable" dia="38." len="186."\r
+initWt="325.3" propWt="152.6" delays="5,7,9,11,13,14" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="100.51" peakThrust="124.92" throatDia="0."\r
+exitDia="0." Itot="270.572" burn-time="2.69" massFrac="46.91" Isp="180.8"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-2G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="152.6" cg="93."/>\r
+      <eng-data  t="0.029" f="93.733" m="151.833" cg="93."/>\r
+      <eng-data  t="0.052" f="118.066" m="150.46" cg="93."/>\r
+      <eng-data  t="0.093" f="98.531" m="147.956" cg="93."/>\r
+      <eng-data  t="0.153" f="109.327" m="144.439" cg="93."/>\r
+      <eng-data  t="0.238" f="113.439" m="139.099" cg="93."/>\r
+      <eng-data  t="0.461" f="118.923" m="124.487" cg="93."/>\r
+      <eng-data  t="0.592" f="120.979" m="115.625" cg="93."/>\r
+      <eng-data  t="0.72" f="122.693" m="106.829" cg="93."/>\r
+      <eng-data  t="0.896" f="124.406" m="94.5654" cg="93."/>\r
+      <eng-data  t="1.15" f="124.92" m="76.707" cg="93."/>\r
+      <eng-data  t="1.246" f="122.521" m="70.0084" cg="93."/>\r
+      <eng-data  t="1.461" f="119.608" m="55.3284" cg="93."/>\r
+      <eng-data  t="1.622" f="117.381" m="44.5688" cg="93."/>\r
+      <eng-data  t="1.79" f="115.667" m="33.5281" cg="93."/>\r
+      <eng-data  t="1.922" f="112.583" m="25.0319" cg="93."/>\r
+      <eng-data  t="2.114" f="112.754" m="12.8314" cg="93."/>\r
+      <eng-data  t="2.174" f="111.726" m="9.0333" cg="93."/>\r
+      <eng-data  t="2.21" f="98.874" m="6.89532" cg="93."/>\r
+      <eng-data  t="2.259" f="69.4" m="4.57015" cg="93."/>\r
+      <eng-data  t="2.319" f="47.466" m="2.59281" cg="93."/>\r
+      <eng-data  t="2.365" f="28.96" m="1.60143" cg="93."/>\r
+      <eng-data  t="2.441" f="12.166" m="0.720037" cg="93."/>\r
+      <eng-data  t="2.526" f="7.368" m="0.251815" cg="93."/>\r
+      <eng-data  t="2.597" f="2.228" m="0.0596871" cg="93."/>\r
+      <eng-data  t="2.692" f="0." m="0." cg="93."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H118.rse b/datafiles/thrustcurves/Cesaroni_H118.rse
new file mode 100644 (file)
index 0000000..b833fc4
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="G118-BS" Type="unspecified" dia="29." len="187." initWt="188."\r
+propWt="83." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="115.779" peakThrust="156." throatDia="0." exitDia="0." Itot="158.617"\r
+burn-time="1.37" massFrac="44.15" Isp="194.87" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="83." cg="93.5"/>\r
+      <eng-data  t="0.005" f="1.3" m="82.9983" cg="93.5"/>\r
+      <eng-data  t="0.012" f="80." m="82.8494" cg="93.5"/>\r
+      <eng-data  t="0.02" f="156." m="82.3554" cg="93.5"/>\r
+      <eng-data  t="0.04" f="148." m="80.7647" cg="93.5"/>\r
+      <eng-data  t="0.05" f="105." m="80.1027" cg="93.5"/>\r
+      <eng-data  t="0.11" f="121." m="76.5549" cg="93.5"/>\r
+      <eng-data  t="0.3" f="131." m="64.0278" cg="93.5"/>\r
+      <eng-data  t="0.5" f="134." m="50.161" cg="93.5"/>\r
+      <eng-data  t="0.7" f="130." m="36.3466" cg="93.5"/>\r
+      <eng-data  t="0.95" f="126." m="19.6018" cg="93.5"/>\r
+      <eng-data  t="1.13" f="126." m="7.73399" cg="93.5"/>\r
+      <eng-data  t="1.18" f="115." m="4.58126" cg="93.5"/>\r
+      <eng-data  t="1.27" f="40." m="0.931427" cg="93.5"/>\r
+      <eng-data  t="1.31" f="20." m="0.303499" cg="93.5"/>\r
+      <eng-data  t="1.35" f="6." m="0.0313964" cg="93.5"/>\r
+      <eng-data  t="1.37" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H123.rse b/datafiles/thrustcurves/Cesaroni_H123.rse
new file mode 100644 (file)
index 0000000..2383ffb
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H123-SK" Type="unspecified" dia="29." len="231." initWt="228."\r
+propWt="106." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="114.99" peakThrust="145." throatDia="0." exitDia="0." Itot="175.935"\r
+burn-time="1.53" massFrac="46.49" Isp="169.25" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="106." cg="115.5"/>\r
+      <eng-data  t="0.021" f="10." m="105.937" cg="115.5"/>\r
+      <eng-data  t="0.028" f="139." m="105.623" cg="115.5"/>\r
+      <eng-data  t="0.055" f="139." m="103.361" cg="115.5"/>\r
+      <eng-data  t="0.075" f="108." m="101.873" cg="115.5"/>\r
+      <eng-data  t="0.13" f="120." m="98.0955" cg="115.5"/>\r
+      <eng-data  t="0.35" f="132." m="81.3943" cg="115.5"/>\r
+      <eng-data  t="0.65" f="140." m="56.8125" cg="115.5"/>\r
+      <eng-data  t="1." f="144." m="26.8684" cg="115.5"/>\r
+      <eng-data  t="1.15" f="143." m="13.8996" cg="115.5"/>\r
+      <eng-data  t="1.22" f="145." m="7.82644" cg="115.5"/>\r
+      <eng-data  t="1.35" f="23." m="1.24717" cg="115.5"/>\r
+      <eng-data  t="1.53" f="0." m="0." cg="115.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H133.rse b/datafiles/thrustcurves/Cesaroni_H133.rse
new file mode 100644 (file)
index 0000000..c60cde6
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H133-BS" Type="unspecified" dia="29." len="187." initWt="190."\r
+propWt="85." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="127.34" peakThrust="200." throatDia="0." exitDia="0." Itot="162.995"\r
+burn-time="1.28" massFrac="44.74" Isp="195.54" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="85." cg="93.5"/>\r
+      <eng-data  t="0.01" f="10." m="84.9739" cg="93.5"/>\r
+      <eng-data  t="0.017" f="100." m="84.7732" cg="93.5"/>\r
+      <eng-data  t="0.023" f="190." m="84.3195" cg="93.5"/>\r
+      <eng-data  t="0.028" f="200." m="83.811" cg="93.5"/>\r
+      <eng-data  t="0.042" f="140." m="82.5699" cg="93.5"/>\r
+      <eng-data  t="0.05" f="135." m="81.9962" cg="93.5"/>\r
+      <eng-data  t="0.12" f="152." m="76.7579" cg="93.5"/>\r
+      <eng-data  t="0.35" f="154." m="58.4067" cg="93.5"/>\r
+      <eng-data  t="1." f="135." m="9.4259" cg="93.5"/>\r
+      <eng-data  t="1.065" f="110." m="5.27355" cg="93.5"/>\r
+      <eng-data  t="1.2" f="25." m="0.521488" cg="93.5"/>\r
+      <eng-data  t="1.28" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H135.eng b/datafiles/thrustcurves/Cesaroni_H135.eng
new file mode 100644 (file)
index 0000000..cdfd381
--- /dev/null
@@ -0,0 +1,25 @@
+; Pro-29-4G White\r
+217-H135-WH-12A 29 231 3-5-7-8-10-11 0.1198 0.2512 CTI\r
+   0.012 166.804\r
+   0.054 158.622\r
+   0.101 155.718\r
+   0.156 153.079\r
+   0.223 151.496\r
+   0.312 150.44\r
+   0.566 150.968\r
+   0.706 149.12\r
+   0.946 143.842\r
+   1.121 140.411\r
+   1.222 136.452\r
+   1.278 136.979\r
+   1.341 131.437\r
+   1.374 126.686\r
+   1.4 117.185\r
+   1.431 100.029\r
+   1.482 71.261\r
+   1.535 49.355\r
+   1.558 30.88\r
+   1.598 11.877\r
+   1.62 5.015\r
+   1.644 2.375\r
+   1.676 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H135.rse b/datafiles/thrustcurves/Cesaroni_H135.rse
new file mode 100644 (file)
index 0000000..8f9bfcb
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="217-H135-WH-12A" Type="reloadable" dia="29." len="231."\r
+initWt="251.2" propWt="119.8" delays="3,5,7,8,10,11" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="129.6" peakThrust="166.804" throatDia="0."\r
+exitDia="0." Itot="217.209" burn-time="1.68" massFrac="47.69" Isp="184.88"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-29-4G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="119.8" cg="115.5"/>\r
+      <eng-data  t="0.012" f="166.804" m="119.248" cg="115.5"/>\r
+      <eng-data  t="0.054" f="158.622" m="115.479" cg="115.5"/>\r
+      <eng-data  t="0.101" f="155.718" m="111.405" cg="115.5"/>\r
+      <eng-data  t="0.156" f="153.079" m="106.721" cg="115.5"/>\r
+      <eng-data  t="0.223" f="151.496" m="101.093" cg="115.5"/>\r
+      <eng-data  t="0.312" f="150.44" m="93.6828" cg="115.5"/>\r
+      <eng-data  t="0.566" f="150.968" m="72.5704" cg="115.5"/>\r
+      <eng-data  t="0.706" f="149.12" m="60.9846" cg="115.5"/>\r
+      <eng-data  t="0.946" f="143.842" m="41.5949" cg="115.5"/>\r
+      <eng-data  t="1.121" f="140.411" m="27.8769" cg="115.5"/>\r
+      <eng-data  t="1.222" f="136.452" m="20.1654" cg="115.5"/>\r
+      <eng-data  t="1.278" f="136.979" m="15.9428" cg="115.5"/>\r
+      <eng-data  t="1.341" f="131.437" m="11.2794" cg="115.5"/>\r
+      <eng-data  t="1.374" f="126.686" m="8.9304" cg="115.5"/>\r
+      <eng-data  t="1.4" f="117.185" m="7.18184" cg="115.5"/>\r
+      <eng-data  t="1.431" f="100.029" m="5.32489" cg="115.5"/>\r
+      <eng-data  t="1.482" f="71.261" m="2.91582" cg="115.5"/>\r
+      <eng-data  t="1.535" f="49.355" m="1.15291" cg="115.5"/>\r
+      <eng-data  t="1.558" f="30.88" m="0.643998" cg="115.5"/>\r
+      <eng-data  t="1.598" f="11.877" m="0.172353" cg="115.5"/>\r
+      <eng-data  t="1.62" f="5.015" m="0.0698694" cg="115.5"/>\r
+      <eng-data  t="1.644" f="2.375" m="0.0209586" cg="115.5"/>\r
+      <eng-data  t="1.676" f="0." m="0." cg="115.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H140.rse b/datafiles/thrustcurves/Cesaroni_H140.rse
new file mode 100644 (file)
index 0000000..76ef274
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H140-CL" Type="unspecified" dia="29." len="276." initWt="277."\r
+propWt="139." delays="2,4,6,8,11" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="130.86" peakThrust="245." throatDia="0." exitDia="0." Itot="268.262"\r
+burn-time="2.05" massFrac="50.18" Isp="196.8" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="139." cg="138."/>\r
+      <eng-data  t="0.015" f="30." m="138.883" cg="138."/>\r
+      <eng-data  t="0.025" f="240." m="138.184" cg="138."/>\r
+      <eng-data  t="0.04" f="245." m="136.299" cg="138."/>\r
+      <eng-data  t="0.09" f="220." m="130.276" cg="138."/>\r
+      <eng-data  t="0.2" f="200." m="118.306" cg="138."/>\r
+      <eng-data  t="0.4" f="185." m="98.3577" cg="138."/>\r
+      <eng-data  t="0.8" f="160." m="62.6054" cg="138."/>\r
+      <eng-data  t="1.4" f="140." m="15.9719" cg="138."/>\r
+      <eng-data  t="1.49" f="100." m="10.3759" cg="138."/>\r
+      <eng-data  t="1.63" f="50." m="4.93537" cg="138."/>\r
+      <eng-data  t="1.75" f="35." m="2.29281" cg="138."/>\r
+      <eng-data  t="1.9" f="12." m="0.466334" cg="138."/>\r
+      <eng-data  t="2.05" f="0." m="0." cg="138."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H143.rse b/datafiles/thrustcurves/Cesaroni_H143.rse
new file mode 100644 (file)
index 0000000..20409d3
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+<engine  mfg="Cesaroni Technology Inc." code="H143SS" Type="reloadable" dia="38."\r
+len="186." initWt="308.9" propWt="187." delays="13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="135.804" peakThrust="160.581" throatDia="0."\r
+exitDia="0." Itot="239.015" burn-time="1.76" massFrac="43.7" Isp="180.54"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+<data>\r
+<eng-data  t="0." f="0." m="135." cg="93."/>\r
+<eng-data  t="0.05" f="112.54" m="133.411" cg="93."/>\r
+<eng-data  t="0.075" f="115.654" m="131.8" cg="93."/>\r
+<eng-data  t="0.1" f="119.212" m="130.142" cg="93."/>\r
+<eng-data  t="0.2" f="128.554" m="123.144" cg="93."/>\r
+<eng-data  t="0.3" f="134.781" m="115.708" cg="93."/>\r
+<eng-data  t="0.4" f="141.009" m="107.919" cg="93."/>\r
+<eng-data  t="0.5" f="145.902" m="99.8165" cg="93."/>\r
+<eng-data  t="0.6" f="149.46" m="91.4752" cg="93."/>\r
+<eng-data  t="0.7" f="153.908" m="82.9078" cg="93."/>\r
+<eng-data  t="0.8" f="157.467" m="74.1143" cg="93."/>\r
+<eng-data  t="0.9" f="158.357" m="65.1952" cg="93."/>\r
+<eng-data  t="1." f="160.581" m="56.1881" cg="93."/>\r
+<eng-data  t="1.1" f="154.798" m="47.2815" cg="93."/>\r
+<eng-data  t="1.2" f="157.022" m="38.4755" cg="93."/>\r
+<eng-data  t="1.3" f="153.464" m="29.7071" cg="93."/>\r
+<eng-data  t="1.4" f="145.902" m="21.2527" cg="93."/>\r
+<eng-data  t="1.5" f="135.671" m="13.3009" cg="93."/>\r
+<eng-data  t="1.6" f="123.661" m="5.97709" cg="93."/>\r
+<eng-data  t="1.65" f="104.978" m="2.74861" cg="93."/>\r
+<eng-data  t="1.7" f="42.703" m="0.66329" cg="93."/>\r
+<eng-data  t="1.75" f="3.559" m="0.0100509" cg="93."/>\r
+<eng-data  t="1.76" f="0." m="0." cg="93."/>\r
+</data>\r
+</engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H151.rse b/datafiles/thrustcurves/Cesaroni_H151.rse
new file mode 100644 (file)
index 0000000..6dfed44
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H151-RL" Type="unspecified" dia="29." len="231." initWt="238."\r
+propWt="118." delays="15,12,10,8,6" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="147.994" peakThrust="209.602" throatDia="0." exitDia="0."\r
+Itot="207.191" burn-time="1.4" massFrac="49.58" Isp="179.05" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro29-4G 207H151-RL 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="118." cg="115.5"/>\r
+      <eng-data  t="0.008" f="125.295" m="117.715" cg="115.5"/>\r
+      <eng-data  t="0.021" f="209.602" m="116.475" cg="115.5"/>\r
+      <eng-data  t="0.052" f="160.928" m="113.204" cg="115.5"/>\r
+      <eng-data  t="0.118" f="186.779" m="106.669" cg="115.5"/>\r
+      <eng-data  t="0.293" f="190.738" m="87.8562" cg="115.5"/>\r
+      <eng-data  t="0.465" f="183.518" m="69.5255" cg="115.5"/>\r
+      <eng-data  t="0.683" f="171.641" m="47.478" cg="115.5"/>\r
+      <eng-data  t="0.988" f="145.557" m="19.9286" cg="115.5"/>\r
+      <eng-data  t="1.133" f="134.145" m="8.37962" cg="115.5"/>\r
+      <eng-data  t="1.221" f="74.292" m="3.1564" cg="115.5"/>\r
+      <eng-data  t="1.293" f="29.81" m="1.02202" cg="115.5"/>\r
+      <eng-data  t="1.372" f="10.014" m="0.126136" cg="115.5"/>\r
+      <eng-data  t="1.398" f="6.521" m="0.00371386" cg="115.5"/>\r
+      <eng-data  t="1.4" f="0." m="0." cg="115.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H152.eng b/datafiles/thrustcurves/Cesaroni_H152.eng
new file mode 100644 (file)
index 0000000..190bf13
--- /dev/null
@@ -0,0 +1,37 @@
+H152BS 38 186 15-12-10-8-6 0.138 0.298 Cesaroni\r
+   0.018 212.503\r
+   0.051 207.443\r
+   0.059 153.052\r
+   0.077 153.052\r
+   0.099 163.172\r
+   0.139 166.966\r
+   0.168 174.556\r
+   0.223 173.291\r
+   0.256 175.821\r
+   0.304 175.821\r
+   0.396 179.615\r
+   0.538 175.821\r
+   0.659 174.556\r
+   0.714 174.556\r
+   0.758 174.556\r
+   0.802 170.761\r
+   0.89 172.026\r
+   0.974 165.701\r
+   1.022 168.231\r
+   1.084 163.172\r
+   1.212 155.582\r
+   1.293 151.788\r
+   1.385 146.728\r
+   1.447 149.258\r
+   1.484 144.198\r
+   1.531 145.463\r
+   1.575 144.198\r
+   1.601 137.874\r
+   1.615 134.079\r
+   1.623 120.165\r
+   1.663 82.218\r
+   1.714 46.801\r
+   1.766 34.152\r
+   1.788 30.358\r
+   1.821 26.563\r
+   1.828 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H159.eng b/datafiles/thrustcurves/Cesaroni_H159.eng
new file mode 100644 (file)
index 0000000..f573857
--- /dev/null
@@ -0,0 +1,19 @@
+; Pro29-6G 298H159-GR 15A\r
+H159-GR 29 320 15-12-10-8-6 0.1874 0.3428 CTI\r
+   0.012 117.276\r
+   0.032 158.638\r
+   0.103 177.806\r
+   0.171 184.868\r
+   0.299 185.372\r
+   0.511 178.058\r
+   0.717 179.319\r
+   1.272 162.926\r
+   1.424 159.647\r
+   1.519 152.585\r
+   1.584 149.811\r
+   1.632 146.28\r
+   1.727 89.281\r
+   1.768 109.962\r
+   1.834 25.977\r
+   1.865 10.593\r
+   1.887 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H160.rse b/datafiles/thrustcurves/Cesaroni_H160.rse
new file mode 100644 (file)
index 0000000..e50e926
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H160-CL" Type="unspecified" dia="29." len="320." initWt="319."\r
+propWt="166." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="141.947" peakThrust="316." throatDia="0." exitDia="0." Itot="312.284"\r
+burn-time="2.2" massFrac="52.04" Isp="191.83" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="166." cg="160."/>\r
+      <eng-data  t="0.015" f="10." m="165.96" cg="160."/>\r
+      <eng-data  t="0.022" f="260." m="165.458" cg="160."/>\r
+      <eng-data  t="0.04" f="316." m="162.702" cg="160."/>\r
+      <eng-data  t="0.1" f="280." m="153.198" cg="160."/>\r
+      <eng-data  t="0.25" f="241." m="132.427" cg="160."/>\r
+      <eng-data  t="0.6" f="201." m="91.31" cg="160."/>\r
+      <eng-data  t="1." f="175." m="51.3361" cg="160."/>\r
+      <eng-data  t="1.27" f="165." m="26.9372" cg="160."/>\r
+      <eng-data  t="1.35" f="140." m="20.4521" cg="160."/>\r
+      <eng-data  t="1.45" f="100." m="14.0732" cg="160."/>\r
+      <eng-data  t="1.65" f="48." m="6.20605" cg="160."/>\r
+      <eng-data  t="1.85" f="25." m="2.32561" cg="160."/>\r
+      <eng-data  t="2.2" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H163.rse b/datafiles/thrustcurves/Cesaroni_H163.rse
new file mode 100644 (file)
index 0000000..824d5b2
--- /dev/null
@@ -0,0 +1,24 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H163-WT" Type="unspecified" dia="29." len="187." initWt="187."\r
+propWt="86." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="156.89" peakThrust="225." throatDia="0." exitDia="0." Itot="166.618"\r
+burn-time="1.06" massFrac="45.99" Isp="197.56" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="86." cg="93.5"/>\r
+      <eng-data  t="0.018" f="10." m="85.9535" cg="93.5"/>\r
+      <eng-data  t="0.026" f="225." m="85.4684" cg="93.5"/>\r
+      <eng-data  t="0.055" f="165." m="82.5495" cg="93.5"/>\r
+      <eng-data  t="0.1" f="170." m="78.659" cg="93.5"/>\r
+      <eng-data  t="0.2" f="175." m="69.7554" cg="93.5"/>\r
+      <eng-data  t="0.35" f="180." m="56.0128" cg="93.5"/>\r
+      <eng-data  t="0.9" f="175." m="5.62348" cg="93.5"/>\r
+      <eng-data  t="0.95" f="100." m="2.07493" cg="93.5"/>\r
+      <eng-data  t="0.98" f="45." m="0.952301" cg="93.5"/>\r
+      <eng-data  t="1.062" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H170.rse b/datafiles/thrustcurves/Cesaroni_H170.rse
new file mode 100644 (file)
index 0000000..4f6b3ea
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H170-BS" Type="unspecified" dia="29." len="231." initWt="232."\r
+propWt="111." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="161.998" peakThrust="240." throatDia="0." exitDia="0." Itot="217.077"\r
+burn-time="1.34" massFrac="47.84" Isp="199.42" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="111." cg="115.5"/>\r
+      <eng-data  t="0.01" f="150." m="110.616" cg="115.5"/>\r
+      <eng-data  t="0.015" f="200." m="110.169" cg="115.5"/>\r
+      <eng-data  t="0.025" f="240." m="109.044" cg="115.5"/>\r
+      <eng-data  t="0.075" f="210." m="103.292" cg="115.5"/>\r
+      <eng-data  t="0.13" f="205." m="97.4559" cg="115.5"/>\r
+      <eng-data  t="0.35" f="204." m="74.4508" cg="115.5"/>\r
+      <eng-data  t="0.7" f="205." m="37.8518" cg="115.5"/>\r
+      <eng-data  t="0.8" f="190." m="27.7529" cg="115.5"/>\r
+      <eng-data  t="0.9" f="185." m="18.1653" cg="115.5"/>\r
+      <eng-data  t="0.99" f="173." m="9.92763" cg="115.5"/>\r
+      <eng-data  t="1.1" f="60." m="3.37483" cg="115.5"/>\r
+      <eng-data  t="1.22" f="25." m="0.767007" cg="115.5"/>\r
+      <eng-data  t="1.34" f="0." m="0." cg="115.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H175.rse b/datafiles/thrustcurves/Cesaroni_H175.rse
new file mode 100644 (file)
index 0000000..6955cc6
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H175-SS" Type="unspecified" dia="29." len="231." initWt="247."\r
+propWt="122." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="166.123" peakThrust="236." throatDia="0." exitDia="0." Itot="166.123"\r
+burn-time="1." massFrac="49.39" Isp="138.85" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="122." cg="115.5"/>\r
+      <eng-data  t="0.021" f="13." m="121.9" cg="115.5"/>\r
+      <eng-data  t="0.032" f="175." m="121.14" cg="115.5"/>\r
+      <eng-data  t="0.057" f="215." m="117.56" cg="115.5"/>\r
+      <eng-data  t="0.08" f="180." m="114.224" cg="115.5"/>\r
+      <eng-data  t="0.13" f="175." m="107.706" cg="115.5"/>\r
+      <eng-data  t="0.4" f="185." m="72.0148" cg="115.5"/>\r
+      <eng-data  t="0.6" f="190." m="44.475" cg="115.5"/>\r
+      <eng-data  t="0.76" f="195." m="21.8556" cg="115.5"/>\r
+      <eng-data  t="0.84" f="236." m="9.19463" cg="115.5"/>\r
+      <eng-data  t="0.88" f="150." m="3.5251" cg="115.5"/>\r
+      <eng-data  t="0.92" f="30." m="0.881275" cg="115.5"/>\r
+      <eng-data  t="1." f="0." m="0." cg="115.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H180.rse b/datafiles/thrustcurves/Cesaroni_H180.rse
new file mode 100644 (file)
index 0000000..671c1bc
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H180-SK" Type="unspecified" dia="29." len="320." initWt="314."\r
+propWt="158." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="165.513" peakThrust="270." throatDia="0." exitDia="0." Itot="258.2"\r
+burn-time="1.56" massFrac="50.32" Isp="166.64" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="158." cg="160."/>\r
+      <eng-data  t="0.01" f="10." m="157.969" cg="160."/>\r
+      <eng-data  t="0.02" f="250." m="157.174" cg="160."/>\r
+      <eng-data  t="0.03" f="270." m="155.583" cg="160."/>\r
+      <eng-data  t="0.07" f="239." m="149.353" cg="160."/>\r
+      <eng-data  t="0.13" f="227." m="140.799" cg="160."/>\r
+      <eng-data  t="0.35" f="218." m="110.845" cg="160."/>\r
+      <eng-data  t="0.6" f="216." m="77.6476" cg="160."/>\r
+      <eng-data  t="0.8" f="207." m="51.7631" cg="160."/>\r
+      <eng-data  t="0.98" f="208." m="28.9075" cg="160."/>\r
+      <eng-data  t="1.06" f="204." m="18.8229" cg="160."/>\r
+      <eng-data  t="1.15" f="135." m="9.48796" cg="160."/>\r
+      <eng-data  t="1.23" f="65." m="4.59253" cg="160."/>\r
+      <eng-data  t="1.4" f="12." m="0.587452" cg="160."/>\r
+      <eng-data  t="1.56" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H194.rse b/datafiles/thrustcurves/Cesaroni_H194.rse
new file mode 100644 (file)
index 0000000..5f5e3fc
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H194-RL" Type="unspecified" dia="29." len="276." initWt="284."\r
+propWt="145." delays="14,11,9,7,5" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="190.396" peakThrust="285.99" throatDia="0." exitDia="0."\r
+Itot="256.464" burn-time="1.35" massFrac="51.06" Isp="180.36" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro29-4G 260H194-RL 14A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="145." cg="138."/>\r
+      <eng-data  t="0.006" f="179.792" m="144.695" cg="138."/>\r
+      <eng-data  t="0.011" f="244.07" m="144.096" cg="138."/>\r
+      <eng-data  t="0.021" f="285.99" m="142.598" cg="138."/>\r
+      <eng-data  t="0.049" f="204.944" m="138.712" cg="138."/>\r
+      <eng-data  t="0.117" f="233.823" m="130.277" cg="138."/>\r
+      <eng-data  t="0.181" f="241.275" m="121.682" cg="138."/>\r
+      <eng-data  t="0.386" f="236.152" m="94.0139" cg="138."/>\r
+      <eng-data  t="0.98" f="193.765" m="21.8228" cg="138."/>\r
+      <eng-data  t="1.075" f="170.476" m="12.0409" cg="138."/>\r
+      <eng-data  t="1.136" f="144.392" m="6.61124" cg="138."/>\r
+      <eng-data  t="1.19" f="80.58" m="3.17697" cg="138."/>\r
+      <eng-data  t="1.285" f="22.823" m="0.400015" cg="138."/>\r
+      <eng-data  t="1.347" f="0." m="0." cg="138."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H200.rse b/datafiles/thrustcurves/Cesaroni_H200.rse
new file mode 100644 (file)
index 0000000..6528070
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H200-BS" Type="unspecified" dia="29." len="276." initWt="274."\r
+propWt="136." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="186.579" peakThrust="295." throatDia="0." exitDia="0." Itot="261.21"\r
+burn-time="1.4" massFrac="49.63" Isp="195.85" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="136." cg="138."/>\r
+      <eng-data  t="0.01" f="40." m="135.896" cg="138."/>\r
+      <eng-data  t="0.018" f="280." m="135.229" cg="138."/>\r
+      <eng-data  t="0.026" f="295." m="134.032" cg="138."/>\r
+      <eng-data  t="0.06" f="250." m="129.208" cg="138."/>\r
+      <eng-data  t="0.15" f="236." m="117.821" cg="138."/>\r
+      <eng-data  t="0.65" f="235." m="56.5144" cg="138."/>\r
+      <eng-data  t="0.8" f="227." m="38.4737" cg="138."/>\r
+      <eng-data  t="0.9" f="212." m="27.0454" cg="138."/>\r
+      <eng-data  t="0.98" f="205." m="18.3609" cg="138."/>\r
+      <eng-data  t="1.09" f="135." m="8.62463" cg="138."/>\r
+      <eng-data  t="1.2" f="68." m="2.81153" cg="138."/>\r
+      <eng-data  t="1.3" f="20." m="0.520654" cg="138."/>\r
+      <eng-data  t="1.4" f="0." m="0." cg="138."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H226.eng b/datafiles/thrustcurves/Cesaroni_H226.eng
new file mode 100644 (file)
index 0000000..31f0b06
--- /dev/null
@@ -0,0 +1,16 @@
+H226-SK 29 365 5-7-9-11-14 0.175 0.360 CTI\r
+0.007 9\r
+0.012 178\r
+0.017 320\r
+0.023 362\r
+0.047 319\r
+0.08 302\r
+0.14 291\r
+0.615 276\r
+0.95 257.5\r
+1 215\r
+1.077 105\r
+1.18 81\r
+1.29 31\r
+1.34 16\r
+1.5 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H233.rse b/datafiles/thrustcurves/Cesaroni_H233.rse
new file mode 100644 (file)
index 0000000..2a45a05
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H233-RL" Type="unspecified" dia="29." len="320." initWt="327.6"\r
+propWt="163.7" delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="220.153" peakThrust="340." throatDia="0." exitDia="0." Itot="312.617"\r
+burn-time="1.42" massFrac="49.9695" Isp="194.735" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="163.7" cg="160."/>\r
+      <eng-data  t="0.003" f="2." m="163.698" cg="160."/>\r
+      <eng-data  t="0.012" f="160." m="163.317" cg="160."/>\r
+      <eng-data  t="0.025" f="340." m="161.615" cg="160."/>\r
+      <eng-data  t="0.038" f="330." m="159.334" cg="160."/>\r
+      <eng-data  t="0.047" f="275." m="157.909" cg="160."/>\r
+      <eng-data  t="0.06" f="265." m="156.071" cg="160."/>\r
+      <eng-data  t="0.14" f="295." m="144.341" cg="160."/>\r
+      <eng-data  t="0.19" f="300." m="136.552" cg="160."/>\r
+      <eng-data  t="0.24" f="296." m="128.75" cg="160."/>\r
+      <eng-data  t="0.56" f="275." m="80.9095" cg="160."/>\r
+      <eng-data  t="0.645" f="275." m="68.6694" cg="160."/>\r
+      <eng-data  t="0.84" f="260." m="41.3548" cg="160."/>\r
+      <eng-data  t="1.045" f="220." m="15.5915" cg="160."/>\r
+      <eng-data  t="1.14" f="120." m="7.13465" cg="160."/>\r
+      <eng-data  t="1.2" f="75." m="4.07133" cg="160."/>\r
+      <eng-data  t="1.29" f="40." m="1.36147" cg="160."/>\r
+      <eng-data  t="1.42" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H237.rse b/datafiles/thrustcurves/Cesaroni_H237.rse
new file mode 100644 (file)
index 0000000..78995b4
--- /dev/null
@@ -0,0 +1,25 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H237-SS" Type="unspecified" dia="29." len="276." initWt="294."\r
+propWt="151." delays="4,6,8,10,13" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="220.088" peakThrust="296." throatDia="0." exitDia="0." Itot="206.222"\r
+burn-time="0.94" massFrac="51.36" Isp="139.26" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="151." cg="138."/>\r
+      <eng-data  t="0.026" f="10." m="150.905" cg="138."/>\r
+      <eng-data  t="0.028" f="154." m="150.785" cg="138."/>\r
+      <eng-data  t="0.033" f="238." m="150.067" cg="138."/>\r
+      <eng-data  t="0.055" f="270." m="145.976" cg="138."/>\r
+      <eng-data  t="0.07" f="234." m="143.208" cg="138."/>\r
+      <eng-data  t="0.71" f="259." m="27.6926" cg="138."/>\r
+      <eng-data  t="0.78" f="296." m="13.4692" cg="138."/>\r
+      <eng-data  t="0.8" f="280." m="9.25161" cg="138."/>\r
+      <eng-data  t="0.87" f="50." m="0.794459" cg="138."/>\r
+      <eng-data  t="0.9" f="10." m="0.135461" cg="138."/>\r
+      <eng-data  t="0.937" f="0." m="0." cg="138."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H255.eng b/datafiles/thrustcurves/Cesaroni_H255.eng
new file mode 100644 (file)
index 0000000..c1fbb36
--- /dev/null
@@ -0,0 +1,15 @@
+H255-BS 29 320 5-7-9-11-14 0.162 0.318 CTI \r
+0.015 10\r
+0.018 260\r
+0.024 404\r
+0.03 412\r
+0.047 375\r
+0.08 340\r
+0.2 316\r
+0.4 303\r
+0.6 295\r
+0.87 285\r
+0.93 273\r
+1 200\r
+1.1 80\r
+1.252 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H255.rse b/datafiles/thrustcurves/Cesaroni_H255.rse
new file mode 100644 (file)
index 0000000..ea18851
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H255-BS" Type="unspecified" dia="29." len="320." initWt="318."\r
+propWt="162." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="252.51" peakThrust="412." throatDia="0." exitDia="0." Itot="316.142"\r
+burn-time="1.25" massFrac="50.94" Isp="199." tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="162." cg="160."/>\r
+      <eng-data  t="0.015" f="10." m="161.962" cg="160."/>\r
+      <eng-data  t="0.018" f="260." m="161.754" cg="160."/>\r
+      <eng-data  t="0.024" f="404." m="160.733" cg="160."/>\r
+      <eng-data  t="0.03" f="412." m="159.479" cg="160."/>\r
+      <eng-data  t="0.047" f="375." m="156.051" cg="160."/>\r
+      <eng-data  t="0.08" f="340." m="150.006" cg="160."/>\r
+      <eng-data  t="0.2" f="316." m="129.836" cg="160."/>\r
+      <eng-data  t="0.4" f="303." m="98.1171" cg="160."/>\r
+      <eng-data  t="0.6" f="295." m="67.474" cg="160."/>\r
+      <eng-data  t="0.87" f="285." m="27.3508" cg="160."/>\r
+      <eng-data  t="0.93" f="273." m="18.7728" cg="160."/>\r
+      <eng-data  t="1." f="200." m="10.2896" cg="160."/>\r
+      <eng-data  t="1.1" f="80." m="3.11556" cg="160."/>\r
+      <eng-data  t="1.252" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H295.rse b/datafiles/thrustcurves/Cesaroni_H295.rse
new file mode 100644 (file)
index 0000000..635db73
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H295-SS" Type="unspecified" dia="29." len="320." initWt="342."\r
+propWt="181." delays="4,6,8,10,13" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="273.335" peakThrust="370." throatDia="0." exitDia="0." Itot="252.835"\r
+burn-time="0.93" massFrac="52.92" Isp="142.44" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="181." cg="160."/>\r
+      <eng-data  t="0.03" f="15." m="180.839" cg="160."/>\r
+      <eng-data  t="0.031" f="320." m="180.719" cg="160."/>\r
+      <eng-data  t="0.05" f="355." m="176.128" cg="160."/>\r
+      <eng-data  t="0.075" f="325." m="170.043" cg="160."/>\r
+      <eng-data  t="0.13" f="312." m="157.503" cg="160."/>\r
+      <eng-data  t="0.35" f="315." m="108.129" cg="160."/>\r
+      <eng-data  t="0.66" f="327." m="36.8912" cg="160."/>\r
+      <eng-data  t="0.72" f="368." m="21.965" cg="160."/>\r
+      <eng-data  t="0.75" f="370." m="14.0402" cg="160."/>\r
+      <eng-data  t="0.78" f="290." m="6.953" cg="160."/>\r
+      <eng-data  t="0.8" f="150." m="3.80312" cg="160."/>\r
+      <eng-data  t="0.85" f="25." m="0.671139" cg="160."/>\r
+      <eng-data  t="0.925" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H340.eng b/datafiles/thrustcurves/Cesaroni_H340.eng
new file mode 100644 (file)
index 0000000..c754fb6
--- /dev/null
@@ -0,0 +1,20 @@
+H340-SS 29 365 5-7-9-11-14 0.2067 0.391 CTI\r
+0.017 6\r
+0.024 255\r
+0.0311 395\r
+0.035 423\r
+0.043 447.5\r
+0.06 398\r
+0.064 389\r
+0.075 397.5\r
+0.25 388\r
+0.4 382\r
+0.542 376\r
+0.62 379\r
+0.66 400\r
+0.68 407\r
+0.705 398\r
+0.74 248\r
+0.8 59.5\r
+0.85 8\r
+0.9 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H399.rse b/datafiles/thrustcurves/Cesaroni_H399.rse
new file mode 100644 (file)
index 0000000..d05ae2a
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H399-WT" Type="unspecified" dia="29." len="320." initWt="294."\r
+propWt="140." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="397.437" peakThrust="555." throatDia="0." exitDia="0." Itot="282.18"\r
+burn-time="0.71" massFrac="47.62" Isp="205.53" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="140." cg="160."/>\r
+      <eng-data  t="0.015" f="10." m="139.963" cg="160."/>\r
+      <eng-data  t="0.02" f="320." m="139.553" cg="160."/>\r
+      <eng-data  t="0.024" f="555." m="138.685" cg="160."/>\r
+      <eng-data  t="0.05" f="490." m="131.945" cg="160."/>\r
+      <eng-data  t="0.075" f="475." m="125.961" cg="160."/>\r
+      <eng-data  t="0.1" f="468." m="120.112" cg="160."/>\r
+      <eng-data  t="0.2" f="463." m="97.0172" cg="160."/>\r
+      <eng-data  t="0.53" f="451." m="22.1947" cg="160."/>\r
+      <eng-data  t="0.55" f="460." m="17.6749" cg="160."/>\r
+      <eng-data  t="0.575" f="400." m="12.3414" cg="160."/>\r
+      <eng-data  t="0.64" f="200." m="2.66674" cg="160."/>\r
+      <eng-data  t="0.685" f="25." m="0.155043" cg="160."/>\r
+      <eng-data  t="0.71" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H410.eng b/datafiles/thrustcurves/Cesaroni_H410.eng
new file mode 100644 (file)
index 0000000..8edb1a6
--- /dev/null
@@ -0,0 +1,19 @@
+; Pro29-3G 168H410-VM 14A\r
+H410-VM 29 187 14-11-9-7-5-3 0.0845 0.1825 CTI\r
+   0.0040 152.778\r
+   0.0090 341.425\r
+   0.013 367.995\r
+   0.019 367.995\r
+   0.046 385.93\r
+   0.074 416.486\r
+   0.143 471.618\r
+   0.21 517.452\r
+   0.253 500.845\r
+   0.287 460.326\r
+   0.338 383.273\r
+   0.357 343.418\r
+   0.361 293.599\r
+   0.369 263.043\r
+   0.378 253.744\r
+   0.4 62.44\r
+   0.414 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H54.eng b/datafiles/thrustcurves/Cesaroni_H54.eng
new file mode 100644 (file)
index 0000000..fb4f84d
--- /dev/null
@@ -0,0 +1,22 @@
+; Pro-29-3G White Long Burn\r
+168-H54-WH_LB-10A 29 187 3-5-7-8-9 0.0966 0.209 CTI\r
+   0.017 103.061\r
+   0.047 83.272\r
+   0.088 91.821\r
+   0.155 97.836\r
+   0.199 89.288\r
+   0.271 80.264\r
+   0.406 76.623\r
+   0.599 73.773\r
+   0.898 69.024\r
+   1.182 66.016\r
+   1.475 60.475\r
+   1.785 53.826\r
+   2.099 44.802\r
+   2.296 38.945\r
+   2.577 27.546\r
+   2.845 16.148\r
+   3.097 6.491\r
+   3.199 2.058\r
+   3.298 1.108\r
+   3.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H54.rse b/datafiles/thrustcurves/Cesaroni_H54.rse
new file mode 100644 (file)
index 0000000..dabb5ff
--- /dev/null
@@ -0,0 +1,35 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="168-H54-WH_LB-10A" Type="reloadable" dia="29." len="187."\r
+initWt="209." propWt="96.6" delays="3,5,7,8,9" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="48.056" peakThrust="103.061" throatDia="0."\r
+exitDia="0." Itot="168.197" burn-time="3.5" massFrac="46.22" Isp="177.55"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-29-3G White Long Burn</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="96.6" cg="93.5"/>\r
+      <eng-data  t="0.017" f="103.061" m="96.0969" cg="93.5"/>\r
+      <eng-data  t="0.047" f="83.272" m="94.4916" cg="93.5"/>\r
+      <eng-data  t="0.088" f="91.821" m="92.4301" cg="93.5"/>\r
+      <eng-data  t="0.155" f="97.836" m="88.7812" cg="93.5"/>\r
+      <eng-data  t="0.199" f="89.288" m="86.4168" cg="93.5"/>\r
+      <eng-data  t="0.271" f="80.264" m="82.9112" cg="93.5"/>\r
+      <eng-data  t="0.406" f="76.623" m="76.8291" cg="93.5"/>\r
+      <eng-data  t="0.599" f="73.773" m="68.4938" cg="93.5"/>\r
+      <eng-data  t="0.898" f="69.024" m="56.233" cg="93.5"/>\r
+      <eng-data  t="1.182" f="66.016" m="45.2199" cg="93.5"/>\r
+      <eng-data  t="1.475" f="60.475" m="34.577" cg="93.5"/>\r
+      <eng-data  t="1.785" f="53.826" m="24.4019" cg="93.5"/>\r
+      <eng-data  t="2.099" f="44.802" m="15.5087" cg="93.5"/>\r
+      <eng-data  t="2.296" f="38.945" m="10.771" cg="93.5"/>\r
+      <eng-data  t="2.577" f="27.546" m="5.40564" cg="93.5"/>\r
+      <eng-data  t="2.845" f="16.148" m="2.04296" cg="93.5"/>\r
+      <eng-data  t="3.097" f="6.491" m="0.404685" cg="93.5"/>\r
+      <eng-data  t="3.199" f="2.058" m="0.154279" cg="93.5"/>\r
+      <eng-data  t="3.298" f="1.108" m="0.0642718" cg="93.5"/>\r
+      <eng-data  t="3.5" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_H87.eng b/datafiles/thrustcurves/Cesaroni_H87.eng
new file mode 100644 (file)
index 0000000..a8b3b3b
--- /dev/null
@@ -0,0 +1,16 @@
+H87-IM 29 187 3-5-7-9-12 0.0927 0.205 CTI\r
+0.018 5\r
+0.027 73\r
+0.032 139.2\r
+0.048 117\r
+0.056 87\r
+0.081 95\r
+0.147 101\r
+0.336 103\r
+0.52 101\r
+1.6 83\r
+1.686 81\r
+1.72 79\r
+1.778 60\r
+1.82 38\r
+1.94 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_H90.rse b/datafiles/thrustcurves/Cesaroni_H90.rse
new file mode 100644 (file)
index 0000000..906a436
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="H90-CL" Type="unspecified" dia="29." len="187." initWt="190."\r
+propWt="84." delays="3,5,7,9,12" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="88.7" peakThrust="155." throatDia="0." exitDia="0." Itot="164.096"\r
+burn-time="1.85" massFrac="44.21" Isp="199.2" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="84." cg="93.5"/>\r
+      <eng-data  t="0.021" f="10." m="83.9463" cg="93.5"/>\r
+      <eng-data  t="0.028" f="154." m="83.6524" cg="93.5"/>\r
+      <eng-data  t="0.055" f="155." m="81.517" cg="93.5"/>\r
+      <eng-data  t="0.075" f="108." m="80.1708" cg="93.5"/>\r
+      <eng-data  t="0.13" f="120." m="76.9612" cg="93.5"/>\r
+      <eng-data  t="0.35" f="115." m="63.7286" cg="93.5"/>\r
+      <eng-data  t="1.4" f="83." m="10.5169" cg="93.5"/>\r
+      <eng-data  t="1.48" f="84." m="7.09745" cg="93.5"/>\r
+      <eng-data  t="1.56" f="73." m="3.88274" cg="93.5"/>\r
+      <eng-data  t="1.69" f="22." m="0.721775" cg="93.5"/>\r
+      <eng-data  t="1.76" f="8." m="0.184283" cg="93.5"/>\r
+      <eng-data  t="1.85" f="0." m="0." cg="93.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I100.eng b/datafiles/thrustcurves/Cesaroni_I100.eng
new file mode 100644 (file)
index 0000000..ec96606
--- /dev/null
@@ -0,0 +1,23 @@
+; Pro-54-2G Red Lightning Long Burn\r
+614-I100-RL_LB-17A 54 236 9-11-12-13-15-17 0.3501 0.807 CTI\r
+   0.042 269.267\r
+   0.043 332.429\r
+   0.07 225.102\r
+   0.091 202.307\r
+   0.14 234.125\r
+   0.202 245.522\r
+   0.349 220.828\r
+   0.523 202.307\r
+   0.837 183.311\r
+   1.186 164.315\r
+   1.681 139.62\r
+   2.358 110.651\r
+   3.321 76.459\r
+   4.095 55.563\r
+   4.919 37.042\r
+   5.944 21.37\r
+   6.726 12.347\r
+   7.437 6.174\r
+   8.142 2.849\r
+   8.735 0.95\r
+   8.993 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I100.rse b/datafiles/thrustcurves/Cesaroni_I100.rse
new file mode 100644 (file)
index 0000000..1f47792
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="614-I100-RL_LB-17A" Type="reloadable" dia="54." len="236."\r
+initWt="807." propWt="350.1" delays="9,11,12,13,15,17" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="69.97" peakThrust="332.429" throatDia="0."\r
+exitDia="0." Itot="629.237" burn-time="8.99" massFrac="43.38" Isp="183.27"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-2G Red Lightning Long Burn</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="350.1" cg="118."/>\r
+      <eng-data  t="0.042" f="269.267" m="346.954" cg="118."/>\r
+      <eng-data  t="0.043" f="332.429" m="346.786" cg="118."/>\r
+      <eng-data  t="0.07" f="225.102" m="342.599" cg="118."/>\r
+      <eng-data  t="0.091" f="202.307" m="340.102" cg="118."/>\r
+      <eng-data  t="0.14" f="234.125" m="334.153" cg="118."/>\r
+      <eng-data  t="0.202" f="245.522" m="325.88" cg="118."/>\r
+      <eng-data  t="0.349" f="220.828" m="306.808" cg="118."/>\r
+      <eng-data  t="0.523" f="202.307" m="286.326" cg="118."/>\r
+      <eng-data  t="0.837" f="183.311" m="252.641" cg="118."/>\r
+      <eng-data  t="1.186" f="164.315" m="218.89" cg="118."/>\r
+      <eng-data  t="1.681" f="139.62" m="177.037" cg="118."/>\r
+      <eng-data  t="2.358" f="110.651" m="129.901" cg="118."/>\r
+      <eng-data  t="3.321" f="76.459" m="79.7744" cg="118."/>\r
+      <eng-data  t="4.095" f="55.563" m="51.3471" cg="118."/>\r
+      <eng-data  t="4.919" f="37.042" m="30.1191" cg="118."/>\r
+      <eng-data  t="5.944" f="21.37" m="13.463" cg="118."/>\r
+      <eng-data  t="6.726" f="12.347" m="6.12794" cg="118."/>\r
+      <eng-data  t="7.437" f="6.174" m="2.46456" cg="118."/>\r
+      <eng-data  t="8.142" f="2.849" m="0.694903" cg="118."/>\r
+      <eng-data  t="8.735" f="0.95" m="0.0681854" cg="118."/>\r
+      <eng-data  t="8.993" f="0." m="0." cg="118."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I120.eng b/datafiles/thrustcurves/Cesaroni_I120.eng
new file mode 100644 (file)
index 0000000..442acb4
--- /dev/null
@@ -0,0 +1,18 @@
+; Pro54-1G 502I120-IM 15A\r
+I120-IM 54 143 15-14-13-12-11-10-9-8-7-6-5 0.3 0.6232000000000001 CTI\r
+   0.035 13.687\r
+   0.047 87.183\r
+   0.067 148.493\r
+   0.096 129.744\r
+   0.212 141.931\r
+   0.385 142.118\r
+   0.671 141.743\r
+   1.032 139.681\r
+   1.545 136.868\r
+   2.15 127.869\r
+   3.757 92.433\r
+   4.031 89.058\r
+   4.122 67.122\r
+   4.216 23.436\r
+   4.283 5.25\r
+   4.3 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I140.eng b/datafiles/thrustcurves/Cesaroni_I140.eng
new file mode 100644 (file)
index 0000000..17824c3
--- /dev/null
@@ -0,0 +1,22 @@
+; Pro54 1G 396 I140-SK 14A\r
+I140-SK 54 143 14-13-12-11-10-9-8-7-6-5-4 0.2392 0.56429 CTI\r
+   0.0080 81.304\r
+   0.02 137.174\r
+   0.043 157.174\r
+   0.065 121.087\r
+   0.16 136.087\r
+   0.353 150.652\r
+   0.54 156.304\r
+   0.702 160.217\r
+   0.976 156.957\r
+   1.298 151.304\r
+   1.619 146.087\r
+   2.057 136.304\r
+   2.489 121.522\r
+   2.604 119.348\r
+   2.671 122.174\r
+   2.708 111.739\r
+   2.779 61.304\r
+   2.84 25.217\r
+   2.901 8.478\r
+   2.902 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I150.rse b/datafiles/thrustcurves/Cesaroni_I150.rse
new file mode 100644 (file)
index 0000000..cb537f8
--- /dev/null
@@ -0,0 +1,37 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I150BS" Type="unspecified" dia="54." len="153." initWt="570."\r
+propWt="226." delays="11,10,9,8,7,6,5,4,3,2,1" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="145.44" peakThrust="179.932" throatDia="0."\r
+exitDia="0." Itot="466.572" burn-time="3.21" massFrac="39.65" Isp="210.52"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-1G 465 I150BS 11A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="226." cg="76.5"/>\r
+      <eng-data  t="0.017" f="11.039" m="225.955" cg="76.5"/>\r
+      <eng-data  t="0.039" f="103.397" m="225.345" cg="76.5"/>\r
+      <eng-data  t="0.045" f="164.846" m="224.955" cg="76.5"/>\r
+      <eng-data  t="0.065" f="179.932" m="223.285" cg="76.5"/>\r
+      <eng-data  t="0.09" f="153.439" m="221.266" cg="76.5"/>\r
+      <eng-data  t="0.166" f="162.638" m="215.449" cg="76.5"/>\r
+      <eng-data  t="0.194" f="161.902" m="213.248" cg="76.5"/>\r
+      <eng-data  t="0.303" f="169.261" m="204.505" cg="76.5"/>\r
+      <eng-data  t="0.483" f="171.837" m="189.635" cg="76.5"/>\r
+      <eng-data  t="0.666" f="173.309" m="174.338" cg="76.5"/>\r
+      <eng-data  t="0.834" f="171.469" m="160.31" cg="76.5"/>\r
+      <eng-data  t="1.275" f="168.525" m="123.996" cg="76.5"/>\r
+      <eng-data  t="1.725" f="156.015" m="88.6257" cg="76.5"/>\r
+      <eng-data  t="2.559" f="128.05" m="31.248" cg="76.5"/>\r
+      <eng-data  t="2.77" f="122.53" m="18.4427" cg="76.5"/>\r
+      <eng-data  t="2.899" f="118.851" m="10.9013" cg="76.5"/>\r
+      <eng-data  t="2.978" f="119.219" m="6.34629" cg="76.5"/>\r
+      <eng-data  t="3.003" f="99.349" m="5.0229" cg="76.5"/>\r
+      <eng-data  t="3.034" f="82.791" m="3.65541" cg="76.5"/>\r
+      <eng-data  t="3.087" f="66.233" m="1.74251" cg="76.5"/>\r
+      <eng-data  t="3.16" f="19.502" m="0.226715" cg="76.5"/>\r
+      <eng-data  t="3.208" f="0." m="0." cg="76.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I175.eng b/datafiles/thrustcurves/Cesaroni_I175.eng
new file mode 100644 (file)
index 0000000..b3829cf
--- /dev/null
@@ -0,0 +1,31 @@
+; Pro38-3G White\r
+411-I175-WH-14A 38 245 6-8-9-11-12-13 0.22890000000000002 0.4375 CTI\r
+   0.019 149.422\r
+   0.038 180.347\r
+   0.052 166.763\r
+   0.106 184.971\r
+   0.148 187.572\r
+   0.232 187.861\r
+   0.338 189.017\r
+   0.518 190.751\r
+   0.604 192.197\r
+   0.733 193.353\r
+   0.877 195.087\r
+   1.005 193.931\r
+   1.128 193.353\r
+   1.333 193.064\r
+   1.495 190.751\r
+   1.648 188.15\r
+   1.79 183.526\r
+   1.921 178.035\r
+   2.001 178.324\r
+   2.043 176.59\r
+   2.089 151.156\r
+   2.147 115.318\r
+   2.212 70.231\r
+   2.274 47.11\r
+   2.32 22.832\r
+   2.368 8.671\r
+   2.396 3.757\r
+   2.435 3.179\r
+   2.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I175.rse b/datafiles/thrustcurves/Cesaroni_I175.rse
new file mode 100644 (file)
index 0000000..eb4acf3
--- /dev/null
@@ -0,0 +1,44 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="411-I175-WH-14A" Type="reloadable" dia="38." len="245."\r
+initWt="437.5" propWt="228.9" delays="6,8,9,11,12,13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="164.566" peakThrust="195.087" throatDia="0."\r
+exitDia="0." Itot="411.414" burn-time="2.5" massFrac="52.32" Isp="183.28"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro38-3G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="228.9" cg="122.5"/>\r
+      <eng-data  t="0.019" f="149.422" m="228.11" cg="122.5"/>\r
+      <eng-data  t="0.038" f="180.347" m="226.367" cg="122.5"/>\r
+      <eng-data  t="0.052" f="166.763" m="225.015" cg="122.5"/>\r
+      <eng-data  t="0.106" f="184.971" m="219.732" cg="122.5"/>\r
+      <eng-data  t="0.148" f="187.572" m="215.379" cg="122.5"/>\r
+      <eng-data  t="0.232" f="187.861" m="206.606" cg="122.5"/>\r
+      <eng-data  t="0.338" f="189.017" m="195.493" cg="122.5"/>\r
+      <eng-data  t="0.518" f="190.751" m="176.476" cg="122.5"/>\r
+      <eng-data  t="0.604" f="192.197" m="167.315" cg="122.5"/>\r
+      <eng-data  t="0.733" f="193.353" m="153.479" cg="122.5"/>\r
+      <eng-data  t="0.877" f="195.087" m="137.918" cg="122.5"/>\r
+      <eng-data  t="1.005" f="193.931" m="124.066" cg="122.5"/>\r
+      <eng-data  t="1.128" f="193.353" m="110.814" cg="122.5"/>\r
+      <eng-data  t="1.333" f="193.064" m="88.7777" cg="122.5"/>\r
+      <eng-data  t="1.495" f="190.751" m="71.4806" cg="122.5"/>\r
+      <eng-data  t="1.648" f="188.15" m="55.3536" cg="122.5"/>\r
+      <eng-data  t="1.79" f="183.526" m="40.6714" cg="122.5"/>\r
+      <eng-data  t="1.921" f="178.035" m="27.4952" cg="122.5"/>\r
+      <eng-data  t="2.001" f="178.324" m="19.5645" cg="122.5"/>\r
+      <eng-data  t="2.043" f="176.59" m="15.4177" cg="122.5"/>\r
+      <eng-data  t="2.089" f="151.156" m="11.2237" cg="122.5"/>\r
+      <eng-data  t="2.147" f="115.318" m="6.92419" cg="122.5"/>\r
+      <eng-data  t="2.212" f="70.231" m="3.56906" cg="122.5"/>\r
+      <eng-data  t="2.274" f="47.11" m="1.54522" cg="122.5"/>\r
+      <eng-data  t="2.32" f="22.832" m="0.650197" cg="122.5"/>\r
+      <eng-data  t="2.368" f="8.671" m="0.229538" cg="122.5"/>\r
+      <eng-data  t="2.396" f="3.757" m="0.132734" cg="122.5"/>\r
+      <eng-data  t="2.435" f="3.179" m="0.0574831" cg="122.5"/>\r
+      <eng-data  t="2.5" f="0." m="0." cg="122.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I180.rse b/datafiles/thrustcurves/Cesaroni_I180.rse
new file mode 100644 (file)
index 0000000..ca16f6c
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I180SK" Type="unspecified" dia="38." len="243." initWt="394."\r
+propWt="200." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="173.218" peakThrust="214.872" throatDia="0." exitDia="0."\r
+Itot="339.854" burn-time="1.96" massFrac="50.76" Isp="173.28" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-3G 338 I180 Skidmark 14A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="200." cg="121.5"/>\r
+      <eng-data  t="0.003" f="130.431" m="199.885" cg="121.5"/>\r
+      <eng-data  t="0.028" f="173.405" m="197.65" cg="121.5"/>\r
+      <eng-data  t="0.062" f="156.065" m="194.354" cg="121.5"/>\r
+      <eng-data  t="0.197" f="180.945" m="180.967" cg="121.5"/>\r
+      <eng-data  t="0.644" f="206.578" m="129.997" cg="121.5"/>\r
+      <eng-data  t="0.962" f="214.872" m="90.5621" cg="121.5"/>\r
+      <eng-data  t="1.336" f="205.07" m="44.3486" cg="121.5"/>\r
+      <eng-data  t="1.482" f="199.039" m="26.9883" cg="121.5"/>\r
+      <eng-data  t="1.585" f="196.777" m="14.9922" cg="121.5"/>\r
+      <eng-data  t="1.638" f="171.143" m="9.25453" cg="121.5"/>\r
+      <eng-data  t="1.7" f="91.226" m="4.4681" cg="121.5"/>\r
+      <eng-data  t="1.795" f="24.88" m="1.22257" cg="121.5"/>\r
+      <eng-data  t="1.962" f="0." m="0." cg="121.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I204.rse b/datafiles/thrustcurves/Cesaroni_I204.rse
new file mode 100644 (file)
index 0000000..8e5516d
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I204-IM" Type="unspecified" dia="29." len="320." initWt="349."\r
+propWt="194." delays="4,6,8,10,13" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="202.273" peakThrust="395." throatDia="0." exitDia="0." Itot="347.91"\r
+burn-time="1.72" massFrac="55.59" Isp="182.87" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="194." cg="160."/>\r
+      <eng-data  t="0.01" f="100." m="193.721" cg="160."/>\r
+      <eng-data  t="0.012" f="395." m="193.445" cg="160."/>\r
+      <eng-data  t="0.03" f="310." m="189.907" cg="160."/>\r
+      <eng-data  t="0.3" f="286." m="145.041" cg="160."/>\r
+      <eng-data  t="0.5" f="270." m="114.038" cg="160."/>\r
+      <eng-data  t="0.7" f="251." m="84.9862" cg="160."/>\r
+      <eng-data  t="1." f="228." m="44.9215" cg="160."/>\r
+      <eng-data  t="1.1" f="215." m="32.5703" cg="160."/>\r
+      <eng-data  t="1.2" f="165." m="21.9756" cg="160."/>\r
+      <eng-data  t="1.3" f="125." m="13.8902" cg="160."/>\r
+      <eng-data  t="1.4" f="95." m="7.75643" cg="160."/>\r
+      <eng-data  t="1.5" f="52." m="3.65796" cg="160."/>\r
+      <eng-data  t="1.6" f="36." m="1.20445" cg="160."/>\r
+      <eng-data  t="1.72" f="0." m="0." cg="160."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I216.eng b/datafiles/thrustcurves/Cesaroni_I216.eng
new file mode 100644 (file)
index 0000000..5836994
--- /dev/null
@@ -0,0 +1,17 @@
+I216-CL(I) 38 367 5-7-9-11-14 0.3125 0.601 CTI\r
+0.017 35\r
+0.03 300\r
+0.035 345\r
+0.05 325\r
+0.07 275\r
+0.14 292\r
+0.26 296\r
+0.8 280\r
+1.1 280.4\r
+1.62 255\r
+1.8 226\r
+2.105 210\r
+2.2 195\r
+2.45 80\r
+2.75 36\r
+3.1 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I218.rse b/datafiles/thrustcurves/Cesaroni_I218.rse
new file mode 100644 (file)
index 0000000..381d5a5
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I218WT" Type="unspecified" dia="54." len="153." initWt="580."\r
+propWt="230." delays="14,13,12,11,10,9,8,7,6,5,4" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="218.603" peakThrust="263.651" throatDia="0."\r
+exitDia="0." Itot="492.294" burn-time="2.25" massFrac="39.66" Isp="218.26"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-1G 491 I218WT - 14A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="230." cg="76.5"/>\r
+      <eng-data  t="0.01" f="12.222" m="229.971" cg="76.5"/>\r
+      <eng-data  t="0.022" f="129.788" m="229.573" cg="76.5"/>\r
+      <eng-data  t="0.047" f="215.926" m="227.554" cg="76.5"/>\r
+      <eng-data  t="0.072" f="250.846" m="224.828" cg="76.5"/>\r
+      <eng-data  t="0.079" f="208.36" m="224.078" cg="76.5"/>\r
+      <eng-data  t="0.11" f="233.968" m="220.874" cg="76.5"/>\r
+      <eng-data  t="0.188" f="249.1" m="212.072" cg="76.5"/>\r
+      <eng-data  t="0.436" f="263.651" m="182.367" cg="76.5"/>\r
+      <eng-data  t="0.783" f="258.994" m="140.002" cg="76.5"/>\r
+      <eng-data  t="1.195" f="235.714" m="92.3897" cg="76.5"/>\r
+      <eng-data  t="1.614" f="201.375" m="49.6081" cg="76.5"/>\r
+      <eng-data  t="1.834" f="191.481" m="29.4184" cg="76.5"/>\r
+      <eng-data  t="1.964" f="183.915" m="18.0183" cg="76.5"/>\r
+      <eng-data  t="2.074" f="178.095" m="8.71611" cg="76.5"/>\r
+      <eng-data  t="2.143" f="179.841" m="2.94675" cg="76.5"/>\r
+      <eng-data  t="2.172" f="87.884" m="1.13307" cg="76.5"/>\r
+      <eng-data  t="2.188" f="50.053" m="0.617516" cg="76.5"/>\r
+      <eng-data  t="2.217" f="18.624" m="0.15227" cg="76.5"/>\r
+      <eng-data  t="2.252" f="0." m="0." cg="76.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I223.rse b/datafiles/thrustcurves/Cesaroni_I223.rse
new file mode 100644 (file)
index 0000000..30e13e0
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I223SK" Type="unspecified" dia="38." len="302." initWt="494."\r
+propWt="266." delays="5,7,9,11,14" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="219.321" peakThrust="260.157" throatDia="0." exitDia="0."\r
+Itot="435.133" burn-time="1.98" massFrac="53.85" Isp="166.81" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-4G 434 I223 Skidmark 14A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="266." cg="151."/>\r
+      <eng-data  t="0.016" f="199.183" m="265.026" cg="151."/>\r
+      <eng-data  t="0.024" f="260.157" m="263.903" cg="151."/>\r
+      <eng-data  t="0.07" f="207.313" m="257.33" cg="151."/>\r
+      <eng-data  t="0.148" f="227.637" m="246.96" cg="151."/>\r
+      <eng-data  t="0.425" f="244.71" m="206.969" cg="151."/>\r
+      <eng-data  t="0.721" f="254.466" m="161.807" cg="151."/>\r
+      <eng-data  t="1.015" f="256.905" m="115.854" cg="151."/>\r
+      <eng-data  t="1.3" f="248.775" m="71.8032" cg="151."/>\r
+      <eng-data  t="1.459" f="240.645" m="48.0179" cg="151."/>\r
+      <eng-data  t="1.615" f="234.954" m="25.3404" cg="151."/>\r
+      <eng-data  t="1.712" f="195.931" m="12.5654" cg="151."/>\r
+      <eng-data  t="1.782" f="119.51" m="5.81627" cg="151."/>\r
+      <eng-data  t="1.9" f="24.39" m="0.626211" cg="151."/>\r
+      <eng-data  t="1.984" f="0." m="0." cg="151."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I224.eng b/datafiles/thrustcurves/Cesaroni_I224.eng
new file mode 100644 (file)
index 0000000..52e099e
--- /dev/null
@@ -0,0 +1,16 @@
+; Pro29-6GXL 381I224-CL 15A\r
+I224-CL 29 365 15-12-10-8-6 0.19669999999999999 0.37 CTI\r
+   0.0080 357.455\r
+   0.02 433.079\r
+   0.111 343.833\r
+   0.229 318.938\r
+   0.479 295.922\r
+   0.836 277.133\r
+   1.022 269.618\r
+   1.097 233.919\r
+   1.233 117.899\r
+   1.294 93.004\r
+   1.39 62.003\r
+   1.667 26.774\r
+   1.692 17.38\r
+   1.7 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I240.eng b/datafiles/thrustcurves/Cesaroni_I240.eng
new file mode 100644 (file)
index 0000000..be07df1
--- /dev/null
@@ -0,0 +1,30 @@
+; Cesaroni I240\r
+; converted from TMT test stand data 2002 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I240 38 302 0 0.274624 0.503552 CSR\r
+   0.043 265.317\r
+   0.131 320.903\r
+   0.221 314.148\r
+   0.310 312.413\r
+   0.399 313.564\r
+   0.488 314.335\r
+   0.577 321.117\r
+   0.667 325.923\r
+   0.755 327.040\r
+   0.844 326.831\r
+   0.933 324.348\r
+   1.023 321.063\r
+   1.111 317.446\r
+   1.200 308.301\r
+   1.290 300.612\r
+   1.379 293.536\r
+   1.468 283.358\r
+   1.556 273.832\r
+   1.646 259.708\r
+   1.735 190.662\r
+   1.824 124.130\r
+   1.912 60.875\r
+   2.002 26.967\r
+   2.092 7.636\r
+   2.181 2.296\r
+   2.271 0.000\r
diff --git a/datafiles/thrustcurves/Cesaroni_I242.eng b/datafiles/thrustcurves/Cesaroni_I242.eng
new file mode 100644 (file)
index 0000000..7348d69
--- /dev/null
@@ -0,0 +1,26 @@
+; Pro-38-4G White\r
+548-I242-WH-15A 38 303 6-8-9-11-13 0.22480000000000003 0.5498999999999999 CTI\r
+   0.015 241.029\r
+   0.035 272.691\r
+   0.063 286.148\r
+   0.094 277.045\r
+   0.184 265.567\r
+   0.299 262.797\r
+   0.403 262.797\r
+   0.537 266.359\r
+   0.734 269.921\r
+   0.884 271.504\r
+   1.049 269.921\r
+   1.223 265.567\r
+   1.384 260.422\r
+   1.61 249.34\r
+   1.727 243.008\r
+   1.865 235.092\r
+   1.954 231.135\r
+   2.0 220.844\r
+   2.088 155.541\r
+   2.164 93.008\r
+   2.211 43.536\r
+   2.278 10.29\r
+   2.345 3.958\r
+   2.402 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I242.rse b/datafiles/thrustcurves/Cesaroni_I242.rse
new file mode 100644 (file)
index 0000000..69c088f
--- /dev/null
@@ -0,0 +1,39 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="548-I242-WH-15A" Type="reloadable" dia="38." len="303."\r
+initWt="549.9" propWt="224.8" delays="6,8,9,11,13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="229.081" peakThrust="286.148" throatDia="0."\r
+exitDia="0." Itot="550.253" burn-time="2.4" massFrac="40.88" Isp="249.6"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-4G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="224.8" cg="151.5"/>\r
+      <eng-data  t="0.015" f="241.029" m="224.061" cg="151.5"/>\r
+      <eng-data  t="0.035" f="272.691" m="221.963" cg="151.5"/>\r
+      <eng-data  t="0.063" f="286.148" m="218.766" cg="151.5"/>\r
+      <eng-data  t="0.094" f="277.045" m="215.2" cg="151.5"/>\r
+      <eng-data  t="0.184" f="265.567" m="205.225" cg="151.5"/>\r
+      <eng-data  t="0.299" f="262.797" m="192.813" cg="151.5"/>\r
+      <eng-data  t="0.403" f="262.797" m="181.647" cg="151.5"/>\r
+      <eng-data  t="0.537" f="266.359" m="167.163" cg="151.5"/>\r
+      <eng-data  t="0.734" f="269.921" m="145.582" cg="151.5"/>\r
+      <eng-data  t="0.884" f="271.504" m="128.993" cg="151.5"/>\r
+      <eng-data  t="1.049" f="269.921" m="110.744" cg="151.5"/>\r
+      <eng-data  t="1.223" f="265.567" m="91.7117" cg="151.5"/>\r
+      <eng-data  t="1.384" f="260.422" m="74.4133" cg="151.5"/>\r
+      <eng-data  t="1.61" f="249.34" m="50.8802" cg="151.5"/>\r
+      <eng-data  t="1.727" f="243.008" m="39.1133" cg="151.5"/>\r
+      <eng-data  t="1.865" f="235.092" m="25.636" cg="151.5"/>\r
+      <eng-data  t="1.954" f="231.135" m="17.16" cg="151.5"/>\r
+      <eng-data  t="2." f="220.844" m="12.913" cg="151.5"/>\r
+      <eng-data  t="2.088" f="155.541" m="6.14726" cg="151.5"/>\r
+      <eng-data  t="2.164" f="93.008" m="2.28866" cg="151.5"/>\r
+      <eng-data  t="2.211" f="43.536" m="0.977749" cg="151.5"/>\r
+      <eng-data  t="2.278" f="10.29" m="0.241083" cg="151.5"/>\r
+      <eng-data  t="2.345" f="3.958" m="0.0460844" cg="151.5"/>\r
+      <eng-data  t="2.402" f="0." m="0." cg="151.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I243.eng b/datafiles/thrustcurves/Cesaroni_I243.eng
new file mode 100644 (file)
index 0000000..78efa9b
--- /dev/null
@@ -0,0 +1,27 @@
+; Pro-29-6XGL White\r
+382-I243-WH-13A 29 365 4-6-7-9-11-12 0.2121 0.3986 CTI\r
+   0.016 443.392\r
+   0.03 416.3\r
+   0.061 365.419\r
+   0.082 331.718\r
+   0.122 317.181\r
+   0.174 303.304\r
+   0.268 298.018\r
+   0.367 295.374\r
+   0.514 294.714\r
+   0.701 290.749\r
+   0.808 280.837\r
+   0.968 266.96\r
+   1.058 247.797\r
+   1.105 224.009\r
+   1.155 207.489\r
+   1.178 202.203\r
+   1.206 167.181\r
+   1.254 158.59\r
+   1.297 154.626\r
+   1.336 132.819\r
+   1.395 109.692\r
+   1.486 69.383\r
+   1.574 25.771\r
+   1.649 6.608\r
+   1.692 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I243.rse b/datafiles/thrustcurves/Cesaroni_I243.rse
new file mode 100644 (file)
index 0000000..dbca1ca
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="382-I243-WH-13A" Type="reloadable" dia="29." len="365."\r
+initWt="398.6" propWt="212.1" delays="4,6,7,9,11,12" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="227.061" peakThrust="443.392" throatDia="0."\r
+exitDia="0." Itot="384.188" burn-time="1.69" massFrac="53.21" Isp="184.71"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-29-6XGL White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="212.1" cg="182.5"/>\r
+      <eng-data  t="0.016" f="443.392" m="210.142" cg="182.5"/>\r
+      <eng-data  t="0.03" f="416.3" m="206.819" cg="182.5"/>\r
+      <eng-data  t="0.061" f="365.419" m="200.13" cg="182.5"/>\r
+      <eng-data  t="0.082" f="331.718" m="196.089" cg="182.5"/>\r
+      <eng-data  t="0.122" f="317.181" m="188.924" cg="182.5"/>\r
+      <eng-data  t="0.174" f="303.304" m="180.018" cg="182.5"/>\r
+      <eng-data  t="0.268" f="298.018" m="164.415" cg="182.5"/>\r
+      <eng-data  t="0.367" f="295.374" m="148.199" cg="182.5"/>\r
+      <eng-data  t="0.514" f="294.714" m="124.255" cg="182.5"/>\r
+      <eng-data  t="0.701" f="290.749" m="94.0338" cg="182.5"/>\r
+      <eng-data  t="0.808" f="280.837" m="77.1515" cg="182.5"/>\r
+      <eng-data  t="0.968" f="266.96" m="52.9575" cg="182.5"/>\r
+      <eng-data  t="1.058" f="247.797" m="40.1692" cg="182.5"/>\r
+      <eng-data  t="1.105" f="224.009" m="34.0481" cg="182.5"/>\r
+      <eng-data  t="1.155" f="207.489" m="28.0927" cg="182.5"/>\r
+      <eng-data  t="1.178" f="202.203" m="25.4916" cg="182.5"/>\r
+      <eng-data  t="1.206" f="167.181" m="22.6366" cg="182.5"/>\r
+      <eng-data  t="1.254" f="158.59" m="18.3202" cg="182.5"/>\r
+      <eng-data  t="1.297" f="154.626" m="14.6025" cg="182.5"/>\r
+      <eng-data  t="1.336" f="132.819" m="11.508" cg="182.5"/>\r
+      <eng-data  t="1.395" f="109.692" m="7.55843" cg="182.5"/>\r
+      <eng-data  t="1.486" f="69.383" m="3.06018" cg="182.5"/>\r
+      <eng-data  t="1.574" f="25.771" m="0.748769" cg="182.5"/>\r
+      <eng-data  t="1.649" f="6.608" m="0.0784342" cg="182.5"/>\r
+      <eng-data  t="1.692" f="0." m="0." cg="182.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I287.rse b/datafiles/thrustcurves/Cesaroni_I287.rse
new file mode 100644 (file)
index 0000000..79a15a3
--- /dev/null
@@ -0,0 +1,50 @@
+<engine-database>\r
+  <engine-list>\r
+<engine  mfg="Cesaroni Technology Inc." code="I287SS" Type="reloadable" dia="38."\r
+len="303." initWt="515.9" propWt="264." delays="15" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="260.593" peakThrust="347.239" throatDia="0."\r
+exitDia="0." Itot="495.126" burn-time="1.9" massFrac="51.17" Isp="191.25"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+<data>\r
+<eng-data  t="0." f="0." m="264." cg="151.5"/>\r
+<eng-data  t="0.05" f="291.075" m="260.12" cg="151.5"/>\r
+<eng-data  t="0.08" f="287.509" m="255.492" cg="151.5"/>\r
+<eng-data  t="0.1" f="289.738" m="252.415" cg="151.5"/>\r
+<eng-data  t="0.15" f="295.087" m="244.619" cg="151.5"/>\r
+<eng-data  t="0.2" f="298.653" m="236.704" cg="151.5"/>\r
+<eng-data  t="0.25" f="302.219" m="228.695" cg="151.5"/>\r
+<eng-data  t="0.3" f="307.122" m="220.572" cg="151.5"/>\r
+<eng-data  t="0.35" f="311.579" m="212.325" cg="151.5"/>\r
+<eng-data  t="0.4" f="315.591" m="203.965" cg="151.5"/>\r
+<eng-data  t="0.6" f="333.867" m="169.336" cg="151.5"/>\r
+<eng-data  t="0.7" f="338.324" m="151.415" cg="151.5"/>\r
+<eng-data  t="0.75" f="341.89" m="142.348" cg="151.5"/>\r
+<eng-data  t="0.8" f="343.673" m="133.21" cg="151.5"/>\r
+<eng-data  t="0.85" f="344.565" m="124.036" cg="151.5"/>\r
+<eng-data  t="0.9" f="345.011" m="114.844" cg="151.5"/>\r
+<eng-data  t="0.93" f="340.999" m="109.357" cg="151.5"/>\r
+<eng-data  t="0.955" f="347.239" m="104.77" cg="151.5"/>\r
+<eng-data  t="0.975" f="338.77" m="101.112" cg="151.5"/>\r
+<eng-data  t="1." f="334.313" m="96.6259" cg="151.5"/>\r
+<eng-data  t="1.05" f="329.855" m="87.7726" cg="151.5"/>\r
+<eng-data  t="1.1" f="324.06" m="79.056" cg="151.5"/>\r
+<eng-data  t="1.15" f="319.157" m="70.4819" cg="151.5"/>\r
+<eng-data  t="1.2" f="313.362" m="62.0505" cg="151.5"/>\r
+<eng-data  t="1.3" f="299.098" m="45.7224" cg="151.5"/>\r
+<eng-data  t="1.4" f="280.377" m="30.2736" cg="151.5"/>\r
+<eng-data  t="1.5" f="258.535" m="15.9063" cg="151.5"/>\r
+<eng-data  t="1.525" f="250.512" m="12.5135" cg="151.5"/>\r
+<eng-data  t="1.55" f="231.79" m="9.29897" cg="151.5"/>\r
+<eng-data  t="1.6" f="150.441" m="4.20386" cg="151.5"/>\r
+<eng-data  t="1.65" f="55.719" m="1.45576" cg="151.5"/>\r
+<eng-data  t="1.675" f="31.648" m="0.873458" cg="151.5"/>\r
+<eng-data  t="1.7" f="17.83" m="0.543688" cg="151.5"/>\r
+<eng-data  t="1.725" f="9.807" m="0.359489" cg="151.5"/>\r
+<eng-data  t="1.75" f="7.578" m="0.243618" cg="151.5"/>\r
+<eng-data  t="1.8" f="3.566" m="0.0950692" cg="151.5"/>\r
+<eng-data  t="1.9" f="0." m="0." cg="151.5"/>\r
+</data>\r
+</engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I297.rse b/datafiles/thrustcurves/Cesaroni_I297.rse
new file mode 100644 (file)
index 0000000..7487853
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I297SM" Type="unspecified" dia="38." len="360." initWt="591."\r
+propWt="329." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="278.379" peakThrust="375.121" throatDia="0." exitDia="0."\r
+Itot="540.889" burn-time="1.94" massFrac="55.67" Isp="167.65" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-5G 543 I297 Skidmark 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="329." cg="180."/>\r
+      <eng-data  t="0.013" f="340.903" m="327.652" cg="180."/>\r
+      <eng-data  t="0.036" f="375.121" m="322.644" cg="180."/>\r
+      <eng-data  t="0.069" f="354.844" m="315.318" cg="180."/>\r
+      <eng-data  t="0.129" f="335.834" m="302.714" cg="180."/>\r
+      <eng-data  t="0.281" f="338.369" m="271.547" cg="180."/>\r
+      <eng-data  t="0.662" f="344.705" m="192.398" cg="180."/>\r
+      <eng-data  t="0.855" f="344.705" m="151.931" cg="180."/>\r
+      <eng-data  t="1.084" f="329.498" m="104.976" cg="180."/>\r
+      <eng-data  t="1.295" f="319.359" m="63.3383" cg="180."/>\r
+      <eng-data  t="1.359" f="313.023" m="51.0295" cg="180."/>\r
+      <eng-data  t="1.447" f="314.29" m="34.2405" cg="180."/>\r
+      <eng-data  t="1.534" f="269.935" m="18.7824" cg="180."/>\r
+      <eng-data  t="1.637" f="119.126" m="6.59496" cg="180."/>\r
+      <eng-data  t="1.681" f="69.701" m="4.06814" cg="180."/>\r
+      <eng-data  t="1.74" f="40.554" m="2.08977" cg="180."/>\r
+      <eng-data  t="1.846" f="12.673" m="0.37386" cg="180."/>\r
+      <eng-data  t="1.943" f="0." m="0." cg="180."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I350.eng b/datafiles/thrustcurves/Cesaroni_I350.eng
new file mode 100644 (file)
index 0000000..249406c
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+I350SS  38.0 367.00 7-9-11-13-16 0.41350 0.78200 CTI\r
+   0.05     399.74 \r
+   0.13     390.06 \r
+   0.19     386.19 \r
+   0.40     388.13 \r
+   0.60     388.13 \r
+   0.80     388.13 \r
+   1.00     389.91 \r
+   1.20     387.38 \r
+   1.33     368.77 \r
+   1.44     350.38 \r
+   1.52     320.37 \r
+   1.60     164.79 \r
+   1.68      36.77 \r
+   1.71       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_I360.eng b/datafiles/thrustcurves/Cesaroni_I360.eng
new file mode 100644 (file)
index 0000000..dc8e5ce
--- /dev/null
@@ -0,0 +1,20 @@
+;\r
+;\r
+I360 38 367 15 0.3346 0.5963 Cesaroni\r
+0.08 555.5\r
+0.1 489.7\r
+0.13 448\r
+0.2 449\r
+0.4 483.7\r
+0.55 498\r
+0.6 494.9\r
+0.7 481.91\r
+0.8 457.9\r
+1 406.6\r
+1.2 344.4\r
+1.3 309.3\r
+1.4 182.2\r
+1.55 158.9\r
+1.6 101.8\r
+1.7 55.8\r
+1.77 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_I445.rse b/datafiles/thrustcurves/Cesaroni_I445.rse
new file mode 100644 (file)
index 0000000..90c5bb4
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="I445-VM" Type="unspecified" dia="54." len="143." initWt="575."\r
+propWt="242." delays="6,7,8,9,10,11,12,13,14,15,16" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="433.173" peakThrust="529." throatDia="0."\r
+exitDia="0." Itot="476.49" burn-time="1.1" massFrac="42.09" Isp="200.78"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="242." cg="71.5"/>\r
+      <eng-data  t="0.02" f="315." m="240.4" cg="71.5"/>\r
+      <eng-data  t="0.04" f="380." m="236.87" cg="71.5"/>\r
+      <eng-data  t="0.054" f="365." m="234.222" cg="71.5"/>\r
+      <eng-data  t="0.15" f="440." m="214.597" cg="71.5"/>\r
+      <eng-data  t="0.25" f="493." m="190.905" cg="71.5"/>\r
+      <eng-data  t="0.4" f="528." m="152.014" cg="71.5"/>\r
+      <eng-data  t="0.55" f="529." m="111.751" cg="71.5"/>\r
+      <eng-data  t="0.7" f="502." m="72.4796" cg="71.5"/>\r
+      <eng-data  t="0.8" f="485." m="47.4157" cg="71.5"/>\r
+      <eng-data  t="0.9" f="460." m="23.4184" cg="71.5"/>\r
+      <eng-data  t="0.95" f="430." m="12.118" cg="71.5"/>\r
+      <eng-data  t="0.99" f="300." m="4.70297" cg="71.5"/>\r
+      <eng-data  t="1.02" f="100." m="1.65569" cg="71.5"/>\r
+      <eng-data  t="1.05" f="44." m="0.558669" cg="71.5"/>\r
+      <eng-data  t="1.1" f="0." m="0." cg="71.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_I540.rse b/datafiles/thrustcurves/Cesaroni_I540.rse
new file mode 100644 (file)
index 0000000..1916f66
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+<engine  mfg="Cesaroni Technology Inc." code="I540WT" Type="reloadable" dia="38."\r
+len="367." initWt="598.2" propWt="328.8" delays="13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="537.778" peakThrust="626." throatDia="0."\r
+exitDia="0." Itot="634.578" burn-time="1.18" massFrac="54.96" Isp="196.8"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+<data>\r
+<eng-data  t="0." f="0." m="328.8" cg="183.5"/>\r
+<eng-data  t="0.03" f="597.86" m="324.153" cg="183.5"/>\r
+<eng-data  t="0.04" f="611.31" m="321.021" cg="183.5"/>\r
+<eng-data  t="0.06" f="605.64" m="314.715" cg="183.5"/>\r
+<eng-data  t="0.12" f="612.36" m="295.782" cg="183.5"/>\r
+<eng-data  t="0.24" f="624.54" m="257.329" cg="183.5"/>\r
+<eng-data  t="0.36" f="626." m="218.452" cg="183.5"/>\r
+<eng-data  t="0.48" f="623.63" m="179.603" cg="183.5"/>\r
+<eng-data  t="0.6" f="616.42" m="141.052" cg="183.5"/>\r
+<eng-data  t="0.72" f="598.14" m="103.293" cg="183.5"/>\r
+<eng-data  t="0.84" f="583.16" m="66.5686" cg="183.5"/>\r
+<eng-data  t="0.95" f="568.92" m="33.737" cg="183.5"/>\r
+<eng-data  t="0.96" f="558.53" m="30.8161" cg="183.5"/>\r
+<eng-data  t="0.98" f="533.45" m="25.1582" cg="183.5"/>\r
+<eng-data  t="1.02" f="436.53" m="15.1065" cg="183.5"/>\r
+<eng-data  t="1.06" f="303.15" m="7.44131" cg="183.5"/>\r
+<eng-data  t="1.09" f="184.92" m="3.64799" cg="183.5"/>\r
+<eng-data  t="1.13" f="74.27" m="0.962055" cg="183.5"/>\r
+<eng-data  t="1.18" f="0." m="0." cg="183.5"/>\r
+</data>\r
+</engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J140.eng b/datafiles/thrustcurves/Cesaroni_J140.eng
new file mode 100644 (file)
index 0000000..4d38435
--- /dev/null
@@ -0,0 +1,23 @@
+; Pro-54-3G White long Burn Plugged\r
+1211-J140-WH_LB-P 54 329 P 0.68 1.2798 CTI\r
+   0.073 191.23\r
+   0.109 196.102\r
+   0.219 193.362\r
+   0.51 211.328\r
+   0.801 216.2\r
+   0.991 216.2\r
+   1.195 212.546\r
+   1.53 209.501\r
+   2.521 198.234\r
+   3.096 188.185\r
+   3.781 174.482\r
+   4.174 165.043\r
+   4.794 146.468\r
+   5.464 125.457\r
+   6.207 98.356\r
+   7.001 65.164\r
+   7.781 36.845\r
+   8.444 11.267\r
+   8.771 4.568\r
+   9.158 1.218\r
+   9.464 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J140.rse b/datafiles/thrustcurves/Cesaroni_J140.rse
new file mode 100644 (file)
index 0000000..003ac47
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="1211-J140-WH_LB-P" Type="reloadable" dia="54." len="329."\r
+initWt="1279.8" propWt="680." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="127.998" peakThrust="216.2" throatDia="0." exitDia="0." Itot="1211.38"\r
+burn-time="9.46" massFrac="53.13" Isp="181.66" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-3G White long Burn Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="680." cg="164.5"/>\r
+      <eng-data  t="0.073" f="191.23" m="676.082" cg="164.5"/>\r
+      <eng-data  t="0.109" f="196.102" m="672.168" cg="164.5"/>\r
+      <eng-data  t="0.219" f="193.362" m="660.144" cg="164.5"/>\r
+      <eng-data  t="0.51" f="211.328" m="627.091" cg="164.5"/>\r
+      <eng-data  t="0.801" f="216.2" m="592.172" cg="164.5"/>\r
+      <eng-data  t="0.991" f="216.2" m="569.113" cg="164.5"/>\r
+      <eng-data  t="1.195" f="212.546" m="544.564" cg="164.5"/>\r
+      <eng-data  t="1.53" f="209.501" m="504.881" cg="164.5"/>\r
+      <eng-data  t="2.521" f="198.234" m="391.471" cg="164.5"/>\r
+      <eng-data  t="3.096" f="188.185" m="329.108" cg="164.5"/>\r
+      <eng-data  t="3.781" f="174.482" m="259.382" cg="164.5"/>\r
+      <eng-data  t="4.174" f="165.043" m="221.93" cg="164.5"/>\r
+      <eng-data  t="4.794" f="146.468" m="167.722" cg="164.5"/>\r
+      <eng-data  t="5.464" f="125.457" m="116.587" cg="164.5"/>\r
+      <eng-data  t="6.207" f="98.356" m="69.9127" cg="164.5"/>\r
+      <eng-data  t="7.001" f="65.164" m="33.4717" cg="164.5"/>\r
+      <eng-data  t="7.781" f="36.845" m="11.1394" cg="164.5"/>\r
+      <eng-data  t="8.444" f="11.267" m="2.18642" cg="164.5"/>\r
+      <eng-data  t="8.771" f="4.568" m="0.733086" cg="164.5"/>\r
+      <eng-data  t="9.158" f="1.218" m="0.104609" cg="164.5"/>\r
+      <eng-data  t="9.464" f="0." m="0." cg="164.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J210.eng b/datafiles/thrustcurves/Cesaroni_J210.eng
new file mode 100644 (file)
index 0000000..b9bde28
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+J210  54.0 236.00 6-16 0.08270 0.84200 CTI\r
+   0.04     335.00 \r
+   0.16     270.92 \r
+   0.41     269.30 \r
+   0.80     268.49 \r
+   1.18     256.32 \r
+   1.62     236.85 \r
+   2.03     214.14 \r
+   2.38     193.86 \r
+   2.79     174.39 \r
+   3.20     163.85 \r
+   3.60     157.36 \r
+   3.75     135.46 \r
+   3.86      85.17 \r
+   3.99       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_J250.rse b/datafiles/thrustcurves/Cesaroni_J250.rse
new file mode 100644 (file)
index 0000000..ece9a7d
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J250SK" Type="unspecified" dia="54." len="237." initWt="830."\r
+propWt="406." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="230.241" peakThrust="283.638" throatDia="0." exitDia="0."\r
+Itot="682.663" burn-time="2.96" massFrac="48.92" Isp="171.46" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-2G 683 I250 Skidmark 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="406." cg="118.5"/>\r
+      <eng-data  t="0.031" f="191.478" m="404.235" cg="118.5"/>\r
+      <eng-data  t="0.051" f="271.111" m="401.484" cg="118.5"/>\r
+      <eng-data  t="0.082" f="161.056" m="397.5" cg="118.5"/>\r
+      <eng-data  t="0.148" f="206.689" m="390.283" cg="118.5"/>\r
+      <eng-data  t="0.3" f="234.426" m="370.344" cg="118.5"/>\r
+      <eng-data  t="0.413" f="244.269" m="354.259" cg="118.5"/>\r
+      <eng-data  t="0.635" f="264.848" m="320.65" cg="118.5"/>\r
+      <eng-data  t="0.849" f="270.217" m="286.6" cg="118.5"/>\r
+      <eng-data  t="1.06" f="276.48" m="252.298" cg="118.5"/>\r
+      <eng-data  t="1.449" f="283.638" m="187.507" cg="118.5"/>\r
+      <eng-data  t="1.644" f="277.375" m="154.976" cg="118.5"/>\r
+      <eng-data  t="1.8" f="279.164" m="129.159" cg="118.5"/>\r
+      <eng-data  t="1.932" f="272.901" m="107.489" cg="118.5"/>\r
+      <eng-data  t="2.135" f="261.269" m="75.2438" cg="118.5"/>\r
+      <eng-data  t="2.291" f="249.637" m="51.5434" cg="118.5"/>\r
+      <eng-data  t="2.447" f="246.953" m="28.5072" cg="118.5"/>\r
+      <eng-data  t="2.525" f="251.427" m="16.9475" cg="118.5"/>\r
+      <eng-data  t="2.579" f="227.268" m="9.26077" cg="118.5"/>\r
+      <eng-data  t="2.614" f="157.477" m="5.25644" cg="118.5"/>\r
+      <eng-data  t="2.665" f="51.896" m="2.08117" cg="118.5"/>\r
+      <eng-data  t="2.727" f="14.316" m="0.860443" cg="118.5"/>\r
+      <eng-data  t="2.825" f="6.263" m="0.260735" cg="118.5"/>\r
+      <eng-data  t="2.965" f="0." m="0." cg="118.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J270.eng b/datafiles/thrustcurves/Cesaroni_J270.eng
new file mode 100644 (file)
index 0000000..218ca0c
--- /dev/null
@@ -0,0 +1,33 @@
+; Pro-38-5G Green3\r
+650-J270-GR-13A 38 367 5-7-8-9-10-11 0.376 0.6548 CTI\r
+   0.0080 194.095\r
+   0.022 192.747\r
+   0.061 279.461\r
+   0.114 287.548\r
+   0.229 289.345\r
+   0.311 289.345\r
+   0.382 292.041\r
+   0.478 294.288\r
+   0.587 296.534\r
+   0.701 297.882\r
+   0.828 301.926\r
+   0.981 300.128\r
+   1.116 299.679\r
+   1.233 296.085\r
+   1.323 293.389\r
+   1.488 289.795\r
+   1.594 287.099\r
+   1.676 287.548\r
+   1.701 293.838\r
+   1.75 286.65\r
+   1.797 290.244\r
+   1.868 280.359\r
+   1.956 275.866\r
+   2.052 276.316\r
+   2.126 265.982\r
+   2.181 224.198\r
+   2.234 163.094\r
+   2.292 97.946\r
+   2.359 49.872\r
+   2.428 15.276\r
+   2.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J270.rse b/datafiles/thrustcurves/Cesaroni_J270.rse
new file mode 100644 (file)
index 0000000..9c8a048
--- /dev/null
@@ -0,0 +1,46 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="650-J270-GR-13A" Type="reloadable" dia="38." len="367."\r
+initWt="654.8" propWt="376." delays="5,7,8,9,10,11" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="261.259" peakThrust="301.926" throatDia="0."\r
+exitDia="0." Itot="653.148" burn-time="2.5" massFrac="57.42" Isp="177.13"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-5G Green3</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="376." cg="183.5"/>\r
+      <eng-data  t="0.008" f="194.095" m="375.553" cg="183.5"/>\r
+      <eng-data  t="0.022" f="192.747" m="373.994" cg="183.5"/>\r
+      <eng-data  t="0.061" f="279.461" m="368.693" cg="183.5"/>\r
+      <eng-data  t="0.114" f="287.548" m="360.043" cg="183.5"/>\r
+      <eng-data  t="0.229" f="289.345" m="340.948" cg="183.5"/>\r
+      <eng-data  t="0.311" f="289.345" m="327.289" cg="183.5"/>\r
+      <eng-data  t="0.382" f="292.041" m="315.408" cg="183.5"/>\r
+      <eng-data  t="0.478" f="294.288" m="299.206" cg="183.5"/>\r
+      <eng-data  t="0.587" f="296.534" m="280.669" cg="183.5"/>\r
+      <eng-data  t="0.701" f="297.882" m="261.165" cg="183.5"/>\r
+      <eng-data  t="0.828" f="301.926" m="239.238" cg="183.5"/>\r
+      <eng-data  t="0.981" f="300.128" m="212.725" cg="183.5"/>\r
+      <eng-data  t="1.116" f="299.679" m="189.417" cg="183.5"/>\r
+      <eng-data  t="1.233" f="296.085" m="169.354" cg="183.5"/>\r
+      <eng-data  t="1.323" f="293.389" m="154.083" cg="183.5"/>\r
+      <eng-data  t="1.488" f="289.795" m="126.386" cg="183.5"/>\r
+      <eng-data  t="1.594" f="287.099" m="108.785" cg="183.5"/>\r
+      <eng-data  t="1.676" f="287.548" m="95.2216" cg="183.5"/>\r
+      <eng-data  t="1.701" f="293.838" m="91.038" cg="183.5"/>\r
+      <eng-data  t="1.75" f="286.65" m="82.8508" cg="183.5"/>\r
+      <eng-data  t="1.797" f="290.244" m="75.0464" cg="183.5"/>\r
+      <eng-data  t="1.868" f="280.359" m="63.3853" cg="183.5"/>\r
+      <eng-data  t="1.956" f="275.866" m="49.2964" cg="183.5"/>\r
+      <eng-data  t="2.052" f="276.316" m="34.0383" cg="183.5"/>\r
+      <eng-data  t="2.126" f="265.982" m="22.4874" cg="183.5"/>\r
+      <eng-data  t="2.181" f="224.198" m="14.7274" cg="183.5"/>\r
+      <eng-data  t="2.234" f="163.094" m="8.81909" cg="183.5"/>\r
+      <eng-data  t="2.292" f="97.946" m="4.46115" cg="183.5"/>\r
+      <eng-data  t="2.359" f="49.872" m="1.61047" cg="183.5"/>\r
+      <eng-data  t="2.428" f="15.276" m="0.316583" cg="183.5"/>\r
+      <eng-data  t="2.5" f="0." m="0." cg="183.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J280.eng b/datafiles/thrustcurves/Cesaroni_J280.eng
new file mode 100644 (file)
index 0000000..dd8bf4f
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+J280SS  54.0 236.00 6-16 0.51200 0.95400 CTI\r
+   0.10     259.43 \r
+   0.30     278.91 \r
+   0.60     293.07 \r
+   0.90     306.85 \r
+   1.20     319.19 \r
+   1.50     321.10 \r
+   1.80     310.85 \r
+   2.11     279.89 \r
+   2.35     286.70 \r
+   2.40     269.17 \r
+   2.44     178.24 \r
+   2.49      42.80 \r
+   2.54       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_J285.eng b/datafiles/thrustcurves/Cesaroni_J285.eng
new file mode 100644 (file)
index 0000000..a9c783e
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+J285  38.0 367.00 6-8-10-12-15 0.31250 0.59500 CTI\r
+   0.06     351.01 \r
+   0.15     346.01 \r
+   0.25     357.64 \r
+   0.50     363.90 \r
+   0.75     369.26 \r
+   1.03     343.33 \r
+   1.27     337.07 \r
+   1.51     317.40 \r
+   1.75     282.53 \r
+   1.93     127.86 \r
+   2.02      84.94 \r
+   2.25      11.02 \r
+   2.26       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_J290.eng b/datafiles/thrustcurves/Cesaroni_J290.eng
new file mode 100644 (file)
index 0000000..626cb55
--- /dev/null
@@ -0,0 +1,28 @@
+; Pro-38-5G White\r
+684-J290-WH-15A 38 367 7-8-9-11-12-13 0.3815 0.6597999999999999 CTI\r
+   0.015 334.565\r
+   0.028 364.116\r
+   0.037 379.42\r
+   0.061 391.557\r
+   0.083 379.42\r
+   0.107 372.559\r
+   0.169 355.145\r
+   0.289 343.536\r
+   0.381 341.425\r
+   0.588 337.203\r
+   0.803 334.565\r
+   1.011 330.871\r
+   1.256 324.538\r
+   1.498 321.372\r
+   1.684 312.929\r
+   1.805 306.069\r
+   1.844 301.319\r
+   1.89 269.129\r
+   1.942 243.272\r
+   1.979 223.747\r
+   2.043 156.201\r
+   2.128 118.734\r
+   2.192 86.016\r
+   2.279 35.356\r
+   2.334 15.831\r
+   2.402 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J290.rse b/datafiles/thrustcurves/Cesaroni_J290.rse
new file mode 100644 (file)
index 0000000..e793843
--- /dev/null
@@ -0,0 +1,41 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="684-J290-WH-15A" Type="reloadable" dia="38." len="367."\r
+initWt="659.8" propWt="381.5" delays="7,8,9,11,12,13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="284.858" peakThrust="391.557" throatDia="0."\r
+exitDia="0." Itot="684.228" burn-time="2.4" massFrac="57.82" Isp="182.89"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-5G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="381.5" cg="183.5"/>\r
+      <eng-data  t="0.015" f="334.565" m="380.101" cg="183.5"/>\r
+      <eng-data  t="0.028" f="364.116" m="377.569" cg="183.5"/>\r
+      <eng-data  t="0.037" f="379.42" m="375.703" cg="183.5"/>\r
+      <eng-data  t="0.061" f="391.557" m="370.545" cg="183.5"/>\r
+      <eng-data  t="0.083" f="379.42" m="365.816" cg="183.5"/>\r
+      <eng-data  t="0.107" f="372.559" m="360.785" cg="183.5"/>\r
+      <eng-data  t="0.169" f="355.145" m="348.207" cg="183.5"/>\r
+      <eng-data  t="0.289" f="343.536" m="324.834" cg="183.5"/>\r
+      <eng-data  t="0.381" f="341.425" m="307.266" cg="183.5"/>\r
+      <eng-data  t="0.588" f="337.203" m="268.104" cg="183.5"/>\r
+      <eng-data  t="0.803" f="334.565" m="227.839" cg="183.5"/>\r
+      <eng-data  t="1.011" f="330.871" m="189.253" cg="183.5"/>\r
+      <eng-data  t="1.256" f="324.538" m="144.488" cg="183.5"/>\r
+      <eng-data  t="1.498" f="321.372" m="100.911" cg="183.5"/>\r
+      <eng-data  t="1.684" f="312.929" m="68.0207" cg="183.5"/>\r
+      <eng-data  t="1.805" f="306.069" m="47.1404" cg="183.5"/>\r
+      <eng-data  t="1.844" f="301.319" m="40.5366" cg="183.5"/>\r
+      <eng-data  t="1.89" f="269.129" m="33.2212" cg="183.5"/>\r
+      <eng-data  t="1.942" f="243.272" m="25.7931" cg="183.5"/>\r
+      <eng-data  t="1.979" f="223.747" m="20.9759" cg="183.5"/>\r
+      <eng-data  t="2.043" f="156.201" m="14.1968" cg="183.5"/>\r
+      <eng-data  t="2.128" f="118.734" m="7.68186" cg="183.5"/>\r
+      <eng-data  t="2.192" f="86.016" m="4.02871" cg="183.5"/>\r
+      <eng-data  t="2.279" f="35.356" m="1.08496" cg="183.5"/>\r
+      <eng-data  t="2.334" f="15.831" m="0.30011" cg="183.5"/>\r
+      <eng-data  t="2.402" f="0." m="0." cg="183.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J293.rse b/datafiles/thrustcurves/Cesaroni_J293.rse
new file mode 100644 (file)
index 0000000..15ffafd
--- /dev/null
@@ -0,0 +1,35 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J293BS" Type="unspecified" dia="54." len="237." initWt="840."\r
+propWt="416." delays="13,12,11,10,9,8,7,6,5,4,3" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="287.142" peakThrust="386.32" throatDia="0."\r
+exitDia="0." Itot="831.564" burn-time="2.9" massFrac="49.52" Isp="203.84"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-2G 838 J293BS 13A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="416." cg="118.5"/>\r
+      <eng-data  t="0.019" f="22.847" m="415.891" cg="118.5"/>\r
+      <eng-data  t="0.032" f="250.277" m="415.003" cg="118.5"/>\r
+      <eng-data  t="0.044" f="386.32" m="413.093" cg="118.5"/>\r
+      <eng-data  t="0.06" f="302.202" m="410.337" cg="118.5"/>\r
+      <eng-data  t="0.073" f="256.508" m="408.52" cg="118.5"/>\r
+      <eng-data  t="0.13" f="285.586" m="400.791" cg="118.5"/>\r
+      <eng-data  t="0.266" f="309.471" m="380.549" cg="118.5"/>\r
+      <eng-data  t="0.487" f="318.818" m="345.818" cg="118.5"/>\r
+      <eng-data  t="0.734" f="325.049" m="306.038" cg="118.5"/>\r
+      <eng-data  t="1.432" f="324.01" m="192.718" cg="118.5"/>\r
+      <eng-data  t="1.786" f="309.471" m="136.625" cg="118.5"/>\r
+      <eng-data  t="2.074" f="294.933" m="93.0855" cg="118.5"/>\r
+      <eng-data  t="2.33" f="280.394" m="56.2453" cg="118.5"/>\r
+      <eng-data  t="2.488" f="273.124" m="34.3699" cg="118.5"/>\r
+      <eng-data  t="2.58" f="272.086" m="21.8235" cg="118.5"/>\r
+      <eng-data  t="2.634" f="258.585" m="14.6557" cg="118.5"/>\r
+      <eng-data  t="2.713" f="163.044" m="6.32413" cg="118.5"/>\r
+      <eng-data  t="2.795" f="70.618" m="1.53155" cg="118.5"/>\r
+      <eng-data  t="2.852" f="20.77" m="0.22859" cg="118.5"/>\r
+      <eng-data  t="2.896" f="0." m="0." cg="118.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J295.eng b/datafiles/thrustcurves/Cesaroni_J295.eng
new file mode 100644 (file)
index 0000000..922671b
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+J295  54.0 329.00 6-16 0.59400 1.11900 CTI\r
+   0.04     450.52 \r
+   0.28     428.70 \r
+   0.54     423.25 \r
+   1.00     391.61 \r
+   1.48     352.34 \r
+   1.99     304.35 \r
+   2.51     266.17 \r
+   3.00     243.26 \r
+   3.50     216.92 \r
+   3.67     126.54 \r
+   3.82      64.36 \r
+   4.00       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_J300.eng b/datafiles/thrustcurves/Cesaroni_J300.eng
new file mode 100644 (file)
index 0000000..efabce6
--- /dev/null
@@ -0,0 +1,30 @@
+; Cesaroni J300\r
+; converted from TMT test stand data 2002 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J300 38 360 0 0.340032 0.606592 CSR\r
+   0.043 357.026\r
+   0.131 436.586\r
+   0.221 407.925\r
+   0.310 399.528\r
+   0.400 400.588\r
+   0.490 406.733\r
+   0.578 414.302\r
+   0.667 417.117\r
+   0.756 418.415\r
+   0.846 421.302\r
+   0.935 422.229\r
+   1.025 415.951\r
+   1.114 406.356\r
+   1.202 395.237\r
+   1.292 381.728\r
+   1.381 369.861\r
+   1.471 355.451\r
+   1.560 331.691\r
+   1.649 246.243\r
+   1.738 161.766\r
+   1.827 109.478\r
+   1.917 71.413\r
+   2.006 37.058\r
+   2.096 13.880\r
+   2.185 5.059\r
+   2.275 0.000\r
diff --git a/datafiles/thrustcurves/Cesaroni_J354.eng b/datafiles/thrustcurves/Cesaroni_J354.eng
new file mode 100644 (file)
index 0000000..04c6910
--- /dev/null
@@ -0,0 +1,30 @@
+; Pro-38-6G White\r
+819-J354-WH-16A 38 421 7-8-9-11-12-13 0.45780000000000004 0.7782000000000001 CTI\r
+   0.016 472.749\r
+   0.024 487.678\r
+   0.04 519.668\r
+   0.08 499.052\r
+   0.124 476.303\r
+   0.167 457.109\r
+   0.223 447.156\r
+   0.357 430.806\r
+   0.508 423.697\r
+   0.612 418.72\r
+   0.845 413.033\r
+   1.038 406.635\r
+   1.307 390.284\r
+   1.422 382.464\r
+   1.532 372.512\r
+   1.624 368.957\r
+   1.687 364.692\r
+   1.763 317.773\r
+   1.837 280.806\r
+   1.94 220.379\r
+   2.054 171.327\r
+   2.143 128.673\r
+   2.177 95.261\r
+   2.235 62.559\r
+   2.321 24.171\r
+   2.359 12.085\r
+   2.402 4.976\r
+   2.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J354.rse b/datafiles/thrustcurves/Cesaroni_J354.rse
new file mode 100644 (file)
index 0000000..0b095ed
--- /dev/null
@@ -0,0 +1,43 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="819-J354-WH-16A" Type="reloadable" dia="38." len="421."\r
+initWt="778.2" propWt="457.8" delays="7,8,9,11,12,13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="327.754" peakThrust="519.668" throatDia="0."\r
+exitDia="0." Itot="819.385" burn-time="2.5" massFrac="58.83" Isp="182.51"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-38-6G White</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="457.8" cg="210.5"/>\r
+      <eng-data  t="0.016" f="472.749" m="455.687" cg="210.5"/>\r
+      <eng-data  t="0.024" f="487.678" m="453.541" cg="210.5"/>\r
+      <eng-data  t="0.04" f="519.668" m="449.038" cg="210.5"/>\r
+      <eng-data  t="0.08" f="499.052" m="437.655" cg="210.5"/>\r
+      <eng-data  t="0.124" f="476.303" m="425.666" cg="210.5"/>\r
+      <eng-data  t="0.167" f="457.109" m="414.453" cg="210.5"/>\r
+      <eng-data  t="0.223" f="447.156" m="400.307" cg="210.5"/>\r
+      <eng-data  t="0.357" f="430.806" m="367.442" cg="210.5"/>\r
+      <eng-data  t="0.508" f="423.697" m="331.397" cg="210.5"/>\r
+      <eng-data  t="0.612" f="418.72" m="306.922" cg="210.5"/>\r
+      <eng-data  t="0.845" f="413.033" m="252.783" cg="210.5"/>\r
+      <eng-data  t="1.038" f="406.635" m="208.59" cg="210.5"/>\r
+      <eng-data  t="1.307" f="390.284" m="148.704" cg="210.5"/>\r
+      <eng-data  t="1.422" f="382.464" m="123.879" cg="210.5"/>\r
+      <eng-data  t="1.532" f="372.512" m="100.679" cg="210.5"/>\r
+      <eng-data  t="1.624" f="368.957" m="81.6232" cg="210.5"/>\r
+      <eng-data  t="1.687" f="364.692" m="68.7114" cg="210.5"/>\r
+      <eng-data  t="1.763" f="317.773" m="54.222" cg="210.5"/>\r
+      <eng-data  t="1.837" f="280.806" m="41.8479" cg="210.5"/>\r
+      <eng-data  t="1.94" f="220.379" m="27.427" cg="210.5"/>\r
+      <eng-data  t="2.054" f="171.327" m="14.9525" cg="210.5"/>\r
+      <eng-data  t="2.143" f="128.673" m="7.49374" cg="210.5"/>\r
+      <eng-data  t="2.177" f="95.261" m="5.3668" cg="210.5"/>\r
+      <eng-data  t="2.235" f="62.559" m="2.8097" cg="210.5"/>\r
+      <eng-data  t="2.321" f="24.171" m="0.726045" cg="210.5"/>\r
+      <eng-data  t="2.359" f="12.085" m="0.341169" cg="210.5"/>\r
+      <eng-data  t="2.402" f="4.976" m="0.136227" cg="210.5"/>\r
+      <eng-data  t="2.5" f="0." m="0." cg="210.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J360.rse b/datafiles/thrustcurves/Cesaroni_J360.rse
new file mode 100644 (file)
index 0000000..a1a272f
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J360SM" Type="unspecified" dia="54." len="321." initWt="1104."\r
+propWt="606." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="340.49" peakThrust="560.653" throatDia="0." exitDia="0."\r
+Itot="1012.96" burn-time="2.98" massFrac="54.89" Isp="170.45" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-3G 1016 J3360 Skidmark 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="606." cg="160.5"/>\r
+      <eng-data  t="0.017" f="560.653" m="603.149" cg="160.5"/>\r
+      <eng-data  t="0.058" f="287.423" m="592.748" cg="160.5"/>\r
+      <eng-data  t="0.167" f="328.23" m="572.675" cg="160.5"/>\r
+      <eng-data  t="0.358" f="363.715" m="533.142" cg="160.5"/>\r
+      <eng-data  t="0.538" f="374.36" m="493.403" cg="160.5"/>\r
+      <eng-data  t="0.85" f="397.425" m="421.375" cg="160.5"/>\r
+      <eng-data  t="1.163" f="400.973" m="346.624" cg="160.5"/>\r
+      <eng-data  t="1.458" f="400.973" m="275.859" cg="160.5"/>\r
+      <eng-data  t="1.733" f="395.651" m="210.329" cg="160.5"/>\r
+      <eng-data  t="1.983" f="381.457" m="152.217" cg="160.5"/>\r
+      <eng-data  t="2.271" f="356.618" m="88.633" cg="160.5"/>\r
+      <eng-data  t="2.496" f="340.65" m="41.7049" cg="160.5"/>\r
+      <eng-data  t="2.592" f="351.295" m="21.8351" cg="160.5"/>\r
+      <eng-data  t="2.646" f="289.198" m="11.4894" cg="160.5"/>\r
+      <eng-data  t="2.679" f="172.099" m="6.93587" cg="160.5"/>\r
+      <eng-data  t="2.725" f="86.937" m="3.37161" cg="160.5"/>\r
+      <eng-data  t="2.804" f="19.516" m="0.856043" cg="160.5"/>\r
+      <eng-data  t="2.904" f="5.323" m="0.113049" cg="160.5"/>\r
+      <eng-data  t="2.975" f="0." m="0." cg="160.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J360_1.eng b/datafiles/thrustcurves/Cesaroni_J360_1.eng
new file mode 100644 (file)
index 0000000..680fa32
--- /dev/null
@@ -0,0 +1,30 @@
+; Cesaroni J360\r
+; converted from TMT test stand data 2002 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J360 38 419 0 0.409024 0.709184 CSR\r
+   0.041 618.905\r
+   0.124 616.584\r
+   0.207 563.785\r
+   0.291 557.730\r
+   0.374 558.409\r
+   0.457 562.088\r
+   0.541 561.267\r
+   0.624 563.219\r
+   0.708 565.328\r
+   0.793 566.558\r
+   0.876 549.383\r
+   0.959 529.633\r
+   1.043 511.099\r
+   1.126 483.285\r
+   1.209 445.397\r
+   1.293 421.658\r
+   1.377 378.330\r
+   1.461 261.647\r
+   1.545 197.445\r
+   1.628 146.570\r
+   1.711 101.807\r
+   1.795 78.039\r
+   1.878 47.847\r
+   1.961 31.861\r
+   2.046 9.220\r
+   2.130 0.000\r
diff --git a/datafiles/thrustcurves/Cesaroni_J381.rse b/datafiles/thrustcurves/Cesaroni_J381.rse
new file mode 100644 (file)
index 0000000..e9b4fdc
--- /dev/null
@@ -0,0 +1,25 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J381SK" Type="unspecified" dia="38." len="419." initWt="688."\r
+propWt="396." delays="15,12,10,8,6" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="351.714" peakThrust="505.029" throatDia="0." exitDia="0."\r
+Itot="659.112" burn-time="1.87" massFrac="57.56" Isp="169.72" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-6G 660 G381SK - 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="396." cg="209.5"/>\r
+      <eng-data  t="0.048" f="505.029" m="388.718" cg="209.5"/>\r
+      <eng-data  t="0.111" f="473.244" m="370.204" cg="209.5"/>\r
+      <eng-data  t="0.294" f="461.471" m="318.819" cg="209.5"/>\r
+      <eng-data  t="0.968" f="436.75" m="136.954" cg="209.5"/>\r
+      <eng-data  t="1.353" f="392.015" m="41.1024" cg="209.5"/>\r
+      <eng-data  t="1.385" f="366.116" m="33.8146" cg="209.5"/>\r
+      <eng-data  t="1.556" f="137.735" m="7.93219" cg="209.5"/>\r
+      <eng-data  t="1.662" f="47.089" m="2.04687" cg="209.5"/>\r
+      <eng-data  t="1.706" f="22.367" m="1.12881" cg="209.5"/>\r
+      <eng-data  t="1.874" f="0." m="0." cg="209.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J394.eng b/datafiles/thrustcurves/Cesaroni_J394.eng
new file mode 100644 (file)
index 0000000..3d4e75a
--- /dev/null
@@ -0,0 +1,38 @@
+; Pro-386GXL Green3\r
+970-J394-GR-13A 38 500 4-7-9-11-13-14 0.5721 0.9389 CTI\r
+   0.014 331.731\r
+   0.038 359.203\r
+   0.046 406.593\r
+   0.08 441.621\r
+   0.219 426.511\r
+   0.331 421.703\r
+   0.486 422.39\r
+   0.657 423.764\r
+   0.795 430.632\r
+   0.936 436.813\r
+   1.12 439.56\r
+   1.297 445.742\r
+   1.329 440.247\r
+   1.381 449.176\r
+   1.425 448.489\r
+   1.472 448.489\r
+   1.512 458.791\r
+   1.544 447.802\r
+   1.572 462.225\r
+   1.624 456.731\r
+   1.731 445.742\r
+   1.801 456.731\r
+   1.853 456.731\r
+   1.873 474.588\r
+   1.885 491.758\r
+   1.952 451.923\r
+   2.008 416.896\r
+   2.034 385.302\r
+   2.078 376.374\r
+   2.152 296.703\r
+   2.229 203.297\r
+   2.305 133.242\r
+   2.395 65.934\r
+   2.48 19.231\r
+   2.518 7.555\r
+   2.55 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J394.rse b/datafiles/thrustcurves/Cesaroni_J394.rse
new file mode 100644 (file)
index 0000000..39f6631
--- /dev/null
@@ -0,0 +1,51 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="970-J394-GR-13A" Type="reloadable" dia="38." len="500."\r
+initWt="938.9" propWt="572.1" delays="4,7,9,11,13,14" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="381.256" peakThrust="491.758" throatDia="0."\r
+exitDia="0." Itot="972.202" burn-time="2.55" massFrac="60.93" Isp="173.29"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-386GXL Green3</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="572.1" cg="250."/>\r
+      <eng-data  t="0.014" f="331.731" m="570.734" cg="250."/>\r
+      <eng-data  t="0.038" f="359.203" m="565.855" cg="250."/>\r
+      <eng-data  t="0.046" f="406.593" m="564.052" cg="250."/>\r
+      <eng-data  t="0.08" f="441.621" m="555.567" cg="250."/>\r
+      <eng-data  t="0.219" f="426.511" m="520.062" cg="250."/>\r
+      <eng-data  t="0.331" f="421.703" m="492.11" cg="250."/>\r
+      <eng-data  t="0.486" f="422.39" m="453.615" cg="250."/>\r
+      <eng-data  t="0.657" f="423.764" m="411.042" cg="250."/>\r
+      <eng-data  t="0.795" f="430.632" m="376.351" cg="250."/>\r
+      <eng-data  t="0.936" f="436.813" m="340.363" cg="250."/>\r
+      <eng-data  t="1.12" f="439.56" m="292.918" cg="250."/>\r
+      <eng-data  t="1.297" f="445.742" m="246.813" cg="250."/>\r
+      <eng-data  t="1.329" f="440.247" m="238.471" cg="250."/>\r
+      <eng-data  t="1.381" f="449.176" m="224.863" cg="250."/>\r
+      <eng-data  t="1.425" f="448.489" m="213.242" cg="250."/>\r
+      <eng-data  t="1.472" f="448.489" m="200.838" cg="250."/>\r
+      <eng-data  t="1.512" f="458.791" m="190.16" cg="250."/>\r
+      <eng-data  t="1.544" f="447.802" m="181.624" cg="250."/>\r
+      <eng-data  t="1.572" f="462.225" m="174.127" cg="250."/>\r
+      <eng-data  t="1.624" f="456.731" m="160.067" cg="250."/>\r
+      <eng-data  t="1.731" f="445.742" m="131.655" cg="250."/>\r
+      <eng-data  t="1.801" f="456.731" m="113.067" cg="250."/>\r
+      <eng-data  t="1.853" f="456.731" m="99.0914" cg="250."/>\r
+      <eng-data  t="1.873" f="474.588" m="93.611" cg="250."/>\r
+      <eng-data  t="1.885" f="491.758" m="90.199" cg="250."/>\r
+      <eng-data  t="1.952" f="451.923" m="71.5959" cg="250."/>\r
+      <eng-data  t="2.008" f="416.896" m="57.2805" cg="250."/>\r
+      <eng-data  t="2.034" f="385.302" m="51.1438" cg="250."/>\r
+      <eng-data  t="2.078" f="376.374" m="41.283" cg="250."/>\r
+      <eng-data  t="2.152" f="296.703" m="26.6282" cg="250."/>\r
+      <eng-data  t="2.229" f="203.297" m="15.3003" cg="250."/>\r
+      <eng-data  t="2.305" f="133.242" m="7.77485" cg="250."/>\r
+      <eng-data  t="2.395" f="65.934" m="2.50055" cg="250."/>\r
+      <eng-data  t="2.48" f="19.231" m="0.370619" cg="250."/>\r
+      <eng-data  t="2.518" f="7.555" m="0.0711328" cg="250."/>\r
+      <eng-data  t="2.55" f="0." m="0." cg="250."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J400.eng b/datafiles/thrustcurves/Cesaroni_J400.eng
new file mode 100644 (file)
index 0000000..ab756c1
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+J400SS  38.0 421.00 7-9-11-13-16 0.48960 0.70200 CTI\r
+   0.05     451.79 \r
+   0.20     461.14 \r
+   0.31     465.81 \r
+   0.44     463.47 \r
+   0.60     477.48 \r
+   0.80     482.15 \r
+   1.00     461.31 \r
+   1.20     433.12 \r
+   1.35     402.76 \r
+   1.40     382.92 \r
+   1.47     321.04 \r
+   1.55     258.00 \r
+   1.60     178.62 \r
+   1.73      14.58 \r
+   1.75       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_J420.rse b/datafiles/thrustcurves/Cesaroni_J420.rse
new file mode 100644 (file)
index 0000000..6c7a0ca
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J420-CL" Type="unspecified" dia="38." len="500." initWt="874."\r
+propWt="522." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="384.797" peakThrust="800." throatDia="0." exitDia="0." Itot="1008.17"\r
+burn-time="2.62" massFrac="59.73" Isp="196.94" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="522." cg="250."/>\r
+      <eng-data  t="0.015" f="360." m="520.602" cg="250."/>\r
+      <eng-data  t="0.02" f="660." m="519.282" cg="250."/>\r
+      <eng-data  t="0.035" f="800." m="513.612" cg="250."/>\r
+      <eng-data  t="0.075" f="660." m="498.493" cg="250."/>\r
+      <eng-data  t="0.25" f="625." m="440.276" cg="250."/>\r
+      <eng-data  t="0.7" f="560." m="302.226" cg="250."/>\r
+      <eng-data  t="1.45" f="495." m="97.3824" cg="250."/>\r
+      <eng-data  t="1.51" f="480." m="82.2376" cg="250."/>\r
+      <eng-data  t="1.62" f="350." m="58.6013" cg="250."/>\r
+      <eng-data  t="1.8" f="220." m="32.0397" cg="250."/>\r
+      <eng-data  t="1.9" f="150." m="22.4609" cg="250."/>\r
+      <eng-data  t="2." f="120." m="15.471" cg="250."/>\r
+      <eng-data  t="2.25" f="48." m="4.59781" cg="250."/>\r
+      <eng-data  t="2.62" f="0." m="0." cg="250."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J430.eng b/datafiles/thrustcurves/Cesaroni_J430.eng
new file mode 100644 (file)
index 0000000..8217f4c
--- /dev/null
@@ -0,0 +1,27 @@
+; Pro-54-2G White Thunder\r
+821-J430-WT-18A 54 236 8-10-11-13-14-15-16 0.384 0.7998 CTI\r
+   0.017 400.0\r
+   0.025 501.107\r
+   0.034 538.745\r
+   0.069 432.472\r
+   0.111 440.59\r
+   0.192 458.303\r
+   0.328 469.373\r
+   0.508 473.801\r
+   0.697 473.801\r
+   0.899 468.635\r
+   0.996 461.255\r
+   1.2 446.494\r
+   1.401 429.52\r
+   1.593 415.498\r
+   1.696 410.332\r
+   1.739 414.76\r
+   1.785 354.244\r
+   1.807 277.491\r
+   1.83 180.074\r
+   1.839 145.387\r
+   1.853 107.749\r
+   1.885 49.446\r
+   1.914 19.188\r
+   1.943 2.952\r
+   1.963 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J430.rse b/datafiles/thrustcurves/Cesaroni_J430.rse
new file mode 100644 (file)
index 0000000..d0166d4
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="821-J430-WT-18A" Type="unspecified" dia="54." len="236."\r
+initWt="799.8" propWt="384." delays="8,10,11,13,14,15,16" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="417.849" peakThrust="538.745" throatDia="0."\r
+exitDia="0." Itot="820.238" burn-time="1.96" massFrac="48.01" Isp="217.82"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-2G White Thunder</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="384." cg="118."/>\r
+      <eng-data  t="0.017" f="400." m="382.408" cg="118."/>\r
+      <eng-data  t="0.025" f="501.107" m="380.721" cg="118."/>\r
+      <eng-data  t="0.034" f="538.745" m="378.53" cg="118."/>\r
+      <eng-data  t="0.069" f="432.472" m="370.573" cg="118."/>\r
+      <eng-data  t="0.111" f="440.59" m="361.99" cg="118."/>\r
+      <eng-data  t="0.192" f="458.303" m="344.947" cg="118."/>\r
+      <eng-data  t="0.328" f="469.373" m="315.414" cg="118."/>\r
+      <eng-data  t="0.508" f="473.801" m="275.675" cg="118."/>\r
+      <eng-data  t="0.697" f="473.801" m="233.752" cg="118."/>\r
+      <eng-data  t="0.899" f="468.635" m="189.19" cg="118."/>\r
+      <eng-data  t="0.996" f="461.255" m="168.076" cg="118."/>\r
+      <eng-data  t="1.2" f="446.494" m="124.729" cg="118."/>\r
+      <eng-data  t="1.401" f="429.52" m="83.5131" cg="118."/>\r
+      <eng-data  t="1.593" f="415.498" m="45.5354" cg="118."/>\r
+      <eng-data  t="1.696" f="410.332" m="25.6246" cg="118."/>\r
+      <eng-data  t="1.739" f="414.76" m="17.3197" cg="118."/>\r
+      <eng-data  t="1.785" f="354.244" m="9.03939" cg="118."/>\r
+      <eng-data  t="1.807" f="277.491" m="5.78613" cg="118."/>\r
+      <eng-data  t="1.83" f="180.074" m="3.32269" cg="118."/>\r
+      <eng-data  t="1.839" f="145.387" m="2.63704" cg="118."/>\r
+      <eng-data  t="1.853" f="107.749" m="1.80749" cg="118."/>\r
+      <eng-data  t="1.885" f="49.446" m="0.630019" cg="118."/>\r
+      <eng-data  t="1.914" f="19.188" m="0.164112" cg="118."/>\r
+      <eng-data  t="1.943" f="2.952" m="0.01382" cg="118."/>\r
+      <eng-data  t="1.963" f="0." m="0." cg="118."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J440.rse b/datafiles/thrustcurves/Cesaroni_J440.rse
new file mode 100644 (file)
index 0000000..2cbbf9c
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="J440-BB" Type="unspecified" dia="54." len="326."\r
+initWt="1229." propWt="536." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="531.026" peakThrust="800." throatDia="0." exitDia="0." Itot="1115.15"\r
+burn-time="2.1" massFrac="43.61" Isp="212.15" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="536." cg="163."/>\r
+      <eng-data  t="0.01" f="30." m="535.928" cg="163."/>\r
+      <eng-data  t="0.02" f="700." m="534.174" cg="163."/>\r
+      <eng-data  t="0.06" f="790." m="519.85" cg="163."/>\r
+      <eng-data  t="0.1" f="800." m="504.565" cg="163."/>\r
+      <eng-data  t="0.2" f="760." m="467.075" cg="163."/>\r
+      <eng-data  t="0.4" f="725." m="395.698" cg="163."/>\r
+      <eng-data  t="0.6" f="695." m="327.446" cg="163."/>\r
+      <eng-data  t="0.8" f="680." m="261.356" cg="163."/>\r
+      <eng-data  t="1." f="658." m="197.045" cg="163."/>\r
+      <eng-data  t="1.32" f="600." m="100.3" cg="163."/>\r
+      <eng-data  t="1.55" f="400." m="45.025" cg="163."/>\r
+      <eng-data  t="1.7" f="180." m="24.1166" cg="163."/>\r
+      <eng-data  t="1.87" f="175." m="9.61301" cg="163."/>\r
+      <eng-data  t="2." f="75." m="1.80244" cg="163."/>\r
+      <eng-data  t="2.1" f="0." m="0." cg="163."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J449.rse b/datafiles/thrustcurves/Cesaroni_J449.rse
new file mode 100644 (file)
index 0000000..7d2b0ff
--- /dev/null
@@ -0,0 +1,37 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J449BS" Type="unspecified" dia="54." len="321." initWt="1122."\r
+propWt="624." delays="15,14,13,12,11,10,9,8,7,6,5" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="442.526" peakThrust="586.87" throatDia="0."\r
+exitDia="0." Itot="1259.87" burn-time="2.85" massFrac="55.61" Isp="205.88"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-3G 1261 J449BS 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="624." cg="160.5"/>\r
+      <eng-data  t="0.012" f="16.22" m="623.952" cg="160.5"/>\r
+      <eng-data  t="0.021" f="330.299" m="623.179" cg="160.5"/>\r
+      <eng-data  t="0.027" f="504.295" m="621.939" cg="160.5"/>\r
+      <eng-data  t="0.046" f="586.87" m="616.805" cg="160.5"/>\r
+      <eng-data  t="0.055" f="508.719" m="614.363" cg="160.5"/>\r
+      <eng-data  t="0.07" f="440.89" m="610.836" cg="160.5"/>\r
+      <eng-data  t="0.137" f="477.754" m="595.594" cg="160.5"/>\r
+      <eng-data  t="0.241" f="495.448" m="570.529" cg="160.5"/>\r
+      <eng-data  t="0.348" f="505.77" m="543.999" cg="160.5"/>\r
+      <eng-data  t="0.69" f="514.617" m="457.578" cg="160.5"/>\r
+      <eng-data  t="1.153" f="504.295" m="340.75" cg="160.5"/>\r
+      <eng-data  t="1.938" f="468.906" m="151.559" cg="160.5"/>\r
+      <eng-data  t="2.292" f="452.686" m="70.7665" cg="160.5"/>\r
+      <eng-data  t="2.417" f="455.635" m="42.6489" cg="160.5"/>\r
+      <eng-data  t="2.475" f="446.788" m="29.6871" cg="160.5"/>\r
+      <eng-data  t="2.505" f="440.89" m="23.0922" cg="160.5"/>\r
+      <eng-data  t="2.52" f="408.45" m="19.9372" cg="160.5"/>\r
+      <eng-data  t="2.566" f="293.435" m="11.9416" cg="160.5"/>\r
+      <eng-data  t="2.612" f="157.777" m="6.80153" cg="160.5"/>\r
+      <eng-data  t="2.688" f="69.304" m="2.52765" cg="160.5"/>\r
+      <eng-data  t="2.771" f="28.016" m="0.527288" cg="160.5"/>\r
+      <eng-data  t="2.847" f="0." m="0." cg="160.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J475.rse b/datafiles/thrustcurves/Cesaroni_J475.rse
new file mode 100644 (file)
index 0000000..c5810da
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="J475-BB" Type="unspecified" dia="54." len="403."\r
+initWt="1493." propWt="714." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="385.871" peakThrust="600." throatDia="0." exitDia="0." Itot="1234.79"\r
+burn-time="3.2" massFrac="47.82" Isp="176.35" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="714." cg="201.5"/>\r
+      <eng-data  t="0.03" f="30." m="713.74" cg="201.5"/>\r
+      <eng-data  t="0.04" f="500." m="712.207" cg="201.5"/>\r
+      <eng-data  t="0.075" f="600." m="701.076" cg="201.5"/>\r
+      <eng-data  t="0.1" f="515." m="693.017" cg="201.5"/>\r
+      <eng-data  t="0.2" f="530." m="662.804" cg="201.5"/>\r
+      <eng-data  t="0.4" f="540." m="600.933" cg="201.5"/>\r
+      <eng-data  t="0.6" f="535." m="538.772" cg="201.5"/>\r
+      <eng-data  t="0.8" f="535." m="476.901" cg="201.5"/>\r
+      <eng-data  t="1." f="530." m="415.319" cg="201.5"/>\r
+      <eng-data  t="1.2" f="520." m="354.604" cg="201.5"/>\r
+      <eng-data  t="1.4" f="510." m="295.046" cg="201.5"/>\r
+      <eng-data  t="1.6" f="500." m="236.644" cg="201.5"/>\r
+      <eng-data  t="1.8" f="490." m="179.398" cg="201.5"/>\r
+      <eng-data  t="2." f="480." m="123.309" cg="201.5"/>\r
+      <eng-data  t="2.2" f="490." m="67.2201" cg="201.5"/>\r
+      <eng-data  t="2.28" f="450." m="45.4784" cg="201.5"/>\r
+      <eng-data  t="2.43" f="180." m="18.1566" cg="201.5"/>\r
+      <eng-data  t="2.5" f="100." m="12.4899" cg="201.5"/>\r
+      <eng-data  t="2.6" f="60." m="7.86403" cg="201.5"/>\r
+      <eng-data  t="2.8" f="28." m="2.77554" cg="201.5"/>\r
+      <eng-data  t="3." f="10." m="0.578237" cg="201.5"/>\r
+      <eng-data  t="3.2" f="0." m="0." cg="201.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J520.eng b/datafiles/thrustcurves/Cesaroni_J520.eng
new file mode 100644 (file)
index 0000000..d51cb9b
--- /dev/null
@@ -0,0 +1,22 @@
+;CTI Pro38-6GXL 848 G520SK - 16A\r
+J520SK 38 500 16-13-11-9-7 0.498 0.85 CTI \r
+0.034 658.701\r
+0.076 614.964\r
+0.12 585.807\r
+0.225 580.505\r
+0.533 622.916\r
+0.724 626.893\r
+0.83 612.314\r
+0.982 607.012\r
+1.17 595.084\r
+1.259 569.902\r
+1.296 458.573\r
+1.329 405.558\r
+1.378 388.329\r
+1.418 302.181\r
+1.461 197.478\r
+1.493 135.186\r
+1.529 87.473\r
+1.587 45.062\r
+1.756 0\r
+;\r
diff --git a/datafiles/thrustcurves/Cesaroni_J520.rse b/datafiles/thrustcurves/Cesaroni_J520.rse
new file mode 100644 (file)
index 0000000..0eddd1d
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Cesaroni Technology Inc." code="J520SK" Type="reloadable" dia="38."\r
+len="500." initWt="850." propWt="498." delays="16,13,11,9,7" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="482.763" peakThrust="658.701" throatDia="0."\r
+exitDia="0." Itot="847.732" burn-time="1.76" massFrac="58.59" Isp="173.58"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-6GXL 848 G520SK - 16A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="498." cg="255."/>\r
+      <eng-data  t="0.034" f="658.701" m="491.422" cg="255."/>\r
+      <eng-data  t="0.076" f="614.964" m="475.709" cg="255."/>\r
+      <eng-data  t="0.12" f="585.807" m="460.191" cg="255."/>\r
+      <eng-data  t="0.225" f="580.505" m="424.22" cg="255."/>\r
+      <eng-data  t="0.533" f="622.916" m="315.35" cg="255."/>\r
+      <eng-data  t="0.724" f="626.893" m="245.234" cg="255."/>\r
+      <eng-data  t="0.83" f="612.314" m="206.652" cg="255."/>\r
+      <eng-data  t="0.982" f="607.012" m="152.213" cg="255."/>\r
+      <eng-data  t="1.17" f="595.084" m="85.8332" cg="255."/>\r
+      <eng-data  t="1.259" f="569.902" m="55.3788" cg="255."/>\r
+      <eng-data  t="1.296" f="458.573" m="44.2015" cg="255."/>\r
+      <eng-data  t="1.329" f="405.558" m="35.8255" cg="255."/>\r
+      <eng-data  t="1.378" f="388.329" m="24.3995" cg="255."/>\r
+      <eng-data  t="1.418" f="302.181" m="16.2867" cg="255."/>\r
+      <eng-data  t="1.461" f="197.478" m="9.97592" cg="255."/>\r
+      <eng-data  t="1.493" f="135.186" m="6.84914" cg="255."/>\r
+      <eng-data  t="1.529" f="87.473" m="4.49473" cg="255."/>\r
+      <eng-data  t="1.587" f="45.062" m="2.23685" cg="255."/>\r
+      <eng-data  t="1.756" f="0." m="0." cg="255."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J530.rse b/datafiles/thrustcurves/Cesaroni_J530.rse
new file mode 100644 (file)
index 0000000..d2de10d
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J530-IM" Type="unspecified" dia="38." len="500." initWt="977."\r
+propWt="625." delays="6,8,10,12,15" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="531.026" peakThrust="800." throatDia="0." exitDia="0." Itot="1115.15"\r
+burn-time="2.1" massFrac="63.97" Isp="181.94" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="625." cg="250."/>\r
+      <eng-data  t="0.01" f="30." m="624.916" cg="250."/>\r
+      <eng-data  t="0.02" f="700." m="622.87" cg="250."/>\r
+      <eng-data  t="0.06" f="790." m="606.169" cg="250."/>\r
+      <eng-data  t="0.1" f="800." m="588.346" cg="250."/>\r
+      <eng-data  t="0.2" f="760." m="544.63" cg="250."/>\r
+      <eng-data  t="0.4" f="725." m="461.402" cg="250."/>\r
+      <eng-data  t="0.6" f="695." m="381.816" cg="250."/>\r
+      <eng-data  t="0.8" f="680." m="304.753" cg="250."/>\r
+      <eng-data  t="1." f="658." m="229.763" cg="250."/>\r
+      <eng-data  t="1.32" f="600." m="116.954" cg="250."/>\r
+      <eng-data  t="1.55" f="400." m="52.5011" cg="250."/>\r
+      <eng-data  t="1.7" f="180." m="28.1211" cg="250."/>\r
+      <eng-data  t="1.87" f="175." m="11.2092" cg="250."/>\r
+      <eng-data  t="2." f="75." m="2.10173" cg="250."/>\r
+      <eng-data  t="2.1" f="0." m="0." cg="250."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J580.rse b/datafiles/thrustcurves/Cesaroni_J580.rse
new file mode 100644 (file)
index 0000000..afa552b
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J580SS" Type="unspecified" dia="38." len="510." initWt="1044."\r
+propWt="688." delays="17,14,12,10,8" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="554.758" peakThrust="692.925" throatDia="0." exitDia="0."\r
+Itot="894.825" burn-time="1.61" massFrac="65.9" Isp="132.63" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-6GXL 896 J580SS - 17A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="688." cg="255."/>\r
+      <eng-data  t="0.006" f="82.313" m="687.81" cg="255."/>\r
+      <eng-data  t="0.013" f="460.952" m="686.348" cg="255."/>\r
+      <eng-data  t="0.016" f="692.925" m="685.017" cg="255."/>\r
+      <eng-data  t="0.031" f="600.136" m="677.561" cg="255."/>\r
+      <eng-data  t="0.041" f="634.557" m="672.814" cg="255."/>\r
+      <eng-data  t="0.058" f="624.081" m="664.589" cg="255."/>\r
+      <eng-data  t="0.243" f="621.088" m="576.032" cg="255."/>\r
+      <eng-data  t="0.405" f="621.088" m="498.672" cg="255."/>\r
+      <eng-data  t="0.511" f="631.564" m="447.627" cg="255."/>\r
+      <eng-data  t="0.632" f="646.53" m="388.174" cg="255."/>\r
+      <eng-data  t="0.898" f="671.972" m="253.346" cg="255."/>\r
+      <eng-data  t="1.019" f="686.938" m="190.134" cg="255."/>\r
+      <eng-data  t="1.098" f="691.428" m="148.273" cg="255."/>\r
+      <eng-data  t="1.163" f="674.965" m="114.129" cg="255."/>\r
+      <eng-data  t="1.229" f="514.829" m="83.9411" cg="255."/>\r
+      <eng-data  t="1.325" f="496.87" m="46.6038" cg="255."/>\r
+      <eng-data  t="1.36" f="445.986" m="33.9175" cg="255."/>\r
+      <eng-data  t="1.405" f="332.245" m="20.4545" cg="255."/>\r
+      <eng-data  t="1.461" f="221.496" m="8.53346" cg="255."/>\r
+      <eng-data  t="1.518" f="71.837" m="2.10575" cg="255."/>\r
+      <eng-data  t="1.559" f="28.435" m="0.525291" cg="255."/>\r
+      <eng-data  t="1.59" f="8.98" m="0.0794007" cg="255."/>\r
+      <eng-data  t="1.613" f="0." m="0." cg="255."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J595.eng b/datafiles/thrustcurves/Cesaroni_J595.eng
new file mode 100644 (file)
index 0000000..b975fec
--- /dev/null
@@ -0,0 +1,23 @@
+;CTI Pro38-6GXL 985 J595BS - 16A\r
+J595BS 38 500 16-13-11-9-7 0.511 0.866 CTI \r
+0.009 644.368\r
+0.015 924.98\r
+0.032 868.858\r
+0.075 752.456\r
+0.168 729.591\r
+0.315 719.198\r
+0.475 712.962\r
+0.632 712.962\r
+0.775 704.648\r
+0.897 702.569\r
+0.979 700.491\r
+1.109 683.862\r
+1.178 600.718\r
+1.226 507.18\r
+1.293 411.564\r
+1.451 270.219\r
+1.529 205.782\r
+1.614 112.245\r
+1.644 58.201\r
+1.707 0\r
+;\r
diff --git a/datafiles/thrustcurves/Cesaroni_J595.rse b/datafiles/thrustcurves/Cesaroni_J595.rse
new file mode 100644 (file)
index 0000000..b84d9a5
--- /dev/null
@@ -0,0 +1,35 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Cesaroni Technology Inc." code="J595BS" Type="reloadable" dia="38."\r
+len="500." initWt="866." propWt="511." delays="16,13,11,9,7" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="577.825" peakThrust="924.98" throatDia="0."\r
+exitDia="0." Itot="986.347" burn-time="1.71" massFrac="59.01" Isp="196.83"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-6GXL 985 J595BS - 16A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="511." cg="255."/>\r
+      <eng-data  t="0.009" f="644.368" m="509.498" cg="255."/>\r
+      <eng-data  t="0.015" f="924.98" m="507.059" cg="255."/>\r
+      <eng-data  t="0.032" f="868.858" m="499.159" cg="255."/>\r
+      <eng-data  t="0.075" f="752.456" m="481.1" cg="255."/>\r
+      <eng-data  t="0.168" f="729.591" m="445.397" cg="255."/>\r
+      <eng-data  t="0.315" f="719.198" m="390.229" cg="255."/>\r
+      <eng-data  t="0.475" f="712.962" m="330.872" cg="255."/>\r
+      <eng-data  t="0.632" f="712.962" m="272.882" cg="255."/>\r
+      <eng-data  t="0.775" f="704.648" m="220.37" cg="255."/>\r
+      <eng-data  t="0.897" f="702.569" m="175.899" cg="255."/>\r
+      <eng-data  t="0.979" f="700.491" m="146.096" cg="255."/>\r
+      <eng-data  t="1.109" f="683.862" m="99.4787" cg="255."/>\r
+      <eng-data  t="1.178" f="600.718" m="76.5187" cg="255."/>\r
+      <eng-data  t="1.226" f="507.18" m="62.7433" cg="255."/>\r
+      <eng-data  t="1.293" f="411.564" m="46.7981" cg="255."/>\r
+      <eng-data  t="1.451" f="270.219" m="18.8942" cg="255."/>\r
+      <eng-data  t="1.529" f="205.782" m="9.27671" cg="255."/>\r
+      <eng-data  t="1.614" f="112.245" m="2.27435" cg="255."/>\r
+      <eng-data  t="1.644" f="58.201" m="0.9498" cg="255."/>\r
+      <eng-data  t="1.707" f="0." m="0." cg="255."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J600.rse b/datafiles/thrustcurves/Cesaroni_J600.rse
new file mode 100644 (file)
index 0000000..0e777a2
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="J600RL" Type="unspecified" dia="38." len="510." initWt="906."\r
+propWt="551." delays="16,13,11,9,7" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="581.543" peakThrust="721.949" throatDia="0." exitDia="0."\r
+Itot="997.928" burn-time="1.72" massFrac="60.82" Isp="184.68" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro38-6GXL 999 J600RL - 16A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="551." cg="255."/>\r
+      <eng-data  t="0.011" f="533.291" m="549.381" cg="255."/>\r
+      <eng-data  t="0.023" f="683.326" m="545.35" cg="255."/>\r
+      <eng-data  t="0.029" f="721.949" m="543.022" cg="255."/>\r
+      <eng-data  t="0.051" f="721.949" m="534.253" cg="255."/>\r
+      <eng-data  t="0.091" f="701.152" m="518.538" cg="255."/>\r
+      <eng-data  t="0.202" f="701.152" m="475.565" cg="255."/>\r
+      <eng-data  t="0.376" f="696.695" m="408.418" cg="255."/>\r
+      <eng-data  t="0.572" f="698.181" m="332.941" cg="255."/>\r
+      <eng-data  t="0.72" f="696.695" m="275.948" cg="255."/>\r
+      <eng-data  t="0.847" f="698.181" m="227.042" cg="255."/>\r
+      <eng-data  t="0.963" f="711.55" m="181.896" cg="255."/>\r
+      <eng-data  t="1.028" f="720.463" m="156.199" cg="255."/>\r
+      <eng-data  t="1.109" f="710.065" m="124.21" cg="255."/>\r
+      <eng-data  t="1.19" f="698.181" m="92.7193" cg="255."/>\r
+      <eng-data  t="1.245" f="681.84" m="71.7651" cg="255."/>\r
+      <eng-data  t="1.304" f="610.537" m="50.7145" cg="255."/>\r
+      <eng-data  t="1.385" f="420.394" m="27.661" cg="255."/>\r
+      <eng-data  t="1.408" f="371.373" m="22.6336" cg="255."/>\r
+      <eng-data  t="1.515" f="147.064" m="7.31913" cg="255."/>\r
+      <eng-data  t="1.61" f="62.391" m="1.82579" cg="255."/>\r
+      <eng-data  t="1.716" f="0." m="0." cg="255."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_J760.eng b/datafiles/thrustcurves/Cesaroni_J760.eng
new file mode 100644 (file)
index 0000000..3a066b5
--- /dev/null
@@ -0,0 +1,34 @@
+; Pro-54-3G White Thunder\r
+1266-J760-WT-19A 54 329 8-10-12-14-16-18-19 0.5760 1.0768 CTI\r
+   0.012 600.251\r
+   0.019 833.333\r
+   0.026 938.596\r
+   0.04 794.486\r
+   0.054 756.892\r
+   0.094 778.195\r
+   0.129 800.752\r
+   0.165 813.283\r
+   0.218 825.815\r
+   0.279 830.827\r
+   0.377 835.84\r
+   0.496 837.093\r
+   0.617 829.574\r
+   0.709 819.549\r
+   0.811 802.005\r
+   0.917 785.714\r
+   1.041 764.411\r
+   1.201 750.627\r
+   1.331 741.855\r
+   1.455 729.323\r
+   1.488 729.323\r
+   1.514 735.589\r
+   1.556 749.373\r
+   1.568 729.323\r
+   1.575 665.414\r
+   1.589 533.835\r
+   1.616 327.068\r
+   1.646 122.807\r
+   1.659 72.682\r
+   1.681 30.075\r
+   1.713 6.266\r
+   1.731 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_J760.rse b/datafiles/thrustcurves/Cesaroni_J760.rse
new file mode 100644 (file)
index 0000000..710cee2
--- /dev/null
@@ -0,0 +1,47 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="1266-J760-WT-19A" Type="reloadable" dia="54." len="329."\r
+initWt="1076.8" propWt="576." delays="8,10,12,14,16,18,19" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="732.119" peakThrust="938.596" throatDia="0."\r
+exitDia="0." Itot="1267.3" burn-time="1.73" massFrac="53.49" Isp="224.35"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-3G White Thunder</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="576." cg="164.5"/>\r
+      <eng-data  t="0.012" f="600.251" m="574.363" cg="164.5"/>\r
+      <eng-data  t="0.019" f="833.333" m="572.083" cg="164.5"/>\r
+      <eng-data  t="0.026" f="938.596" m="569.264" cg="164.5"/>\r
+      <eng-data  t="0.04" f="794.486" m="563.75" cg="164.5"/>\r
+      <eng-data  t="0.054" f="756.892" m="558.814" cg="164.5"/>\r
+      <eng-data  t="0.094" f="778.195" m="544.86" cg="164.5"/>\r
+      <eng-data  t="0.129" f="800.752" m="532.301" cg="164.5"/>\r
+      <eng-data  t="0.165" f="813.283" m="519.096" cg="164.5"/>\r
+      <eng-data  t="0.218" f="825.815" m="499.354" cg="164.5"/>\r
+      <eng-data  t="0.279" f="830.827" m="476.389" cg="164.5"/>\r
+      <eng-data  t="0.377" f="835.84" m="439.27" cg="164.5"/>\r
+      <eng-data  t="0.496" f="837.093" m="394.029" cg="164.5"/>\r
+      <eng-data  t="0.617" f="829.574" m="348.199" cg="164.5"/>\r
+      <eng-data  t="0.709" f="819.549" m="313.72" cg="164.5"/>\r
+      <eng-data  t="0.811" f="802.005" m="276.132" cg="164.5"/>\r
+      <eng-data  t="0.917" f="785.714" m="237.886" cg="164.5"/>\r
+      <eng-data  t="1.041" f="764.411" m="194.204" cg="164.5"/>\r
+      <eng-data  t="1.201" f="750.627" m="139.116" cg="164.5"/>\r
+      <eng-data  t="1.331" f="741.855" m="95.0229" cg="164.5"/>\r
+      <eng-data  t="1.455" f="729.323" m="53.5656" cg="164.5"/>\r
+      <eng-data  t="1.488" f="729.323" m="42.6266" cg="164.5"/>\r
+      <eng-data  t="1.514" f="735.589" m="33.971" cg="164.5"/>\r
+      <eng-data  t="1.556" f="749.373" m="19.7974" cg="164.5"/>\r
+      <eng-data  t="1.568" f="729.323" m="15.7649" cg="164.5"/>\r
+      <eng-data  t="1.575" f="665.414" m="13.5462" cg="164.5"/>\r
+      <eng-data  t="1.589" f="533.835" m="9.73069" cg="164.5"/>\r
+      <eng-data  t="1.616" f="327.068" m="4.44828" cg="164.5"/>\r
+      <eng-data  t="1.646" f="122.807" m="1.38119" cg="164.5"/>\r
+      <eng-data  t="1.659" f="72.682" m="0.803655" cg="164.5"/>\r
+      <eng-data  t="1.681" f="30.075" m="0.289909" cg="164.5"/>\r
+      <eng-data  t="1.713" f="6.266" m="0.0256317" cg="164.5"/>\r
+      <eng-data  t="1.731" f="0." m="0." cg="164.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K1075.eng b/datafiles/thrustcurves/Cesaroni_K1075.eng
new file mode 100644 (file)
index 0000000..1159722
--- /dev/null
@@ -0,0 +1,41 @@
+; AMW 54-2500 Skidmark Plugged\r
+2245-K1075-SK-P 54 728 P 1.259 2.6388 CTI\r
+   0.0070 1574.366\r
+   0.012 1038.184\r
+   0.017 1476.101\r
+   0.024 1083.044\r
+   0.029 1365.02\r
+   0.034 1117.223\r
+   0.041 1266.756\r
+   0.046 1162.083\r
+   0.049 1226.168\r
+   0.069 1159.947\r
+   0.107 1130.04\r
+   0.151 1108.678\r
+   0.21 1100.134\r
+   0.274 1102.27\r
+   0.332 1102.27\r
+   0.432 1115.087\r
+   0.523 1119.359\r
+   0.611 1132.176\r
+   0.674 1140.721\r
+   0.766 1149.266\r
+   0.881 1159.947\r
+   0.979 1179.172\r
+   1.141 1191.989\r
+   1.257 1189.853\r
+   1.379 1191.989\r
+   1.504 1202.67\r
+   1.599 1211.215\r
+   1.67 1232.577\r
+   1.744 1249.666\r
+   1.772 1226.168\r
+   1.802 1155.674\r
+   1.841 993.324\r
+   1.888 736.983\r
+   1.944 455.007\r
+   2.002 267.023\r
+   2.065 128.171\r
+   2.11 68.358\r
+   2.149 34.179\r
+   2.198 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K1075.rse b/datafiles/thrustcurves/Cesaroni_K1075.rse
new file mode 100644 (file)
index 0000000..e4bfa0b
--- /dev/null
@@ -0,0 +1,54 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="2245-K1075-SK-P" Type="reloadable" dia="54." len="728."\r
+initWt="2638.8" propWt="1259." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1026." peakThrust="1574.37" throatDia="0." exitDia="0." Itot="2255.14"\r
+burn-time="2.2" massFrac="47.71" Isp="182.65" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>AMW 54-2500 Skidmark Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1259." cg="364."/>\r
+      <eng-data  t="0.007" f="1574.37" m="1255.92" cg="364."/>\r
+      <eng-data  t="0.012" f="1038.18" m="1252.28" cg="364."/>\r
+      <eng-data  t="0.017" f="1476.1" m="1248.77" cg="364."/>\r
+      <eng-data  t="0.024" f="1083.04" m="1243.77" cg="364."/>\r
+      <eng-data  t="0.029" f="1365.02" m="1240.35" cg="364."/>\r
+      <eng-data  t="0.034" f="1117.22" m="1236.89" cg="364."/>\r
+      <eng-data  t="0.041" f="1266.76" m="1232.23" cg="364."/>\r
+      <eng-data  t="0.046" f="1162.08" m="1228.84" cg="364."/>\r
+      <eng-data  t="0.049" f="1226.17" m="1226.84" cg="364."/>\r
+      <eng-data  t="0.069" f="1159.95" m="1213.52" cg="364."/>\r
+      <eng-data  t="0.107" f="1130.04" m="1189.23" cg="364."/>\r
+      <eng-data  t="0.151" f="1108.68" m="1161.73" cg="364."/>\r
+      <eng-data  t="0.21" f="1100.13" m="1125.35" cg="364."/>\r
+      <eng-data  t="0.274" f="1102.27" m="1086.01" cg="364."/>\r
+      <eng-data  t="0.332" f="1102.27" m="1050.32" cg="364."/>\r
+      <eng-data  t="0.432" f="1115.09" m="988.42" cg="364."/>\r
+      <eng-data  t="0.523" f="1119.36" m="931.661" cg="364."/>\r
+      <eng-data  t="0.611" f="1132.18" m="876.353" cg="364."/>\r
+      <eng-data  t="0.674" f="1140.72" m="836.383" cg="364."/>\r
+      <eng-data  t="0.766" f="1149.27" m="777.574" cg="364."/>\r
+      <eng-data  t="0.881" f="1159.95" m="703.445" cg="364."/>\r
+      <eng-data  t="0.979" f="1179.17" m="639.457" cg="364."/>\r
+      <eng-data  t="1.141" f="1191.99" m="532.232" cg="364."/>\r
+      <eng-data  t="1.257" f="1189.85" m="455.107" cg="364."/>\r
+      <eng-data  t="1.379" f="1191.99" m="373.993" cg="364."/>\r
+      <eng-data  t="1.504" f="1202.67" m="290.437" cg="364."/>\r
+      <eng-data  t="1.599" f="1211.21" m="226.425" cg="364."/>\r
+      <eng-data  t="1.67" f="1232.58" m="177.992" cg="364."/>\r
+      <eng-data  t="1.744" f="1249.67" m="126.718" cg="364."/>\r
+      <eng-data  t="1.772" f="1226.17" m="107.367" cg="364."/>\r
+      <eng-data  t="1.802" f="1155.67" m="87.4209" cg="364."/>\r
+      <eng-data  t="1.841" f="993.324" m="64.0259" cg="364."/>\r
+      <eng-data  t="1.888" f="736.983" m="41.325" cg="364."/>\r
+      <eng-data  t="1.944" f="455.007" m="22.692" cg="364."/>\r
+      <eng-data  t="2.002" f="267.023" m="11.0022" cg="364."/>\r
+      <eng-data  t="2.065" f="128.171" m="4.05242" cg="364."/>\r
+      <eng-data  t="2.11" f="68.358" m="1.58376" cg="364."/>\r
+      <eng-data  t="2.149" f="34.179" m="0.467496" cg="364."/>\r
+      <eng-data  t="2.198" f="0." m="0." cg="364."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K1130.rse b/datafiles/thrustcurves/Cesaroni_K1130.rse
new file mode 100644 (file)
index 0000000..46c6f6b
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="K1130-BB" Type="unspecified" dia="54." len="728."\r
+initWt="2574." propWt="1359." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1109.05" peakThrust="1548." throatDia="0." exitDia="0." Itot="2550.82"\r
+burn-time="2.3" massFrac="52.8" Isp="191.4" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1359." cg="364."/>\r
+      <eng-data  t="0.01" f="1000." m="1356.34" cg="364."/>\r
+      <eng-data  t="0.013" f="1490." m="1354.35" cg="364."/>\r
+      <eng-data  t="0.02" f="1548." m="1348.68" cg="364."/>\r
+      <eng-data  t="0.04" f="1500." m="1332.44" cg="364."/>\r
+      <eng-data  t="0.09" f="1335." m="1294.68" cg="364."/>\r
+      <eng-data  t="0.2" f="1325." m="1216.74" cg="364."/>\r
+      <eng-data  t="1." f="1325." m="652.003" cg="364."/>\r
+      <eng-data  t="1.5" f="1325." m="299.043" cg="364."/>\r
+      <eng-data  t="1.63" f="1345." m="206.581" cg="364."/>\r
+      <eng-data  t="1.7" f="1155." m="159.964" cg="364."/>\r
+      <eng-data  t="1.8" f="805." m="107.753" cg="364."/>\r
+      <eng-data  t="1.9" f="685." m="68.0613" cg="364."/>\r
+      <eng-data  t="2." f="475." m="37.1607" cg="364."/>\r
+      <eng-data  t="2.1" f="315." m="16.1163" cg="364."/>\r
+      <eng-data  t="2.2" f="145." m="3.86258" cg="364."/>\r
+      <eng-data  t="2.3" f="0." m="0." cg="364."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K1250.rse b/datafiles/thrustcurves/Cesaroni_K1250.rse
new file mode 100644 (file)
index 0000000..00369aa
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="K1250-WW" Type="unspecified" dia="54." len="491."\r
+initWt="1815." propWt="925." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1148.38" peakThrust="1610." throatDia="0." exitDia="0." Itot="1952.25"\r
+burn-time="1.7" massFrac="50.96" Isp="215.22" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="925." cg="245.5"/>\r
+      <eng-data  t="0.01" f="600." m="923.579" cg="245.5"/>\r
+      <eng-data  t="0.02" f="1400." m="918.84" cg="245.5"/>\r
+      <eng-data  t="0.03" f="1610." m="911.71" cg="245.5"/>\r
+      <eng-data  t="0.05" f="1360." m="897.637" cg="245.5"/>\r
+      <eng-data  t="0.07" f="1410." m="884.513" cg="245.5"/>\r
+      <eng-data  t="0.1" f="1440." m="864.257" cg="245.5"/>\r
+      <eng-data  t="0.15" f="1470." m="829.787" cg="245.5"/>\r
+      <eng-data  t="0.2" f="1480." m="794.844" cg="245.5"/>\r
+      <eng-data  t="0.4" f="1480." m="654.595" cg="245.5"/>\r
+      <eng-data  t="0.8" f="1395." m="382.153" cg="245.5"/>\r
+      <eng-data  t="1.28" f="1185." m="88.7687" cg="245.5"/>\r
+      <eng-data  t="1.36" f="985." m="47.6418" cg="245.5"/>\r
+      <eng-data  t="1.4" f="680." m="31.8639" cg="245.5"/>\r
+      <eng-data  t="1.45" f="570." m="17.0572" cg="245.5"/>\r
+      <eng-data  t="1.5" f="210." m="7.8179" cg="245.5"/>\r
+      <eng-data  t="1.6" f="60." m="1.42144" cg="245.5"/>\r
+      <eng-data  t="1.7" f="0." m="0." cg="245.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K160.eng b/datafiles/thrustcurves/Cesaroni_K160.eng
new file mode 100644 (file)
index 0000000..855a6b8
--- /dev/null
@@ -0,0 +1,17 @@
+; Pro54 4G 1526 K160-CL 6\r
+K160-CL 54 404 6 0.848 1.472 CTI\r
+   0.027 160.187\r
+   0.08 242.037\r
+   0.321 260.656\r
+   0.455 259.602\r
+   0.957 270.492\r
+   1.593 272.248\r
+   2.102 265.222\r
+   2.564 254.333\r
+   2.925 239.578\r
+   3.956 190.047\r
+   5.301 138.759\r
+   7.617 67.799\r
+   9.19 25.644\r
+   9.572 15.808\r
+   9.679 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K260.rse b/datafiles/thrustcurves/Cesaroni_K260.rse
new file mode 100644 (file)
index 0000000..9965fe3
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K260-CL" Type="unspecified" dia="54." len="572." initWt="2047.5"\r
+propWt="1241.3" delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="262.728" peakThrust="430.409" throatDia="0." exitDia="0."\r
+Itot="2282.32" burn-time="8.69" massFrac="60.63" Isp="187.49" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro54 6G 2285 K260-CL P\r
+Longburn\r
+</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1241.3" cg="286."/>\r
+      <eng-data  t="0.042" f="325.731" m="1237.58" cg="286."/>\r
+      <eng-data  t="0.101" f="430.409" m="1225.45" cg="286."/>\r
+      <eng-data  t="0.422" f="422.807" m="1150.97" cg="286."/>\r
+      <eng-data  t="0.773" f="426.901" m="1069.86" cg="286."/>\r
+      <eng-data  t="1.178" f="429.825" m="975.508" cg="286."/>\r
+      <eng-data  t="1.517" f="425.731" m="896.637" cg="286."/>\r
+      <eng-data  t="2.011" f="413.45" m="783.903" cg="286."/>\r
+      <eng-data  t="3.195" f="356.725" m="535.926" cg="286."/>\r
+      <eng-data  t="4.51" f="289.474" m="304.846" cg="286."/>\r
+      <eng-data  t="6.015" f="174.269" m="115.051" cg="286."/>\r
+      <eng-data  t="6.997" f="91.228" m="44.1521" cg="286."/>\r
+      <eng-data  t="7.366" f="66.667" m="28.3081" cg="286."/>\r
+      <eng-data  t="7.902" f="43.275" m="12.2831" cg="286."/>\r
+      <eng-data  t="8.479" f="25.731" m="1.45543" cg="286."/>\r
+      <eng-data  t="8.687" f="0." m="0." cg="286."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K261.eng b/datafiles/thrustcurves/Cesaroni_K261.eng
new file mode 100644 (file)
index 0000000..9059843
--- /dev/null
@@ -0,0 +1,27 @@
+; Pro-54-5G White Long Burn Plugged\r
+2021-K261-WH_LB-P 54 488 P 1.1519 1.9317 CTI\r
+   0.035 283.061\r
+   0.069 321.706\r
+   0.124 345.797\r
+   0.228 336.763\r
+   0.525 347.302\r
+   0.85 359.348\r
+   1.334 356.336\r
+   1.79 359.348\r
+   2.039 354.329\r
+   2.412 353.325\r
+   2.793 349.812\r
+   3.131 344.291\r
+   3.774 323.714\r
+   4.652 278.545\r
+   5.281 230.866\r
+   5.571 206.775\r
+   5.993 166.625\r
+   6.325 137.516\r
+   6.615 102.384\r
+   7.085 55.207\r
+   7.362 35.634\r
+   7.694 20.577\r
+   8.129 9.536\r
+   8.502 2.509\r
+   8.979 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K261.rse b/datafiles/thrustcurves/Cesaroni_K261.rse
new file mode 100644 (file)
index 0000000..84278eb
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="2021-K261-WH_LB-P" Type="reloadable" dia="54." len="488."\r
+initWt="1931.7" propWt="1151.9" delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="225.991" peakThrust="359.348" throatDia="0." exitDia="0."\r
+Itot="2029.17" burn-time="8.98" massFrac="59.63" Isp="179.63" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-5G White Long Burn Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1151.9" cg="244."/>\r
+      <eng-data  t="0.035" f="283.061" m="1149.09" cg="244."/>\r
+      <eng-data  t="0.069" f="321.706" m="1143.25" cg="244."/>\r
+      <eng-data  t="0.124" f="345.797" m="1132.83" cg="244."/>\r
+      <eng-data  t="0.228" f="336.763" m="1112.68" cg="244."/>\r
+      <eng-data  t="0.525" f="347.302" m="1055.02" cg="244."/>\r
+      <eng-data  t="0.85" f="359.348" m="989.831" cg="244."/>\r
+      <eng-data  t="1.334" f="356.336" m="891.514" cg="244."/>\r
+      <eng-data  t="1.79" f="359.348" m="798.884" cg="244."/>\r
+      <eng-data  t="2.039" f="354.329" m="748.445" cg="244."/>\r
+      <eng-data  t="2.412" f="353.325" m="673.525" cg="244."/>\r
+      <eng-data  t="2.793" f="349.812" m="597.487" cg="244."/>\r
+      <eng-data  t="3.131" f="344.291" m="530.898" cg="244."/>\r
+      <eng-data  t="3.774" f="323.714" m="408.983" cg="244."/>\r
+      <eng-data  t="4.652" f="278.545" m="258.896" cg="244."/>\r
+      <eng-data  t="5.281" f="230.866" m="167.95" cg="244."/>\r
+      <eng-data  t="5.571" f="206.775" m="131.927" cg="244."/>\r
+      <eng-data  t="5.993" f="166.625" m="87.2017" cg="244."/>\r
+      <eng-data  t="6.325" f="137.516" m="58.5416" cg="244."/>\r
+      <eng-data  t="6.615" f="102.384" m="38.7949" cg="244."/>\r
+      <eng-data  t="7.085" f="55.207" m="17.7719" cg="244."/>\r
+      <eng-data  t="7.362" f="35.634" m="10.6298" cg="244."/>\r
+      <eng-data  t="7.694" f="20.577" m="5.33289" cg="244."/>\r
+      <eng-data  t="8.129" f="9.536" m="1.6149" cg="244."/>\r
+      <eng-data  t="8.502" f="2.509" m="0.339691" cg="244."/>\r
+      <eng-data  t="8.979" f="0." m="0." cg="244."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K300.eng b/datafiles/thrustcurves/Cesaroni_K300.eng
new file mode 100644 (file)
index 0000000..d0bb41b
--- /dev/null
@@ -0,0 +1,21 @@
+;Pro54 6GXL 2546 K300-CL P\r
+;Longburn\r
+;Uses a new threaded forward closure\r
+K300-CL 54 649 0 1.3776 2.27 CTI \r
+0.036 495.273\r
+0.132 543.273\r
+0.265 506.909\r
+0.734 493.091\r
+1.258 489.455\r
+1.811 482.909\r
+2.467 453.818\r
+3.737 375.273\r
+4.705 299.636\r
+6.047 165.091\r
+6.474 120.727\r
+6.829 90.182\r
+7.323 63.273\r
+7.72 46.545\r
+8.309 30.545\r
+8.37 0\r
+;\r
diff --git a/datafiles/thrustcurves/Cesaroni_K400.eng b/datafiles/thrustcurves/Cesaroni_K400.eng
new file mode 100644 (file)
index 0000000..d9e2b1a
--- /dev/null
@@ -0,0 +1,12 @@
+; Pro54 4G 1597 K400-GR 14A\r
+K400-GR 54 404 14-13-12-11-10-9-8-7-6-5-4 0.969 1.5513 CTI\r
+   0.014 359.164\r
+   0.102 475.4\r
+   1.193 444.649\r
+   2.807 384.994\r
+   3.364 370.234\r
+   3.599 363.469\r
+   3.693 329.028\r
+   3.859 169.742\r
+   3.967 57.196\r
+   4.017 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K445.eng b/datafiles/thrustcurves/Cesaroni_K445.eng
new file mode 100644 (file)
index 0000000..366ef5b
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+K445  54.0 404.00 7-17 0.79200 1.39800 CTI\r
+   0.05     664.83 \r
+   0.19     640.68 \r
+   0.48     622.98 \r
+   1.00     576.29 \r
+   1.51     515.12 \r
+   2.00     442.68 \r
+   2.50     392.26 \r
+   3.02     350.93 \r
+   3.13     339.66 \r
+   3.31     210.88 \r
+   3.47      78.88 \r
+   3.67       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K454.rse b/datafiles/thrustcurves/Cesaroni_K454.rse
new file mode 100644 (file)
index 0000000..51d068b
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K454-SK" Type="unspecified" dia="54." len="404." initWt="1391."\r
+propWt="821." delays="10,11,12,13,14,15,16,17,18,19" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="433.03" peakThrust="586." throatDia="0." exitDia="0."\r
+Itot="1364.05" burn-time="3.15" massFrac="59.02" Isp="169.42" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="821." cg="202."/>\r
+      <eng-data  t="0.021" f="10." m="820.937" cg="202."/>\r
+      <eng-data  t="0.028" f="421." m="820.029" cg="202."/>\r
+      <eng-data  t="0.032" f="586." m="818.817" cg="202."/>\r
+      <eng-data  t="0.069" f="405." m="807.782" cg="202."/>\r
+      <eng-data  t="0.2" f="475." m="773.089" cg="202."/>\r
+      <eng-data  t="0.4" f="510." m="713.804" cg="202."/>\r
+      <eng-data  t="0.6" f="530." m="651.207" cg="202."/>\r
+      <eng-data  t="0.9" f="532." m="555.327" cg="202."/>\r
+      <eng-data  t="1.2" f="525." m="459.898" cg="202."/>\r
+      <eng-data  t="1.6" f="505." m="335.909" cg="202."/>\r
+      <eng-data  t="2." f="470." m="218.542" cg="202."/>\r
+      <eng-data  t="2.4" f="415." m="112.008" cg="202."/>\r
+      <eng-data  t="2.55" f="410." m="74.7663" cg="202."/>\r
+      <eng-data  t="2.69" f="430." m="39.3754" cg="202."/>\r
+      <eng-data  t="2.93" f="70." m="3.26222" cg="202."/>\r
+      <eng-data  t="3." f="27." m="1.21882" cg="202."/>\r
+      <eng-data  t="3.15" f="0." m="0." cg="202."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K490.eng b/datafiles/thrustcurves/Cesaroni_K490.eng
new file mode 100644 (file)
index 0000000..2728b8e
--- /dev/null
@@ -0,0 +1,19 @@
+; Pro54-5G 1990K490-GR 16A\r
+K490-GR 54 488 16-15-14-13-12-11-10-9-8-7-6 1.2012 1.8540999999999999 CTI\r
+   0.013 445.79\r
+   0.024 376.662\r
+   0.083 559.232\r
+   0.121 584.047\r
+   0.316 573.412\r
+   0.727 569.867\r
+   1.116 553.914\r
+   1.875 522.009\r
+   1.893 593.796\r
+   1.944 519.35\r
+   2.658 479.468\r
+   3.063 473.264\r
+   3.358 444.018\r
+   3.618 448.449\r
+   3.894 240.177\r
+   4.055 31.019\r
+   4.066 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K510.eng b/datafiles/thrustcurves/Cesaroni_K510.eng
new file mode 100644 (file)
index 0000000..c673b79
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;   Cesaroni Pro75 2486K510 \r
+;         'Classic Propellant'\r
+;\r
+;      RockSim file by Kathy Miller\r
+;          wRasp Adaptation by Len Lekx\r
+;\r
+K510   75      350     0       1.19    2.59    CTI\r
+0.10     645.25 \r
+0.30     689.75 \r
+0.50     658.60 \r
+1.00     636.35 \r
+1.60     600.75 \r
+2.00     565.15 \r
+2.40     534.00 \r
+2.50     525.10 \r
+3.00     471.70 \r
+3.50     422.75 \r
+3.70     400.50 \r
+4.00     391.60 \r
+4.40     382.70 \r
+4.50     378.25 \r
+4.60     333.75 \r
+4.70      66.75 \r
+4.84       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K510_1.eng b/datafiles/thrustcurves/Cesaroni_K510_1.eng
new file mode 100644 (file)
index 0000000..ca5e64d
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;\r
+K510  75.0 350.00 0 1.19700 2.59000 CTI\r
+   0.04     394.38 \r
+   0.07     617.68 \r
+   0.10     645.17 \r
+   0.21     658.16 \r
+   0.35     669.23 \r
+   0.53     667.72 \r
+   0.82     661.58 \r
+   1.18     626.92 \r
+   1.72     588.46 \r
+   2.15     557.69 \r
+   2.39     542.31 \r
+   2.90     492.86 \r
+   3.07     470.31 \r
+   3.56     426.81 \r
+   3.98     398.96 \r
+   4.32     393.98 \r
+   4.48     380.63 \r
+   4.60     364.22 \r
+   4.65     290.91 \r
+   4.80      91.23 \r
+   4.84      45.82 \r
+   4.84       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K515.rse b/datafiles/thrustcurves/Cesaroni_K515.rse
new file mode 100644 (file)
index 0000000..e163066
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K515-SK" Type="unspecified" dia="54." len="488." initWt="1654."\r
+propWt="1013." delays="6,7,8,9,10,11,12,13,14,15,16" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="493.772" peakThrust="710." throatDia="0."\r
+exitDia="0." Itot="1654.13" burn-time="3.35" massFrac="61.25" Isp="166.51"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1013." cg="244."/>\r
+      <eng-data  t="0.01" f="10." m="1012.97" cg="244."/>\r
+      <eng-data  t="0.02" f="250." m="1012.17" cg="244."/>\r
+      <eng-data  t="0.028" f="550." m="1010.21" cg="244."/>\r
+      <eng-data  t="0.035" f="710." m="1007.51" cg="244."/>\r
+      <eng-data  t="0.06" f="540." m="997.944" cg="244."/>\r
+      <eng-data  t="0.065" f="530." m="996.306" cg="244."/>\r
+      <eng-data  t="0.1" f="560." m="984.624" cg="244."/>\r
+      <eng-data  t="0.25" f="600." m="931.345" cg="244."/>\r
+      <eng-data  t="0.5" f="612." m="838.566" cg="244."/>\r
+      <eng-data  t="0.75" f="612." m="744.868" cg="244."/>\r
+      <eng-data  t="1.1" f="602." m="614.762" cg="244."/>\r
+      <eng-data  t="1.5" f="578." m="470.235" cg="244."/>\r
+      <eng-data  t="2." f="531." m="300.446" cg="244."/>\r
+      <eng-data  t="2.6" f="460." m="118.378" cg="244."/>\r
+      <eng-data  t="2.78" f="458." m="67.7809" cg="244."/>\r
+      <eng-data  t="2.85" f="450." m="48.3187" cg="244."/>\r
+      <eng-data  t="2.95" f="300." m="25.3536" cg="244."/>\r
+      <eng-data  t="3.03" f="200." m="13.1055" cg="244."/>\r
+      <eng-data  t="3.18" f="40." m="2.08218" cg="244."/>\r
+      <eng-data  t="3.35" f="0." m="0." cg="244."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K570.eng b/datafiles/thrustcurves/Cesaroni_K570.eng
new file mode 100644 (file)
index 0000000..0b41307
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+K570  54.0 488.00 7-17 0.99000 1.68500 CTI\r
+   0.04     892.67 \r
+   0.50     797.99 \r
+   1.00     738.68 \r
+   1.50     659.37 \r
+   2.00     585.96 \r
+   2.50     512.88 \r
+   2.97     417.16 \r
+   3.20     224.79 \r
+   3.47      67.00 \r
+   3.59       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K575.eng b/datafiles/thrustcurves/Cesaroni_K575.eng
new file mode 100644 (file)
index 0000000..9beb7b4
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;\r
+K575SS 75 395 1000 1.803 3.143 Cesaroni\r
+0 16\r
+0.11 664.5\r
+0.43 620.2\r
+0.87 629\r
+1.3 637.92\r
+1.73 637.92\r
+2.17 629\r
+2.6 615.77\r
+3.03 553.75\r
+3.47 518.31\r
+3.9 438.57\r
+4.18 79.74\r
+4.33 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K610.rse b/datafiles/thrustcurves/Cesaroni_K610.rse
new file mode 100644 (file)
index 0000000..13eba8f
--- /dev/null
@@ -0,0 +1,33 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="K610-SK" Type="unspecified" dia="54." len="491."\r
+initWt="1765." propWt="866." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="567.106" peakThrust="745." throatDia="0." exitDia="0." Itot="1531.19"\r
+burn-time="2.7" massFrac="49.07" Isp="180.3" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="866." cg="245.5"/>\r
+      <eng-data  t="0.01" f="300." m="865.152" cg="245.5"/>\r
+      <eng-data  t="0.02" f="745." m="862.197" cg="245.5"/>\r
+      <eng-data  t="0.035" f="650." m="856.279" cg="245.5"/>\r
+      <eng-data  t="0.06" f="560." m="847.725" cg="245.5"/>\r
+      <eng-data  t="0.12" f="635." m="827.449" cg="245.5"/>\r
+      <eng-data  t="0.21" f="670." m="794.236" cg="245.5"/>\r
+      <eng-data  t="0.4" f="695." m="720.895" cg="245.5"/>\r
+      <eng-data  t="0.7" f="700." m="602.549" cg="245.5"/>\r
+      <eng-data  t="1." f="690." m="484.626" cg="245.5"/>\r
+      <eng-data  t="1.35" f="665." m="350.515" cg="245.5"/>\r
+      <eng-data  t="1.7" f="630." m="222.341" cg="245.5"/>\r
+      <eng-data  t="2.05" f="585." m="102.086" cg="245.5"/>\r
+      <eng-data  t="2.19" f="590." m="55.5677" cg="245.5"/>\r
+      <eng-data  t="2.24" f="500." m="40.1558" cg="245.5"/>\r
+      <eng-data  t="2.3" f="350." m="25.7336" cg="245.5"/>\r
+      <eng-data  t="2.4" f="205." m="10.0389" cg="245.5"/>\r
+      <eng-data  t="2.5" f="60." m="2.54508" cg="245.5"/>\r
+      <eng-data  t="2.6" f="15." m="0.424181" cg="245.5"/>\r
+      <eng-data  t="2.7" f="0." m="0." cg="245.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K630.rse b/datafiles/thrustcurves/Cesaroni_K630.rse
new file mode 100644 (file)
index 0000000..0d6ab78
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K630BS" Type="unspecified" dia="54." len="405." initWt="1410."\r
+propWt="912." delays="15,14,13,12,11,10,9,8,7,6,5" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="597.146" peakThrust="791.388" throatDia="0."\r
+exitDia="0." Itot="1681.56" burn-time="2.82" massFrac="64.68" Isp="188.02"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-4G 1679 K630BS 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="912." cg="202.5"/>\r
+      <eng-data  t="0.014" f="164.444" m="911.376" cg="202.5"/>\r
+      <eng-data  t="0.025" f="676.277" m="908.868" cg="202.5"/>\r
+      <eng-data  t="0.034" f="791.388" m="905.286" cg="202.5"/>\r
+      <eng-data  t="0.059" f="781.111" m="894.625" cg="202.5"/>\r
+      <eng-data  t="0.074" f="674.222" m="888.706" cg="202.5"/>\r
+      <eng-data  t="0.102" f="705.055" m="878.233" cg="202.5"/>\r
+      <eng-data  t="0.212" f="713.277" m="835.925" cg="202.5"/>\r
+      <eng-data  t="0.696" f="715.333" m="648.421" cg="202.5"/>\r
+      <eng-data  t="0.974" f="721.5" m="540.102" cg="202.5"/>\r
+      <eng-data  t="1.143" f="709.166" m="474.537" cg="202.5"/>\r
+      <eng-data  t="1.489" f="680.389" m="344.159" cg="202.5"/>\r
+      <eng-data  t="2.055" f="629." m="143.187" cg="202.5"/>\r
+      <eng-data  t="2.284" f="612.555" m="66.0868" cg="202.5"/>\r
+      <eng-data  t="2.318" f="587.889" m="55.0187" cg="202.5"/>\r
+      <eng-data  t="2.355" f="518." m="43.9228" cg="202.5"/>\r
+      <eng-data  t="2.389" f="427.555" m="35.2048" cg="202.5"/>\r
+      <eng-data  t="2.417" f="382.333" m="29.0554" cg="202.5"/>\r
+      <eng-data  t="2.471" f="349.444" m="18.3396" cg="202.5"/>\r
+      <eng-data  t="2.51" f="265.167" m="11.8395" cg="202.5"/>\r
+      <eng-data  t="2.57" f="127.444" m="5.45153" cg="202.5"/>\r
+      <eng-data  t="2.598" f="76.056" m="3.90637" cg="202.5"/>\r
+      <eng-data  t="2.646" f="49.333" m="2.27425" cg="202.5"/>\r
+      <eng-data  t="2.816" f="0." m="0." cg="202.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K650.eng b/datafiles/thrustcurves/Cesaroni_K650.eng
new file mode 100644 (file)
index 0000000..8d9f29d
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+K650SS  54.0 488.00 6-16 1.28100 1.98990 CTI\r
+   0.04     664.52 \r
+   0.12     645.90 \r
+   0.31     642.24 \r
+   0.60     664.78 \r
+   0.91     684.59 \r
+   1.22     712.82 \r
+   1.50     723.41 \r
+   1.80     728.70 \r
+   2.10     664.52 \r
+   2.40     614.68 \r
+   2.51     680.53 \r
+   2.55     534.62 \r
+   2.61     268.19 \r
+   2.66       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K660.eng b/datafiles/thrustcurves/Cesaroni_K660.eng
new file mode 100644 (file)
index 0000000..41caa36
--- /dev/null
@@ -0,0 +1,19 @@
+;\r
+;\r
+K660  54.0 572.00 7-17 1.17700 1.94900 CTI\r
+   0.07    1078.90 \r
+   0.23    1006.47 \r
+   0.40     966.76 \r
+   0.80     897.52 \r
+   1.20     842.72 \r
+   1.60     794.15 \r
+   2.01     744.52 \r
+   2.40     692.27 \r
+   2.54     671.37 \r
+   2.68     439.08 \r
+   2.80     400.68 \r
+   3.01     386.90 \r
+   3.20     234.31 \r
+   3.45     106.65 \r
+   3.60      44.03 \r
+   3.69       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_K675.rse b/datafiles/thrustcurves/Cesaroni_K675.rse
new file mode 100644 (file)
index 0000000..08f8f7b
--- /dev/null
@@ -0,0 +1,33 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K675-SK" Type="unspecified" dia="54." len="572." initWt="1940."\r
+propWt="1200." delays="8,9,10,11,12,13,14,15,16,17,18" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="650.57" peakThrust="930." throatDia="0." exitDia="0."\r
+Itot="2010.26" burn-time="3.09" massFrac="61.86" Isp="170.82" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1200." cg="286."/>\r
+      <eng-data  t="0.01" f="10." m="1199.97" cg="286."/>\r
+      <eng-data  t="0.02" f="154." m="1199.48" cg="286."/>\r
+      <eng-data  t="0.025" f="930." m="1197.86" cg="286."/>\r
+      <eng-data  t="0.04" f="850." m="1189.89" cg="286."/>\r
+      <eng-data  t="0.05" f="800." m="1184.97" cg="286."/>\r
+      <eng-data  t="0.07" f="680." m="1176.13" cg="286."/>\r
+      <eng-data  t="0.1" f="700." m="1163.78" cg="286."/>\r
+      <eng-data  t="0.2" f="750." m="1120.5" cg="286."/>\r
+      <eng-data  t="0.3" f="780." m="1074.83" cg="286."/>\r
+      <eng-data  t="0.5" f="795." m="980.816" cg="286."/>\r
+      <eng-data  t="1." f="808." m="741.594" cg="286."/>\r
+      <eng-data  t="1.5" f="795." m="502.371" cg="286."/>\r
+      <eng-data  t="1.9" f="751." m="317.798" cg="286."/>\r
+      <eng-data  t="2.26" f="700." m="161.89" cg="286."/>\r
+      <eng-data  t="2.43" f="450." m="103.539" cg="286."/>\r
+      <eng-data  t="2.6" f="440." m="58.3805" cg="286."/>\r
+      <eng-data  t="2.68" f="400." m="38.3234" cg="286."/>\r
+      <eng-data  t="2.96" f="40." m="1.55204" cg="286."/>\r
+      <eng-data  t="3.09" f="0." m="0." cg="286."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K710.rse b/datafiles/thrustcurves/Cesaroni_K710.rse
new file mode 100644 (file)
index 0000000..4a6765b
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW-ProX" code="K710-BB" Type="unspecified" dia="54." len="491."\r
+initWt="1812." propWt="902." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="639.696" peakThrust="910." throatDia="0." exitDia="0." Itot="1791.15"\r
+burn-time="2.8" massFrac="49.78" Isp="202.49" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="902." cg="245.5"/>\r
+      <eng-data  t="0.01" f="500." m="900.741" cg="245.5"/>\r
+      <eng-data  t="0.02" f="850." m="897.342" cg="245.5"/>\r
+      <eng-data  t="0.025" f="910." m="895.126" cg="245.5"/>\r
+      <eng-data  t="0.03" f="840." m="892.923" cg="245.5"/>\r
+      <eng-data  t="0.06" f="860." m="880.081" cg="245.5"/>\r
+      <eng-data  t="0.12" f="875." m="853.87" cg="245.5"/>\r
+      <eng-data  t="0.2" f="875." m="818.619" cg="245.5"/>\r
+      <eng-data  t="0.3" f="872." m="774.63" cg="245.5"/>\r
+      <eng-data  t="1.1" f="815." m="434.81" cg="245.5"/>\r
+      <eng-data  t="1.85" f="740." m="141.155" cg="245.5"/>\r
+      <eng-data  t="1.95" f="720." m="104.394" cg="245.5"/>\r
+      <eng-data  t="2.2" f="295." m="40.501" cg="245.5"/>\r
+      <eng-data  t="2.37" f="280." m="15.8882" cg="245.5"/>\r
+      <eng-data  t="2.5" f="90." m="3.7769" cg="245.5"/>\r
+      <eng-data  t="2.6" f="20." m="1.00717" cg="245.5"/>\r
+      <eng-data  t="2.8" f="0." m="0." cg="245.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K780.rse b/datafiles/thrustcurves/Cesaroni_K780.rse
new file mode 100644 (file)
index 0000000..89dbb15
--- /dev/null
@@ -0,0 +1,40 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K780BS" Type="unspecified" dia="54." len="489." initWt="1700."\r
+propWt="1140." delays="15,14,13,12,11,10,9,8,7,6,5" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="767.181" peakThrust="1014.23" throatDia="0."\r
+exitDia="0." Itot="2114.35" burn-time="2.76" massFrac="67.06" Isp="189.13"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>CTI Pro54-5G 2108 J780BS 15A</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1140." cg="244.5"/>\r
+      <eng-data  t="0.008" f="15.972" m="1139.97" cg="244.5"/>\r
+      <eng-data  t="0.016" f="511.106" m="1138.83" cg="244.5"/>\r
+      <eng-data  t="0.017" f="1014.23" m="1138.42" cg="244.5"/>\r
+      <eng-data  t="0.039" f="892.439" m="1127.11" cg="244.5"/>\r
+      <eng-data  t="0.065" f="936.362" m="1114.29" cg="244.5"/>\r
+      <eng-data  t="0.094" f="942.352" m="1099.6" cg="244.5"/>\r
+      <eng-data  t="0.153" f="916.397" m="1070.04" cg="244.5"/>\r
+      <eng-data  t="0.205" f="906.415" m="1044.49" cg="244.5"/>\r
+      <eng-data  t="0.294" f="914.401" m="1000.8" cg="244.5"/>\r
+      <eng-data  t="0.455" f="900.425" m="922.029" cg="244.5"/>\r
+      <eng-data  t="0.718" f="896.432" m="794.629" cg="244.5"/>\r
+      <eng-data  t="1.016" f="886.45" m="651.399" cg="244.5"/>\r
+      <eng-data  t="1.38" f="858.498" m="480.168" cg="244.5"/>\r
+      <eng-data  t="1.799" f="818.568" m="290.732" cg="244.5"/>\r
+      <eng-data  t="1.913" f="804.593" m="240.848" cg="244.5"/>\r
+      <eng-data  t="2.072" f="798.603" m="172.128" cg="244.5"/>\r
+      <eng-data  t="2.225" f="788.621" m="106.66" cg="244.5"/>\r
+      <eng-data  t="2.272" f="758.673" m="87.0551" cg="244.5"/>\r
+      <eng-data  t="2.34" f="606.938" m="62.0209" cg="244.5"/>\r
+      <eng-data  t="2.379" f="561.019" m="49.7412" cg="244.5"/>\r
+      <eng-data  t="2.412" f="495.134" m="40.3453" cg="244.5"/>\r
+      <eng-data  t="2.558" f="211.63" m="12.5273" cg="244.5"/>\r
+      <eng-data  t="2.628" f="141.752" m="5.85865" cg="244.5"/>\r
+      <eng-data  t="2.711" f="77.864" m="0.944598" cg="244.5"/>\r
+      <eng-data  t="2.756" f="0." m="0." cg="244.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K815.rse b/datafiles/thrustcurves/Cesaroni_K815.rse
new file mode 100644 (file)
index 0000000..f9ad131
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K815-SK" Type="unspecified" dia="54." len="649." initWt="2197."\r
+propWt="1371." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="808.482"\r
+peakThrust="1200." throatDia="0." exitDia="0." Itot="2304.18" burn-time="2.85"\r
+massFrac="62.4" Isp="171.38" tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1."\r
+FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1371." cg="324.5"/>\r
+      <eng-data  t="0.01" f="400." m="1369.81" cg="324.5"/>\r
+      <eng-data  t="0.015" f="600." m="1368.32" cg="324.5"/>\r
+      <eng-data  t="0.02" f="1200." m="1365.64" cg="324.5"/>\r
+      <eng-data  t="0.05" f="620." m="1349.4" cg="324.5"/>\r
+      <eng-data  t="0.07" f="720." m="1341.43" cg="324.5"/>\r
+      <eng-data  t="0.1" f="825." m="1327.64" cg="324.5"/>\r
+      <eng-data  t="0.3" f="910." m="1224.41" cg="324.5"/>\r
+      <eng-data  t="1." f="945." m="838.097" cg="324.5"/>\r
+      <eng-data  t="1.5" f="970." m="553.237" cg="324.5"/>\r
+      <eng-data  t="1.8" f="970." m="380.09" cg="324.5"/>\r
+      <eng-data  t="2.12" f="930." m="199.208" cg="324.5"/>\r
+      <eng-data  t="2.3" f="650." m="114.598" cg="324.5"/>\r
+      <eng-data  t="2.43" f="640." m="64.707" cg="324.5"/>\r
+      <eng-data  t="2.58" f="300." m="22.759" cg="324.5"/>\r
+      <eng-data  t="2.7" f="150." m="6.69383" cg="324.5"/>\r
+      <eng-data  t="2.85" f="0." m="0." cg="324.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K820.rse b/datafiles/thrustcurves/Cesaroni_K820.rse
new file mode 100644 (file)
index 0000000..fdf396a
--- /dev/null
@@ -0,0 +1,35 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="K820-BS" Type="unspecified" dia="54." len="572." initWt="1982."\r
+propWt="1232." delays="7,8,9,10,11,12,13,14,15,16,17" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="794.527" peakThrust="1720." throatDia="0."\r
+exitDia="0." Itot="2383.58" burn-time="3." massFrac="62.16" Isp="197.29"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1232." cg="286."/>\r
+      <eng-data  t="0.01" f="800." m="1229.93" cg="286."/>\r
+      <eng-data  t="0.02" f="1400." m="1224.25" cg="286."/>\r
+      <eng-data  t="0.029" f="1720." m="1216.99" cg="286."/>\r
+      <eng-data  t="0.04" f="960." m="1209.37" cg="286."/>\r
+      <eng-data  t="0.1" f="1050." m="1178.2" cg="286."/>\r
+      <eng-data  t="0.2" f="1060." m="1123.67" cg="286."/>\r
+      <eng-data  t="0.4" f="1040." m="1015.13" cg="286."/>\r
+      <eng-data  t="0.6" f="1030." m="908.14" cg="286."/>\r
+      <eng-data  t="1." f="1020." m="696.223" cg="286."/>\r
+      <eng-data  t="1.5" f="980." m="437.789" cg="286."/>\r
+      <eng-data  t="2." f="880." m="197.444" cg="286."/>\r
+      <eng-data  t="2.1" f="800." m="154.027" cg="286."/>\r
+      <eng-data  t="2.2" f="640." m="116.813" cg="286."/>\r
+      <eng-data  t="2.3" f="520." m="86.8341" cg="286."/>\r
+      <eng-data  t="2.4" f="410." m="62.7997" cg="286."/>\r
+      <eng-data  t="2.5" f="390." m="42.1249" cg="286."/>\r
+      <eng-data  t="2.6" f="280." m="24.8097" cg="286."/>\r
+      <eng-data  t="2.7" f="180." m="12.9217" cg="286."/>\r
+      <eng-data  t="2.8" f="110." m="5.42713" cg="286."/>\r
+      <eng-data  t="2.9" f="50." m="1.29217" cg="286."/>\r
+      <eng-data  t="3." f="0." m="0." cg="286."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_K940.eng b/datafiles/thrustcurves/Cesaroni_K940.eng
new file mode 100644 (file)
index 0000000..dfa5d68
--- /dev/null
@@ -0,0 +1,33 @@
+; Pro-54-4G White Thunder\r
+1633-K940-WT-18A 54 404 8-10-12-14-15-17-18 0.768 1.3665 CTI\r
+   0.01 885.714\r
+   0.011 1006.015\r
+   0.021 1115.789\r
+   0.035 1087.218\r
+   0.053 963.91\r
+   0.061 957.895\r
+   0.094 975.94\r
+   0.183 998.496\r
+   0.321 1022.556\r
+   0.394 1037.594\r
+   0.515 1046.617\r
+   0.626 1046.617\r
+   0.769 1033.083\r
+   0.929 1013.534\r
+   1.089 981.955\r
+   1.24 942.857\r
+   1.343 912.782\r
+   1.426 894.737\r
+   1.474 881.203\r
+   1.533 875.188\r
+   1.575 873.684\r
+   1.596 845.113\r
+   1.606 800.0\r
+   1.642 615.038\r
+   1.661 479.699\r
+   1.683 320.301\r
+   1.703 200.0\r
+   1.735 76.692\r
+   1.753 45.113\r
+   1.776 22.556\r
+   1.797 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_K940.rse b/datafiles/thrustcurves/Cesaroni_K940.rse
new file mode 100644 (file)
index 0000000..8fb15f1
--- /dev/null
@@ -0,0 +1,46 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="1633-K940-WT-18A" Type="reloadable" dia="54." len="404."\r
+initWt="1366.5" propWt="768." delays="8,10,12,14,15,17,18" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="910.437" peakThrust="1115.79" throatDia="0."\r
+exitDia="0." Itot="1636.06" burn-time="1.8" massFrac="56.2" Isp="217.23"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-54-4G White Thunder</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="768." cg="202."/>\r
+      <eng-data  t="0.01" f="885.714" m="765.921" cg="202."/>\r
+      <eng-data  t="0.011" f="1006.01" m="765.477" cg="202."/>\r
+      <eng-data  t="0.021" f="1115.79" m="760.497" cg="202."/>\r
+      <eng-data  t="0.035" f="1087.22" m="753.258" cg="202."/>\r
+      <eng-data  t="0.053" f="963.91" m="744.592" cg="202."/>\r
+      <eng-data  t="0.061" f="957.895" m="740.984" cg="202."/>\r
+      <eng-data  t="0.094" f="975.94" m="726.005" cg="202."/>\r
+      <eng-data  t="0.183" f="998.496" m="684.761" cg="202."/>\r
+      <eng-data  t="0.321" f="1022.56" m="619.299" cg="202."/>\r
+      <eng-data  t="0.394" f="1037.59" m="584." cg="202."/>\r
+      <eng-data  t="0.515" f="1046.62" m="524.809" cg="202."/>\r
+      <eng-data  t="0.626" f="1046.62" m="470.274" cg="202."/>\r
+      <eng-data  t="0.769" f="1033.08" m="400.472" cg="202."/>\r
+      <eng-data  t="0.929" f="1013.53" m="323.613" cg="202."/>\r
+      <eng-data  t="1.089" f="981.955" m="248.675" cg="202."/>\r
+      <eng-data  t="1.24" f="942.857" m="180.457" cg="202."/>\r
+      <eng-data  t="1.343" f="912.782" m="135.597" cg="202."/>\r
+      <eng-data  t="1.426" f="894.737" m="100.385" cg="202."/>\r
+      <eng-data  t="1.474" f="881.203" m="80.3767" cg="202."/>\r
+      <eng-data  t="1.533" f="875.188" m="56.0543" cg="202."/>\r
+      <eng-data  t="1.575" f="873.684" m="38.8141" cg="202."/>\r
+      <eng-data  t="1.596" f="845.113" m="30.3423" cg="202."/>\r
+      <eng-data  t="1.606" f="800." m="26.481" cg="202."/>\r
+      <eng-data  t="1.642" f="615.038" m="14.5246" cg="202."/>\r
+      <eng-data  t="1.661" f="479.699" m="9.64256" cg="202."/>\r
+      <eng-data  t="1.683" f="320.301" m="5.51165" cg="202."/>\r
+      <eng-data  t="1.703" f="200." m="3.06924" cg="202."/>\r
+      <eng-data  t="1.735" f="76.692" m="0.991079" cg="202."/>\r
+      <eng-data  t="1.753" f="45.113" m="0.476478" cg="202."/>\r
+      <eng-data  t="1.776" f="22.556" m="0.111177" cg="202."/>\r
+      <eng-data  t="1.797" f="0." m="0." cg="202."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1090.eng b/datafiles/thrustcurves/Cesaroni_L1090.eng
new file mode 100644 (file)
index 0000000..391d406
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+L1090SS 75 665 1000 3.491 5.461 Cesaroni\r
+0 487.3\r
+0.11 1639.1\r
+0.22 1484.05\r
+0.44 1417.6\r
+0.87 1373.3\r
+1.31 1329\r
+1.74 1306.85\r
+2.18 1262.55\r
+2.61 1218.25\r
+3.05 1151.8\r
+3.21 775.25\r
+3.48 598.05\r
+3.92 553.75\r
+4.13 221.5\r
+4.35 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1115.eng b/datafiles/thrustcurves/Cesaroni_L1115.eng
new file mode 100644 (file)
index 0000000..1914f38
--- /dev/null
@@ -0,0 +1,23 @@
+;\r
+;   Cesaroni Pro75 5015L1115\r
+;         'Classic Propellant'\r
+;\r
+;      RockSim file by Kathy Miller\r
+;          wRasp Adaptation by Len Lekx\r
+;\r
+L1115  75      621     0       2.39    4.40    CTI\r
+0.10    1468.85 \r
+0.30    1490.75 \r
+0.80    1401.75 \r
+1.00    1437.35 \r
+1.50    1335.00 \r
+2.00    1268.25 \r
+2.20    1246.00 \r
+2.50    1112.50 \r
+3.00    1090.25 \r
+3.30     979.00 \r
+3.80     979.00 \r
+4.00     623.00 \r
+4.20     311.50 \r
+4.40      35.00 \r
+4.48       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_L1276.rse b/datafiles/thrustcurves/Cesaroni_L1276.rse
new file mode 100644 (file)
index 0000000..47a1b0e
--- /dev/null
@@ -0,0 +1,37 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="AMW" code="L1276RR" Type="unspecified" dia="54." len="728." initWt="2960."\r
+propWt="1475." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1237.17"\r
+peakThrust="1495." throatDia="0." exitDia="0." Itot="2703.21" burn-time="2.19"\r
+massFrac="49.83" Isp="186.88" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>AMX/ProX 2729L1276 RR</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1475." cg="364."/>\r
+      <eng-data  t="0.015" f="76.924" m="1474.69" cg="364."/>\r
+      <eng-data  t="0.017" f="692.317" m="1474.27" cg="364."/>\r
+      <eng-data  t="0.026" f="1495." m="1468.89" cg="364."/>\r
+      <eng-data  t="0.037" f="1244.16" m="1460.67" cg="364."/>\r
+      <eng-data  t="0.052" f="1401.36" m="1449.85" cg="364."/>\r
+      <eng-data  t="0.084" f="1307.71" m="1426.2" cg="364."/>\r
+      <eng-data  t="0.127" f="1307.71" m="1395.51" cg="364."/>\r
+      <eng-data  t="0.181" f="1367.91" m="1356.1" cg="364."/>\r
+      <eng-data  t="0.289" f="1401.36" m="1274.5" cg="364."/>\r
+      <eng-data  t="0.384" f="1408.05" m="1201.68" cg="364."/>\r
+      <eng-data  t="0.807" f="1421.42" m="875.151" cg="364."/>\r
+      <eng-data  t="0.993" f="1461.56" m="728.853" cg="364."/>\r
+      <eng-data  t="1.215" f="1491.66" m="549.986" cg="364."/>\r
+      <eng-data  t="1.673" f="1474.94" m="179.3" cg="364."/>\r
+      <eng-data  t="1.727" f="1384.63" m="137.171" cg="364."/>\r
+      <eng-data  t="1.798" f="1083.63" m="89.3597" cg="364."/>\r
+      <eng-data  t="1.947" f="531.78" m="23.6922" cg="364."/>\r
+      <eng-data  t="1.986" f="351.175" m="14.2974" cg="364."/>\r
+      <eng-data  t="2.047" f="177.26" m="5.50309" cg="364."/>\r
+      <eng-data  t="2.092" f="93.647" m="2.17714" cg="364."/>\r
+      <eng-data  t="2.144" f="33.445" m="0.374108" cg="364."/>\r
+      <eng-data  t="2.185" f="0." m="0." cg="364."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1290.rse b/datafiles/thrustcurves/Cesaroni_L1290.rse
new file mode 100644 (file)
index 0000000..19fbd18
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L1290-SK" Type="unspecified" dia="76." len="785." initWt="5399."\r
+propWt="3047." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1234.96"\r
+peakThrust="1476.83" throatDia="0." exitDia="0." Itot="4692.85" burn-time="3.8"\r
+massFrac="56.44" Isp="157.05" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>ABC-76-6000 4701L1290-SK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3047." cg="392.5"/>\r
+      <eng-data  t="0.022" f="117.623" m="3046.16" cg="392.5"/>\r
+      <eng-data  t="0.081" f="786.023" m="3028.85" cg="392.5"/>\r
+      <eng-data  t="0.11" f="797.226" m="3013.95" cg="392.5"/>\r
+      <eng-data  t="0.176" f="1226.64" m="2970.58" cg="392.5"/>\r
+      <eng-data  t="0.691" f="1357.34" m="2538.56" cg="392.5"/>\r
+      <eng-data  t="1.231" f="1461.89" m="2044.33" cg="392.5"/>\r
+      <eng-data  t="1.761" f="1476.83" m="1538.69" cg="392.5"/>\r
+      <eng-data  t="2.008" f="1467.49" m="1302.6" cg="392.5"/>\r
+      <eng-data  t="2.311" f="1417.08" m="1018.85" cg="392.5"/>\r
+      <eng-data  t="2.835" f="1299.46" m="556.734" cg="392.5"/>\r
+      <eng-data  t="3.101" f="1235.98" m="337.786" cg="392.5"/>\r
+      <eng-data  t="3.167" f="1230.38" m="284.94" cg="392.5"/>\r
+      <eng-data  t="3.34" f="1321.86" m="141.598" cg="392.5"/>\r
+      <eng-data  t="3.373" f="1286.39" m="113.656" cg="392.5"/>\r
+      <eng-data  t="3.532" f="365.94" m="28.3652" cg="392.5"/>\r
+      <eng-data  t="3.602" f="201.64" m="15.467" cg="392.5"/>\r
+      <eng-data  t="3.734" f="91.485" m="2.90574" cg="392.5"/>\r
+      <eng-data  t="3.782" f="69.08" m="0.403674" cg="392.5"/>\r
+      <eng-data  t="3.8" f="0." m="0." cg="392.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1355.rse b/datafiles/thrustcurves/Cesaroni_L1355.rse
new file mode 100644 (file)
index 0000000..c453d1d
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L1355-SS" Type="unspecified" dia="75." len="621." initWt="4962."\r
+propWt="3076." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1238.46"\r
+peakThrust="1750." throatDia="0." exitDia="0." Itot="4025." burn-time="3.25"\r
+massFrac="61.99" Isp="133.43" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3076." cg="310.5"/>\r
+      <eng-data  t="0.1" f="80." m="3072.94" cg="310.5"/>\r
+      <eng-data  t="0.12" f="1300." m="3062.4" cg="310.5"/>\r
+      <eng-data  t="0.15" f="1600." m="3029.15" cg="310.5"/>\r
+      <eng-data  t="0.2" f="1500." m="2969.93" cg="310.5"/>\r
+      <eng-data  t="0.3" f="1540." m="2853.76" cg="310.5"/>\r
+      <eng-data  t="0.4" f="1560." m="2735.31" cg="310.5"/>\r
+      <eng-data  t="1.05" f="1660." m="1935.55" cg="310.5"/>\r
+      <eng-data  t="1.3" f="1750." m="1609.8" cg="310.5"/>\r
+      <eng-data  t="1.4" f="1750." m="1476.06" cg="310.5"/>\r
+      <eng-data  t="1.8" f="1590." m="965.556" cg="310.5"/>\r
+      <eng-data  t="2.2" f="1270." m="528.419" cg="310.5"/>\r
+      <eng-data  t="2.6" f="860." m="202.86" cg="310.5"/>\r
+      <eng-data  t="2.82" f="680." m="73.3999" cg="310.5"/>\r
+      <eng-data  t="3.05" f="83." m="6.34306" cg="310.5"/>\r
+      <eng-data  t="3.25" f="0." m="0." cg="310.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1395.rse b/datafiles/thrustcurves/Cesaroni_L1395.rse
new file mode 100644 (file)
index 0000000..e4fdae1
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L1395-BS" Type="unspecified" dia="75." len="621." initWt="4323."\r
+propWt="2475." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1418.86"\r
+peakThrust="1800." throatDia="0." exitDia="0." Itot="4895.05" burn-time="3.45"\r
+massFrac="57.25" Isp="201.68" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2475." cg="310.5"/>\r
+      <eng-data  t="0.02" f="100." m="2474.49" cg="310.5"/>\r
+      <eng-data  t="0.04" f="1400." m="2466.91" cg="310.5"/>\r
+      <eng-data  t="0.1" f="1800." m="2418.37" cg="310.5"/>\r
+      <eng-data  t="0.2" f="1500." m="2334.95" cg="310.5"/>\r
+      <eng-data  t="0.4" f="1540." m="2181.24" cg="310.5"/>\r
+      <eng-data  t="0.8" f="1591." m="1864.62" cg="310.5"/>\r
+      <eng-data  t="1.1" f="1641." m="1619.5" cg="310.5"/>\r
+      <eng-data  t="2.4" f="1481." m="593.463" cg="310.5"/>\r
+      <eng-data  t="2.8" f="1446." m="297.477" cg="310.5"/>\r
+      <eng-data  t="3." f="1500." m="148.524" cg="310.5"/>\r
+      <eng-data  t="3.18" f="830." m="42.4968" cg="310.5"/>\r
+      <eng-data  t="3.35" f="100." m="2.52806" cg="310.5"/>\r
+      <eng-data  t="3.45" f="0." m="0." cg="310.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1410.rse b/datafiles/thrustcurves/Cesaroni_L1410.rse
new file mode 100644 (file)
index 0000000..aa4fe81
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L1410-SK" Type="reloadable" dia="75." len="757." initWt="5115."\r
+propWt="2875." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1387.36"\r
+peakThrust="1630." throatDia="0." exitDia="0." Itot="4828.02" burn-time="3.48"\r
+massFrac="56.21" Isp="171.24" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2875." cg="378.5"/>\r
+      <eng-data  t="0.04" f="133." m="2873.42" cg="378.5"/>\r
+      <eng-data  t="0.065" f="1200." m="2863.49" cg="378.5"/>\r
+      <eng-data  t="0.077" f="1510." m="2853.81" cg="378.5"/>\r
+      <eng-data  t="0.13" f="1250." m="2810.26" cg="378.5"/>\r
+      <eng-data  t="0.35" f="1400." m="2636.67" cg="378.5"/>\r
+      <eng-data  t="1." f="1530." m="2069.63" cg="378.5"/>\r
+      <eng-data  t="1.5" f="1595." m="1604.41" cg="378.5"/>\r
+      <eng-data  t="2." f="1630." m="1124.3" cg="378.5"/>\r
+      <eng-data  t="2.3" f="1600." m="835.789" cg="378.5"/>\r
+      <eng-data  t="2.6" f="1510." m="557.996" cg="378.5"/>\r
+      <eng-data  t="2.9" f="1350." m="302.535" cg="378.5"/>\r
+      <eng-data  t="3.25" f="1032." m="54.3079" cg="378.5"/>\r
+      <eng-data  t="3.4" f="120." m="2.85831" cg="378.5"/>\r
+      <eng-data  t="3.48" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L1685.rse b/datafiles/thrustcurves/Cesaroni_L1685.rse
new file mode 100644 (file)
index 0000000..3171a96
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L1685-SS" Type="unspecified" dia="75." len="757." initWt="6051."\r
+propWt="3830." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1594.06"\r
+peakThrust="2300." throatDia="0." exitDia="0." Itot="5069.1" burn-time="3.18"\r
+massFrac="63.3" Isp="134.96" tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1."\r
+FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3830." cg="378.5"/>\r
+      <eng-data  t="0.055" f="100." m="3827.92" cg="378.5"/>\r
+      <eng-data  t="0.07" f="1000." m="3821.69" cg="378.5"/>\r
+      <eng-data  t="0.092" f="2300." m="3794.26" cg="378.5"/>\r
+      <eng-data  t="0.12" f="2150." m="3747.19" cg="378.5"/>\r
+      <eng-data  t="0.4" f="2150." m="3292.34" cg="378.5"/>\r
+      <eng-data  t="0.9" f="2050." m="2499.01" cg="378.5"/>\r
+      <eng-data  t="1.1" f="2060." m="2188.47" cg="378.5"/>\r
+      <eng-data  t="1.3" f="2150." m="1870.38" cg="378.5"/>\r
+      <eng-data  t="1.6" f="1900." m="1411.38" cg="378.5"/>\r
+      <eng-data  t="2.1" f="1600." m="750.269" cg="378.5"/>\r
+      <eng-data  t="2.5" f="1150." m="334.712" cg="378.5"/>\r
+      <eng-data  t="2.7" f="1000." m="172.267" cg="378.5"/>\r
+      <eng-data  t="2.85" f="750." m="73.1003" cg="378.5"/>\r
+      <eng-data  t="3.02" f="200." m="12.0889" cg="378.5"/>\r
+      <eng-data  t="3.18" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L585.rse b/datafiles/thrustcurves/Cesaroni_L585.rse
new file mode 100644 (file)
index 0000000..321b9e6
--- /dev/null
@@ -0,0 +1,33 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L585-IM" Type="unspecified" dia="75." len="350." initWt="2784."\r
+propWt="1524." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="580.509"\r
+peakThrust="659." throatDia="0." exitDia="0." Itot="2652.92" burn-time="4.57"\r
+massFrac="54.74" Isp="177.51" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1524." cg="175."/>\r
+      <eng-data  t="0.01" f="200." m="1523.43" cg="175."/>\r
+      <eng-data  t="0.02" f="300." m="1521.99" cg="175."/>\r
+      <eng-data  t="0.04" f="500." m="1517.39" cg="175."/>\r
+      <eng-data  t="0.08" f="630." m="1504.41" cg="175."/>\r
+      <eng-data  t="0.1" f="650." m="1497.06" cg="175."/>\r
+      <eng-data  t="0.25" f="629." m="1441.95" cg="175."/>\r
+      <eng-data  t="0.4" f="639." m="1387.32" cg="175."/>\r
+      <eng-data  t="0.8" f="648." m="1239.46" cg="175."/>\r
+      <eng-data  t="1.2" f="654." m="1089.87" cg="175."/>\r
+      <eng-data  t="1.6" f="659." m="939.013" cg="175."/>\r
+      <eng-data  t="2." f="653." m="788.274" cg="175."/>\r
+      <eng-data  t="2.4" f="640." m="639.719" cg="175."/>\r
+      <eng-data  t="2.8" f="610." m="496.104" cg="175."/>\r
+      <eng-data  t="3.2" f="580." m="359.382" cg="175."/>\r
+      <eng-data  t="3.6" f="550." m="229.554" cg="175."/>\r
+      <eng-data  t="4." f="515." m="107.194" cg="175."/>\r
+      <eng-data  t="4.2" f="510." m="48.3121" cg="175."/>\r
+      <eng-data  t="4.45" f="110." m="3.79144" cg="175."/>\r
+      <eng-data  t="4.57" f="0." m="0." cg="175."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L610.eng b/datafiles/thrustcurves/Cesaroni_L610.eng
new file mode 100644 (file)
index 0000000..5cd2843
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;\r
+L610 98 394 0 2.415 4.975 CTI \r
+0.06 262.5\r
+0.12 667.2\r
+0.25 929.7\r
+0.39 871.21\r
+0.65 849.83\r
+1.05 823.1\r
+1.5 785.69\r
+2 747.3\r
+2.5 707.3\r
+3 667.2\r
+3.48 641.38\r
+4 593.28\r
+4.47 561.21\r
+5 523.79\r
+5.44 502.41\r
+5.68 491.72\r
+6 475.69\r
+6.5 459.66\r
+7.01 443.62\r
+7.5 413.7\r
+8 284.7\r
+8.12 53.3\r
+8.13 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_L640.rse b/datafiles/thrustcurves/Cesaroni_L640.rse
new file mode 100644 (file)
index 0000000..e37cc2e
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L640-DT" Type="reloadable" dia="54." len="649." initWt="2244."\r
+propWt="1293." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="554.444"\r
+peakThrust="1540." throatDia="0." exitDia="0." Itot="2772.22" burn-time="5."\r
+massFrac="57.62" Isp="218.63" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Classic Propellant, Dual-Thrust core</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1293." cg="324.5"/>\r
+      <eng-data  t="0.02" f="1200." m="1287.4" cg="324.5"/>\r
+      <eng-data  t="0.034" f="1540." m="1278.46" cg="324.5"/>\r
+      <eng-data  t="0.07" f="1300." m="1254.61" cg="324.5"/>\r
+      <eng-data  t="0.15" f="1460." m="1203.12" cg="324.5"/>\r
+      <eng-data  t="0.35" f="1510." m="1064.6" cg="324.5"/>\r
+      <eng-data  t="0.65" f="1540." m="851.213" cg="324.5"/>\r
+      <eng-data  t="0.7" f="1510." m="815.649" cg="324.5"/>\r
+      <eng-data  t="0.79" f="800." m="767.166" cg="324.5"/>\r
+      <eng-data  t="0.86" f="570.25" m="744.797" cg="324.5"/>\r
+      <eng-data  t="3.26" f="518." m="135.708" cg="324.5"/>\r
+      <eng-data  t="3.55" f="330." m="78.3575" cg="324.5"/>\r
+      <eng-data  t="3.65" f="318." m="63.2457" cg="324.5"/>\r
+      <eng-data  t="4.15" f="102." m="14.2723" cg="324.5"/>\r
+      <eng-data  t="4.5" f="30." m="3.4981" cg="324.5"/>\r
+      <eng-data  t="5." f="0." m="0." cg="324.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L730.eng b/datafiles/thrustcurves/Cesaroni_L730.eng
new file mode 100644 (file)
index 0000000..33f1245
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;\r
+L730  54.0 649.00 0 1.35100 2.24700 CTI\r
+   0.00      81.36 \r
+   0.01    1079.71 \r
+   0.02    1216.59 \r
+   0.04    1154.68 \r
+   0.20    1127.51 \r
+   0.45    1055.11 \r
+   0.60    1028.17 \r
+   0.75     995.24 \r
+   1.00     959.33 \r
+   1.50     898.71 \r
+   2.00     830.70 \r
+   2.50     730.76 \r
+   2.60     592.55 \r
+   2.70     510.96 \r
+   2.90     487.88 \r
+   3.00     405.72 \r
+   3.10     299.80 \r
+   3.20     296.09 \r
+   3.30     251.85 \r
+   3.40     171.70 \r
+   3.50     165.26 \r
+   3.60     139.38 \r
+   3.65     117.77 \r
+   3.77      45.38 \r
+   3.77       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_L800.eng b/datafiles/thrustcurves/Cesaroni_L800.eng
new file mode 100644 (file)
index 0000000..9795533
--- /dev/null
@@ -0,0 +1,24 @@
+;\r
+;   Cesaroni Pro75 3757L800\r
+;         'Classic Propellant'\r
+;\r
+;      RockSim file by Kathy Miller\r
+;          wRasp Adaptation by Len Lekx\r
+;\r
+L800   75      486     0       1.79    3.51    CTI\r
+0.10    1023.50 \r
+0.20    1005.70 \r
+0.30    1023.50 \r
+0.50    1014.60 \r
+1.00    1010.15 \r
+1.50    1001.25 \r
+2.00     956.75 \r
+2.40     890.00 \r
+2.50     845.50 \r
+3.00     756.50 \r
+3.50     689.75 \r
+3.70     667.50 \r
+3.90     654.15 \r
+4.00     623.00 \r
+4.60     111.25 \r
+4.67       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_L800_1.eng b/datafiles/thrustcurves/Cesaroni_L800_1.eng
new file mode 100644 (file)
index 0000000..0ed5737
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;\r
+L800  75.0 486.00 0 1.79500 3.51100 CTI\r
+   0.00      27.28 \r
+   0.01     402.41 \r
+   0.01    1285.54 \r
+   0.12    1056.51 \r
+   0.26    1041.73 \r
+   0.71    1026.95 \r
+   1.28     998.38 \r
+   2.05     901.36 \r
+   2.41     849.64 \r
+   2.83     763.51 \r
+   3.25     707.06 \r
+   3.65     655.14 \r
+   3.80     651.74 \r
+   4.00     624.07 \r
+   4.10     601.34 \r
+   4.19     536.17 \r
+   4.31     415.67 \r
+   4.41     270.17 \r
+   4.52     140.20 \r
+   4.60      76.92 \r
+   4.65      54.94 \r
+   4.67      40.16 \r
+   5.00       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_L820.eng b/datafiles/thrustcurves/Cesaroni_L820.eng
new file mode 100644 (file)
index 0000000..5186b08
--- /dev/null
@@ -0,0 +1,33 @@
+; Pro-75-3G Skidmark Plugged\r
+2946-L820-SK-P 75 486 P 1.76 3.42 CTI\r
+   0.026 497.361\r
+   0.038 662.269\r
+   0.058 738.786\r
+   0.079 750.66\r
+   0.114 721.636\r
+   0.152 697.889\r
+   0.213 679.42\r
+   0.377 718.997\r
+   0.547 754.617\r
+   0.743 792.876\r
+   0.962 839.05\r
+   1.067 860.158\r
+   1.629 957.784\r
+   1.81 957.784\r
+   2.044 941.953\r
+   2.249 923.483\r
+   2.462 902.375\r
+   2.994 808.707\r
+   3.064 816.623\r
+   3.149 794.195\r
+   3.213 800.792\r
+   3.266 831.135\r
+   3.339 866.755\r
+   3.386 832.454\r
+   3.415 725.594\r
+   3.509 221.636\r
+   3.526 141.161\r
+   3.591 47.493\r
+   3.632 27.704\r
+   3.699 6.596\r
+   3.801 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_L820.rse b/datafiles/thrustcurves/Cesaroni_L820.rse
new file mode 100644 (file)
index 0000000..f64da31
--- /dev/null
@@ -0,0 +1,46 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="2946-L820-SK-P" Type="reloadable" dia="75." len="486."\r
+initWt="3420." propWt="1760." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="774.92" peakThrust="957.784" throatDia="0." exitDia="0."\r
+Itot="2945.47" burn-time="3.8" massFrac="51.46" Isp="170.66" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-75-3G Skidmark Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1760." cg="243."/>\r
+      <eng-data  t="0.026" f="497.361" m="1756.14" cg="243."/>\r
+      <eng-data  t="0.038" f="662.269" m="1751.98" cg="243."/>\r
+      <eng-data  t="0.058" f="738.786" m="1743.61" cg="243."/>\r
+      <eng-data  t="0.079" f="750.66" m="1734.26" cg="243."/>\r
+      <eng-data  t="0.114" f="721.636" m="1718.87" cg="243."/>\r
+      <eng-data  t="0.152" f="697.889" m="1702.75" cg="243."/>\r
+      <eng-data  t="0.213" f="679.42" m="1677.65" cg="243."/>\r
+      <eng-data  t="0.377" f="718.997" m="1609.13" cg="243."/>\r
+      <eng-data  t="0.547" f="754.617" m="1534.29" cg="243."/>\r
+      <eng-data  t="0.743" f="792.876" m="1443.67" cg="243."/>\r
+      <eng-data  t="0.962" f="839.05" m="1336.89" cg="243."/>\r
+      <eng-data  t="1.067" f="860.158" m="1283.59" cg="243."/>\r
+      <eng-data  t="1.629" f="957.784" m="978.348" cg="243."/>\r
+      <eng-data  t="1.81" f="957.784" m="874.761" cg="243."/>\r
+      <eng-data  t="2.044" f="941.953" m="741.949" cg="243."/>\r
+      <eng-data  t="2.249" f="923.483" m="627.697" cg="243."/>\r
+      <eng-data  t="2.462" f="902.375" m="511.506" cg="243."/>\r
+      <eng-data  t="2.994" f="808.707" m="239.543" cg="243."/>\r
+      <eng-data  t="3.064" f="816.623" m="205.551" cg="243."/>\r
+      <eng-data  t="3.149" f="794.195" m="164.645" cg="243."/>\r
+      <eng-data  t="3.213" f="800.792" m="134.147" cg="243."/>\r
+      <eng-data  t="3.266" f="831.135" m="108.307" cg="243."/>\r
+      <eng-data  t="3.339" f="866.755" m="71.276" cg="243."/>\r
+      <eng-data  t="3.386" f="832.454" m="47.4159" cg="243."/>\r
+      <eng-data  t="3.415" f="725.594" m="33.9167" cg="243."/>\r
+      <eng-data  t="3.509" f="221.636" m="7.31494" cg="243."/>\r
+      <eng-data  t="3.526" f="141.161" m="5.4723" cg="243."/>\r
+      <eng-data  t="3.591" f="47.493" m="1.80871" cg="243."/>\r
+      <eng-data  t="3.632" f="27.704" m="0.887595" cg="243."/>\r
+      <eng-data  t="3.699" f="6.596" m="0.201006" cg="243."/>\r
+      <eng-data  t="3.801" f="0." m="0." cg="243."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L890.eng b/datafiles/thrustcurves/Cesaroni_L890.eng
new file mode 100644 (file)
index 0000000..5289d09
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+L890SS 75 530 1000 2.671 4.346 Cesaroni\r
+0 20\r
+0.05 1151.8\r
+0.41 1054.34\r
+0.83 1045.48\r
+1.24 1036.62\r
+1.65 1027.76\r
+2.07 1018.9\r
+2.89 886\r
+3.31 775.25\r
+3.72 664.5\r
+3.98 177.2\r
+4.13 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_L935.rse b/datafiles/thrustcurves/Cesaroni_L935.rse
new file mode 100644 (file)
index 0000000..40ecc68
--- /dev/null
@@ -0,0 +1,24 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L935-IM" Type="unspecified" dia="54." len="649." initWt="2542."\r
+propWt="1734.7" delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="932.258" peakThrust="1582.74" throatDia="0." exitDia="0."\r
+Itot="3076.45" burn-time="3.3" massFrac="68.24" Isp="180.84" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro54-6GXL 3147L935-IM P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1734.7" cg="324.5"/>\r
+      <eng-data  t="0.012" f="1582.74" m="1729.35" cg="324.5"/>\r
+      <eng-data  t="0.052" f="1365.5" m="1696.1" cg="324.5"/>\r
+      <eng-data  t="0.159" f="1278.04" m="1616.35" cg="324.5"/>\r
+      <eng-data  t="2.198" f="990.27" m="312.392" cg="324.5"/>\r
+      <eng-data  t="2.514" f="719.427" m="160.074" cg="324.5"/>\r
+      <eng-data  t="3.021" f="239.809" m="22.9611" cg="324.5"/>\r
+      <eng-data  t="3.104" f="160.813" m="13.5864" cg="324.5"/>\r
+      <eng-data  t="3.273" f="107.209" m="0.816092" cg="324.5"/>\r
+      <eng-data  t="3.3" f="0." m="0." cg="324.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L990.rse b/datafiles/thrustcurves/Cesaroni_L990.rse
new file mode 100644 (file)
index 0000000..b3cc7aa
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L990-BS" Type="unspecified" dia="54." len="649." initWt="2236."\r
+propWt="1417." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="953.34"\r
+peakThrust="1625." throatDia="0." exitDia="0." Itot="2764.69" burn-time="2.9"\r
+massFrac="63.37" Isp="198.96" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1417." cg="324.5"/>\r
+      <eng-data  t="0.01" f="800." m="1414.95" cg="324.5"/>\r
+      <eng-data  t="0.012" f="1450." m="1413.8" cg="324.5"/>\r
+      <eng-data  t="0.02" f="1625." m="1407.49" cg="324.5"/>\r
+      <eng-data  t="0.05" f="1320." m="1384.85" cg="324.5"/>\r
+      <eng-data  t="0.15" f="1230." m="1319.5" cg="324.5"/>\r
+      <eng-data  t="1.8" f="1150." m="313.139" cg="324.5"/>\r
+      <eng-data  t="1.88" f="1105." m="266.908" cg="324.5"/>\r
+      <eng-data  t="2." f="845." m="206.941" cg="324.5"/>\r
+      <eng-data  t="2.203" f="825." m="120.064" cg="324.5"/>\r
+      <eng-data  t="2.41" f="355." m="57.4681" cg="324.5"/>\r
+      <eng-data  t="2.6" f="320." m="24.6017" cg="324.5"/>\r
+      <eng-data  t="2.9" f="0." m="0." cg="324.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_L995.rse b/datafiles/thrustcurves/Cesaroni_L995.rse
new file mode 100644 (file)
index 0000000..50a4397
--- /dev/null
@@ -0,0 +1,27 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="L995-RL" Type="unspecified" dia="75." len="486." initWt="3591."\r
+propWt="1996." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="952.1"\r
+peakThrust="1280." throatDia="0." exitDia="0." Itot="3617.98" burn-time="3.8"\r
+massFrac="55.58" Isp="184.84" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="1996." cg="243."/>\r
+      <eng-data  t="0.02" f="50." m="1995.72" cg="243."/>\r
+      <eng-data  t="0.05" f="200." m="1993.66" cg="243."/>\r
+      <eng-data  t="0.09" f="1110." m="1979.2" cg="243."/>\r
+      <eng-data  t="0.14" f="1250." m="1946.65" cg="243."/>\r
+      <eng-data  t="0.25" f="1211." m="1871.98" cg="243."/>\r
+      <eng-data  t="0.9" f="1220." m="1436.1" cg="243."/>\r
+      <eng-data  t="1.2" f="1280." m="1229.22" cg="243."/>\r
+      <eng-data  t="1.4" f="1245." m="1089.92" cg="243."/>\r
+      <eng-data  t="2.4" f="940." m="487.197" cg="243."/>\r
+      <eng-data  t="3.1" f="745." m="161.838" cg="243."/>\r
+      <eng-data  t="3.32" f="740." m="71.7196" cg="243."/>\r
+      <eng-data  t="3.6" f="110." m="6.06858" cg="243."/>\r
+      <eng-data  t="3.8" f="0." m="0." cg="243."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1230.rse b/datafiles/thrustcurves/Cesaroni_M1230.rse
new file mode 100644 (file)
index 0000000..afb16f7
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1230-IM" Type="unspecified" dia="75." len="621." initWt="4844."\r
+propWt="2992." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1169.95"\r
+peakThrust="1507.12" throatDia="0." exitDia="0." Itot="5498.75" burn-time="4.7"\r
+massFrac="61.77" Isp="187.41" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-4G 5506M1230-IM P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2992." cg="310.5"/>\r
+      <eng-data  t="0.117" f="270.318" m="2983.4" cg="310.5"/>\r
+      <eng-data  t="0.144" f="912.788" m="2974.7" cg="310.5"/>\r
+      <eng-data  t="0.212" f="1296.05" m="2933.84" cg="310.5"/>\r
+      <eng-data  t="0.408" f="1444.17" m="2787.72" cg="310.5"/>\r
+      <eng-data  t="1.087" f="1497.86" m="2244.24" cg="310.5"/>\r
+      <eng-data  t="1.767" f="1507.12" m="1688.31" cg="310.5"/>\r
+      <eng-data  t="2.403" f="1434.91" m="1179.25" cg="310.5"/>\r
+      <eng-data  t="2.949" f="1314.56" m="770.829" cg="310.5"/>\r
+      <eng-data  t="3.352" f="1209.03" m="494.141" cg="310.5"/>\r
+      <eng-data  t="3.648" f="1118.3" m="306.72" cg="310.5"/>\r
+      <eng-data  t="3.909" f="868.352" m="165.651" cg="310.5"/>\r
+      <eng-data  t="4.409" f="201.813" m="20.0758" cg="310.5"/>\r
+      <eng-data  t="4.586" f="111.09" m="5.00799" cg="310.5"/>\r
+      <eng-data  t="4.67" f="79.614" m="0.649798" cg="310.5"/>\r
+      <eng-data  t="4.7" f="0." m="0." cg="310.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1300.rse b/datafiles/thrustcurves/Cesaroni_M1300.rse
new file mode 100644 (file)
index 0000000..3a1f36c
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1300-IM" Type="unspecified" dia="75." len="757." initWt="5657."\r
+propWt="3595." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1310.13"\r
+peakThrust="2827.13" throatDia="0." exitDia="0." Itot="6420.95" burn-time="4.9"\r
+massFrac="63.55" Isp="182.13" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-5G 6438M1300-IM/DT P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3595." cg="378.5"/>\r
+      <eng-data  t="0.009" f="394.105" m="3594.01" cg="378.5"/>\r
+      <eng-data  t="0.057" f="934.778" m="3576.15" cg="378.5"/>\r
+      <eng-data  t="0.086" f="2146.41" m="3551.14" cg="378.5"/>\r
+      <eng-data  t="0.154" f="2615.42" m="3460.49" cg="378.5"/>\r
+      <eng-data  t="0.314" f="2827.13" m="3216.71" cg="378.5"/>\r
+      <eng-data  t="0.671" f="2758.73" m="2658.46" cg="378.5"/>\r
+      <eng-data  t="0.97" f="2752.22" m="2197.18" cg="378.5"/>\r
+      <eng-data  t="1.082" f="1172.54" m="2074.13" cg="378.5"/>\r
+      <eng-data  t="1.187" f="1120.43" m="2006.73" cg="378.5"/>\r
+      <eng-data  t="2.14" f="1172.54" m="1394.99" cg="378.5"/>\r
+      <eng-data  t="2.7" f="1139.97" m="1032.46" cg="378.5"/>\r
+      <eng-data  t="3.884" f="915.235" m="351.261" cg="378.5"/>\r
+      <eng-data  t="4.372" f="771.924" m="120.775" cg="378.5"/>\r
+      <eng-data  t="4.6" f="400.619" m="45.9352" cg="378.5"/>\r
+      <eng-data  t="4.697" f="335.478" m="25.9469" cg="378.5"/>\r
+      <eng-data  t="4.9" f="120.511" m="0.0337362" cg="378.5"/>\r
+      <eng-data  t="4.901" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1400.eng b/datafiles/thrustcurves/Cesaroni_M1400.eng
new file mode 100644 (file)
index 0000000..fee66b9
--- /dev/null
@@ -0,0 +1,22 @@
+;\r
+;   Cesaroni Pro75 6251M1400\r
+;         'Classic Propellant'\r
+;\r
+;      RockSim file by Kathy Miller\r
+;          wRasp Adaptation by Len Lekx\r
+;\r
+M1400  75      757     0       2.99    5.30    CTI\r
+0.10    1993.60 \r
+0.50    1891.25 \r
+1.10    1780.00 \r
+1.50    1691.00 \r
+2.00    1602.00 \r
+2.30    1557.50 \r
+2.50    1513.00 \r
+3.00    1335.00 \r
+3.50    1223.75 \r
+3.70    1112.00 \r
+3.90     667.50 \r
+4.00     534.00 \r
+4.40     222.50 \r
+4.47       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_M1520.rse b/datafiles/thrustcurves/Cesaroni_M1520.rse
new file mode 100644 (file)
index 0000000..4ea0194
--- /dev/null
@@ -0,0 +1,26 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1520-BS" Type="unspecified" dia="98." len="548." initWt="6718."\r
+propWt="3737." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1547.7"\r
+peakThrust="1827.11" throatDia="0." exitDia="0." Itot="7579.08" burn-time="4.9"\r
+massFrac="55.63" Isp="206.81" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro98-3G 7579M1520-BS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3737." cg="274."/>\r
+      <eng-data  t="0.04" f="1427.8" m="3722.92" cg="274."/>\r
+      <eng-data  t="0.082" f="1706.39" m="3690.47" cg="274."/>\r
+      <eng-data  t="0.176" f="1620.49" m="3613.37" cg="274."/>\r
+      <eng-data  t="0.748" f="1734.25" m="3140.29" cg="274."/>\r
+      <eng-data  t="1.652" f="1827.11" m="2346.58" cg="274."/>\r
+      <eng-data  t="2.676" f="1715.68" m="1452.21" cg="274."/>\r
+      <eng-data  t="3.89" f="1423.15" m="512.779" cg="274."/>\r
+      <eng-data  t="4.399" f="1404.58" m="157.939" cg="274."/>\r
+      <eng-data  t="4.616" f="661.661" m="47.3998" cg="274."/>\r
+      <eng-data  t="4.877" f="69.649" m="0.343417" cg="274."/>\r
+      <eng-data  t="4.897" f="0." m="0." cg="274."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1540.rse b/datafiles/thrustcurves/Cesaroni_M1540.rse
new file mode 100644 (file)
index 0000000..77a72cd
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1540-IM" Type="unspecified" dia="75." len="757." initWt="5906."\r
+propWt="3778." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1515.33"\r
+peakThrust="2400." throatDia="0." exitDia="0." Itot="6819." burn-time="4.5"\r
+massFrac="63.97" Isp="184.05" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3778." cg="378.5"/>\r
+      <eng-data  t="0.02" f="800." m="3773.57" cg="378.5"/>\r
+      <eng-data  t="0.04" f="1250." m="3762.21" cg="378.5"/>\r
+      <eng-data  t="0.06" f="1800." m="3745.31" cg="378.5"/>\r
+      <eng-data  t="0.08" f="2400." m="3722.04" cg="378.5"/>\r
+      <eng-data  t="0.15" f="2060." m="3635.56" cg="378.5"/>\r
+      <eng-data  t="0.2" f="2000." m="3579.32" cg="378.5"/>\r
+      <eng-data  t="0.35" f="2100." m="3408.95" cg="378.5"/>\r
+      <eng-data  t="0.55" f="1940." m="3185.12" cg="378.5"/>\r
+      <eng-data  t="0.7" f="1900." m="3025.56" cg="378.5"/>\r
+      <eng-data  t="1.7" f="1830." m="1992.27" cg="378.5"/>\r
+      <eng-data  t="2.5" f="1720." m="1205.54" cg="378.5"/>\r
+      <eng-data  t="3.38" f="1550." m="408.383" cg="378.5"/>\r
+      <eng-data  t="3.83" f="680." m="130.393" cg="378.5"/>\r
+      <eng-data  t="4." f="530." m="73.4103" cg="378.5"/>\r
+      <eng-data  t="4.5" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1545.eng b/datafiles/thrustcurves/Cesaroni_M1545.eng
new file mode 100644 (file)
index 0000000..7f29020
--- /dev/null
@@ -0,0 +1,34 @@
+; Pro-75-6GXL Green3 Plugged\r
+8187-M1545-GR-P 75 1025 P 4.835 7.8783 CTI\r
+   0.038 1517.15\r
+   0.063 1076.517\r
+   0.068 1282.322\r
+   0.076 1509.235\r
+   0.144 1741.425\r
+   0.207 1765.172\r
+   0.334 1749.34\r
+   0.537 1791.557\r
+   0.753 1794.195\r
+   1.053 1775.726\r
+   1.383 1788.918\r
+   1.704 1820.58\r
+   1.856 1828.496\r
+   2.013 1799.472\r
+   2.601 1686.016\r
+   2.905 1641.161\r
+   3.188 1617.414\r
+   3.472 1598.945\r
+   3.738 1583.113\r
+   3.958 1564.644\r
+   4.14 1543.536\r
+   4.216 1543.536\r
+   4.33 1482.85\r
+   4.453 1358.839\r
+   4.55 1187.335\r
+   4.723 1052.77\r
+   4.876 891.821\r
+   4.969 783.641\r
+   5.028 643.799\r
+   5.231 184.697\r
+   5.303 68.602\r
+   5.396 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1545.rse b/datafiles/thrustcurves/Cesaroni_M1545.rse
new file mode 100644 (file)
index 0000000..e9e470f
--- /dev/null
@@ -0,0 +1,47 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="8187-M1545-GR-P" Type="reloadable" dia="75." len="1025."\r
+initWt="7878.3" propWt="4835." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1516.28" peakThrust="1828.5" throatDia="0." exitDia="0."\r
+Itot="8181.83" burn-time="5.4" massFrac="61.37" Isp="172.56" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-75-6GXL Green3 Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4835." cg="512.5"/>\r
+      <eng-data  t="0.038" f="1517.15" m="4817.97" cg="512.5"/>\r
+      <eng-data  t="0.063" f="1076.52" m="4798.81" cg="512.5"/>\r
+      <eng-data  t="0.068" f="1282.32" m="4795.32" cg="512.5"/>\r
+      <eng-data  t="0.076" f="1509.23" m="4788.72" cg="512.5"/>\r
+      <eng-data  t="0.144" f="1741.42" m="4723.41" cg="512.5"/>\r
+      <eng-data  t="0.207" f="1765.17" m="4658.14" cg="512.5"/>\r
+      <eng-data  t="0.334" f="1749.34" m="4526.25" cg="512.5"/>\r
+      <eng-data  t="0.537" f="1791.56" m="4313.87" cg="512.5"/>\r
+      <eng-data  t="0.753" f="1794.19" m="4085.02" cg="512.5"/>\r
+      <eng-data  t="1.053" f="1775.73" m="3768.58" cg="512.5"/>\r
+      <eng-data  t="1.383" f="1788.92" m="3421." cg="512.5"/>\r
+      <eng-data  t="1.704" f="1820.58" m="3078.66" cg="512.5"/>\r
+      <eng-data  t="1.856" f="1828.5" m="2914.77" cg="512.5"/>\r
+      <eng-data  t="2.013" f="1799.47" m="2746.47" cg="512.5"/>\r
+      <eng-data  t="2.601" f="1686.02" m="2140.91" cg="512.5"/>\r
+      <eng-data  t="2.905" f="1641.16" m="1842.05" cg="512.5"/>\r
+      <eng-data  t="3.188" f="1617.41" m="1569.58" cg="512.5"/>\r
+      <eng-data  t="3.472" f="1598.94" m="1299.68" cg="512.5"/>\r
+      <eng-data  t="3.738" f="1583.11" m="1049.58" cg="512.5"/>\r
+      <eng-data  t="3.958" f="1564.64" m="844.967" cg="512.5"/>\r
+      <eng-data  t="4.14" f="1543.54" m="677.822" cg="512.5"/>\r
+      <eng-data  t="4.216" f="1543.54" m="608.499" cg="512.5"/>\r
+      <eng-data  t="4.33" f="1482.85" m="506.559" cg="512.5"/>\r
+      <eng-data  t="4.453" f="1358.84" m="403.283" cg="512.5"/>\r
+      <eng-data  t="4.55" f="1187.34" m="330.308" cg="512.5"/>\r
+      <eng-data  t="4.723" f="1052.77" m="215.801" cg="512.5"/>\r
+      <eng-data  t="4.876" f="891.821" m="127.892" cg="512.5"/>\r
+      <eng-data  t="4.969" f="783.641" m="81.8519" cg="512.5"/>\r
+      <eng-data  t="5.028" f="643.799" m="56.9676" cg="512.5"/>\r
+      <eng-data  t="5.231" f="184.697" m="7.27378" cg="512.5"/>\r
+      <eng-data  t="5.303" f="68.602" m="1.88511" cg="512.5"/>\r
+      <eng-data  t="5.396" f="0." m="0." cg="512.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1560.rse b/datafiles/thrustcurves/Cesaroni_M1560.rse
new file mode 100644 (file)
index 0000000..37190ce
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1560-WT" Type="unspecified" dia="98." len="394." initWt="4977."\r
+propWt="2583." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1520.65"\r
+peakThrust="1807.97" throatDia="0." exitDia="0." Itot="5322.28" burn-time="3.5"\r
+massFrac="51.9" Isp="210.11" tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1."\r
+FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro98-2G 5342M1560-WT P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2583." cg="197."/>\r
+      <eng-data  t="0.037" f="1474.12" m="2569.76" cg="197."/>\r
+      <eng-data  t="0.121" f="1436.5" m="2510.44" cg="197."/>\r
+      <eng-data  t="0.328" f="1523.49" m="2361.75" cg="197."/>\r
+      <eng-data  t="1.299" f="1775.06" m="1584.54" cg="197."/>\r
+      <eng-data  t="1.545" f="1807.97" m="1370.66" cg="197."/>\r
+      <eng-data  t="1.797" f="1807.97" m="1149.54" cg="197."/>\r
+      <eng-data  t="1.998" f="1786.81" m="974.21" cg="197."/>\r
+      <eng-data  t="2.208" f="1737.44" m="794.62" cg="197."/>\r
+      <eng-data  t="2.462" f="1572.86" m="590.588" cg="197."/>\r
+      <eng-data  t="2.782" f="1415.34" m="358.551" cg="197."/>\r
+      <eng-data  t="3.086" f="1309.55" m="157.54" cg="197."/>\r
+      <eng-data  t="3.213" f="1290.74" m="77.4054" cg="197."/>\r
+      <eng-data  t="3.258" f="1309.55" m="49.0112" cg="197."/>\r
+      <eng-data  t="3.328" f="679.459" m="15.2257" cg="197."/>\r
+      <eng-data  t="3.383" f="173.979" m="3.83553" cg="197."/>\r
+      <eng-data  t="3.428" f="68.181" m="1.19122" cg="197."/>\r
+      <eng-data  t="3.5" f="0." m="0." cg="197."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1590.rse b/datafiles/thrustcurves/Cesaroni_M1590.rse
new file mode 100644 (file)
index 0000000..5149f7b
--- /dev/null
@@ -0,0 +1,34 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1590-CL" Type="unspecified" dia="75." len="893." initWt="5223."\r
+propWt="3159." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1574.92"\r
+peakThrust="2302.94" throatDia="0." exitDia="0." Itot="7559.63" burn-time="4.8"\r
+massFrac="60.48" Isp="244.02" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-6G 7545M1590-CL P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3159." cg="446.5"/>\r
+      <eng-data  t="0.028" f="1210.59" m="3151.92" cg="446.5"/>\r
+      <eng-data  t="0.059" f="2024.22" m="3130.97" cg="446.5"/>\r
+      <eng-data  t="0.163" f="2235.37" m="3038.41" cg="446.5"/>\r
+      <eng-data  t="0.214" f="2302.94" m="2990.05" cg="446.5"/>\r
+      <eng-data  t="0.492" f="2153.73" m="2731.18" cg="446.5"/>\r
+      <eng-data  t="0.767" f="2091.79" m="2487.24" cg="446.5"/>\r
+      <eng-data  t="1.015" f="2103.05" m="2269.88" cg="446.5"/>\r
+      <eng-data  t="1.335" f="2083.34" m="1989.97" cg="446.5"/>\r
+      <eng-data  t="1.571" f="2029.85" m="1787.15" cg="446.5"/>\r
+      <eng-data  t="2.366" f="1779.29" m="1154.43" cg="446.5"/>\r
+      <eng-data  t="3.488" f="1534.35" m="377.615" cg="446.5"/>\r
+      <eng-data  t="3.755" f="1030.41" m="234.536" cg="446.5"/>\r
+      <eng-data  t="3.895" f="960.027" m="176.312" cg="446.5"/>\r
+      <eng-data  t="4.12" f="650.341" m="100.607" cg="446.5"/>\r
+      <eng-data  t="4.207" f="591.219" m="78.0384" cg="446.5"/>\r
+      <eng-data  t="4.44" f="340.655" m="32.6722" cg="446.5"/>\r
+      <eng-data  t="4.665" f="199.888" m="7.26055" cg="446.5"/>\r
+      <eng-data  t="4.778" f="90.091" m="0.414117" cg="446.5"/>\r
+      <eng-data  t="4.8" f="0." m="0." cg="446.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1630.rse b/datafiles/thrustcurves/Cesaroni_M1630.rse
new file mode 100644 (file)
index 0000000..40587d7
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1630-TT" Type="unspecified" dia="75." len="1039."\r
+initWt="7237." propWt="4349." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1666.9" peakThrust="3368.28" throatDia="0." exitDia="0." Itot="8167.8"\r
+burn-time="4.9" massFrac="60.09" Isp="191.51" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>AMW75-7600 8212M1630-TT/DT P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4349." cg="519.5"/>\r
+      <eng-data  t="0.003" f="147.481" m="4348.88" cg="519.5"/>\r
+      <eng-data  t="0.032" f="2040.95" m="4331.99" cg="519.5"/>\r
+      <eng-data  t="0.078" f="3235.07" m="4267.37" cg="519.5"/>\r
+      <eng-data  t="0.158" f="3368.28" m="4126.73" cg="519.5"/>\r
+      <eng-data  t="0.463" f="3258.86" m="3588.61" cg="519.5"/>\r
+      <eng-data  t="0.647" f="2992.44" m="3282.39" cg="519.5"/>\r
+      <eng-data  t="0.949" f="2697.48" m="2824.91" cg="519.5"/>\r
+      <eng-data  t="1.052" f="2040.95" m="2694.98" cg="519.5"/>\r
+      <eng-data  t="1.101" f="1883.95" m="2643.78" cg="519.5"/>\r
+      <eng-data  t="1.392" f="1907.74" m="2350.02" cg="519.5"/>\r
+      <eng-data  t="1.786" f="1812.59" m="1959.78" cg="519.5"/>\r
+      <eng-data  t="3.6" f="1327.33" m="443.396" cg="519.5"/>\r
+      <eng-data  t="3.899" f="875.372" m="268.056" cg="519.5"/>\r
+      <eng-data  t="4.595" f="347.294" m="41.5017" cg="519.5"/>\r
+      <eng-data  t="4.857" f="195.056" m="3.67179" cg="519.5"/>\r
+      <eng-data  t="4.891" f="166.511" m="0.39897" cg="519.5"/>\r
+      <eng-data  t="4.9" f="0." m="0." cg="519.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1670.rse b/datafiles/thrustcurves/Cesaroni_M1670.rse
new file mode 100644 (file)
index 0000000..436d11e
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1670-BS" Type="unspecified" dia="75." len="757." initWt="5231."\r
+propWt="3101." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1545.22"\r
+peakThrust="2200." throatDia="0." exitDia="0." Itot="6026.35" burn-time="3.9"\r
+massFrac="59.28" Isp="198.17" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3101." cg="378.5"/>\r
+      <eng-data  t="0.055" f="100." m="3099.58" cg="378.5"/>\r
+      <eng-data  t="0.092" f="1500." m="3084.35" cg="378.5"/>\r
+      <eng-data  t="0.1" f="2000." m="3077.15" cg="378.5"/>\r
+      <eng-data  t="0.15" f="2200." m="3023.12" cg="378.5"/>\r
+      <eng-data  t="0.2" f="1800." m="2971.66" cg="378.5"/>\r
+      <eng-data  t="0.5" f="1950." m="2682.21" cg="378.5"/>\r
+      <eng-data  t="1." f="2034." m="2169.7" cg="378.5"/>\r
+      <eng-data  t="1.5" f="2000." m="1650.75" cg="378.5"/>\r
+      <eng-data  t="2." f="1900." m="1149.04" cg="378.5"/>\r
+      <eng-data  t="2.5" f="1760." m="678.208" cg="378.5"/>\r
+      <eng-data  t="2.9" f="1700." m="322.123" cg="378.5"/>\r
+      <eng-data  t="3." f="1650." m="235.932" cg="378.5"/>\r
+      <eng-data  t="3.3" f="530." m="67.6664" cg="378.5"/>\r
+      <eng-data  t="3.4" f="350." m="45.0252" cg="378.5"/>\r
+      <eng-data  t="3.9" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1675.rse b/datafiles/thrustcurves/Cesaroni_M1675.rse
new file mode 100644 (file)
index 0000000..8bbd5fe
--- /dev/null
@@ -0,0 +1,33 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1675-PK" Type="unspecified" dia="75." len="757." initWt="5223."\r
+propWt="3159." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1634.86"\r
+peakThrust="2073." throatDia="0." exitDia="0." Itot="6205.94" burn-time="3.8"\r
+massFrac="60.48" Isp="200.33" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-5G 6162M1675-PK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3159." cg="378.5"/>\r
+      <eng-data  t="0.04" f="1350.52" m="3145.25" cg="378.5"/>\r
+      <eng-data  t="0.077" f="1718.85" m="3116.35" cg="378.5"/>\r
+      <eng-data  t="0.166" f="1877.04" m="3034.89" cg="378.5"/>\r
+      <eng-data  t="0.307" f="2011.62" m="2895.34" cg="378.5"/>\r
+      <eng-data  t="0.49" f="2028.14" m="2707.19" cg="378.5"/>\r
+      <eng-data  t="0.616" f="2028.14" m="2577.11" cg="378.5"/>\r
+      <eng-data  t="1.018" f="2073." m="2157.5" cg="378.5"/>\r
+      <eng-data  t="1.594" f="1992.73" m="1561.46" cg="378.5"/>\r
+      <eng-data  t="2.246" f="1860.51" m="922.043" cg="378.5"/>\r
+      <eng-data  t="2.762" f="1754.26" m="447.318" cg="378.5"/>\r
+      <eng-data  t="2.908" f="1737.73" m="317.558" cg="378.5"/>\r
+      <eng-data  t="3.023" f="1563.02" m="220.948" cg="378.5"/>\r
+      <eng-data  t="3.206" f="909.005" m="105.811" cg="378.5"/>\r
+      <eng-data  t="3.409" f="377.768" m="39.3279" cg="378.5"/>\r
+      <eng-data  t="3.493" f="278.604" m="25.2952" cg="378.5"/>\r
+      <eng-data  t="3.577" f="259.716" m="13.7863" cg="378.5"/>\r
+      <eng-data  t="3.69" f="113.33" m="3.05748" cg="378.5"/>\r
+      <eng-data  t="3.796" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1790.rse b/datafiles/thrustcurves/Cesaroni_M1790.rse
new file mode 100644 (file)
index 0000000..510bb2e
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1790-SK" Type="unspecified" dia="98." len="702." initWt="8298."\r
+propWt="4817." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1760.07"\r
+peakThrust="2021.92" throatDia="0." exitDia="0." Itot="8091.03" burn-time="4.6"\r
+massFrac="58.05" Isp="171.28" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro98-4G 8088M1790-SK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4817." cg="351."/>\r
+      <eng-data  t="0.059" f="1791.51" m="4785.54" cg="351."/>\r
+      <eng-data  t="0.199" f="1596.38" m="4644.35" cg="351."/>\r
+      <eng-data  t="0.6" f="1782.11" m="4241.06" cg="351."/>\r
+      <eng-data  t="1.215" f="1913.77" m="3564.46" cg="351."/>\r
+      <eng-data  t="1.973" f="2021.92" m="2676.42" cg="351."/>\r
+      <eng-data  t="2.742" f="1970.19" m="1762.58" cg="351."/>\r
+      <eng-data  t="3.387" f="1833.83" m="1032.2" cg="351."/>\r
+      <eng-data  t="3.812" f="1652.8" m="591.098" cg="351."/>\r
+      <eng-data  t="4.28" f="1556.41" m="144.017" cg="351."/>\r
+      <eng-data  t="4.385" f="1295.44" m="54.8798" cg="351."/>\r
+      <eng-data  t="4.476" f="355.011" m="10.1717" cg="351."/>\r
+      <eng-data  t="4.541" f="91.692" m="1.52849" cg="351."/>\r
+      <eng-data  t="4.597" f="0." m="0." cg="351."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1800.rse b/datafiles/thrustcurves/Cesaroni_M1800.rse
new file mode 100644 (file)
index 0000000..6f8b6cc
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1800-BS" Type="unspecified" dia="98." len="702." initWt="8342."\r
+propWt="4959." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1762.97"\r
+peakThrust="2177.21" throatDia="0." exitDia="0." Itot="9872.64" burn-time="5.6"\r
+massFrac="59.45" Isp="203.01" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro98-4G 9870M1800-BS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4959." cg="351."/>\r
+      <eng-data  t="0.02" f="1873.08" m="4949.59" cg="351."/>\r
+      <eng-data  t="0.059" f="2177.21" m="4909.92" cg="351."/>\r
+      <eng-data  t="0.265" f="1932.77" m="4697.28" cg="351."/>\r
+      <eng-data  t="1.312" f="2077.73" m="3642.71" cg="351."/>\r
+      <eng-data  t="1.826" f="2109." m="3102.24" cg="351."/>\r
+      <eng-data  t="3.07" f="2009.52" m="1815.5" cg="351."/>\r
+      <eng-data  t="4.468" f="1750.87" m="495.21" cg="351."/>\r
+      <eng-data  t="4.674" f="1736.65" m="314.778" cg="351."/>\r
+      <eng-data  t="4.89" f="1023.23" m="165.059" cg="351."/>\r
+      <eng-data  t="5.178" f="451.928" m="58.3595" cg="351."/>\r
+      <eng-data  t="5.384" f="318.339" m="18.5085" cg="351."/>\r
+      <eng-data  t="5.548" f="99.481" m="1.2992" cg="351."/>\r
+      <eng-data  t="5.6" f="0." m="0." cg="351."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M1810.rse b/datafiles/thrustcurves/Cesaroni_M1810.rse
new file mode 100644 (file)
index 0000000..42a2cd1
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M1810-RL" Type="unspecified" dia="75." len="757." initWt="5416."\r
+propWt="3297." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="1711.82"\r
+peakThrust="2085." throatDia="0." exitDia="0." Itot="6128.3" burn-time="3.58"\r
+massFrac="60.88" Isp="189.54" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3297." cg="378.5"/>\r
+      <eng-data  t="0.01" f="30." m="3296.92" cg="378.5"/>\r
+      <eng-data  t="0.03" f="120." m="3296.11" cg="378.5"/>\r
+      <eng-data  t="0.065" f="1000." m="3285.57" cg="378.5"/>\r
+      <eng-data  t="0.093" f="1500." m="3266.74" cg="378.5"/>\r
+      <eng-data  t="0.11" f="1950." m="3250.96" cg="378.5"/>\r
+      <eng-data  t="0.16" f="1850." m="3199.85" cg="378.5"/>\r
+      <eng-data  t="0.35" f="1915." m="3007.42" cg="378.5"/>\r
+      <eng-data  t="0.6" f="1965." m="2746.5" cg="378.5"/>\r
+      <eng-data  t="1.15" f="2085." m="2147.3" cg="378.5"/>\r
+      <eng-data  t="1.35" f="2080." m="1923.23" cg="378.5"/>\r
+      <eng-data  t="2.15" f="1970." m="1051.67" cg="378.5"/>\r
+      <eng-data  t="2.6" f="1820." m="592.898" cg="378.5"/>\r
+      <eng-data  t="2.95" f="1810." m="251.136" cg="378.5"/>\r
+      <eng-data  t="3.06" f="1715." m="146.833" cg="378.5"/>\r
+      <eng-data  t="3.15" f="1185." m="76.6241" cg="378.5"/>\r
+      <eng-data  t="3.32" f="240." m="11.4593" cg="378.5"/>\r
+      <eng-data  t="3.4" f="90." m="4.35777" cg="378.5"/>\r
+      <eng-data  t="3.58" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2020.eng b/datafiles/thrustcurves/Cesaroni_M2020.eng
new file mode 100644 (file)
index 0000000..5d9d9ee
--- /dev/null
@@ -0,0 +1,32 @@
+; Pro-75-6G IMax Plugged\r
+8429-M2020-IM-P 75 757 P 4.349 7.0318 CTI\r
+   0.023 2070.111\r
+   0.036 1929.889\r
+   0.053 2147.601\r
+   0.073 2369.004\r
+   0.089 2505.535\r
+   0.136 2649.446\r
+   0.182 2627.306\r
+   0.262 2608.856\r
+   0.364 2616.236\r
+   0.566 2623.616\r
+   1.387 2575.646\r
+   1.639 2538.745\r
+   1.986 2450.185\r
+   2.198 2394.834\r
+   2.457 2295.203\r
+   2.708 2206.642\r
+   2.831 2162.362\r
+   2.933 2088.561\r
+   3.036 1988.93\r
+   3.109 1800.738\r
+   3.175 1594.096\r
+   3.307 1335.793\r
+   3.45 1014.76\r
+   3.589 708.487\r
+   3.698 601.476\r
+   3.814 461.255\r
+   3.996 339.483\r
+   4.115 202.952\r
+   4.201 88.561\r
+   4.301 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2020.rse b/datafiles/thrustcurves/Cesaroni_M2020.rse
new file mode 100644 (file)
index 0000000..b743fb7
--- /dev/null
@@ -0,0 +1,45 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="8429-M2020-IM-P" Type="reloadable" dia="75." len="757."\r
+initWt="7031.8" propWt="4349." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1959.7" peakThrust="2649.45" throatDia="0." exitDia="0."\r
+Itot="8428.66" burn-time="4.3" massFrac="61.85" Isp="197.63" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-75-6G IMax Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4349." cg="378.5"/>\r
+      <eng-data  t="0.023" f="2070.11" m="4336.72" cg="378.5"/>\r
+      <eng-data  t="0.036" f="1929.89" m="4323.3" cg="378.5"/>\r
+      <eng-data  t="0.053" f="2147.6" m="4305.42" cg="378.5"/>\r
+      <eng-data  t="0.073" f="2369." m="4282.11" cg="378.5"/>\r
+      <eng-data  t="0.089" f="2505.53" m="4261.99" cg="378.5"/>\r
+      <eng-data  t="0.136" f="2649.45" m="4199.49" cg="378.5"/>\r
+      <eng-data  t="0.182" f="2627.31" m="4136.86" cg="378.5"/>\r
+      <eng-data  t="0.262" f="2608.86" m="4028.79" cg="378.5"/>\r
+      <eng-data  t="0.364" f="2616.24" m="3891.3" cg="378.5"/>\r
+      <eng-data  t="0.566" f="2623.62" m="3618.23" cg="378.5"/>\r
+      <eng-data  t="1.387" f="2575.65" m="2516.98" cg="378.5"/>\r
+      <eng-data  t="1.639" f="2538.74" m="2184.48" cg="378.5"/>\r
+      <eng-data  t="1.986" f="2450.18" m="1737.86" cg="378.5"/>\r
+      <eng-data  t="2.198" f="2394.83" m="1472.87" cg="378.5"/>\r
+      <eng-data  t="2.457" f="2295.2" m="1159.48" cg="378.5"/>\r
+      <eng-data  t="2.708" f="2206.64" m="867.964" cg="378.5"/>\r
+      <eng-data  t="2.831" f="2162.36" m="729.324" cg="378.5"/>\r
+      <eng-data  t="2.933" f="2088.56" m="617.461" cg="378.5"/>\r
+      <eng-data  t="3.036" f="1988.93" m="509.111" cg="378.5"/>\r
+      <eng-data  t="3.109" f="1800.74" m="437.739" cg="378.5"/>\r
+      <eng-data  t="3.175" f="1594.1" m="379.935" cg="378.5"/>\r
+      <eng-data  t="3.307" f="1335.79" m="280.159" cg="378.5"/>\r
+      <eng-data  t="3.45" f="1014.76" m="193.441" cg="378.5"/>\r
+      <eng-data  t="3.589" f="708.487" m="131.645" cg="378.5"/>\r
+      <eng-data  t="3.698" f="601.476" m="94.8075" cg="378.5"/>\r
+      <eng-data  t="3.814" f="461.255" m="63.0035" cg="378.5"/>\r
+      <eng-data  t="3.996" f="339.483" m="25.4057" cg="378.5"/>\r
+      <eng-data  t="4.115" f="202.952" m="8.75258" cg="378.5"/>\r
+      <eng-data  t="4.201" f="88.561" m="2.28477" cg="378.5"/>\r
+      <eng-data  t="4.301" f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2045.rse b/datafiles/thrustcurves/Cesaroni_M2045.rse
new file mode 100644 (file)
index 0000000..d9e51e5
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M2045-BS" Type="unspecified" dia="75." len="893." initWt="6071."\r
+propWt="3739." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="2042.82"\r
+peakThrust="2570.08" throatDia="0." exitDia="0." Itot="7327.58" burn-time="3.59"\r
+massFrac="61.59" Isp="199.84" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-6G 7388-M2045-BS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3739." cg="446.5"/>\r
+      <eng-data  t="0.004" f="556.851" m="3738.43" cg="446.5"/>\r
+      <eng-data  t="0.019" f="1690.32" m="3729.83" cg="446.5"/>\r
+      <eng-data  t="0.063" f="2359.2" m="3684.37" cg="446.5"/>\r
+      <eng-data  t="0.153" f="2339.43" m="3576.48" cg="446.5"/>\r
+      <eng-data  t="0.182" f="2570.08" m="3540.16" cg="446.5"/>\r
+      <eng-data  t="0.247" f="2471.23" m="3456.56" cg="446.5"/>\r
+      <eng-data  t="0.616" f="2497.59" m="2988.77" cg="446.5"/>\r
+      <eng-data  t="1.028" f="2547.02" m="2458.51" cg="446.5"/>\r
+      <eng-data  t="2.111" f="2316.37" m="1114.72" cg="446.5"/>\r
+      <eng-data  t="2.551" f="2273.53" m="599.466" cg="446.5"/>\r
+      <eng-data  t="2.635" f="2253.76" m="502.441" cg="446.5"/>\r
+      <eng-data  t="2.796" f="1696.91" m="340.162" cg="446.5"/>\r
+      <eng-data  t="3.009" f="1472.86" m="167.907" cg="446.5"/>\r
+      <eng-data  t="3.349" f="247.123" m="18.7079" cg="446.5"/>\r
+      <eng-data  t="3.541" f="108.734" m="1.27611" cg="446.5"/>\r
+      <eng-data  t="3.587" f="0." m="0." cg="446.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2050.rse b/datafiles/thrustcurves/Cesaroni_M2050.rse
new file mode 100644 (file)
index 0000000..618abfc
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="ABC" code="M2050-BS" Type="unspecified" dia="75." len="1039."\r
+initWt="7129." propWt="4172." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1996.66" peakThrust="2539.21" throatDia="0." exitDia="0."\r
+Itot="6788.65" burn-time="3.4" massFrac="58.52" Isp="165.93" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>AMX75-7600 6774-M2050-SK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4172." cg="519.5"/>\r
+      <eng-data  t="0.038" f="2152.81" m="4146.86" cg="519.5"/>\r
+      <eng-data  t="0.833" f="2506.09" m="3008.76" cg="519.5"/>\r
+      <eng-data  t="1.189" f="2539.21" m="2456.85" cg="519.5"/>\r
+      <eng-data  t="1.546" f="2500.57" m="1904." cg="519.5"/>\r
+      <eng-data  t="1.775" f="2415.01" m="1558.1" cg="519.5"/>\r
+      <eng-data  t="1.907" f="2279.77" m="1367.68" cg="519.5"/>\r
+      <eng-data  t="2.168" f="2086.57" m="1017.5" cg="519.5"/>\r
+      <eng-data  t="2.401" f="1973.41" m="726.824" cg="519.5"/>\r
+      <eng-data  t="2.616" f="1909.93" m="470.273" cg="519.5"/>\r
+      <eng-data  t="2.776" f="1871.29" m="284.371" cg="519.5"/>\r
+      <eng-data  t="2.918" f="1203.37" m="150.214" cg="519.5"/>\r
+      <eng-data  t="3.056" f="706.563" m="69.2245" cg="519.5"/>\r
+      <eng-data  t="3.309" f="135.241" m="3.78164" cg="519.5"/>\r
+      <eng-data  t="3.4" f="0." m="0." cg="519.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2075.rse b/datafiles/thrustcurves/Cesaroni_M2075.rse
new file mode 100644 (file)
index 0000000..e5672e2
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M2075-SS" Type="unspecified" dia="75." len="893."\r
+initWt="7191.3" propWt="4593.1" delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="2075.56" peakThrust="2931.51" throatDia="0." exitDia="0."\r
+Itot="6286.87" burn-time="3.03" massFrac="63.87" Isp="139.58" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro75-6G 6287M2075-SS Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4593.1" cg="446.5"/>\r
+      <eng-data  t="0.034" f="2350.68" m="4563.9" cg="446.5"/>\r
+      <eng-data  t="0.18" f="2652.05" m="4297.09" cg="446.5"/>\r
+      <eng-data  t="0.243" f="2931.51" m="4168.6" cg="446.5"/>\r
+      <eng-data  t="0.303" f="2734.25" m="4044.42" cg="446.5"/>\r
+      <eng-data  t="0.453" f="2624.66" m="3750.78" cg="446.5"/>\r
+      <eng-data  t="0.552" f="2564.38" m="3563.13" cg="446.5"/>\r
+      <eng-data  t="0.813" f="2487.67" m="3081.45" cg="446.5"/>\r
+      <eng-data  t="1.172" f="2498.63" m="2427.55" cg="446.5"/>\r
+      <eng-data  t="2.028" f="2038.36" m="1008.88" cg="446.5"/>\r
+      <eng-data  t="2.415" f="1610.96" m="492.978" cg="446.5"/>\r
+      <eng-data  t="2.567" f="1506.85" m="319.863" cg="446.5"/>\r
+      <eng-data  t="2.69" f="1386.3" m="189.87" cg="446.5"/>\r
+      <eng-data  t="3.01" f="224.658" m="1.55925" cg="446.5"/>\r
+      <eng-data  t="3.029" f="0." m="0." cg="446.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2080.eng b/datafiles/thrustcurves/Cesaroni_M2080.eng
new file mode 100644 (file)
index 0000000..5f1661f
--- /dev/null
@@ -0,0 +1,34 @@
+; Pro-75-6GXL Skidmark Plugged\r
+6827-M2080-SK-P 75 1025 P 4.107 7.0395 CTI\r
+   0.027 1813.539\r
+   0.04 2084.323\r
+   0.067 2344.418\r
+   0.097 2276.722\r
+   0.132 2262.47\r
+   0.172 2269.596\r
+   0.218 2319.477\r
+   0.323 2415.677\r
+   0.447 2490.499\r
+   0.541 2522.565\r
+   0.676 2547.506\r
+   0.816 2554.632\r
+   1.026 2522.565\r
+   1.23 2519.002\r
+   1.459 2461.995\r
+   1.669 2369.359\r
+   1.987 2241.093\r
+   2.21 2134.204\r
+   2.539 2002.375\r
+   2.63 1991.686\r
+   2.7 1941.805\r
+   2.746 1842.043\r
+   2.784 1692.399\r
+   2.811 1542.755\r
+   2.843 1339.667\r
+   2.999 883.61\r
+   3.083 520.19\r
+   3.177 277.91\r
+   3.271 128.266\r
+   3.365 53.444\r
+   3.443 24.941\r
+   3.5 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2080.rse b/datafiles/thrustcurves/Cesaroni_M2080.rse
new file mode 100644 (file)
index 0000000..76bc4bf
--- /dev/null
@@ -0,0 +1,47 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="6827-M2080-SK-P" Type="reloadable" dia="75." len="1025."\r
+initWt="7039.5" propWt="4107." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1952.38" peakThrust="2554.63" throatDia="0." exitDia="0."\r
+Itot="6833.32" burn-time="3.5" massFrac="58.34" Isp="169.66" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-75-6GXL Skidmark Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4107." cg="512.5"/>\r
+      <eng-data  t="0.027" f="1813.54" m="4092.29" cg="512.5"/>\r
+      <eng-data  t="0.04" f="2084.32" m="4077.06" cg="512.5"/>\r
+      <eng-data  t="0.067" f="2344.42" m="4041.12" cg="512.5"/>\r
+      <eng-data  t="0.097" f="2276.72" m="3999.46" cg="512.5"/>\r
+      <eng-data  t="0.132" f="2262.47" m="3951.72" cg="512.5"/>\r
+      <eng-data  t="0.172" f="2269.6" m="3897.24" cg="512.5"/>\r
+      <eng-data  t="0.218" f="2319.48" m="3833.8" cg="512.5"/>\r
+      <eng-data  t="0.323" f="2415.68" m="3684.39" cg="512.5"/>\r
+      <eng-data  t="0.447" f="2490.5" m="3501.57" cg="512.5"/>\r
+      <eng-data  t="0.541" f="2522.57" m="3359.96" cg="512.5"/>\r
+      <eng-data  t="0.676" f="2547.51" m="3154.27" cg="512.5"/>\r
+      <eng-data  t="0.816" f="2554.63" m="2939.62" cg="512.5"/>\r
+      <eng-data  t="1.026" f="2522.57" m="2619.21" cg="512.5"/>\r
+      <eng-data  t="1.23" f="2519." m="2310.13" cg="512.5"/>\r
+      <eng-data  t="1.459" f="2461.99" m="1967.35" cg="512.5"/>\r
+      <eng-data  t="1.669" f="2369.36" m="1662.46" cg="512.5"/>\r
+      <eng-data  t="1.987" f="2241.09" m="1221.87" cg="512.5"/>\r
+      <eng-data  t="2.21" f="2134.2" m="928.662" cg="512.5"/>\r
+      <eng-data  t="2.539" f="2002.38" m="519.684" cg="512.5"/>\r
+      <eng-data  t="2.63" f="1991.69" m="410.46" cg="512.5"/>\r
+      <eng-data  t="2.7" f="1941.81" m="327.716" cg="512.5"/>\r
+      <eng-data  t="2.746" f="1842.04" m="275.409" cg="512.5"/>\r
+      <eng-data  t="2.784" f="1692.4" m="235.048" cg="512.5"/>\r
+      <eng-data  t="2.811" f="1542.76" m="208.798" cg="512.5"/>\r
+      <eng-data  t="2.843" f="1339.67" m="181.08" cg="512.5"/>\r
+      <eng-data  t="2.999" f="883.61" m="76.8524" cg="512.5"/>\r
+      <eng-data  t="3.083" f="520.19" m="41.4162" cg="512.5"/>\r
+      <eng-data  t="3.177" f="277.91" m="18.8713" cg="512.5"/>\r
+      <eng-data  t="3.271" f="128.266" m="7.39754" cg="512.5"/>\r
+      <eng-data  t="3.365" f="53.444" m="2.26456" cg="512.5"/>\r
+      <eng-data  t="3.443" f="24.941" m="0.42722" cg="512.5"/>\r
+      <eng-data  t="3.5" f="0." m="0." cg="512.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2150.rse b/datafiles/thrustcurves/Cesaroni_M2150.rse
new file mode 100644 (file)
index 0000000..8018e73
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M2150-RL" Type="unspecified" dia="75." len="893." initWt="6324."\r
+propWt="3969." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="2126.51"\r
+peakThrust="2610.79" throatDia="0." exitDia="0." Itot="7442.8" burn-time="3.5"\r
+massFrac="62.76" Isp="191.22" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-6G 7455M2150-RL P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3969." cg="446.5"/>\r
+      <eng-data  t="0.027" f="999.465" m="3961.8" cg="446.5"/>\r
+      <eng-data  t="0.067" f="1877.11" m="3931.13" cg="446.5"/>\r
+      <eng-data  t="0.135" f="2286.86" m="3855.63" cg="446.5"/>\r
+      <eng-data  t="0.239" f="2414.22" m="3725.27" cg="446.5"/>\r
+      <eng-data  t="0.451" f="2345.01" m="3456.25" cg="446.5"/>\r
+      <eng-data  t="0.796" f="2425.3" m="3017.43" cg="446.5"/>\r
+      <eng-data  t="1.193" f="2610.79" m="2484.35" cg="446.5"/>\r
+      <eng-data  t="1.75" f="2381." m="1742.99" cg="446.5"/>\r
+      <eng-data  t="2.33" f="2228.72" m="1030.11" cg="446.5"/>\r
+      <eng-data  t="2.908" f="2189.96" m="349.127" cg="446.5"/>\r
+      <eng-data  t="3.316" f="703.225" m="34.3877" cg="446.5"/>\r
+      <eng-data  t="3.461" f="138.43" m="1.84772" cg="446.5"/>\r
+      <eng-data  t="3.49" f="74.752" m="0.199314" cg="446.5"/>\r
+      <eng-data  t="3.5" f="0." m="0." cg="446.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M2250.rse b/datafiles/thrustcurves/Cesaroni_M2250.rse
new file mode 100644 (file)
index 0000000..94a363c
--- /dev/null
@@ -0,0 +1,32 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M2250-CS" Type="unspecified" dia="75." len="621." initWt="4415."\r
+propWt="2628." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="2189.42"\r
+peakThrust="2663.17" throatDia="0." exitDia="0." Itot="5466.98" burn-time="2.5"\r
+massFrac="59.52" Isp="212.13" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-4G 5472M2250-CS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2628." cg="310.5"/>\r
+      <eng-data  t="0.016" f="2542.11" m="2618.22" cg="310.5"/>\r
+      <eng-data  t="0.051" f="2390.8" m="2576.73" cg="310.5"/>\r
+      <eng-data  t="0.139" f="2582.47" m="2471.54" cg="310.5"/>\r
+      <eng-data  t="0.259" f="2599.28" m="2322.08" cg="310.5"/>\r
+      <eng-data  t="0.877" f="2663.17" m="1540.41" cg="310.5"/>\r
+      <eng-data  t="1.388" f="2555.57" m="899.448" cg="310.5"/>\r
+      <eng-data  t="1.823" f="2458.05" m="375.258" cg="310.5"/>\r
+      <eng-data  t="1.86" f="2303.37" m="332.915" cg="310.5"/>\r
+      <eng-data  t="1.891" f="1926.76" m="301.397" cg="310.5"/>\r
+      <eng-data  t="1.997" f="1452.64" m="215.298" cg="310.5"/>\r
+      <eng-data  t="2.195" f="1452.64" m="77.0373" cg="310.5"/>\r
+      <eng-data  t="2.244" f="1207.17" m="45.712" cg="310.5"/>\r
+      <eng-data  t="2.276" f="645.616" m="31.4618" cg="310.5"/>\r
+      <eng-data  t="2.336" f="517.838" m="14.6835" cg="310.5"/>\r
+      <eng-data  t="2.414" f="144.591" m="2.26459" cg="310.5"/>\r
+      <eng-data  t="2.456" f="40.351" m="0.397637" cg="310.5"/>\r
+      <eng-data  t="2.497" f="0." m="0." cg="310.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M3100.rse b/datafiles/thrustcurves/Cesaroni_M3100.rse
new file mode 100644 (file)
index 0000000..6e779b2
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M3100-WT" Type="unspecified" dia="75." len="757." initWt="5018."\r
+propWt="2950." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="3065.65"\r
+peakThrust="3665.5" throatDia="0." exitDia="0." Itot="6131.3" burn-time="2."\r
+massFrac="58.79" Isp="211.94" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro75-5G 6118M3100-WT P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="2950." cg="378.5"/>\r
+      <eng-data  t="0.02" f="3118.03" m="2935." cg="378.5"/>\r
+      <eng-data  t="0.057" f="2976.89" m="2880.75" cg="378.5"/>\r
+      <eng-data  t="0.148" f="3186.47" m="2745.82" cg="378.5"/>\r
+      <eng-data  t="0.496" f="3391.77" m="2195.1" cg="378.5"/>\r
+      <eng-data  t="0.817" f="3665.5" m="1650.12" cg="378.5"/>\r
+      <eng-data  t="0.936" f="3532.91" m="1444.05" cg="378.5"/>\r
+      <eng-data  t="1.173" f="3357.55" m="1051.19" cg="378.5"/>\r
+      <eng-data  t="1.501" f="3199.3" m="533.812" cg="378.5"/>\r
+      <eng-data  t="1.717" f="3139.42" m="204.434" cg="378.5"/>\r
+      <eng-data  t="1.78" f="2412.3" m="120.293" cg="378.5"/>\r
+      <eng-data  t="1.812" f="2130.01" m="85.3253" cg="378.5"/>\r
+      <eng-data  t="1.832" f="2031.64" m="65.302" cg="378.5"/>\r
+      <eng-data  t="1.937" f="346.448" m="5.2322" cg="378.5"/>\r
+      <eng-data  t="1.985" f="81.266" m="0.293251" cg="378.5"/>\r
+      <eng-data  t="2." f="0." m="0." cg="378.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M3400.rse b/datafiles/thrustcurves/Cesaroni_M3400.rse
new file mode 100644 (file)
index 0000000..43f5d08
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M3400-WT" Type="unspecified" dia="98." len="702." initWt="8108."\r
+propWt="4766." delays="0" auto-calc-mass="1" auto-calc-cg="1" avgThrust="3341.04"\r
+peakThrust="3897.6" throatDia="0." exitDia="0." Itot="9989.7" burn-time="2.99"\r
+massFrac="58.78" Isp="213.74" tDiv="10" tStep="-1." tFix="1" FDiv="10"\r
+FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10" cgStep="-1."\r
+cgFix="1">\r
+    <comments>Pro98-4G 9994M3400-WT P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="4766." cg="351."/>\r
+      <eng-data  t="0.021" f="3639.45" m="4747.77" cg="351."/>\r
+      <eng-data  t="0.049" f="3360.15" m="4701.02" cg="351."/>\r
+      <eng-data  t="0.111" f="3300.9" m="4602.5" cg="351."/>\r
+      <eng-data  t="0.374" f="3478.64" m="4177.17" cg="351."/>\r
+      <eng-data  t="0.909" f="3774.87" m="3251.46" cg="351."/>\r
+      <eng-data  t="1.059" f="3897.6" m="2976.93" cg="351."/>\r
+      <eng-data  t="1.208" f="3884.9" m="2700.31" cg="351."/>\r
+      <eng-data  t="1.571" f="3787.57" m="2035.94" cg="351."/>\r
+      <eng-data  t="2.168" f="3402.47" m="1011.99" cg="351."/>\r
+      <eng-data  t="2.467" f="3245.88" m="537.796" cg="351."/>\r
+      <eng-data  t="2.709" f="3292.43" m="160.352" cg="351."/>\r
+      <eng-data  t="2.734" f="3254.35" m="121.309" cg="351."/>\r
+      <eng-data  t="2.821" f="1032.59" m="32.3405" cg="351."/>\r
+      <eng-data  t="2.876" f="550.15" m="11.575" cg="351."/>\r
+      <eng-data  t="2.93" f="165.045" m="2.36225" cg="351."/>\r
+      <eng-data  t="2.99" f="0." m="0." cg="351."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M3700.rse b/datafiles/thrustcurves/Cesaroni_M3700.rse
new file mode 100644 (file)
index 0000000..3f80fa6
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="M3700-WT" Type="unspecified" dia="75." len="803."\r
+initWt="5778.5" propWt="3106.5" delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="3702.73" peakThrust="4105.48" throatDia="0." exitDia="0."\r
+Itot="6794.5" burn-time="1.83" massFrac="53.76" Isp="223.03" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro75-6G 6800M3700-WT Plugged\r
+5.3G case or 6G + 0.7 spacer\r
+</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="3106.5" cg="401.5"/>\r
+      <eng-data  t="0.017" f="3815.75" m="3091.67" cg="401.5"/>\r
+      <eng-data  t="0.04" f="3969.86" m="3050.74" cg="401.5"/>\r
+      <eng-data  t="0.099" f="3914.38" m="2944.4" cg="401.5"/>\r
+      <eng-data  t="0.245" f="3957.53" m="2681.66" cg="401.5"/>\r
+      <eng-data  t="0.563" f="3951.37" m="2106.71" cg="401.5"/>\r
+      <eng-data  t="0.727" f="4105.48" m="1804.66" cg="401.5"/>\r
+      <eng-data  t="0.959" f="4031.51" m="1373.1" cg="401.5"/>\r
+      <eng-data  t="1.25" f="3982.19" m="840." cg="401.5"/>\r
+      <eng-data  t="1.511" f="3994.52" m="364.065" cg="401.5"/>\r
+      <eng-data  t="1.595" f="3994.52" m="210.653" cg="401.5"/>\r
+      <eng-data  t="1.739" f="1306.85" m="36.1376" cg="401.5"/>\r
+      <eng-data  t="1.772" f="1109.59" m="17.9081" cg="401.5"/>\r
+      <eng-data  t="1.83" f="221.918" m="0.253657" cg="401.5"/>\r
+      <eng-data  t="1.835" f="0." m="0." cg="401.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_M520.eng b/datafiles/thrustcurves/Cesaroni_M520.eng
new file mode 100644 (file)
index 0000000..6b8e663
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;\r
+M520  98.0 548.00 0 3.71300 6.69300 CTI\r
+   0.01    1077.00 \r
+   0.25    1062.83 \r
+   0.38    1065.66 \r
+   0.50     971.00 \r
+   0.71     938.12 \r
+   0.93     915.45 \r
+   1.23     878.61 \r
+   2.07     906.95 \r
+   2.61     901.28 \r
+   3.03     892.78 \r
+   3.50     872.94 \r
+   3.93     836.09 \r
+   4.96     756.73 \r
+   6.08     657.54 \r
+   7.05     549.84 \r
+   7.79     461.98 \r
+   8.39     391.12 \r
+   9.06     323.10 \r
+  10.01     243.74 \r
+  11.01     172.89 \r
+  12.00     116.20 \r
+  13.95       0.00 \r
diff --git a/datafiles/thrustcurves/Cesaroni_M795.eng b/datafiles/thrustcurves/Cesaroni_M795.eng
new file mode 100644 (file)
index 0000000..3a11fac
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;\r
+M795 98 702 0 4.892 8.492 CTI \r
+0.15 612.314\r
+0.21 1532.76\r
+0.245 1722\r
+0.43 1717.66\r
+0.5 1542.85\r
+0.62 1430.02\r
+0.8 1389.71\r
+1 1374.27\r
+1.5 1338.9\r
+2 1305.38\r
+3 1271.81\r
+4 1204\r
+5 1078\r
+6 928\r
+7 743\r
+8 563\r
+9 424.898\r
+10 299.697\r
+11 196.164\r
+12 116.759\r
+12.7 65.434\r
+12.76 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_N10000.rse b/datafiles/thrustcurves/Cesaroni_N10000.rse
new file mode 100644 (file)
index 0000000..3c1fbfd
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N10000-VM" Type="unspecified" dia="98." len="1010."\r
+initWt="9918.5" propWt="5335." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="10237.2" peakThrust="11475.8" throatDia="0." exitDia="0."\r
+Itot="10319.1" burn-time="1.01" massFrac="53.79" Isp="197.24" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro98 6G 10347 N10000-VM P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="5335." cg="505."/>\r
+      <eng-data  t="0.009" f="8953.95" m="5314.17" cg="505."/>\r
+      <eng-data  t="0.027" f="10257.4" m="5224.78" cg="505."/>\r
+      <eng-data  t="0.074" f="10753.2" m="4969.51" cg="505."/>\r
+      <eng-data  t="0.125" f="11036.6" m="4682.24" cg="505."/>\r
+      <eng-data  t="0.212" f="11107.4" m="4184.23" cg="505."/>\r
+      <eng-data  t="0.358" f="11277.5" m="3339.4" cg="505."/>\r
+      <eng-data  t="0.457" f="11475.8" m="2757.11" cg="505."/>\r
+      <eng-data  t="0.548" f="11461.6" m="2217.54" cg="505."/>\r
+      <eng-data  t="0.599" f="11277.5" m="1917.75" cg="505."/>\r
+      <eng-data  t="0.663" f="10866.6" m="1551.4" cg="505."/>\r
+      <eng-data  t="0.766" f="9988.19" m="996.131" cg="505."/>\r
+      <eng-data  t="0.837" f="9350.65" m="641.194" cg="505."/>\r
+      <eng-data  t="0.888" f="8996.46" m="399.314" cg="505."/>\r
+      <eng-data  t="0.908" f="8968.12" m="306.436" cg="505."/>\r
+      <eng-data  t="0.923" f="8585.6" m="238.372" cg="505."/>\r
+      <eng-data  t="0.942" f="7820.54" m="157.792" cg="505."/>\r
+      <eng-data  t="0.961" f="6276.27" m="88.5557" cg="505."/>\r
+      <eng-data  t="0.976" f="4491.15" m="46.8049" cg="505."/>\r
+      <eng-data  t="0.988" f="3357.73" m="22.4575" cg="505."/>\r
+      <eng-data  t="1.004" f="1657.62" m="1.71398" cg="505."/>\r
+      <eng-data  t="1.008" f="0." m="0." cg="505."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N1100.eng b/datafiles/thrustcurves/Cesaroni_N1100.eng
new file mode 100644 (file)
index 0000000..119bc59
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+N1100 98 1010 0 4.517 11.644 CTI \r
+0.16 2624\r
+0.33 2708\r
+0.91 2055\r
+1.22 1896\r
+2.44 1793\r
+3.66 1625\r
+4.88 1402\r
+6.12 1158\r
+7.41 854\r
+9.77 494\r
+12.18 111.2\r
+12.19 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_N1975.rse b/datafiles/thrustcurves/Cesaroni_N1975.rse
new file mode 100644 (file)
index 0000000..6d6a980
--- /dev/null
@@ -0,0 +1,36 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N1975-GR" Type="unspecified" dia="98." len="1010."\r
+initWt="13247.5" propWt="8584." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="1967.74" peakThrust="2299.03" throatDia="0." exitDia="0."\r
+Itot="14274." burn-time="7.25" massFrac="64.8" Isp="169.56" tDiv="10" tStep="-1."\r
+tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro98 6G 14272 N1975-GR P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="8584." cg="505."/>\r
+      <eng-data  t="0.04" f="1382.46" m="8567.37" cg="505."/>\r
+      <eng-data  t="0.08" f="1699.15" m="8530.31" cg="505."/>\r
+      <eng-data  t="0.201" f="1781.36" m="8403.68" cg="505."/>\r
+      <eng-data  t="0.447" f="1793.54" m="8139.24" cg="505."/>\r
+      <eng-data  t="0.678" f="1820.95" m="7888.19" cg="505."/>\r
+      <eng-data  t="0.758" f="1927.53" m="7798.02" cg="505."/>\r
+      <eng-data  t="0.853" f="1842.27" m="7690.33" cg="505."/>\r
+      <eng-data  t="2.425" f="2088.92" m="5832.14" cg="505."/>\r
+      <eng-data  t="2.52" f="2180.27" m="5710.19" cg="505."/>\r
+      <eng-data  t="2.761" f="2198.54" m="5392.88" cg="505."/>\r
+      <eng-data  t="3.434" f="2213.76" m="4499.99" cg="505."/>\r
+      <eng-data  t="3.715" f="2268.57" m="4121.27" cg="505."/>\r
+      <eng-data  t="4.077" f="2299.03" m="3624.09" cg="505."/>\r
+      <eng-data  t="4.96" f="2238.12" m="2419.45" cg="505."/>\r
+      <eng-data  t="5.492" f="2162." m="1715.58" cg="505."/>\r
+      <eng-data  t="6.105" f="2024.97" m="943.831" cg="505."/>\r
+      <eng-data  t="6.446" f="1878.81" m="543.56" cg="505."/>\r
+      <eng-data  t="6.647" f="1668.7" m="329.155" cg="505."/>\r
+      <eng-data  t="7.074" f="602.923" m="37.4943" cg="505."/>\r
+      <eng-data  t="7.239" f="140.073" m="0.631772" cg="505."/>\r
+      <eng-data  t="7.254" f="0." m="0." cg="505."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N2600.rse b/datafiles/thrustcurves/Cesaroni_N2600.rse
new file mode 100644 (file)
index 0000000..ca43ea6
--- /dev/null
@@ -0,0 +1,29 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N2600-SK" Type="unspecified" dia="98." len="1010."\r
+initWt="11482." propWt="6770." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="2577.11" peakThrust="2972.07" throatDia="0." exitDia="0."\r
+Itot="11073.8" burn-time="4.3" massFrac="58.96" Isp="166.8" tDiv="10" tStep="-1."\r
+tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6G 11077N2600-SK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="6770." cg="505."/>\r
+      <eng-data  t="0.063" f="2794.14" m="6716.19" cg="505."/>\r
+      <eng-data  t="0.199" f="2497.59" m="6496.2" cg="505."/>\r
+      <eng-data  t="0.485" f="2619.51" m="6048.85" cg="505."/>\r
+      <eng-data  t="0.907" f="2777.67" m="5352.64" cg="505."/>\r
+      <eng-data  t="1.367" f="2902.88" m="4553.9" cg="505."/>\r
+      <eng-data  t="1.749" f="2949.01" m="3870.58" cg="505."/>\r
+      <eng-data  t="2.051" f="2972.07" m="3323.98" cg="505."/>\r
+      <eng-data  t="2.764" f="2817.21" m="2062.23" cg="505."/>\r
+      <eng-data  t="3.549" f="2392.15" m="812.217" cg="505."/>\r
+      <eng-data  t="3.767" f="2309.78" m="498.893" cg="505."/>\r
+      <eng-data  t="3.958" f="2385.56" m="224.76" cg="505."/>\r
+      <eng-data  t="4.177" f="639.226" m="22.2711" cg="505."/>\r
+      <eng-data  t="4.265" f="138.389" m="1.35367" cg="505."/>\r
+      <eng-data  t="4.297" f="0." m="0." cg="505."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N2850.rse b/datafiles/thrustcurves/Cesaroni_N2850.rse
new file mode 100644 (file)
index 0000000..d355423
--- /dev/null
@@ -0,0 +1,28 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N2850-BS" Type="unspecified" dia="98." len="1010."\r
+initWt="11688." propWt="6965." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="2810.23" peakThrust="3312.64" throatDia="0." exitDia="0."\r
+Itot="13770.1" burn-time="4.9" massFrac="59.59" Isp="201.6" tDiv="10" tStep="-1."\r
+tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6G 13767N2850-BS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="6965." cg="505."/>\r
+      <eng-data  t="0.003" f="286.922" m="6964.78" cg="505."/>\r
+      <eng-data  t="0.085" f="3152.41" m="6893.46" cg="505."/>\r
+      <eng-data  t="0.185" f="3103.97" m="6735.23" cg="505."/>\r
+      <eng-data  t="0.322" f="3077.89" m="6521.04" cg="505."/>\r
+      <eng-data  t="0.945" f="3212.03" m="5530.01" cg="505."/>\r
+      <eng-data  t="1.725" f="3312.64" m="4242.93" cg="505."/>\r
+      <eng-data  t="2.819" f="3118.88" m="2463.49" cg="505."/>\r
+      <eng-data  t="4.163" f="2776.06" m="459.788" cg="505."/>\r
+      <eng-data  t="4.376" f="1982.37" m="203.46" cg="505."/>\r
+      <eng-data  t="4.538" f="845.86" m="87.5867" cg="505."/>\r
+      <eng-data  t="4.763" f="435.972" m="14.6465" cg="505."/>\r
+      <eng-data  t="4.849" f="149.05" m="1.92245" cg="505."/>\r
+      <eng-data  t="4.9" f="0." m="0." cg="505."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N2900.eng b/datafiles/thrustcurves/Cesaroni_N2900.eng
new file mode 100644 (file)
index 0000000..1923937
--- /dev/null
@@ -0,0 +1,17 @@
+; Pro98-6GXL 17613N2900-CL P\r
+N2900-CL 98 1239 P 8.788 14.166 CTI\r
+   0.026 1863.57\r
+   0.074 3605.399\r
+   0.122 4022.127\r
+   0.361 3619.446\r
+   1.18 3497.706\r
+   1.981 3586.67\r
+   3.493 3155.895\r
+   4.648 2874.955\r
+   4.939 2322.439\r
+   5.205 1648.183\r
+   5.629 945.832\r
+   5.972 430.775\r
+   6.219 206.023\r
+   6.278 149.835\r
+   6.296 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_N3400.rse b/datafiles/thrustcurves/Cesaroni_N3400.rse
new file mode 100644 (file)
index 0000000..ee476e1
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N3400-SK" Type="unspecified" dia="98." len="1239."\r
+initWt="13972." propWt="8471." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="3325.75" peakThrust="3973.52" throatDia="0." exitDia="0."\r
+Itot="14300.7" burn-time="4.3" massFrac="60.63" Isp="172.15" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6GXL 14263N3400-SK P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="8471." cg="619.5"/>\r
+      <eng-data  t="0.055" f="3602.2" m="8412.32" cg="619.5"/>\r
+      <eng-data  t="0.177" f="3060.17" m="8171.59" cg="619.5"/>\r
+      <eng-data  t="0.608" f="3397.34" m="7347.28" cg="619.5"/>\r
+      <eng-data  t="1.537" f="3811.34" m="5363.85" cg="619.5"/>\r
+      <eng-data  t="2.252" f="3973.52" m="3715.3" cg="619.5"/>\r
+      <eng-data  t="2.86" f="3760.12" m="2322.67" cg="619.5"/>\r
+      <eng-data  t="3.152" f="3597.94" m="1686.33" cg="619.5"/>\r
+      <eng-data  t="3.545" f="3346.12" m="878.063" cg="619.5"/>\r
+      <eng-data  t="3.71" f="3627.81" m="537.256" cg="619.5"/>\r
+      <eng-data  t="3.837" f="2868.11" m="292.919" cg="619.5"/>\r
+      <eng-data  t="3.884" f="1907.8" m="226.437" cg="619.5"/>\r
+      <eng-data  t="3.999" f="1510.88" m="109.997" cg="619.5"/>\r
+      <eng-data  t="4.188" f="273.153" m="10.1328" cg="619.5"/>\r
+      <eng-data  t="4.28" f="81.092" m="0.480346" cg="619.5"/>\r
+      <eng-data  t="4.3" f="0." m="0." cg="619.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N3800.rse b/datafiles/thrustcurves/Cesaroni_N3800.rse
new file mode 100644 (file)
index 0000000..88849cb
--- /dev/null
@@ -0,0 +1,38 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N3800-BS" Type="unspecified" dia="98." len="1239."\r
+initWt="14261." propWt="8710." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="3737.39" peakThrust="4729.26" throatDia="0." exitDia="0."\r
+Itot="17565.7" burn-time="4.7" massFrac="61.08" Isp="205.65" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6GXL 17631N3800-BS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="8710." cg="619.5"/>\r
+      <eng-data  t="0.016" f="2671.72" m="8699.4" cg="619.5"/>\r
+      <eng-data  t="0.069" f="4632.01" m="8603.43" cg="619.5"/>\r
+      <eng-data  t="0.159" f="4360.74" m="8402.77" cg="619.5"/>\r
+      <eng-data  t="0.293" f="4355.63" m="8113.2" cg="619.5"/>\r
+      <eng-data  t="1.11" f="4591.07" m="6301." cg="619.5"/>\r
+      <eng-data  t="1.48" f="4703.67" m="5448.37" cg="619.5"/>\r
+      <eng-data  t="1.847" f="4729.26" m="4590.08" cg="619.5"/>\r
+      <eng-data  t="2.384" f="4683.19" m="3336.94" cg="619.5"/>\r
+      <eng-data  t="2.628" f="4550.12" m="2778.38" cg="619.5"/>\r
+      <eng-data  t="3.141" f="4135.54" m="1673.69" cg="619.5"/>\r
+      <eng-data  t="3.343" f="4043.41" m="1264.08" cg="619.5"/>\r
+      <eng-data  t="3.434" f="4022.94" m="1082.09" cg="619.5"/>\r
+      <eng-data  t="3.497" f="3787.5" m="960.097" cg="619.5"/>\r
+      <eng-data  t="3.582" f="3204.02" m="812.76" cg="619.5"/>\r
+      <eng-data  t="3.681" f="2809.92" m="665.15" cg="619.5"/>\r
+      <eng-data  t="3.853" f="2385.1" m="443.618" cg="619.5"/>\r
+      <eng-data  t="4.042" f="1458.7" m="263.505" cg="619.5"/>\r
+      <eng-data  t="4.198" f="972.467" m="169.476" cg="619.5"/>\r
+      <eng-data  t="4.338" f="946.875" m="102.857" cg="619.5"/>\r
+      <eng-data  t="4.401" f="864.983" m="74.5568" cg="619.5"/>\r
+      <eng-data  t="4.604" f="378.75" m="11.9611" cg="619.5"/>\r
+      <eng-data  t="4.673" f="230.321" m="1.54177" cg="619.5"/>\r
+      <eng-data  t="4.7" f="0." m="0." cg="619.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N4100.rse b/datafiles/thrustcurves/Cesaroni_N4100.rse
new file mode 100644 (file)
index 0000000..14ef59d
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N4100-RL" Type="unspecified" dia="98." len="1293."\r
+initWt="14748." propWt="9380." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="4124.41" peakThrust="4772.81" throatDia="0." exitDia="0."\r
+Itot="17735." burn-time="4.3" massFrac="63.6" Isp="192.8" tDiv="10" tStep="-1."\r
+tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6GXL 17790N4100-RL P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="9380." cg="646.5"/>\r
+      <eng-data  t="0.003" f="203.877" m="9379.84" cg="646.5"/>\r
+      <eng-data  t="0.05" f="2362.88" m="9347.94" cg="646.5"/>\r
+      <eng-data  t="0.078" f="3946.84" m="9301.21" cg="646.5"/>\r
+      <eng-data  t="0.121" f="4281.41" m="9207.65" cg="646.5"/>\r
+      <eng-data  t="0.652" f="4370.28" m="7992.76" cg="646.5"/>\r
+      <eng-data  t="1.123" f="4453.92" m="6893.65" cg="646.5"/>\r
+      <eng-data  t="1.655" f="4772.81" m="5595.57" cg="646.5"/>\r
+      <eng-data  t="2.353" f="4621.21" m="3861.57" cg="646.5"/>\r
+      <eng-data  t="3.035" f="4511.43" m="2214.46" cg="646.5"/>\r
+      <eng-data  t="3.7" f="4375.51" m="651.619" cg="646.5"/>\r
+      <eng-data  t="3.733" f="4182.09" m="576.938" cg="646.5"/>\r
+      <eng-data  t="3.887" f="2969.28" m="285.697" cg="646.5"/>\r
+      <eng-data  t="4.036" f="1589.19" m="106.08" cg="646.5"/>\r
+      <eng-data  t="4.197" f="533.216" m="15.7155" cg="646.5"/>\r
+      <eng-data  t="4.262" f="240.47" m="2.4165" cg="646.5"/>\r
+      <eng-data  t="4.3" f="0." m="0." cg="646.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_N5800.rse b/datafiles/thrustcurves/Cesaroni_N5800.rse
new file mode 100644 (file)
index 0000000..500de96
--- /dev/null
@@ -0,0 +1,30 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="N5800-CS" Type="unspecified" dia="98." len="1239."\r
+initWt="14826." propWt="9425." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="5667.14" peakThrust="6957.28" throatDia="0." exitDia="0."\r
+Itot="20367.7" burn-time="3.59" massFrac="63.57" Isp="220.36" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro98-6GXL 20146N5800-CS P</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="9425." cg="619.5"/>\r
+      <eng-data  t="0.019" f="6694.9" m="9395.57" cg="619.5"/>\r
+      <eng-data  t="0.049" f="6720.29" m="9302.45" cg="619.5"/>\r
+      <eng-data  t="0.103" f="6593.33" m="9136.11" cg="619.5"/>\r
+      <eng-data  t="0.384" f="6677.97" m="8273.27" cg="619.5"/>\r
+      <eng-data  t="1.109" f="6957.28" m="5986.04" cg="619.5"/>\r
+      <eng-data  t="1.569" f="6940.35" m="4506.9" cg="619.5"/>\r
+      <eng-data  t="1.991" f="6720.29" m="3173.09" cg="619.5"/>\r
+      <eng-data  t="2.622" f="6009.33" m="1314.63" cg="619.5"/>\r
+      <eng-data  t="3.011" f="3275.51" m="478.961" cg="619.5"/>\r
+      <eng-data  t="3.192" f="2606.86" m="232.618" cg="619.5"/>\r
+      <eng-data  t="3.334" f="1599.67" m="94.4131" cg="619.5"/>\r
+      <eng-data  t="3.423" f="1041.05" m="40.0353" cg="619.5"/>\r
+      <eng-data  t="3.513" f="389.337" m="10.2497" cg="619.5"/>\r
+      <eng-data  t="3.581" f="220.06" m="0.661903" cg="619.5"/>\r
+      <eng-data  t="3.594" f="0." m="0." cg="619.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_O3700.eng b/datafiles/thrustcurves/Cesaroni_O3700.eng
new file mode 100644 (file)
index 0000000..8fddc2a
--- /dev/null
@@ -0,0 +1,36 @@
+; Pro-150-40K Skidmark Plugged\r
+29920-O3700-SK-P 161 957 P 17.157 31.3505 CTI\r
+   0.052 1009.021\r
+   0.071 1646.907\r
+   0.084 2505.155\r
+   0.09 3183.634\r
+   0.116 3409.794\r
+   0.187 3114.046\r
+   0.245 3050.258\r
+   0.316 3108.247\r
+   0.445 3241.624\r
+   0.594 3461.985\r
+   0.819 3653.351\r
+   1.155 3676.546\r
+   1.503 3775.129\r
+   2.471 3931.701\r
+   3.277 4012.887\r
+   4.213 4030.284\r
+   4.787 3983.892\r
+   5.206 3925.902\r
+   5.671 3867.912\r
+   5.981 3850.515\r
+   6.413 3751.933\r
+   6.923 3618.557\r
+   7.387 3496.778\r
+   7.645 3363.402\r
+   7.819 3102.448\r
+   7.903 2905.284\r
+   7.942 2383.376\r
+   7.981 1948.454\r
+   8.026 1310.567\r
+   8.084 695.876\r
+   8.135 359.536\r
+   8.187 162.371\r
+   8.277 81.186\r
+   8.387 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_O3700.rse b/datafiles/thrustcurves/Cesaroni_O3700.rse
new file mode 100644 (file)
index 0000000..9c716e1
--- /dev/null
@@ -0,0 +1,49 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="29920-O3700-SK-P" Type="reloadable" dia="161." len="957."\r
+initWt="31350.5" propWt="17157." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="3571.77" peakThrust="4030.28" throatDia="0." exitDia="0."\r
+Itot="29956.5" burn-time="8.39" massFrac="54.73" Isp="178.04" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <comments>Pro-150-40K Skidmark Plugged</comments>\r
+    <data>\r
+      <eng-data  t="0." f="0." m="17157." cg="478.5"/>\r
+      <eng-data  t="0.052" f="1009.02" m="17142." cg="478.5"/>\r
+      <eng-data  t="0.071" f="1646.91" m="17127.5" cg="478.5"/>\r
+      <eng-data  t="0.084" f="2505.16" m="17112.1" cg="478.5"/>\r
+      <eng-data  t="0.09" f="3183.63" m="17102.3" cg="478.5"/>\r
+      <eng-data  t="0.116" f="3409.79" m="17053.2" cg="478.5"/>\r
+      <eng-data  t="0.187" f="3114.05" m="16920.6" cg="478.5"/>\r
+      <eng-data  t="0.245" f="3050.26" m="16818.2" cg="478.5"/>\r
+      <eng-data  t="0.316" f="3108.25" m="16693." cg="478.5"/>\r
+      <eng-data  t="0.445" f="3241.62" m="16458.4" cg="478.5"/>\r
+      <eng-data  t="0.594" f="3461.99" m="16172.4" cg="478.5"/>\r
+      <eng-data  t="0.819" f="3653.35" m="15713.9" cg="478.5"/>\r
+      <eng-data  t="1.155" f="3676.55" m="15008.6" cg="478.5"/>\r
+      <eng-data  t="1.503" f="3775.13" m="14266." cg="478.5"/>\r
+      <eng-data  t="2.471" f="3931.7" m="12129.7" cg="478.5"/>\r
+      <eng-data  t="3.277" f="4012.89" m="10296." cg="478.5"/>\r
+      <eng-data  t="4.213" f="4030.28" m="8140.11" cg="478.5"/>\r
+      <eng-data  t="4.787" f="3983.89" m="6822.79" cg="478.5"/>\r
+      <eng-data  t="5.206" f="3925.9" m="5873.71" cg="478.5"/>\r
+      <eng-data  t="5.671" f="3867.91" m="4835.89" cg="478.5"/>\r
+      <eng-data  t="5.981" f="3850.51" m="4150.7" cg="478.5"/>\r
+      <eng-data  t="6.413" f="3751.93" m="3210.2" cg="478.5"/>\r
+      <eng-data  t="6.923" f="3618.56" m="2133.77" cg="478.5"/>\r
+      <eng-data  t="7.387" f="3496.78" m="1188.32" cg="478.5"/>\r
+      <eng-data  t="7.645" f="3363.4" m="681.479" cg="478.5"/>\r
+      <eng-data  t="7.819" f="3102.45" m="359.301" cg="478.5"/>\r
+      <eng-data  t="7.903" f="2905.28" m="214.787" cg="478.5"/>\r
+      <eng-data  t="7.942" f="2383.38" m="155.722" cg="478.5"/>\r
+      <eng-data  t="7.981" f="1948.45" m="107.343" cg="478.5"/>\r
+      <eng-data  t="8.026" f="1310.57" m="65.3456" cg="478.5"/>\r
+      <eng-data  t="8.084" f="695.876" m="32.0202" cg="478.5"/>\r
+      <eng-data  t="8.135" f="359.536" m="16.6063" cg="478.5"/>\r
+      <eng-data  t="8.187" f="162.371" m="8.83455" cg="478.5"/>\r
+      <eng-data  t="8.277" f="81.186" m="2.55738" cg="478.5"/>\r
+      <eng-data  t="8.387" f="0." m="0." cg="478.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_O4900.rse b/datafiles/thrustcurves/Cesaroni_O4900.rse
new file mode 100644 (file)
index 0000000..a361b0b
--- /dev/null
@@ -0,0 +1,31 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="CTI" code="O4900-BS" Type="unspecified" dia="161." len="957."\r
+initWt="32648." propWt="18898." delays="0" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="4762.72" peakThrust="5500." throatDia="0." exitDia="0." Itot="37149.2"\r
+burn-time="7.8" massFrac="57.88" Isp="200.45" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="18898." cg="478.5"/>\r
+      <eng-data  t="0.06" f="800." m="18885.8" cg="478.5"/>\r
+      <eng-data  t="0.1" f="4000." m="18837." cg="478.5"/>\r
+      <eng-data  t="0.15" f="5500." m="18716.1" cg="478.5"/>\r
+      <eng-data  t="0.25" f="5160." m="18445." cg="478.5"/>\r
+      <eng-data  t="0.45" f="5130." m="17921.5" cg="478.5"/>\r
+      <eng-data  t="0.8" f="5400." m="16984.1" cg="478.5"/>\r
+      <eng-data  t="1." f="5300." m="16439.8" cg="478.5"/>\r
+      <eng-data  t="2." f="5450." m="13705.5" cg="478.5"/>\r
+      <eng-data  t="3." f="5347." m="10959.3" cg="478.5"/>\r
+      <eng-data  t="4." f="5160." m="8286.8" cg="478.5"/>\r
+      <eng-data  t="5." f="4950." m="5715.3" cg="478.5"/>\r
+      <eng-data  t="6." f="4700." m="3260.8" cg="478.5"/>\r
+      <eng-data  t="6.8" f="4400." m="1409.11" cg="478.5"/>\r
+      <eng-data  t="7.05" f="4400." m="849.537" cg="478.5"/>\r
+      <eng-data  t="7.3" f="3800." m="328.115" cg="478.5"/>\r
+      <eng-data  t="7.6" f="300." m="15.2611" cg="478.5"/>\r
+      <eng-data  t="7.8" f="0." m="0." cg="478.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Cesaroni_O5100.eng b/datafiles/thrustcurves/Cesaroni_O5100.eng
new file mode 100644 (file)
index 0000000..6ed9444
--- /dev/null
@@ -0,0 +1,44 @@
+;\r
+;Cesaroni Technologies Inc Motor Data File\r
+;Composed by Carl Tulanko for 150mm "O" CAR Certed Motor\r
+;24-Jun-2003 using CTI Cert graph to chart points\r
+O5100 150 803 1000 13.245 23.577 Cesaroni\r
+0.01 815.07\r
+0.02 1407.85\r
+0.03 2334.11\r
+0.04 3260.42\r
+0.05 4001.47\r
+0.07 4927.78\r
+0.07 5483.57\r
+0.09 5817.04\r
+0.13 6057.88\r
+0.2 6206.09\r
+0.3 6298.72\r
+0.43 6280.19\r
+0.6 6261.67\r
+0.78 6298.72\r
+0.97 6354.3\r
+1.05 6428.4\r
+1.12 6391.35\r
+1.34 6465.46\r
+1.49 6502.51\r
+1.75 6539.56\r
+1.88 6558.09\r
+2.16 6521.03\r
+2.36 6465.46\r
+2.58 6372.82\r
+2.96 6113.46\r
+3.56 5557.67\r
+4.13 4909.25\r
+4.72 4260.83\r
+4.83 4149.68\r
+4.93 3038.1\r
+5 2612\r
+5.1 2111.79\r
+5.23 1741.29\r
+5.32 1537.53\r
+5.52 1222.61\r
+5.8 907.69\r
+5.85 666.88\r
+5.89 333.44\r
+5.9 0\r
diff --git a/datafiles/thrustcurves/Cesaroni_O5800.eng b/datafiles/thrustcurves/Cesaroni_O5800.eng
new file mode 100644 (file)
index 0000000..d1f8e40
--- /dev/null
@@ -0,0 +1,33 @@
+; Pro 150 O5800 White Thunder\r
+O5800 150 754 P 13.950000000000001 26.368000000000002 CTI\r
+   0.069 6337.621\r
+   0.103 5700.965\r
+   0.218 5874.598\r
+   0.378 6135.048\r
+   0.561 6337.621\r
+   0.745 6221.865\r
+   0.985 6221.865\r
+   1.18 6192.926\r
+   1.455 6308.682\r
+   1.753 6366.559\r
+   1.994 6337.621\r
+   2.269 6395.498\r
+   2.509 6308.682\r
+   2.83 6192.926\r
+   3.14 6048.232\r
+   3.426 5874.598\r
+   3.69 5729.904\r
+   3.965 5585.209\r
+   4.263 5382.637\r
+   4.572 5295.82\r
+   4.939 5180.064\r
+   5.053 5035.37\r
+   5.11 4717.042\r
+   5.133 4225.08\r
+   5.145 3675.241\r
+   5.156 3038.585\r
+   5.179 2344.051\r
+   5.214 1475.884\r
+   5.259 607.717\r
+   5.294 57.878\r
+   5.295 0.0\r
diff --git a/datafiles/thrustcurves/Cesaroni_O8000.eng b/datafiles/thrustcurves/Cesaroni_O8000.eng
new file mode 100644 (file)
index 0000000..6031e41
--- /dev/null
@@ -0,0 +1,34 @@
+; Pro 150 O8000 White Thunder\r
+O8000 150 957 P 18.61 32.672000000000004 CTI\r
+   0.045 3964.63\r
+   0.046 6742.765\r
+   0.047 8623.794\r
+   0.125 7929.26\r
+   0.239 8160.772\r
+   0.364 8392.283\r
+   0.489 8508.039\r
+   0.614 8536.977\r
+   0.773 8392.283\r
+   0.989 8421.222\r
+   1.273 8479.1\r
+   1.602 8623.794\r
+   2.011 8565.916\r
+   2.33 8565.916\r
+   2.682 8479.1\r
+   3.102 8276.527\r
+   3.568 8045.016\r
+   3.886 7900.322\r
+   4.239 7668.81\r
+   4.591 7524.116\r
+   4.739 7524.116\r
+   4.909 7263.666\r
+   4.955 7003.215\r
+   4.977 6540.193\r
+   4.989 5845.659\r
+   5.0 5006.431\r
+   5.023 4051.447\r
+   5.034 3067.524\r
+   5.045 1996.785\r
+   5.08 1012.862\r
+   5.114 318.328\r
+   5.17 0.0\r
diff --git a/datafiles/thrustcurves/Contrail_G100.eng b/datafiles/thrustcurves/Contrail_G100.eng
new file mode 100644 (file)
index 0000000..27625ae
--- /dev/null
@@ -0,0 +1,7 @@
+;\r
+G100 38 406 0 0.093 0.511 Contrail_Rockets \r
+0 182.756\r
+0.199105 177.584\r
+0.606264 132.757\r
+0.986577 53.4476\r
+1.43 0\r
diff --git a/datafiles/thrustcurves/Contrail_G123.eng b/datafiles/thrustcurves/Contrail_G123.eng
new file mode 100644 (file)
index 0000000..33a0249
--- /dev/null
@@ -0,0 +1,9 @@
+;\r
+;\r
+G123 38 406 0 0.083 0.511 Contrail_Rockets \r
+0.00223714 217.239\r
+0.00671141 399.995\r
+0.0201342 220.687\r
+0.914989 72.4129\r
+0.955257 37.9306\r
+1.15 0\r
diff --git a/datafiles/thrustcurves/Contrail_G130.eng b/datafiles/thrustcurves/Contrail_G130.eng
new file mode 100644 (file)
index 0000000..5b4f418
--- /dev/null
@@ -0,0 +1,8 @@
+;\r
+;\r
+G130 38 406 0 0.093 0.516 Contrail_Rockets \r
+0 662.061\r
+0.0145414 448.27\r
+0.0234899 241.376\r
+0.642058 41.3788\r
+0.86 0\r
diff --git a/datafiles/thrustcurves/Contrail_G234.eng b/datafiles/thrustcurves/Contrail_G234.eng
new file mode 100644 (file)
index 0000000..e363596
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;G-234-HP Reload\r
+;38mm/16 Inch Hardware\r
+;Fast Nozzle\r
+G234 38 406.4 0 0.498 0.544 Contrail_Rockets \r
+0.00169492 245.419\r
+0.0973154 540.63\r
+0.183445 526.943\r
+0.202461 191.616\r
+0.237136 143.712\r
+0.260626 136.868\r
+0.533 0\r
diff --git a/datafiles/thrustcurves/Contrail_G300.eng b/datafiles/thrustcurves/Contrail_G300.eng
new file mode 100644 (file)
index 0000000..b11822e
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;G-300 PVC Motor for 38mm/16 Inch Case.\r
+;Motor uses Fast Nozzle\r
+;90cc's of Nitrous Oxide Used\r
+G300 38 406.4 0 0.023 0.544 Contrail_Rockets \r
+0.00111857 602.221\r
+0.0497763 814.367\r
+0.100671 670.655\r
+0.114094 266.893\r
+0.158837 239.52\r
+0.25 0\r
diff --git a/datafiles/thrustcurves/Contrail_H121.eng b/datafiles/thrustcurves/Contrail_H121.eng
new file mode 100644 (file)
index 0000000..2d1b380
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+H121 38 516 0 0.11 0.612 Contrail_Rockets \r
+0.00223714 251.721\r
+0.0402685 265.514\r
+0.0738255 203.446\r
+0.400447 179.308\r
+0.60179 134.481\r
+1.08949 127.585\r
+1.40268 93.1023\r
+1.61969 37.9306\r
+1.85 0\r
diff --git a/datafiles/thrustcurves/Contrail_H141.eng b/datafiles/thrustcurves/Contrail_H141.eng
new file mode 100644 (file)
index 0000000..cabed3b
--- /dev/null
@@ -0,0 +1,9 @@
+;\r
+;\r
+H141 38 516 0 0.125 0.612 Contrail_Rockets \r
+0.00223714 265.514\r
+0.111857 262.066\r
+1.20134 106.895\r
+1.25951 55.1717\r
+1.3557 27.5859\r
+1.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_H211.eng b/datafiles/thrustcurves/Contrail_H211.eng
new file mode 100644 (file)
index 0000000..966d41f
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+H211 38 516 0 0.125 0.612 Contrail_Rockets \r
+0.00111857 531.028\r
+0.0190157 634.475\r
+0.0223714 593.096\r
+0.033557 544.821\r
+0.296421 317.238\r
+0.313199 186.205\r
+0.743848 96.5506\r
+0.97 0\r
diff --git a/datafiles/thrustcurves/Contrail_H222.eng b/datafiles/thrustcurves/Contrail_H222.eng
new file mode 100644 (file)
index 0000000..d708758
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;H-222-HP Reload\r
+;38mm/16 inch Case Used\r
+;Medium Nozzle Used For Reload\r
+;140cc of Nitrous Oxide Used\r
+H222 38 406.4 0 0.022 0.52 Contrail_Rockets \r
+0 684.342\r
+0.0302013 656.968\r
+0.0525727 574.847\r
+0.0581655 349.014\r
+0.346756 260.05\r
+0.364653 191.616\r
+0.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_H246.eng b/datafiles/thrustcurves/Contrail_H246.eng
new file mode 100644 (file)
index 0000000..0bd0b63
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;H-246 HP Reload\r
+;38mm/20 Inch Case Used\r
+;Medium Nozzle Used\r
+;185cc Nitrous Oxide Used\r
+H246 38 508 0 0.022 0.598 Contrail_Rockets \r
+0.00111857 609.064\r
+0.0123043 499.57\r
+0.502237 253.206\r
+0.514541 157.399\r
+0.9 0\r
diff --git a/datafiles/thrustcurves/Contrail_H277.eng b/datafiles/thrustcurves/Contrail_H277.eng
new file mode 100644 (file)
index 0000000..6032648
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+H277 38 719 0 0.11 0.71 Contrail_Rockets \r
+0 765.508\r
+0.0738255 703.44\r
+0.118568 337.927\r
+0.917226 179.308\r
+0.957494 75.8612\r
+0.995526 41.3788\r
+1.02908 48.2753\r
+1.15 0\r
diff --git a/datafiles/thrustcurves/Contrail_H300.eng b/datafiles/thrustcurves/Contrail_H300.eng
new file mode 100644 (file)
index 0000000..05f3910
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+H300 38 516 0 0.11 0.612 Contrail_Rockets \r
+0 558.614\r
+0.115213 717.233\r
+0.12528 268.962\r
+0.214765 248.273\r
+0.286353 241.376\r
+0.334452 227.583\r
+0.62 0\r
diff --git a/datafiles/thrustcurves/Contrail_H303.eng b/datafiles/thrustcurves/Contrail_H303.eng
new file mode 100644 (file)
index 0000000..e1cc505
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;H-303-PVC Hybrid Motor\r
+;Uses Fast Nozzle\r
+;38mm/20 Inch Hardware\r
+;Uses 185cc Nitrous Oxide\r
+H303 38 508 0 0.023 0.589 Contrail_Rockets \r
+0 663.812\r
+0.0447427 780.15\r
+0.108501 704.872\r
+0.111857 342.171\r
+0.176734 328.484\r
+0.196868 307.954\r
+0.6 0\r
diff --git a/datafiles/thrustcurves/Contrail_H340.eng b/datafiles/thrustcurves/Contrail_H340.eng
new file mode 100644 (file)
index 0000000..ab350da
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+H340 38 711.2 0 0.024 0.816 Contrail_Rockets \r
+0 920.322\r
+0.0847458 715.806\r
+0.101695 345.121\r
+0.683051 332.338\r
+0.740678 255.645\r
+0.766102 153.387\r
+0.95 0\r
diff --git a/datafiles/thrustcurves/Contrail_I155.eng b/datafiles/thrustcurves/Contrail_I155.eng
new file mode 100644 (file)
index 0000000..934a4a3
--- /dev/null
@@ -0,0 +1,8 @@
+;\r
+;\r
+I155 38 711.2 0 0.045 0.725 Contrail_Rockets \r
+0.0111857 222.411\r
+2.71253 150.555\r
+2.82998 82.121\r
+2.96421 58.1691\r
+3.5 0\r
diff --git a/datafiles/thrustcurves/Contrail_I210.eng b/datafiles/thrustcurves/Contrail_I210.eng
new file mode 100644 (file)
index 0000000..17ea573
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+I210 38 922 0 0.125 0.87 Contrail_Rockets \r
+0 468.96\r
+0.464206 386.202\r
+0.497763 206.894\r
+2.25391 110.343\r
+2.34899 41.3788\r
+2.40492 13.7929\r
+2.72 0\r
diff --git a/datafiles/thrustcurves/Contrail_I221.eng b/datafiles/thrustcurves/Contrail_I221.eng
new file mode 100644 (file)
index 0000000..63fa12d
--- /dev/null
@@ -0,0 +1,9 @@
+;\r
+;\r
+I221 38 719 0 0.125 0.71 Contrail_Rockets \r
+0 482.753\r
+0.503356 358.616\r
+0.519016 179.308\r
+1.49217 103.447\r
+1.53691 27.5859\r
+1.74 0\r
diff --git a/datafiles/thrustcurves/Contrail_I290.eng b/datafiles/thrustcurves/Contrail_I290.eng
new file mode 100644 (file)
index 0000000..36c1a7a
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+I290 38 914.4 0 0.068 0.884 Contrail_Rockets \r
+0 521.516\r
+0.0847458 337.451\r
+0.138983 357.903\r
+0.19661 398.806\r
+0.308475 490.838\r
+0.40339 449.935\r
+0.589831 357.903\r
+0.762712 419.258\r
+0.932203 265.871\r
+1.08814 163.613\r
+1.24068 81.8064\r
+1.5 0\r
diff --git a/datafiles/thrustcurves/Contrail_I307.eng b/datafiles/thrustcurves/Contrail_I307.eng
new file mode 100644 (file)
index 0000000..eeabc88
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+I307 38 922 0 0.11 0.81 Contrail_Rockets \r
+0.00223714 551.717\r
+0.199105 717.233\r
+0.210291 386.202\r
+0.756152 620.682\r
+0.834452 455.167\r
+0.941834 310.341\r
+1.09172 199.998\r
+1.22371 117.24\r
+1.85 0\r
diff --git a/datafiles/thrustcurves/Contrail_I333.eng b/datafiles/thrustcurves/Contrail_I333.eng
new file mode 100644 (file)
index 0000000..3e7333b
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;I-333-PVC Reload\r
+;38mm/36 Inch Hardware\r
+;Uses Fast Nozzle\r
+;460cc Nitrous Oxide\r
+I333 38 914.4 0 0.068 0.929 Contrail_Rockets \r
+0.00894855 855.427\r
+0.0290828 881.09\r
+0.0536913 504.702\r
+0.604027 342.171\r
+0.796421 461.931\r
+1.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_I400.eng b/datafiles/thrustcurves/Contrail_I400.eng
new file mode 100644 (file)
index 0000000..6b34950
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;I-400-HP\r
+;38mm/36 Inch Hardware\r
+;Uses Fast/X-Fast Nozzle\r
+;460cc Nitrous Oxide\r
+I400 38 914.4 0 0.086 0.925 Contrail_Rockets \r
+0.00447427 667.233\r
+0.0782998 898.199\r
+0.116331 598.799\r
+0.297539 521.811\r
+0.420582 410.605\r
+0.559284 487.594\r
+0.738255 367.834\r
+1 0\r
diff --git a/datafiles/thrustcurves/Contrail_I500.eng b/datafiles/thrustcurves/Contrail_I500.eng
new file mode 100644 (file)
index 0000000..31cfb23
--- /dev/null
@@ -0,0 +1,9 @@
+;\r
+;\r
+I500 38 719 0 0.748 0.8 Contrail_Rockets \r
+0.00111857 1155.16\r
+0.0201342 706.888\r
+0.0313199 999.988\r
+0.574944 103.447\r
+0.623043 120.688\r
+0.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_I727.eng b/datafiles/thrustcurves/Contrail_I727.eng
new file mode 100644 (file)
index 0000000..31a5ddc
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+I727 38 914.4 0 0.022 0.929 Contrail_Rockets \r
+0.00847458 1278.22\r
+0.0355932 1661.69\r
+0.0983051 1508.31\r
+0.144068 1482.74\r
+0.171186 1175.97\r
+0.218644 1022.58\r
+0.422034 792.499\r
+0.75 0\r
diff --git a/datafiles/thrustcurves/Contrail_I747.eng b/datafiles/thrustcurves/Contrail_I747.eng
new file mode 100644 (file)
index 0000000..76de396
--- /dev/null
@@ -0,0 +1,5 @@
+;\r
+;\r
+I747 38 711.2 0 0.068 0.839 Contrail_Rockets \r
+0 1917.34\r
+0.45 0\r
diff --git a/datafiles/thrustcurves/Contrail_J150.eng b/datafiles/thrustcurves/Contrail_J150.eng
new file mode 100644 (file)
index 0000000..9bd4ade
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;J-150-HP\r
+;38mm/36 Inch\r
+;550cc\r
+;Slow Nozzle\r
+J150 38 914.4 0 0.091 0.839 Contrail_Rockets \r
+0 266.893\r
+2.00224 184.772\r
+2.75727 150.555\r
+3.00895 92.3861\r
+4.1 0\r
diff --git a/datafiles/thrustcurves/Contrail_J222.eng b/datafiles/thrustcurves/Contrail_J222.eng
new file mode 100644 (file)
index 0000000..2a3ceb7
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;J-222-HP Reload\r
+;Medium Nozzle\r
+;38mm/48 Inch Hardware\r
+;830cc\r
+J222 38 1219.2 0 0.091 1.043 Contrail_Rockets \r
+0.00559284 547.473\r
+0.167785 355.858\r
+2.86353 191.616\r
+2.95861 143.712\r
+3.08725 130.025\r
+3.46756 95.8079\r
+4.3 0\r
diff --git a/datafiles/thrustcurves/Contrail_J234.eng b/datafiles/thrustcurves/Contrail_J234.eng
new file mode 100644 (file)
index 0000000..574cbd3
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;J-234-BG Reload\r
+;Slow Nozzle\r
+;54mm/36 Inch Hardware\r
+J234 54 914.4 0 0.177 1.764 Contrail_Rockets \r
+0.00559284 229.255\r
+0.503356 349.014\r
+3.47875 208.724\r
+3.62416 116.338\r
+3.75839 78.6993\r
+4.3 0\r
diff --git a/datafiles/thrustcurves/Contrail_J245.eng b/datafiles/thrustcurves/Contrail_J245.eng
new file mode 100644 (file)
index 0000000..9fbd976
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;J-245-BG Reload\r
+;Slow Nozzle\r
+;54mm/28 Inch Hardware\r
+J245 54 711.2 0 0.1 1.55 Contrail_Rockets \r
+0 444.822\r
+0.139821 355.858\r
+1.05145 307.954\r
+2.06376 184.772\r
+2.15884 102.651\r
+2.28188 68.4342\r
+2.62 0\r
diff --git a/datafiles/thrustcurves/Contrail_J246.eng b/datafiles/thrustcurves/Contrail_J246.eng
new file mode 100644 (file)
index 0000000..3dfff09
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;J-246-HP Reload\r
+;38mm/36 Inch Hardware\r
+;550cc\r
+;Medium Nozzle\r
+J246 38 914.4 0 0.068 0.861 Contrail_Rockets \r
+0.0167785 492.726\r
+0.0279642 328.484\r
+0.134228 526.943\r
+0.341163 403.762\r
+0.520134 349.014\r
+2.00224 191.616\r
+2.12528 116.338\r
+2.8 0\r
diff --git a/datafiles/thrustcurves/Contrail_J272.eng b/datafiles/thrustcurves/Contrail_J272.eng
new file mode 100644 (file)
index 0000000..314da9a
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+J272 54 914.4 0 0.114 1.746 Contrail_Rockets \r
+0.00847458 398.806\r
+0.169492 572.645\r
+0.533898 460.161\r
+0.872881 388.58\r
+1.05932 357.903\r
+2.91525 204.516\r
+3.19492 71.5806\r
+3.51695 40.9032\r
+3.63559 51.129\r
+3.86 0\r
diff --git a/datafiles/thrustcurves/Contrail_J292.eng b/datafiles/thrustcurves/Contrail_J292.eng
new file mode 100644 (file)
index 0000000..3b4b919
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+J292 54 711.2 0 0.136 1.542 Contrail_Rockets \r
+0.00847458 552.193\r
+0.262712 480.612\r
+0.423729 419.258\r
+0.762712 337.451\r
+1.97458 245.419\r
+2.07627 143.161\r
+2.53 0\r
diff --git a/datafiles/thrustcurves/Contrail_J333.eng b/datafiles/thrustcurves/Contrail_J333.eng
new file mode 100644 (file)
index 0000000..4a0dba8
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+J333 38 1227 0 0.11 1.064 Contrail_Rockets \r
+0 717.233\r
+0.204139 799.99\r
+0.752237 448.27\r
+0.763423 268.962\r
+2.16443 62.0682\r
+2.23714 27.5859\r
+2.4 0\r
diff --git a/datafiles/thrustcurves/Contrail_J345.eng b/datafiles/thrustcurves/Contrail_J345.eng
new file mode 100644 (file)
index 0000000..72f66c6
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;J-345-PVC\r
+;38mm/48 Inch Hardware\r
+;735cc\r
+;Fast Nozzle\r
+J345 38 1219.2 0 0.098 1.118 Contrail_Rockets \r
+0.00559284 881.09\r
+0.0782998 667.233\r
+1.21924 376.388\r
+1.26398 359.279\r
+2.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_J355.eng b/datafiles/thrustcurves/Contrail_J355.eng
new file mode 100644 (file)
index 0000000..99af48c
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+J355 54 711.2 0 0.09 1.564 Contrail_Rockets \r
+0 562.419\r
+0.176271 501.064\r
+0.2 286.322\r
+0.433898 286.322\r
+0.688136 337.451\r
+0.701695 501.064\r
+0.80678 490.838\r
+1.00339 521.516\r
+1.21695 419.258\r
+1.31186 429.484\r
+1.37627 460.161\r
+1.49831 429.484\r
+1.54576 224.968\r
+1.64068 122.71\r
+1.91 0\r
diff --git a/datafiles/thrustcurves/Contrail_J358.eng b/datafiles/thrustcurves/Contrail_J358.eng
new file mode 100644 (file)
index 0000000..9f61faa
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+J358 54 914.4 0 0.111 1.743 Contrail_Rockets \r
+0.00847458 726.032\r
+0.0932203 726.032\r
+0.110169 501.064\r
+0.483051 480.612\r
+0.550847 398.806\r
+2.23729 286.322\r
+2.32203 153.387\r
+2.44915 112.484\r
+2.69 0\r
diff --git a/datafiles/thrustcurves/Contrail_J416.eng b/datafiles/thrustcurves/Contrail_J416.eng
new file mode 100644 (file)
index 0000000..07e4551
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+J416 54 914.4 0 0.158 1.7 Contrail_Rockets \r
+0 787.386\r
+0.0762712 777.161\r
+0.211864 572.645\r
+0.432203 531.741\r
+0.864407 511.29\r
+1.26271 480.612\r
+1.82203 470.387\r
+2.00847 347.677\r
+2.13559 276.097\r
+2.24576 184.064\r
+2.40678 81.8064\r
+2.75 0\r
diff --git a/datafiles/thrustcurves/Contrail_J555.eng b/datafiles/thrustcurves/Contrail_J555.eng
new file mode 100644 (file)
index 0000000..a1b444e
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+J555 38 1227 0 0.166 1.132 Contrail_Rockets \r
+0 931.023\r
+0.0581655 1344.81\r
+0.277405 810.335\r
+1.17226 241.376\r
+1.2774 68.9647\r
+1.31767 51.7235\r
+1.6 0\r
diff --git a/datafiles/thrustcurves/Contrail_J642.eng b/datafiles/thrustcurves/Contrail_J642.eng
new file mode 100644 (file)
index 0000000..229af7e
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+J642 54 914.4 0 0.159 1.791 Contrail_Rockets \r
+0.00677966 1482.74\r
+0.0779661 997.015\r
+0.471186 1303.79\r
+0.542373 818.064\r
+0.633898 741.37\r
+0.742373 587.983\r
+1.25085 485.725\r
+1.29831 332.338\r
+1.39661 178.951\r
+1.47458 51.129\r
+1.72 0\r
diff --git a/datafiles/thrustcurves/Contrail_J800.eng b/datafiles/thrustcurves/Contrail_J800.eng
new file mode 100644 (file)
index 0000000..c33d77b
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;J-800-HP\r
+;38mm/48 Inch\r
+;685cc\r
+;XXF Nozzle (Short Nozzle)\r
+J800 38 1219.2 0 0.105 1.148 Contrail_Rockets \r
+0.00223714 1830.61\r
+0.52349 889.644\r
+0.639821 650.125\r
+0.740492 444.822\r
+0.823266 273.737\r
+0.90604 153.977\r
+0.997763 136.868\r
+1.2 0\r
diff --git a/datafiles/thrustcurves/Contrail_K234.eng b/datafiles/thrustcurves/Contrail_K234.eng
new file mode 100644 (file)
index 0000000..62ce6e1
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;K-234-BG Reload\r
+;Slow Nozzle\r
+;54mm/48 Inch Hardware\r
+K234 54 1219.2 0 0.385 2.063 Contrail_Rockets \r
+0 92.3861\r
+0.234899 396.918\r
+0.973154 338.749\r
+5.97315 171.085\r
+6.05145 106.073\r
+6.19687 78.6993\r
+6.37584 54.7473\r
+7.05 0\r
diff --git a/datafiles/thrustcurves/Contrail_K265.eng b/datafiles/thrustcurves/Contrail_K265.eng
new file mode 100644 (file)
index 0000000..14fe5a0
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;\r
+K265 54 1219.2 0 0.271 2.085 Contrail_Rockets \r
+0 470.387\r
+2.44068 347.677\r
+3.91525 224.968\r
+4.77966 173.839\r
+5.13559 112.484\r
+5.33898 51.129\r
+6.26 0\r
diff --git a/datafiles/thrustcurves/Contrail_K300.eng b/datafiles/thrustcurves/Contrail_K300.eng
new file mode 100644 (file)
index 0000000..385b78c
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;K-300-BS\r
+;75mm/40 Inch Hardware\r
+;2050cc\r
+;Slow Nozzle\r
+K300 75 1016 0 0.181 4.059 Contrail_Rockets \r
+0 431.135\r
+0.324385 526.943\r
+0.98434 479.039\r
+1.1745 369.545\r
+5 280.58\r
+5.19016 171.085\r
+5.35794 102.651\r
+5.6264 54.7473\r
+5.79418 27.3737\r
+6.5 0\r
diff --git a/datafiles/thrustcurves/Contrail_K321.eng b/datafiles/thrustcurves/Contrail_K321.eng
new file mode 100644 (file)
index 0000000..42c6698
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;K-321-BG Reload\r
+;54mm/48 Inch Hardware\r
+;Medium Nozzle\r
+K321 54 1219.2 0 0.183 2.043 Contrail_Rockets \r
+0.00559284 218.989\r
+0.218121 410.605\r
+0.973154 718.559\r
+0.989933 732.246\r
+1.05705 444.822\r
+1.4877 403.762\r
+3.97092 232.676\r
+4.11633 88.9644\r
+4.23378 54.7473\r
+4.34564 54.7473\r
+4.9 0\r
diff --git a/datafiles/thrustcurves/Contrail_K404.eng b/datafiles/thrustcurves/Contrail_K404.eng
new file mode 100644 (file)
index 0000000..ad9e933
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;K-404-Sparky\r
+;75mm/40 Inch Hardware\r
+;2050cc\r
+;Slow Nozzle\r
+K404 75 1016 0 0.318 4.15 Contrail_Rockets \r
+0.0111857 670.655\r
+4.63087 335.328\r
+4.80984 205.303\r
+4.9217 130.025\r
+5.0783 82.121\r
+5.26846 41.0605\r
+6.4 0\r
diff --git a/datafiles/thrustcurves/Contrail_K456.eng b/datafiles/thrustcurves/Contrail_K456.eng
new file mode 100644 (file)
index 0000000..72e556e
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+K456 75 813 0 0.58 3.704 Contrail_Rockets \r
+0.00559284 681.026\r
+0.212528 896.541\r
+0.503356 775.853\r
+1.36465 577.579\r
+1.52685 525.856\r
+2.51119 370.685\r
+2.66779 129.309\r
+3.7 0\r
diff --git a/datafiles/thrustcurves/Contrail_K630.eng b/datafiles/thrustcurves/Contrail_K630.eng
new file mode 100644 (file)
index 0000000..1da3faf
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;K-630-Sparky Reload\r
+;75mm/41 Inch Hardare\r
+;1400cc\r
+;Medium Nozzle\r
+K630 75 1041.4 0 0.075 3.55 Contrail_Rockets \r
+0.00559284 307.954\r
+0.0978747 573.136\r
+0.500559 889.644\r
+1.75336 667.233\r
+1.85403 410.605\r
+1.93792 239.52\r
+2.04978 128.314\r
+2.2 0\r
diff --git a/datafiles/thrustcurves/Contrail_K678.eng b/datafiles/thrustcurves/Contrail_K678.eng
new file mode 100644 (file)
index 0000000..16febf9
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;K-678-Sparky\r
+;75mm/40 Inch Hardware\r
+;2050cc\r
+;Medium Nozzle\r
+K678 75 1016 0 0.827 4.05 Contrail_Rockets \r
+0.00559284 1163.38\r
+2.21477 444.822\r
+2.32103 256.628\r
+2.38814 102.651\r
+2.8 0\r
diff --git a/datafiles/thrustcurves/Contrail_K707.eng b/datafiles/thrustcurves/Contrail_K707.eng
new file mode 100644 (file)
index 0000000..3d6ec1e
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+K707 75 813 0 0.145 3.674 Contrail_Rockets \r
+0.0466102 281.209\r
+0.122881 1278.22\r
+0.165254 894.757\r
+0.495763 1431.61\r
+0.618644 1150.4\r
+0.694915 945.886\r
+0.834746 920.322\r
+1.01271 664.677\r
+1.50847 536.854\r
+1.62288 281.209\r
+1.72881 127.822\r
+2 0\r
diff --git a/datafiles/thrustcurves/Contrail_K777.eng b/datafiles/thrustcurves/Contrail_K777.eng
new file mode 100644 (file)
index 0000000..befb614
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+K777 75 1016 0 0.645 4.05 Contrail_Rockets \r
+0 931.023\r
+0.0950783 965.506\r
+0.111857 1793.08\r
+0.167785 1741.36\r
+0.206935 1344.81\r
+0.727069 1137.92\r
+1.00112 810.335\r
+1.97427 413.788\r
+2.04698 172.412\r
+2.6 0\r
diff --git a/datafiles/thrustcurves/Contrail_L1222.eng b/datafiles/thrustcurves/Contrail_L1222.eng
new file mode 100644 (file)
index 0000000..f11e7a1
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;Contrail Rockets LLC Hybrid Rocket Motor (L1222)\r
+;75mm-3200cc Motor System\r
+;Sparky Hybrid Fuel\r
+;Data Input By Tom R. Sanders of Contrail Rockets\r
+L1222 75 1339.85 0 3.9 4.989 Contrail_Rockets \r
+0 455\r
+0.25 455\r
+0.5 2725\r
+0.75 1816\r
+2.75 680\r
+3.1 0\r
diff --git a/datafiles/thrustcurves/Contrail_L2525.eng b/datafiles/thrustcurves/Contrail_L2525.eng
new file mode 100644 (file)
index 0000000..032e487
--- /dev/null
@@ -0,0 +1,6 @@
+;\r
+;\r
+L2525 75 1492.25 0 3.5 5.579 Contrail_Rockets \r
+0 4200\r
+0.754759 3294.57\r
+1.9 0\r
diff --git a/datafiles/thrustcurves/Contrail_L369.eng b/datafiles/thrustcurves/Contrail_L369.eng
new file mode 100644 (file)
index 0000000..7c1d69d
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;L-369-Sparky\r
+;Slow nozzle\r
+;75mm/54 Inch Hardware\r
+;3200cc\r
+L369 75 1371.6 0 0.514 4.8 Contrail_Rockets \r
+0.0223714 540.63\r
+1.45414 533.787\r
+8.92617 260.05\r
+9.08277 130.025\r
+9.28412 68.4342\r
+10.6 0\r
diff --git a/datafiles/thrustcurves/Contrail_L800.eng b/datafiles/thrustcurves/Contrail_L800.eng
new file mode 100644 (file)
index 0000000..dadaba2
--- /dev/null
@@ -0,0 +1,16 @@
+;\r
+;L-800-Sparky\r
+;75mm/54 Inch Hardware\r
+;3200cc\r
+;Medium Nozzle\r
+L800 75 1371.6 0 0.988 4.726 Contrail_Rockets \r
+0.00559284 1351.58\r
+0.167785 1129.16\r
+0.329978 1266.03\r
+0.553691 1248.92\r
+0.665548 1129.16\r
+3.48434 821.21\r
+3.5962 496.148\r
+3.69687 273.737\r
+3.83669 153.977\r
+4.6 0\r
diff --git a/datafiles/thrustcurves/Contrail_M1575.eng b/datafiles/thrustcurves/Contrail_M1575.eng
new file mode 100644 (file)
index 0000000..3b4e0b8
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;M-1575-Black Gold Reload\r
+;5300cc\r
+;98mm/60 Inch Hardware\r
+M1575 98 1524 0 0.726 10.863 Contrail_Rockets \r
+0.139821 2429.41\r
+0.503356 2976.89\r
+2.95302 1402.9\r
+3.06488 923.861\r
+3.21029 376.388\r
+3.31096 205.303\r
+4.2 0\r
diff --git a/datafiles/thrustcurves/Contrail_M2700.eng b/datafiles/thrustcurves/Contrail_M2700.eng
new file mode 100644 (file)
index 0000000..34bc383
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+M2700 98 1524 0 0.412 10.432 Contrail_Rockets \r
+0.00847458 2965.48\r
+0.0508475 3272.26\r
+0.105932 5930.96\r
+0.347458 5828.7\r
+0.504237 6442.25\r
+0.512712 5726.45\r
+0.601695 5112.9\r
+0.745763 3681.29\r
+0.902542 3067.74\r
+1.06356 2454.19\r
+1.18644 1942.9\r
+1.34322 1738.39\r
+1.75 715.806\r
+1.95763 102.258\r
+2.3 0\r
diff --git a/datafiles/thrustcurves/Contrail_M2800.eng b/datafiles/thrustcurves/Contrail_M2800.eng
new file mode 100644 (file)
index 0000000..a1b26b2
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;M-2800-Black Gold Reload\r
+;5300cc\r
+;98mm/60 inch Hardware\r
+M2800 98 1524 0 0.476 10.704 Contrail_Rockets \r
+0.00838926 2395.2\r
+0.251678 2805.8\r
+0.545302 3695.45\r
+0.75783 5611.6\r
+0.911633 4311.35\r
+1.1745 3558.58\r
+1.4094 2258.33\r
+1.70861 1505.55\r
+2.3 0\r
diff --git a/datafiles/thrustcurves/Contrail_O6300.eng b/datafiles/thrustcurves/Contrail_O6300.eng
new file mode 100644 (file)
index 0000000..3d0e4fd
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+O6300 152 1828.8 0 3.175 28.576 Contrail_Rockets \r
+0.0338983 12271\r
+0.728814 9714.51\r
+1.65254 9203.22\r
+2.37288 8947.57\r
+2.51695 6646.77\r
+2.78814 4601.61\r
+2.99153 4857.25\r
+3.27966 3579.03\r
+3.61017 1278.22\r
+4.29 0\r
diff --git a/datafiles/thrustcurves/Ellis_G20.eng b/datafiles/thrustcurves/Ellis_G20.eng
new file mode 100644 (file)
index 0000000..c8fc648
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+G20 29 149 3 0.0729 0.1179 Ellis_Mountain \r
+0.0463679 46.6843\r
+0.278207 30.3888\r
+0.479134 26.8655\r
+1.00464 24.6634\r
+3.47759 22.0209\r
+4.32767 13.653\r
+5.11592 3.08293\r
+5.47 0\r
diff --git a/datafiles/thrustcurves/Ellis_G35.eng b/datafiles/thrustcurves/Ellis_G35.eng
new file mode 100644 (file)
index 0000000..2c6da54
--- /dev/null
@@ -0,0 +1,10 @@
+;\r
+;Ellis Mountain G35 Single Use Motor\r
+G35EM 29 165 6-10 0.082 0.135 Ellis_Mountain \r
+0.01 51.12\r
+0.04 57.55\r
+0.08 43.78\r
+2.73 28.16\r
+3.28 28.16\r
+3.78 6.73\r
+4 0\r
diff --git a/datafiles/thrustcurves/Ellis_G37.eng b/datafiles/thrustcurves/Ellis_G37.eng
new file mode 100644 (file)
index 0000000..1df8f92
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+G37 24 181 6-10-100 0.068 0.1133 Ellis_Mountain \r
+0.0231839 69.586\r
+0.162287 55.9331\r
+0.332303 48.0056\r
+0.502318 44.9226\r
+0.996909 40.9589\r
+1.49923 38.7568\r
+2.00155 34.3526\r
+2.49614 28.1868\r
+2.75116 18.4976\r
+2.99845 5.28502\r
+3.1 0\r
diff --git a/datafiles/thrustcurves/Ellis_H275.eng b/datafiles/thrustcurves/Ellis_H275.eng
new file mode 100644 (file)
index 0000000..1d83b44
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+H275 29 275 10 0.142 0.255 Ellis_Mountain \r
+0.0123648 792.752\r
+0.015456 356.739\r
+0.197836 312.697\r
+0.797527 268.655\r
+0.911901 255.442\r
+0.992272 123.317\r
+1.04173 39.6376\r
+1.1 0\r
diff --git a/datafiles/thrustcurves/Ellis_H48.eng b/datafiles/thrustcurves/Ellis_H48.eng
new file mode 100644 (file)
index 0000000..a6d69fb
--- /dev/null
@@ -0,0 +1,20 @@
+;\r
+;Ellis Mountain Rocket Works\r
+;H48 Single Use motor\r
+H48 38 200 8-100 0.154 0.292 Ellis_Mountain \r
+0.05 101.5\r
+0.1 101.5\r
+0.21 92.18\r
+0.46 86.48\r
+0.74 83.38\r
+1 80\r
+1.49 74.57\r
+1.99 68.36\r
+2.48 63.18\r
+2.99 56.45\r
+3.2 34.18\r
+3.5 18\r
+3.69 13.46\r
+4 11\r
+4.36 7.77\r
+4.4 0\r
diff --git a/datafiles/thrustcurves/Ellis_H50.eng b/datafiles/thrustcurves/Ellis_H50.eng
new file mode 100644 (file)
index 0000000..717bcd0
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;Ellis Mountain Rocket Works\r
+;H50 Single Use motor\r
+H50 29 279 6-10 0.163 0.3 Ellis_Mountain \r
+0.01 63.67\r
+0.17 108.9\r
+0.27 94.9\r
+0.47 81.43\r
+0.79 71.02\r
+1.27 64.9\r
+1.97 60.61\r
+2.56 56.94\r
+3.01 52.04\r
+3.52 45.31\r
+3.97 34.9\r
+4.49 18.37\r
+4.97 4.9\r
+5.28 0\r
diff --git a/datafiles/thrustcurves/Ellis_I130.eng b/datafiles/thrustcurves/Ellis_I130.eng
new file mode 100644 (file)
index 0000000..005f74f
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+I130 38 330 100 0.308 0.625 Ellis_Mountain \r
+0.015456 266.453\r
+0.0540958 160.753\r
+0.502318 169.561\r
+2.23338 180.571\r
+2.48841 149.742\r
+2.99073 136.53\r
+3.49304 77.0732\r
+4.01082 26.4251\r
+4.43 0\r
diff --git a/datafiles/thrustcurves/Ellis_I134.eng b/datafiles/thrustcurves/Ellis_I134.eng
new file mode 100644 (file)
index 0000000..95a6c9a
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;Ellis Mountain Rocket Works\r
+;I134 38mm Single Use motor\r
+I134 38 355 15 0.2807 0.5812 Ellis_Mountain \r
+0.1 268.8\r
+0.2 138\r
+1 116\r
+2 102\r
+3 85\r
+4 67\r
+4.65 16.46\r
+4.82 6.86\r
+5.07 6.86\r
+5.15 0\r
diff --git a/datafiles/thrustcurves/Ellis_I150.eng b/datafiles/thrustcurves/Ellis_I150.eng
new file mode 100644 (file)
index 0000000..bab3797
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain I150\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I150 38 229 0 0.172032 0.425152 EM\r
+   0.050 101.298\r
+   0.152 159.193\r
+   0.255 169.686\r
+   0.358 179.603\r
+   0.460 188.152\r
+   0.564 193.364\r
+   0.667 204.520\r
+   0.769 212.046\r
+   0.872 212.937\r
+   0.975 208.076\r
+   1.077 196.555\r
+   1.180 191.025\r
+   1.283 186.106\r
+   1.386 181.835\r
+   1.490 177.947\r
+   1.592 175.877\r
+   1.695 173.744\r
+   1.798 170.664\r
+   1.900 161.823\r
+   2.003 149.111\r
+   2.106 124.923\r
+   2.208 68.392\r
+   2.311 20.122\r
+   2.415 7.794\r
+   2.518 4.464\r
+   2.621 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_I160.eng b/datafiles/thrustcurves/Ellis_I160.eng
new file mode 100644 (file)
index 0000000..7d0e294
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain I160\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I160 38 280 0 0.235648 0.528192 EM\r
+   0.068 169.405\r
+   0.206 199.425\r
+   0.346 205.072\r
+   0.485 206.075\r
+   0.624 205.840\r
+   0.763 204.052\r
+   0.902 200.850\r
+   1.042 200.885\r
+   1.180 203.053\r
+   1.319 204.157\r
+   1.458 206.392\r
+   1.598 210.051\r
+   1.736 212.769\r
+   1.875 211.177\r
+   2.015 207.500\r
+   2.154 189.766\r
+   2.293 136.149\r
+   2.431 52.306\r
+   2.571 42.841\r
+   2.710 41.803\r
+   2.849 33.042\r
+   2.987 24.614\r
+   3.127 17.154\r
+   3.267 7.477\r
+   3.406 1.777\r
+   3.546 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_I230.eng b/datafiles/thrustcurves/Ellis_I230.eng
new file mode 100644 (file)
index 0000000..e9df182
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain I230\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+I230 38 331 0 0.282688 0.620928 EM\r
+   0.058 292.627\r
+   0.178 317.660\r
+   0.298 309.874\r
+   0.418 305.243\r
+   0.537 299.679\r
+   0.657 298.170\r
+   0.777 294.591\r
+   0.897 293.800\r
+   1.018 289.736\r
+   1.138 288.222\r
+   1.257 284.614\r
+   1.377 281.149\r
+   1.497 274.879\r
+   1.617 269.775\r
+   1.736 258.925\r
+   1.856 242.249\r
+   1.976 207.607\r
+   2.097 136.698\r
+   2.217 86.506\r
+   2.336 74.324\r
+   2.456 51.246\r
+   2.576 45.546\r
+   2.696 27.050\r
+   2.816 6.382\r
+   2.936 1.423\r
+   3.057 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_I69.eng b/datafiles/thrustcurves/Ellis_I69.eng
new file mode 100644 (file)
index 0000000..c0d6005
--- /dev/null
@@ -0,0 +1,19 @@
+;\r
+;Ellis Mountain Rocket Works\r
+;I69 38mm Single Use motor\r
+I69 29 406 10 0.236 0.4 Ellis_Mountain \r
+0.05 78.67\r
+0.1 149.7\r
+0.25 133.5\r
+0.49 111.51\r
+0.75 100\r
+1.07 93.18\r
+1.48 87.83\r
+2 82.49\r
+2.5 78\r
+2.99 73.32\r
+3.5 64.5\r
+3.99 48.88\r
+4.5 29.79\r
+4.99 9.17\r
+5.28 0\r
diff --git a/datafiles/thrustcurves/Ellis_J110.eng b/datafiles/thrustcurves/Ellis_J110.eng
new file mode 100644 (file)
index 0000000..394d41d
--- /dev/null
@@ -0,0 +1,11 @@
+;\r
+;\r
+J110 54 276.2 100 0.45359 0.8754 Ellis_Mountain \r
+0.108192 193.784\r
+0.386399 147.54\r
+1.00464 139.833\r
+4.034 116.711\r
+5.00773 94.6899\r
+6.01236 67.1637\r
+6.53787 37.4355\r
+6.8 0\r
diff --git a/datafiles/thrustcurves/Ellis_J148.eng b/datafiles/thrustcurves/Ellis_J148.eng
new file mode 100644 (file)
index 0000000..2b37673
--- /dev/null
@@ -0,0 +1,12 @@
+;\r
+;\r
+J148 54 355.6 14 0.67 1.179 Ellis_Mountain \r
+0.139104 218.007\r
+0.231839 183.875\r
+0.448223 171.763\r
+1.00464 170.662\r
+2.10201 170.662\r
+5.02318 147.54\r
+5.31685 133.226\r
+5.67233 49.547\r
+6.1 0\r
diff --git a/datafiles/thrustcurves/Ellis_J228.eng b/datafiles/thrustcurves/Ellis_J228.eng
new file mode 100644 (file)
index 0000000..54560e8
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+J228 38 562 6 0.27 0.8391 Ellis_Mountain \r
+0.0309119 665.031\r
+0.0927357 444.822\r
+0.262751 356.739\r
+0.664606 343.526\r
+0.989181 317.101\r
+1.96291 259.847\r
+2.99845 193.784\r
+4.01855 118.913\r
+4.99227 35.2334\r
+5.2 0\r
diff --git a/datafiles/thrustcurves/Ellis_J270.eng b/datafiles/thrustcurves/Ellis_J270.eng
new file mode 100644 (file)
index 0000000..7a810a8
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain J270\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J270 38 384 0 0.341824 0.711872 EM\r
+   0.057 357.607\r
+   0.175 386.516\r
+   0.294 368.069\r
+   0.412 360.627\r
+   0.530 356.068\r
+   0.648 353.900\r
+   0.767 351.910\r
+   0.885 349.900\r
+   1.003 348.675\r
+   1.121 347.552\r
+   1.240 343.075\r
+   1.358 338.000\r
+   1.476 330.566\r
+   1.594 315.474\r
+   1.712 293.325\r
+   1.831 266.102\r
+   1.949 184.040\r
+   2.067 131.638\r
+   2.185 109.171\r
+   2.304 89.570\r
+   2.422 74.945\r
+   2.540 55.700\r
+   2.658 31.860\r
+   2.777 17.751\r
+   2.896 10.109\r
+   3.015 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_J330.eng b/datafiles/thrustcurves/Ellis_J330.eng
new file mode 100644 (file)
index 0000000..65c27f2
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain J330\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J330 38 433 0 0.407232 0.820736 EM\r
+   0.055 482.013\r
+   0.169 515.156\r
+   0.283 509.959\r
+   0.398 511.485\r
+   0.512 509.155\r
+   0.626 503.627\r
+   0.740 495.461\r
+   0.854 486.118\r
+   0.969 477.786\r
+   1.083 472.073\r
+   1.197 455.861\r
+   1.310 433.714\r
+   1.425 407.542\r
+   1.540 367.945\r
+   1.654 271.221\r
+   1.768 203.711\r
+   1.881 152.800\r
+   1.996 106.108\r
+   2.110 91.404\r
+   2.225 72.286\r
+   2.339 63.983\r
+   2.452 61.809\r
+   2.567 42.010\r
+   2.681 16.437\r
+   2.796 4.496\r
+   2.910 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_K475.eng b/datafiles/thrustcurves/Ellis_K475.eng
new file mode 100644 (file)
index 0000000..3fb8edb
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+K475 54 663.6 14 1.035 2.168 Ellis_Mountain \r
+0.0463679 797.157\r
+0.15456 616.585\r
+0.278207 585.756\r
+0.479134 568.139\r
+2.92117 576.948\r
+3.29212 568.139\r
+4.00309 303.888\r
+4.51314 224.613\r
+5.02318 74.8711\r
+5.5 0\r
diff --git a/datafiles/thrustcurves/Ellis_L330.eng b/datafiles/thrustcurves/Ellis_L330.eng
new file mode 100644 (file)
index 0000000..a4c0542
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain L330\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L330 76 381 0 1.46944 2.67008 EM\r
+   0.194 298.963\r
+   0.584 378.807\r
+   0.975 376.204\r
+   1.366 382.475\r
+   1.757 391.163\r
+   2.148 399.442\r
+   2.539 406.048\r
+   2.930 407.731\r
+   3.321 405.666\r
+   3.711 400.636\r
+   4.103 393.384\r
+   4.494 384.520\r
+   4.884 377.009\r
+   5.275 368.385\r
+   5.666 359.041\r
+   6.057 350.117\r
+   6.448 341.587\r
+   6.839 337.109\r
+   7.230 300.039\r
+   7.621 194.602\r
+   8.011 123.445\r
+   8.403 66.942\r
+   8.794 32.233\r
+   9.184 8.248\r
+   9.576 1.563\r
+   9.968 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_L600.eng b/datafiles/thrustcurves/Ellis_L600.eng
new file mode 100644 (file)
index 0000000..1558fd2
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain L600\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L600 76 584 0 2.4407 4.11981 EM\r
+   0.186 829.668\r
+   0.561 773.861\r
+   0.936 767.837\r
+   1.313 755.034\r
+   1.689 736.454\r
+   2.064 722.717\r
+   2.440 706.215\r
+   2.816 688.253\r
+   3.191 673.457\r
+   3.567 660.981\r
+   3.943 648.124\r
+   4.318 634.689\r
+   4.694 622.058\r
+   5.070 607.970\r
+   5.445 594.926\r
+   5.821 583.003\r
+   6.197 573.084\r
+   6.572 553.530\r
+   6.948 399.379\r
+   7.324 270.410\r
+   7.699 211.401\r
+   8.075 144.237\r
+   8.451 74.227\r
+   8.826 19.378\r
+   9.202 4.274\r
+   9.578 0.000\r
diff --git a/datafiles/thrustcurves/Ellis_M1000.eng b/datafiles/thrustcurves/Ellis_M1000.eng
new file mode 100644 (file)
index 0000000..5452e53
--- /dev/null
@@ -0,0 +1,30 @@
+; Ellis Mountain M1000\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+M1000 76 787 0 3.47514 5.5776 EM\r
+   0.159 1897.088\r
+   0.481 1606.200\r
+   0.803 1441.676\r
+   1.125 1360.014\r
+   1.447 1299.506\r
+   1.769 1259.449\r
+   2.091 1231.131\r
+   2.413 1202.529\r
+   2.735 1179.968\r
+   3.057 1154.573\r
+   3.379 1108.815\r
+   3.701 1075.453\r
+   4.023 1045.316\r
+   4.345 1010.304\r
+   4.667 951.184\r
+   4.989 860.548\r
+   5.310 727.369\r
+   5.633 595.659\r
+   5.955 518.911\r
+   6.277 439.902\r
+   6.599 347.743\r
+   6.921 239.388\r
+   7.243 144.608\r
+   7.565 75.112\r
+   7.887 33.539\r
+   8.210 0.000\r
diff --git a/datafiles/thrustcurves/Estes_1_2A3.eng b/datafiles/thrustcurves/Estes_1_2A3.eng
new file mode 100644 (file)
index 0000000..e947f91
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;Estes 1/2A3T RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+1/2A3T 13 45 2-4 0.002 0.0066 Estes \r
+0.024 0.501\r
+0.042 1.454\r
+0.064 3.009\r
+0.076 4.062\r
+0.088 4.914\r
+0.093 5.065\r
+0.103 6.068\r
+0.112 6.87\r
+0.117 7.021\r
+0.126 7.62\r
+0.137 7.472\r
+0.146 6.87\r
+0.153 6.118\r
+0.159 5.065\r
+0.166 4.363\r
+0.179 3.66\r
+0.197 2.908\r
+0.222 2.256\r
+0.25 2.156\r
+0.277 2.106\r
+0.294 2.056\r
+0.304 2.156\r
+0.316 1.955\r
+0.326 1.554\r
+0.339 1.053\r
+0.35 0.651\r
+0.36 0\r
diff --git a/datafiles/thrustcurves/Estes_1_2A6.eng b/datafiles/thrustcurves/Estes_1_2A6.eng
new file mode 100644 (file)
index 0000000..716ba46
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;Estes 1/2A6 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+1/2A6 18 70 2 0.0026 0.0138 Estes \r
+0.031 0.404\r
+0.064 1.258\r
+0.096 2.263\r
+0.124 3.467\r
+0.149 4.72\r
+0.172 6.023\r
+0.196 7.027\r
+0.21 7.528\r
+0.225 7.86\r
+0.235 7.482\r
+0.244 6.683\r
+0.254 5.685\r
+0.263 4.487\r
+0.269 4.087\r
+0.279 3.039\r
+0.29 1.79\r
+0.297 1.042\r
+0.306 0.593\r
+0.314 0.344\r
+0.33 0\r
diff --git a/datafiles/thrustcurves/Estes_1_4A3.eng b/datafiles/thrustcurves/Estes_1_4A3.eng
new file mode 100644 (file)
index 0000000..e74ab24
--- /dev/null
@@ -0,0 +1,34 @@
+;Estes 1/4A3T RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+1/4A3T 13 45 3 0.00083 0.0061 Estes \r
+0.016 0.243\r
+0.044 1.164\r
+0.08 2.698\r
+0.088 2.851\r
+0.096 3.312\r
+0.105 3.804\r
+0.116 4.325\r
+0.129 4.754\r
+0.131 4.754\r
+0.135 4.95\r
+0.139 4.815\r
+0.143 4.814\r
+0.149 4.66\r
+0.157 4.289\r
+0.173 3.548\r
+0.187 2.808\r
+0.194 2.592\r
+0.197 2.13\r
+0.202 1.913\r
+0.206 1.512\r
+0.213 1.389\r
+0.218 1.112\r
+0.227 0.802\r
+0.236 0.493\r
+0.241 0.277\r
+0.25 0\r
diff --git a/datafiles/thrustcurves/Estes_A10.eng b/datafiles/thrustcurves/Estes_A10.eng
new file mode 100644 (file)
index 0000000..064f78c
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;Estes A10T RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+A10T 13 45 3-100 0.0038 0.00525 Estes \r
+0.026 0.478\r
+0.055 1.919\r
+0.093 4.513\r
+0.124 8.165\r
+0.146 10.956\r
+0.166 12.64\r
+0.179 11.046\r
+0.194 7.966\r
+0.203 6.042\r
+0.209 3.154\r
+0.225 1.421\r
+0.26 1.225\r
+0.333 1.41\r
+0.456 1.206\r
+0.575 1.195\r
+0.663 1.282\r
+0.76 1.273\r
+0.811 1.268\r
+0.828 0.689\r
+0.85 0\r
diff --git a/datafiles/thrustcurves/Estes_A3.eng b/datafiles/thrustcurves/Estes_A3.eng
new file mode 100644 (file)
index 0000000..46d406d
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Estes A3T RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+A3T 13 45 4 0.0033 0.0085 Estes \r
+0.024 0.195\r
+0.048 0.899\r
+0.086 2.658\r
+0.11 4.183\r
+0.14 5.83\r
+0.159 5.395\r
+0.18 4.301\r
+0.199 3.635\r
+0.215 2.736\r
+0.234 2.267\r
+0.258 2.15\r
+0.315 2.072\r
+0.441 1.993\r
+0.554 2.033\r
+0.605 2.072\r
+0.673 1.954\r
+0.764 1.954\r
+0.874 2.072\r
+0.931 2.15\r
+0.953 2.072\r
+0.966 1.719\r
+0.977 1.173\r
+0.993 0.547\r
+1.01 0\r
diff --git a/datafiles/thrustcurves/Estes_A8.eng b/datafiles/thrustcurves/Estes_A8.eng
new file mode 100644 (file)
index 0000000..22ab109
--- /dev/null
@@ -0,0 +1,32 @@
+;\r
+;Estes A8 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+A8 18 70 3-5 0.0033 0.01635 Estes \r
+0.041 0.512\r
+0.084 2.115\r
+0.127 4.358\r
+0.166 6.794\r
+0.192 8.588\r
+0.206 9.294\r
+0.226 9.73\r
+0.236 8.845\r
+0.247 7.179\r
+0.261 5.063\r
+0.277 3.717\r
+0.306 3.205\r
+0.351 2.884\r
+0.405 2.499\r
+0.467 2.371\r
+0.532 2.307\r
+0.589 2.371\r
+0.632 2.371\r
+0.652 2.243\r
+0.668 1.794\r
+0.684 1.153\r
+0.703 0.448\r
+0.73 0\r
diff --git a/datafiles/thrustcurves/Estes_B4.eng b/datafiles/thrustcurves/Estes_B4.eng
new file mode 100644 (file)
index 0000000..64b0998
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+;Estes B4 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+B4 18 70 2-4 0.006 0.0189 Estes \r
+0.02 0.418\r
+0.04 1.673\r
+0.065 4.076\r
+0.085 6.69\r
+0.105 9.304\r
+0.119 11.496\r
+0.136 12.75\r
+0.153 11.916\r
+0.173 10.666\r
+0.187 9.304\r
+0.198 7.214\r
+0.207 5.645\r
+0.226 4.809\r
+0.258 4.182\r
+0.326 3.763\r
+0.422 3.554\r
+0.549 3.345\r
+0.665 3.345\r
+0.776 3.345\r
+0.863 3.345\r
+0.94 3.449\r
+0.991 3.449\r
+1.002 2.404\r
+1.01 1.254\r
+1.03 0\r
diff --git a/datafiles/thrustcurves/Estes_B6.eng b/datafiles/thrustcurves/Estes_B6.eng
new file mode 100644 (file)
index 0000000..b720401
--- /dev/null
@@ -0,0 +1,26 @@
+; Estes B6-0 from NAR data by Mark Koelsch\r
+B6-0 18 70 0 0.0056 0.0156 E\r
+   0.036 1.364\r
+   0.064 2.727\r
+   0.082 4.215\r
+   0.111 6.694\r
+   0.135 9.05\r
+   0.146 9.545\r
+   0.172 11.901\r
+   0.181 12.149\r
+   0.191 11.901\r
+   0.211 9.174\r
+   0.239 7.314\r
+   0.264 6.074\r
+   0.275 5.95\r
+   0.333 5.207\r
+   0.394 4.835\r
+   0.445 4.835\r
+   0.556 4.339\r
+   0.667 4.587\r
+   0.723 4.339\r
+   0.78 4.339\r
+   0.793 4.091\r
+   0.812 2.603\r
+   0.833 1.24\r
+   0.857 0.0\r
diff --git a/datafiles/thrustcurves/Estes_C11.eng b/datafiles/thrustcurves/Estes_C11.eng
new file mode 100644 (file)
index 0000000..7e9a028
--- /dev/null
@@ -0,0 +1,36 @@
+;\r
+;ESTES C11 RASP.ENG file made from NAR published data\r
+;File produced JANUARY 1, 2002\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C11 24 70 0-3-5-7 0.012 0.0353 Estes \r
+0.034 1.692\r
+0.066 3.782\r
+0.107 7.566\r
+0.145 10.946\r
+0.183 14.832\r
+0.214 17.618\r
+0.226 18.213\r
+0.256 20.107\r
+0.281 21.208\r
+0.298 21.73\r
+0.306 20.206\r
+0.323 17.321\r
+0.337 14.931\r
+0.358 13.236\r
+0.385 11.947\r
+0.413 11.65\r
+0.468 10.946\r
+0.539 10.45\r
+0.619 10.648\r
+0.683 10.648\r
+0.715 10.648\r
+0.726 10.053\r
+0.74 8.163\r
+0.758 5.773\r
+0.778 3.185\r
+0.795 1.394\r
+0.81 0\r
diff --git a/datafiles/thrustcurves/Estes_C5.eng b/datafiles/thrustcurves/Estes_C5.eng
new file mode 100644 (file)
index 0000000..a5ff563
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+;Estes C5 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C5 18 70 3 0.0113 0.0248 Estes \r
+0.042 2.195\r
+0.107 9.118\r
+0.159 16.213\r
+0.21 21.85\r
+0.233 18.407\r
+0.27 13.677\r
+0.289 9.793\r
+0.303 7.092\r
+0.326 5.065\r
+0.401 4.39\r
+0.55 3.883\r
+0.802 3.714\r
+1.026 3.883\r
+1.291 3.883\r
+1.524 4.221\r
+1.683 4.221\r
+1.702 2.195\r
+1.73 0\r
diff --git a/datafiles/thrustcurves/Estes_C6.eng b/datafiles/thrustcurves/Estes_C6.eng
new file mode 100644 (file)
index 0000000..f7cf3a3
--- /dev/null
@@ -0,0 +1,33 @@
+;\r
+;Estes C6 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+C6 18 70 0-3-5-7 0.0108 0.0231 Estes \r
+0.031 0.946\r
+0.092 4.826\r
+0.139 9.936\r
+0.192 14.09\r
+0.209 11.446\r
+0.231 7.381\r
+0.248 6.151\r
+0.292 5.489\r
+0.37 4.921\r
+0.475 4.448\r
+0.671 4.258\r
+0.702 4.542\r
+0.723 4.164\r
+0.85 4.448\r
+1.063 4.353\r
+1.211 4.353\r
+1.242 4.069\r
+1.303 4.258\r
+1.468 4.353\r
+1.656 4.448\r
+1.821 4.448\r
+1.834 2.933\r
+1.847 1.325\r
+1.86 0\r
diff --git a/datafiles/thrustcurves/Estes_D11.eng b/datafiles/thrustcurves/Estes_D11.eng
new file mode 100644 (file)
index 0000000..ca69c1a
--- /dev/null
@@ -0,0 +1,32 @@
+;\r
+;Estes D11 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+D11 24 70 100 0.0245 0.0448 Estes \r
+0.033 2.393\r
+0.084 5.783\r
+0.144 12.17\r
+0.214 20.757\r
+0.261 24.35\r
+0.289 26.01\r
+0.311 23.334\r
+0.325 18.532\r
+0.338 14.536\r
+0.356 12.331\r
+0.398 10.72\r
+0.48 9.303\r
+0.618 8.676\r
+0.761 8.247\r
+0.955 8.209\r
+1.222 7.955\r
+1.402 8.319\r
+1.54 8.291\r
+1.701 8.459\r
+1.784 8.442\r
+1.803 6.239\r
+1.834 3.033\r
+1.86 0\r
diff --git a/datafiles/thrustcurves/Estes_D12.eng b/datafiles/thrustcurves/Estes_D12.eng
new file mode 100644 (file)
index 0000000..0d93929
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;Estes D12 RASP.ENG file made from NAR published data\r
+;File produced October 3, 2000\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+D12 24 70 0-3-5-7 0.0211 0.0426 Estes \r
+0.049 2.569\r
+0.116 9.369\r
+0.184 17.275\r
+0.237 24.258\r
+0.282 29.73\r
+0.297 27.01\r
+0.311 22.589\r
+0.322 17.99\r
+0.348 14.126\r
+0.386 12.099\r
+0.442 10.808\r
+0.546 9.876\r
+0.718 9.306\r
+0.879 9.105\r
+1.066 8.901\r
+1.257 8.698\r
+1.436 8.31\r
+1.59 8.294\r
+1.612 4.613\r
+1.65 0\r
diff --git a/datafiles/thrustcurves/Estes_E9.eng b/datafiles/thrustcurves/Estes_E9.eng
new file mode 100644 (file)
index 0000000..c7e56a7
--- /dev/null
@@ -0,0 +1,17 @@
+; Estes E9-0 by Mark Koelsch from NAR data\r
+E9-0 24 95 0 0.0358 0.056799999999999996 E\r
+   0.046 1.913\r
+   0.235 16.696\r
+   0.273 18.435\r
+   0.326 14.957\r
+   0.38 12.174\r
+   0.44 10.435\r
+   0.835 9.043\r
+   1.093 8.87\r
+   1.496 8.696\r
+   1.997 8.696\r
+   2.498 8.696\r
+   3.014 9.217\r
+   3.037 5.043\r
+   3.067 1.217\r
+   3.09 0.0\r
diff --git a/datafiles/thrustcurves/Hypertek_J250_1.eng b/datafiles/thrustcurves/Hypertek_J250_1.eng
new file mode 100644 (file)
index 0000000..cd0de59
--- /dev/null
@@ -0,0 +1,30 @@
+; HyperTek J250\r
+; converted from TMT test stand data 1998 (www.tripoli.org)\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+J250 54 645 0 0.404992 1.30637 HT\r
+   0.055 356.092\r
+   0.168 316.638\r
+   0.281 357.597\r
+   0.395 351.765\r
+   0.508 354.216\r
+   0.622 354.162\r
+   0.735 338.625\r
+   0.849 332.051\r
+   0.963 323.651\r
+   1.076 315.678\r
+   1.190 305.773\r
+   1.303 298.769\r
+   1.417 288.922\r
+   1.530 293.337\r
+   1.644 276.552\r
+   1.757 269.543\r
+   1.871 223.360\r
+   1.984 131.511\r
+   2.098 98.246\r
+   2.211 76.331\r
+   2.325 60.095\r
+   2.439 47.691\r
+   2.552 36.215\r
+   2.666 26.693\r
+   2.779 20.007\r
+   2.893 0.000\r
diff --git a/datafiles/thrustcurves/KBA_I170.eng b/datafiles/thrustcurves/KBA_I170.eng
new file mode 100644 (file)
index 0000000..6e9c0a4
--- /dev/null
@@ -0,0 +1,26 @@
+;Data entered by Tim Van Milligan\r
+;Based on TRA Certification 6-19-2002\r
+;And Instructions provided by Aerotech.\r
+I170S 38 258 14 0.1819 0.52 Kosdon-by-Aerotech \r
+0.019 194.885\r
+0.131 190.481\r
+0.255 191.582\r
+0.513 199.289\r
+0.641 204.794\r
+0.753 206.996\r
+0.88 209.199\r
+1 208.098\r
+1.051 208.098\r
+1.147 206.996\r
+1.24 201.491\r
+1.391 198.188\r
+1.537 190.481\r
+1.707 181.672\r
+1.746 178.369\r
+1.781 173.96\r
+1.808 168.46\r
+1.854 132.12\r
+1.939 53.951\r
+2.005 22.02\r
+2.059 9.909\r
+2.13 0\r
diff --git a/datafiles/thrustcurves/KBA_I280.eng b/datafiles/thrustcurves/KBA_I280.eng
new file mode 100644 (file)
index 0000000..0ebb3d0
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+I280F 38 258 14 .182 0.52 Kosdon-by-AeroTech \r
+0.009 253.24\r
+0.055 255.442\r
+0.219 277.463\r
+0.482 301.686\r
+0.67 323.707\r
+0.735 330.314\r
+0.797 323.707\r
+1.001 297.282\r
+1.162 266.453\r
+1.205 259.847\r
+1.236 237.826\r
+1.363 50.6481\r
+1.428 26.4251\r
+1.5 0\r
diff --git a/datafiles/thrustcurves/KBA_I301.eng b/datafiles/thrustcurves/KBA_I301.eng
new file mode 100644 (file)
index 0000000..b189e7b
--- /dev/null
@@ -0,0 +1,25 @@
+; KBA I301W\r
+I301W 38 369.6 18 0.295031 0.724 KBA\r
+   0.0080 266.093\r
+   0.014 327.114\r
+   0.03 354.124\r
+   0.058 350.122\r
+   0.107 335.117\r
+   0.133 326.114\r
+   0.189 326.114\r
+   0.217 333.116\r
+   0.237 383.134\r
+   0.253 402.14\r
+   0.287 395.138\r
+   0.33 381.133\r
+   0.72 381.133\r
+   1.035 341.119\r
+   1.437 317.111\r
+   1.57 262.092\r
+   1.698 130.045\r
+   1.789 83.029\r
+   1.833 74.026\r
+   1.867 53.019\r
+   1.893 23.008\r
+   1.916 13.005\r
+   1.952 0.0\r
diff --git a/datafiles/thrustcurves/KBA_I310.eng b/datafiles/thrustcurves/KBA_I310.eng
new file mode 100644 (file)
index 0000000..23f3c5c
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+;Kosdon by AeroTech I310S\r
+;Copyright Tripoli Motor Testing 2001 (www.tripoli.org)\r
+;provided by ThrustCurve.org (www.thrustcurve.org)\r
+I310S 38 368 6-0 0.312256 0.713216 Kosdon-by-AeroTech \r
+0.045 334.66\r
+0.136 314.409\r
+0.228 322.556\r
+0.32 326.871\r
+0.411 331.851\r
+0.503 335.911\r
+0.595 336.933\r
+0.686 340.151\r
+0.778 342.066\r
+0.87 344.722\r
+0.961 348.578\r
+1.053 349.548\r
+1.146 351.943\r
+1.239 347.939\r
+1.33 345.079\r
+1.422 337.035\r
+1.514 333.332\r
+1.605 323.832\r
+1.697 289\r
+1.789 215.097\r
+1.88 136.596\r
+1.972 83.863\r
+2.064 37.922\r
+2.155 20.736\r
+2.248 5.943\r
+2.341 0\r
diff --git a/datafiles/thrustcurves/KBA_I370.eng b/datafiles/thrustcurves/KBA_I370.eng
new file mode 100644 (file)
index 0000000..cb88f11
--- /dev/null
@@ -0,0 +1,31 @@
+;\r
+;Kosdon by AeroTech I370F\r
+;Copyright Tripoli Motor Testing 2001 (www.tripoli.org)\r
+;provided by ThrustCurve.org (www.thrustcurve.org)\r
+I370F 38 368 100 0.312256 0.705152 Kosdon-by-AeroTech \r
+0.035 373.074\r
+0.109 389.927\r
+0.184 401.07\r
+0.259 416.613\r
+0.334 429.598\r
+0.409 438.025\r
+0.484 443.83\r
+0.559 447.326\r
+0.634 446.764\r
+0.709 447.263\r
+0.784 444.735\r
+0.859 441.302\r
+0.933 435.676\r
+1.007 425.29\r
+1.082 414.897\r
+1.157 404.222\r
+1.232 395.358\r
+1.307 382.062\r
+1.382 334.152\r
+1.457 275.974\r
+1.532 179.654\r
+1.607 83.023\r
+1.682 39.608\r
+1.757 16.105\r
+1.832 4.151\r
+1.907 0\r
diff --git a/datafiles/thrustcurves/KBA_I450.eng b/datafiles/thrustcurves/KBA_I450.eng
new file mode 100644 (file)
index 0000000..b6d9ced
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+I450F 38 370 14 0.3032 0.73 Kosdon-by-AeroTech \r
+0.012 634.202\r
+0.037 550.523\r
+0.108 519.693\r
+0.241 510.885\r
+0.639 550.523\r
+0.729 554.927\r
+0.809 546.118\r
+0.939 497.672\r
+1.072 471.247\r
+1.128 440.418\r
+1.165 387.568\r
+1.211 206.996\r
+1.295 88.0836\r
+1.36 26.4251\r
+1.41 0\r
diff --git a/datafiles/thrustcurves/KBA_I550.rse b/datafiles/thrustcurves/KBA_I550.rse
new file mode 100644 (file)
index 0000000..6165e23
--- /dev/null
@@ -0,0 +1,41 @@
+<engine-database>\r
+  <engine-list>\r
+<engine  mfg="Kosdon-by-Aerotech" code="I550R" Type="unspecified" dia="38." len="369.6"\r
+initWt="713." propWt="295." delays="20" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="543.018" peakThrust="644.225" throatDia="0." exitDia="0."\r
+Itot="591.346" burn-time="1.09" massFrac="41.37" Isp="204.41" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+<comments>KBA I550R</comments>\r
+<data>\r
+<eng-data  t="0." f="0." m="295." cg="184.8"/>\r
+<eng-data  t="0.016" f="156.054" m="294.377" cg="184.8"/>\r
+<eng-data  t="0.028" f="278.097" m="293.078" cg="184.8"/>\r
+<eng-data  t="0.04" f="427.149" m="290.967" cg="184.8"/>\r
+<eng-data  t="0.054" f="550.192" m="287.554" cg="184.8"/>\r
+<eng-data  t="0.08" f="542.189" m="280.47" cg="184.8"/>\r
+<eng-data  t="0.245" f="588.205" m="233.947" cg="184.8"/>\r
+<eng-data  t="0.332" f="611.213" m="207.919" cg="184.8"/>\r
+<eng-data  t="0.424" f="631.22" m="179.408" cg="184.8"/>\r
+<eng-data  t="0.496" f="638.223" m="156.61" cg="184.8"/>\r
+<eng-data  t="0.613" f="644.225" m="119.184" cg="184.8"/>\r
+<eng-data  t="0.71" f="643.225" m="88.0344" cg="184.8"/>\r
+<eng-data  t="0.758" f="631.22" m="72.7759" cg="184.8"/>\r
+<eng-data  t="0.846" f="603.211" m="45.6802" cg="184.8"/>\r
+<eng-data  t="0.894" f="613.214" m="31.1164" cg="184.8"/>\r
+<eng-data  t="0.915" f="611.213" m="24.7028" cg="184.8"/>\r
+<eng-data  t="0.939" f="586.205" m="17.5346" cg="184.8"/>\r
+<eng-data  t="0.949" f="546.191" m="14.7101" cg="184.8"/>\r
+<eng-data  t="0.959" f="505.176" m="12.0876" cg="184.8"/>\r
+<eng-data  t="0.969" f="469.164" m="9.65734" cg="184.8"/>\r
+<eng-data  t="0.983" f="381.133" m="6.68808" cg="184.8"/>\r
+<eng-data  t="0.999" f="278.097" m="4.05716" cg="184.8"/>\r
+<eng-data  t="1.011" f="200.07" m="2.62593" cg="184.8"/>\r
+<eng-data  t="1.029" f="112.039" m="1.22463" cg="184.8"/>\r
+<eng-data  t="1.053" f="42.015" m="0.302415" cg="184.8"/>\r
+<eng-data  t="1.069" f="15.005" m="0.0748542" cg="184.8"/>\r
+<eng-data  t="1.089" f="0." m="0." cg="184.8"/>\r
+</data>\r
+</engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/KBA_J405.eng b/datafiles/thrustcurves/KBA_J405.eng
new file mode 100644 (file)
index 0000000..2a655c9
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+J405S 38 476 14 0.367 0.88 Kosdon-by-AeroTech \r
+0.009 528.502\r
+0.024 488.864\r
+0.046 462.439\r
+0.136 462.439\r
+0.268 458.035\r
+0.986 453.631\r
+1.421 444.822\r
+1.523 255.442\r
+1.697 92.4878\r
+1.93 0\r
diff --git a/datafiles/thrustcurves/KBA_J605.eng b/datafiles/thrustcurves/KBA_J605.eng
new file mode 100644 (file)
index 0000000..9716ec2
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+J605F 38 476 14 0.367 0.88 Kosdon-by-AeroTech \r
+0.024 886.341\r
+0.037 704.669\r
+0.077 660.627\r
+0.438 704.669\r
+0.506 715.679\r
+0.59 710.174\r
+0.853 655.122\r
+0.973 594.564\r
+1.041 412.892\r
+1.091 324.808\r
+1.177 132.125\r
+1.3 0\r
diff --git a/datafiles/thrustcurves/KBA_K1750.eng b/datafiles/thrustcurves/KBA_K1750.eng
new file mode 100644 (file)
index 0000000..826fc73
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+K1750R  54.0 728.00 0 1.25300 2.56000 KBA\r
+   0.02    1309.09 \r
+   0.03    1679.77 \r
+   0.05    1736.54 \r
+   0.11    1689.79 \r
+   0.26    1799.99 \r
+   0.40    1913.54 \r
+   0.46    1896.84 \r
+   0.68    2023.74 \r
+   0.90    2133.94 \r
+   0.95    2097.21 \r
+   1.00    2050.46 \r
+   1.05    1920.21 \r
+   1.10    1793.31 \r
+   1.16    1676.43 \r
+   1.21    1719.85 \r
+   1.25    1526.15 \r
+   1.27    1302.41 \r
+   1.32     874.95 \r
+   1.35     454.17 \r
+   1.36     317.25 \r
+   1.37     200.37 \r
+   1.40      90.17 \r
+   1.46       0.00 \r
+;\r
diff --git a/datafiles/thrustcurves/KBA_K400.eng b/datafiles/thrustcurves/KBA_K400.eng
new file mode 100644 (file)
index 0000000..cb90df9
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;\r
+K400S 54 403 6-10-14 0.713216 1.50931 Kosdon-by-AeroTech \r
+0.074 465.928\r
+0.225 441.922\r
+0.377 442.414\r
+0.529 445.492\r
+0.681 449.048\r
+0.833 451.88\r
+0.985 454.481\r
+1.138 456.929\r
+1.29 458.237\r
+1.442 457.021\r
+1.594 455.62\r
+1.746 451.772\r
+1.897 446.421\r
+2.048 438.843\r
+2.2 429.377\r
+2.352 419.003\r
+2.504 408.274\r
+2.656 397.608\r
+2.808 388.018\r
+2.96 367.07\r
+3.113 263.666\r
+3.265 114.378\r
+3.417 46.238\r
+3.569 8.62\r
+3.721 2.401\r
+3.873 0\r
diff --git a/datafiles/thrustcurves/KBA_K750.eng b/datafiles/thrustcurves/KBA_K750.eng
new file mode 100644 (file)
index 0000000..2a40ae6
--- /dev/null
@@ -0,0 +1,29 @@
+; Kosdon by Aerotech K750 White Lightning.\r
+K750W 54 728 0 1.315 2.62 KBA\r
+   0.0080 266.075\r
+   0.012 457.102\r
+   0.02 750.467\r
+   0.032 999.485\r
+   0.044 1112.055\r
+   0.06 1180.279\r
+   0.095 1098.41\r
+   0.127 1057.476\r
+   0.163 1040.42\r
+   0.334 1050.653\r
+   0.62 1054.064\r
+   0.998 975.607\r
+   1.324 907.382\r
+   1.69 903.971\r
+   2.06 886.915\r
+   2.184 828.924\r
+   2.299 757.289\r
+   2.394 651.541\r
+   2.502 556.028\r
+   2.609 450.28\r
+   2.784 327.476\r
+   2.999 245.607\r
+   3.039 201.261\r
+   3.134 92.103\r
+   3.206 40.935\r
+   3.337 6.822\r
+   3.468 0.0\r
diff --git a/datafiles/thrustcurves/KBA_L1000.eng b/datafiles/thrustcurves/KBA_L1000.eng
new file mode 100644 (file)
index 0000000..d03b16d
--- /dev/null
@@ -0,0 +1,29 @@
+; Kosdon by AeroTech L1000S\r
+; provided by ThrustCurve.org (www.thrustcurve.org)\r
+L1000S 54 728 0 1.232 2.32512 KBA\r
+   0.055 795.305\r
+   0.175 981.574\r
+   0.295 989.173\r
+   0.415 1008.634\r
+   0.535 1028.836\r
+   0.655 1048.483\r
+   0.775 1067.573\r
+   0.895 1087.034\r
+   1.015 1108.719\r
+   1.135 1131.516\r
+   1.255 1156.908\r
+   1.375 1177.296\r
+   1.498 1199.596\r
+   1.620 1212.881\r
+   1.740 1227.153\r
+   1.860 1232.342\r
+   1.980 1249.950\r
+   2.100 1026.056\r
+   2.220 737.107\r
+   2.340 565.851\r
+   2.460 313.414\r
+   2.580 89.706\r
+   2.700 20.758\r
+   2.820 8.526\r
+   2.942 5.338\r
+   3.065 0.000\r
diff --git a/datafiles/thrustcurves/KBA_L1400.eng b/datafiles/thrustcurves/KBA_L1400.eng
new file mode 100644 (file)
index 0000000..559ae80
--- /dev/null
@@ -0,0 +1,18 @@
+;\r
+;\r
+L1400F 54 727 100 1.248 2.502 Kosdon-by-AeroTech \r
+0.037 1541.46\r
+0.061 1453.38\r
+0.166 1354.29\r
+1.001 1772.68\r
+1.279 1783.69\r
+1.329 1882.79\r
+1.387 1992.89\r
+1.486 1387.32\r
+1.604 869.826\r
+1.65 748.711\r
+1.666 726.69\r
+1.69 924.878\r
+1.697 594.564\r
+1.758 319.303\r
+1.88 0\r
diff --git a/datafiles/thrustcurves/KBA_M1450.eng b/datafiles/thrustcurves/KBA_M1450.eng
new file mode 100644 (file)
index 0000000..2374eb2
--- /dev/null
@@ -0,0 +1,22 @@
+; KBA M1450W\r
+M1450W 75 1038.9 0 4.15 7.6000000000000005 KBA\r
+   0.035 1842.929\r
+   0.076 2287.088\r
+   0.146 1968.884\r
+   0.215 1882.704\r
+   0.291 1836.299\r
+   0.499 1862.816\r
+   1.005 1935.738\r
+   1.559 1889.333\r
+   2.155 1816.412\r
+   2.862 1750.119\r
+   3.493 1663.939\r
+   3.853 1358.994\r
+   4.221 1060.678\r
+   4.484 788.88\r
+   4.761 523.71\r
+   4.942 258.54\r
+   5.323 258.54\r
+   5.6 172.36\r
+   5.801 119.326\r
+   5.96 0.0\r
diff --git a/datafiles/thrustcurves/Loki_G80.eng b/datafiles/thrustcurves/Loki_G80.eng
new file mode 100644 (file)
index 0000000..1d73b3c
--- /dev/null
@@ -0,0 +1,5 @@
+G80-LW 38 127 5-8-10-13-17 0.06 0.275 Loki \r
+0.00931677 112.069\r
+0.416149 112.069\r
+0.872671 89.6552\r
+1.5 0\r
diff --git a/datafiles/thrustcurves/Loki_H100.rse b/datafiles/thrustcurves/Loki_H100.rse
new file mode 100644 (file)
index 0000000..069bfb6
--- /dev/null
@@ -0,0 +1,23 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Loki" code="H100-SP" Type="unspecified" dia="38." len="178." initWt="335."\r
+propWt="120." delays="5,8,10,13,17" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="100.437" peakThrust="150." throatDia="0." exitDia="0." Itot="200.875"\r
+burn-time="2." massFrac="35.8209" Isp="170.696" tDiv="10" tStep="-1." tFix="1"\r
+FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1." mFix="1" cgDiv="10"\r
+cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="120." cg="89."/>\r
+      <eng-data  t="0.015528" f="127.586" m="119.408" cg="89."/>\r
+      <eng-data  t="0.151398" f="127.586" m="109.052" cg="89."/>\r
+      <eng-data  t="0.477484" f="139.655" m="83.0232" cg="89."/>\r
+      <eng-data  t="0.74146" f="146.552" m="60.4564" cg="89."/>\r
+      <eng-data  t="1.00543" f="150." m="37.0744" cg="89."/>\r
+      <eng-data  t="1.13742" f="122.414" m="26.3346" cg="89."/>\r
+      <eng-data  t="1.30823" f="86.2069" m="15.6908" cg="89."/>\r
+      <eng-data  t="1.59938" f="39.6552" m="4.74525" cg="89."/>\r
+      <eng-data  t="2." f="0." m="0." cg="89."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Loki_H144.eng b/datafiles/thrustcurves/Loki_H144.eng
new file mode 100644 (file)
index 0000000..2712a80
--- /dev/null
@@ -0,0 +1,25 @@
+;\r
+;\r
+H144 38 178 5-8-10-13-17 0.12 0.335 Loki \r
+0.02 209\r
+0.04 247.6\r
+0.05 241.2\r
+0.1 247.6\r
+0.15 244.4\r
+0.2 237.9\r
+0.25 231.54\r
+0.3 228.3\r
+0.4 215.32\r
+0.45 212.43\r
+0.5 204.48\r
+0.6 194.36\r
+0.7 189.7\r
+0.8 170.4\r
+0.9 154.3\r
+1 127.83\r
+1.1 109.3\r
+1.2 80.4\r
+1.3 64.6\r
+1.4 44.6\r
+1.5 32.1\r
+1.6 0\r
diff --git a/datafiles/thrustcurves/Loki_H160.eng b/datafiles/thrustcurves/Loki_H160.eng
new file mode 100644 (file)
index 0000000..6186170
--- /dev/null
@@ -0,0 +1,5 @@
+H160-LB 38 178 7-9-12-15 0.12 0.335 Loki \r
+0.015528 288.793\r
+0.599379 237.069\r
+1.03106 107.759\r
+1.5 0\r
diff --git a/datafiles/thrustcurves/Loki_H500_1.eng b/datafiles/thrustcurves/Loki_H500_1.eng
new file mode 100644 (file)
index 0000000..20c571c
--- /dev/null
@@ -0,0 +1,13 @@
+;\r
+;\r
+H500 38 292 5-7-9-12-15 0.16 0.454 Loki \r
+0.001 189.286\r
+0.0116009 534.733\r
+0.099768 539.465\r
+0.199536 544.197\r
+0.302784 553.662\r
+0.402552 548.93\r
+0.50464 544.197\r
+0.584687 435.358\r
+0.61949 9.4643\r
+0.62 0\r
diff --git a/datafiles/thrustcurves/Loki_H90.eng b/datafiles/thrustcurves/Loki_H90.eng
new file mode 100644 (file)
index 0000000..e25c0ee
--- /dev/null
@@ -0,0 +1,5 @@
+H90-LR 38 178 5-8-10-14 0.12 0.335 Loki \r
+0.0543478 146.552\r
+1.51398 94.8276\r
+2.1972 44.8276\r
+2.6087 0\r
diff --git a/datafiles/thrustcurves/Loki_I210.eng b/datafiles/thrustcurves/Loki_I210.eng
new file mode 100644 (file)
index 0000000..d703120
--- /dev/null
@@ -0,0 +1,6 @@
+I210-LR 38 292 5-8-10-14 0.24 0.54 Loki \r
+0.00388199 452.586\r
+0.0427019 387.931\r
+1.00155 271.552\r
+1.80901 77.5862\r
+2.3 0\r
diff --git a/datafiles/thrustcurves/Loki_I405.eng b/datafiles/thrustcurves/Loki_I405.eng
new file mode 100644 (file)
index 0000000..87015bc
--- /dev/null
@@ -0,0 +1,23 @@
+;\r
+;\r
+I405 38 292 5-8-10-13-17 0.24 0.54 Loki \r
+0.01 151.1\r
+0.03 781.4\r
+0.05 800.7\r
+0.06 755.7\r
+0.09 724.3\r
+0.12 697.7\r
+0.15 701\r
+0.17 675.3\r
+0.2 643.1\r
+0.3 607.7\r
+0.4 569.2\r
+0.5 517.7\r
+0.6 472.7\r
+0.7 392.3\r
+0.8 318.3\r
+0.9 241.2\r
+1 151.1\r
+1.1 93.3\r
+1.15 40\r
+1.2 0\r
diff --git a/datafiles/thrustcurves/Loki_J320.eng b/datafiles/thrustcurves/Loki_J320.eng
new file mode 100644 (file)
index 0000000..6ec48d0
--- /dev/null
@@ -0,0 +1,6 @@
+J320-LR 38 406 5-8-10-14 0.372 0.752 Loki \r
+0.015528 534.031\r
+0.100932 439.791\r
+1.94099 319.372\r
+2.18944 78.534\r
+2.6 0\r
diff --git a/datafiles/thrustcurves/Loki_J396.rse b/datafiles/thrustcurves/Loki_J396.rse
new file mode 100644 (file)
index 0000000..b65cea8
--- /dev/null
@@ -0,0 +1,24 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Loki" code="J396-SP" Type="unspecified" dia="38." len="406." initWt="752."\r
+propWt="372." delays="5,8,10,13,17" auto-calc-mass="1" auto-calc-cg="1"\r
+avgThrust="407.28" peakThrust="543.103" throatDia="0." exitDia="0."\r
+Itot="651.648" burn-time="1.6" massFrac="49.4681" Isp="178.628" tDiv="10"\r
+tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10" mStep="-1."\r
+mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="372." cg="203."/>\r
+      <eng-data  t="0.00621118" f="396.552" m="371.297" cg="203."/>\r
+      <eng-data  t="0.201863" f="413.793" m="326.043" cg="203."/>\r
+      <eng-data  t="0.400621" f="439.655" m="277.626" cg="203."/>\r
+      <eng-data  t="0.593168" f="491.379" m="226.458" cg="203."/>\r
+      <eng-data  t="0.717391" f="543.103" m="189.778" cg="203."/>\r
+      <eng-data  t="0.801242" f="508.621" m="164.606" cg="203."/>\r
+      <eng-data  t="0.993789" f="491.379" m="109.648" cg="203."/>\r
+      <eng-data  t="1.20186" f="448.276" m="53.8419" cg="203."/>\r
+      <eng-data  t="1.40062" f="250." m="14.2273" cg="203."/>\r
+      <eng-data  t="1.6" f="0." m="0." cg="203."/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/datafiles/thrustcurves/Loki_J525.eng b/datafiles/thrustcurves/Loki_J525.eng
new file mode 100644 (file)
index 0000000..2aae0e3
--- /dev/null
@@ -0,0 +1,28 @@
+;\r
+;\r
+J525 54 327 0 0.59 1.264 Loki \r
+0.01 210.9\r
+0.03 499.3\r
+0.05 628.5\r
+0.1 594\r
+0.13 568.2\r
+0.15 559.6\r
+0.2 555.3\r
+0.3 572.5\r
+0.4 589.7\r
+0.5 606.9\r
+0.6 624.2\r
+0.7 637.1\r
+0.8 645.7\r
+0.9 650\r
+1 658.6\r
+1.1 637.1\r
+1.2 628.5\r
+1.3 615.5\r
+1.41 586.27\r
+1.52 561.52\r
+1.67 536.78\r
+1.78 517.74\r
+1.85 485.38\r
+1.92 91.37\r
+2 0\r
diff --git a/datafiles/thrustcurves/Loki_J528.eng b/datafiles/thrustcurves/Loki_J528.eng
new file mode 100644 (file)
index 0000000..00424fe
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+J528 38 406 5-8-10-13-17 0.372 0.752 Loki \r
+0.01 704.2\r
+0.02 1019\r
+0.03 983.9\r
+0.05 881.1\r
+0.1 797.5\r
+0.15 771.7\r
+0.17 765.72\r
+0.21 765.72\r
+0.25 778.2\r
+0.42 789.28\r
+0.51 771.61\r
+0.6 756.89\r
+0.66 751\r
+0.71 762.78\r
+0.76 697.99\r
+0.8 665.59\r
+0.84 612.58\r
+0.92 488.88\r
+0.95 385.81\r
+1.02 282.73\r
+1.06 179.65\r
+1.14 53.01\r
+1.19 35.34\r
+1.23 32.2\r
+1.25 0\r
diff --git a/datafiles/thrustcurves/Loki_J712.eng b/datafiles/thrustcurves/Loki_J712.eng
new file mode 100644 (file)
index 0000000..9f6354b
--- /dev/null
@@ -0,0 +1,7 @@
+J712-LB 38 406 7-9-12-15 0.372 0.752 Loki \r
+0.00931677 870.69\r
+0.0496894 810.345\r
+0.791925 793.103\r
+1 706.897\r
+1.06211 172.414\r
+1.2 0\r
diff --git a/datafiles/thrustcurves/Loki_K250.eng b/datafiles/thrustcurves/Loki_K250.eng
new file mode 100644 (file)
index 0000000..c873dd4
--- /dev/null
@@ -0,0 +1,24 @@
+;\r
+;\r
+K250 54 498 0 0.952544 1.79169 Loki \r
+0.03 800\r
+0.1 682\r
+0.125 574\r
+0.15 476\r
+0.175 447\r
+0.25 385\r
+0.45 340\r
+0.6 320\r
+1 313\r
+1.5 300\r
+2 297\r
+2.5 303\r
+3 294\r
+3.5 287\r
+4 248\r
+4.5 222\r
+5 187\r
+5.5 147\r
+6 114\r
+6.5 62\r
+7 0\r
diff --git a/datafiles/thrustcurves/Loki_K350.eng b/datafiles/thrustcurves/Loki_K350.eng
new file mode 100644 (file)
index 0000000..b7df74c
--- /dev/null
@@ -0,0 +1,24 @@
+;\r
+;\r
+K350 54 702 0 1.4 2.54012 Loki\r
+0.025 1329\r
+0.0375 1061\r
+0.1 1006\r
+0.15 891\r
+0.2 768\r
+0.4 571\r
+0.5 542\r
+0.75 486\r
+1 486\r
+1.25 477\r
+1.5 481\r
+2.5058 460\r
+3.00464 427\r
+3.5 375\r
+4 333\r
+4.5 297\r
+5 249\r
+5.5 210\r
+6 164\r
+6.5 98\r
+7 0\r
diff --git a/datafiles/thrustcurves/Loki_K960.eng b/datafiles/thrustcurves/Loki_K960.eng
new file mode 100644 (file)
index 0000000..3061322
--- /dev/null
@@ -0,0 +1,26 @@
+;\r
+;\r
+K960 54 498 0 0.929864 1.74633 Loki \r
+0.03 1210\r
+0.05 1512\r
+0.075 1535\r
+0.1 1502\r
+0.125 1437\r
+0.2 1237\r
+0.3 1175\r
+0.5 1139\r
+0.6 1130\r
+0.7 1156\r
+0.8 1182\r
+0.9 1192\r
+1 1166\r
+1.1 1139\r
+1.2 1101\r
+1.3 1091\r
+1.4 1026\r
+1.5 839\r
+1.6 790\r
+1.7 575\r
+1.8 284\r
+1.9 150\r
+2 0\r
diff --git a/datafiles/thrustcurves/Loki_L1400.eng b/datafiles/thrustcurves/Loki_L1400.eng
new file mode 100644 (file)
index 0000000..4ded67e
--- /dev/null
@@ -0,0 +1,15 @@
+;\r
+;\r
+L1400 54 726 0 1.4 2.54 Loki \r
+0.00580046 1606.3\r
+0.11891 1535.7\r
+0.327726 1535.7\r
+0.49884 1588.65\r
+1.00058 1782.82\r
+1.40661 1906.38\r
+1.49942 1376.83\r
+1.60673 953.19\r
+1.74594 547.202\r
+1.90545 335.382\r
+1.99826 211.82\r
+2 0\r
diff --git a/datafiles/thrustcurves/Loki_L930.eng b/datafiles/thrustcurves/Loki_L930.eng
new file mode 100644 (file)
index 0000000..59dbeb5
--- /dev/null
@@ -0,0 +1,24 @@
+;\r
+;\r
+L930 76 498 0 1.81437 3.53802 Loki\r
+0.025 532\r
+0.05 1123\r
+0.075 1123\r
+0.125 1094\r
+0.2 930\r
+0.5 881\r
+0.6 878\r
+0.75 898\r
+1 921\r
+1.25 940\r
+1.5 1012\r
+1.75 1081\r
+2 1100\r
+2.25 1120\r
+2.5 1051\r
+2.75 980\r
+3 934\r
+3.25 826\r
+3.5 722\r
+3.75 280\r
+4 0\r
diff --git a/datafiles/thrustcurves/Loki_M1882.eng b/datafiles/thrustcurves/Loki_M1882.eng
new file mode 100644 (file)
index 0000000..8d4d687
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+M1882 75 785 0 3.12979 5.53383 Loki \r
+0.01 4.8\r
+0.0174014 2579.22\r
+0.0696056 2392.32\r
+0.232019 2298.87\r
+0.50464 2261.49\r
+0.771462 2298.87\r
+0.986079 2411.01\r
+1.1891 2579.22\r
+1.49652 2597.91\r
+1.72854 2485.77\r
+2.00116 2354.94\r
+2.5 1644.72\r
+2.99884 242.97\r
+3.25 0\r
diff --git a/datafiles/thrustcurves/Loki_M3000.eng b/datafiles/thrustcurves/Loki_M3000.eng
new file mode 100644 (file)
index 0000000..8eb8a99
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+M3000-LW 76 1038 P 4.064 6.857 Loki\r
+0.083333 3234.3980\r
+0.166666 3626.9781\r
+0.333333 4104.8876\r
+0.5 4045.3220\r
+0.666667 3824.0989\r
+0.833333 3649.3737\r
+1.0 3669.9088\r
+1.166667 3815.3653\r
+1.333333 3859.8580\r
+1.5 3781.1602\r
+1.666667 3626.9781\r
+1.833333 3434.5774\r
+2.0 3093.3818\r
+2.166667 2643.3598\r
+2.333333 2052.4438\r
+2.416667 950.4439\r
+2.5 846.5966\r
+2.666667 764.3097\r
+2.833333 718.9958\r
+2.916667 718.7712\r
+3.0 542.0856\r
+3.166667 410.3503\r
+3.333333 272.3106\r
+3.5 0\r
+;\r
diff --git a/datafiles/thrustcurves/PML_F50.eng b/datafiles/thrustcurves/PML_F50.eng
new file mode 100644 (file)
index 0000000..6970c3e
--- /dev/null
@@ -0,0 +1,20 @@
+;\r
+F50T  29.0  98.00 4-6-9 0.03790 0.08490 AT\r
+   0.01      37.97 \r
+   0.02      56.27 \r
+   0.03      65.08 \r
+   0.12      71.86 \r
+   0.23      75.25 \r
+   0.33      77.29 \r
+   0.35      77.70 \r
+   0.45      75.25 \r
+   0.59      71.86 \r
+   0.72      65.76 \r
+   0.83      58.98 \r
+   1.01      43.39 \r
+   1.19      25.76 \r
+   1.25      15.59 \r
+   1.30       8.81 \r
+   1.36       4.75 \r
+   1.42       0.00 \r
+;\r
diff --git a/datafiles/thrustcurves/Quest_A6.eng b/datafiles/thrustcurves/Quest_A6.eng
new file mode 100644 (file)
index 0000000..9ce8d42
--- /dev/null
@@ -0,0 +1,8 @@
+;\r
+;\r
+A6Q 18 70 4 0.0035 0.0153 Quest \r
+0.1 4.8\r
+0.2 11.82\r
+0.23 7.9\r
+0.3 4.8\r
+0.41 0\r
diff --git a/datafiles/thrustcurves/Quest_B6.eng b/datafiles/thrustcurves/Quest_B6.eng
new file mode 100644 (file)
index 0000000..97d8266
--- /dev/null
@@ -0,0 +1,14 @@
+;\r
+;\r
+B6Q 18 70 0-2-4 0.0065 0.0162 Quest \r
+0.1 7\r
+0.18 14.38\r
+0.2 10.2\r
+0.24 6.6\r
+0.3 6\r
+0.4 6.1\r
+0.5 6.2\r
+0.6 6.3\r
+0.65 6.6\r
+0.7 3\r
+0.75 0\r
diff --git a/datafiles/thrustcurves/Quest_C6.eng b/datafiles/thrustcurves/Quest_C6.eng
new file mode 100644 (file)
index 0000000..8234f20
--- /dev/null
@@ -0,0 +1,31 @@
+; Quest C6-0 from NAR data\r
+C6-0 18 70 0 0.0083 0.0216 Q\r
+   0.02 0.497\r
+   0.057 2.539\r
+   0.089 5.132\r
+   0.129 7.947\r
+   0.159 9.437\r
+   0.171 21.247\r
+   0.181 23.234\r
+   0.194 22.958\r
+   0.204 22.185\r
+   0.218 19.592\r
+   0.233 17.881\r
+   0.258 10.486\r
+   0.308 2.428\r
+   0.338 2.539\r
+   0.385 2.98\r
+   0.412 3.091\r
+   0.442 3.422\r
+   0.459 2.98\r
+   0.536 3.256\r
+   0.732 3.311\r
+   0.747 2.483\r
+   0.78 2.98\r
+   1.323 3.587\r
+   1.365 2.815\r
+   1.887 3.808\r
+   1.974 3.256\r
+   2.1 3.532\r
+   2.227 3.201\r
+   2.247 0.0\r
diff --git a/datafiles/thrustcurves/Quest_D5.eng b/datafiles/thrustcurves/Quest_D5.eng
new file mode 100644 (file)
index 0000000..4d247ad
--- /dev/null
@@ -0,0 +1,35 @@
+;QUEST D5 RASP.ENG FILE\r
+;The total impulse, peak thrust, average thrust and burn time are\r
+;the same as the averaged static test data on the NAR web site in\r
+;the certification file. The curve drawn with these data points is as\r
+;close to the certification curve as can be with such a limited\r
+;number of points (32) allowed with wRASP up to v1.6.\r
+D5 20 96 4-6 0.024 0.0451 QUEST \r
+0.01 1.014\r
+0.122 2.652\r
+0.172 4.836\r
+0.273 7.723\r
+0.331 10.61\r
+0.39 13.809\r
+0.448 16.8\r
+0.48 12.403\r
+0.484 8.266\r
+0.517 5.221\r
+0.713 4.125\r
+0.974 4.121\r
+1.135 3.338\r
+1.324 3.101\r
+1.55 3.254\r
+1.971 3.169\r
+2.393 3.162\r
+2.752 3.391\r
+3.069 3.386\r
+3.547 3.301\r
+3.694 3.064\r
+3.948 3.294\r
+4.215 3.29\r
+4.412 3.287\r
+4.496 2.505\r
+4.586 1.801\r
+4.61 0\r
+;\r
diff --git a/datafiles/thrustcurves/Quest_D5_2.eng b/datafiles/thrustcurves/Quest_D5_2.eng
new file mode 100644 (file)
index 0000000..74c5a20
--- /dev/null
@@ -0,0 +1,24 @@
+; Quest D5-0 by Mark Koelsch from NAR data\r
+D5-0 20 88 0 0.025 0.0384 Q\r
+   0.096 1.241\r
+   0.252 5.897\r
+   0.304 8.586\r
+   0.357 10.552\r
+   0.391 11.483\r
+   0.435 9.828\r
+   0.557 6.103\r
+   0.583 5.172\r
+   0.67 5.172\r
+   1.078 4.966\r
+   1.2 4.345\r
+   1.73 4.759\r
+   1.8 4.759\r
+   1.887 4.138\r
+   2.391 5.069\r
+   2.626 4.966\r
+   3.009 5.379\r
+   3.357 5.276\r
+   3.661 5.69\r
+   3.835 3.103\r
+   3.887 1.655\r
+   3.983 0.0\r
diff --git a/datafiles/thrustcurves/Roadrunner_E25.eng b/datafiles/thrustcurves/Roadrunner_E25.eng
new file mode 100644 (file)
index 0000000..5ad7313
--- /dev/null
@@ -0,0 +1,35 @@
+;ROADRUNNER E25R WRASP FILE\r
+E25R 29 76 4-7 0.02 0.078 RR\r
+  0.0        1.15995\r
+  0.0        4.0904\r
+  0.01       13.9194\r
+  0.02       24.481\r
+  0.025      28.327\r
+  0.04       33.028\r
+  0.045      33.639\r
+  0.07       33.516\r
+  0.12       35.287\r
+  0.195      36.569\r
+  0.245      38.278\r
+  0.28       37.668\r
+  0.315      38.657\r
+  0.35       37.729\r
+  0.385      37.973\r
+  0.45       36.691\r
+  0.56       36.569\r
+  0.73       32.295\r
+  0.82       29.487\r
+  0.9        26.068\r
+  0.92       25.824\r
+  0.945      24.176\r
+  0.995      22.772\r
+  1.035      20.024\r
+  1.08       18.5592\r
+  1.165      14.2247\r
+  1.19       13.6142\r
+  1.31       7.2039\r
+  1.395      4.2735\r
+  1.445      3.602\r
+  1.49       2.1978\r
+  1.505      0.79365\r
+  1.506      0\r
diff --git a/datafiles/thrustcurves/Roadrunner_F35.eng b/datafiles/thrustcurves/Roadrunner_F35.eng
new file mode 100644 (file)
index 0000000..d2486dc
--- /dev/null
@@ -0,0 +1,37 @@
+; ROADRUNNER F35 RASP.ENG FILE\r
+; File produced April 5, 2006\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file. The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited\r
+; number of points (32) allowed with wRASP up to v1.6.\r
+F35 29 112 6-10 0.040 0.111 RR\r
+0.023 33.700\r
+0.040 44.462\r
+0.081 47.206\r
+0.121 48.579\r
+0.166 49.270\r
+0.242 49.550\r
+0.315 51.010\r
+0.411 50.111\r
+0.528 49.710\r
+0.664 48.208\r
+0.791 47.256\r
+0.896 46.986\r
+1.000 45.484\r
+1.097 44.943\r
+1.194 42.338\r
+1.277 40.400\r
+1.323 40.706\r
+1.356 37.691\r
+1.402 35.637\r
+1.451 32.753\r
+1.505 29.467\r
+1.578 25.491\r
+1.675 20.833\r
+1.750 17.137\r
+1.828 13.021\r
+1.907 8.638\r
+1.984 5.075\r
+2.049 2.610\r
+2.130 0.000\r
diff --git a/datafiles/thrustcurves/Roadrunner_F45.eng b/datafiles/thrustcurves/Roadrunner_F45.eng
new file mode 100644 (file)
index 0000000..11833a2
--- /dev/null
@@ -0,0 +1,33 @@
+; ROADRUNNER F45R RASP ENG FILE\r
+F45R 29 93 5-8-14 0.03 0.093 RR\r
+  0.0        4.1971\r
+  0.019      45.500\r
+  0.038      53.070\r
+  0.057      52.402\r
+  0.095      54.741\r
+  0.113      55.298\r
+  0.132      56.744\r
+  0.151      57.190\r
+  0.227      60.419\r
+  0.284      61.754\r
+  0.416      62.422\r
+  0.491      60.753\r
+  0.510      61.420\r
+  0.567      60.307\r
+  0.624      58.414\r
+  0.662      58.080\r
+  0.737      55.298\r
+  0.775      52.959\r
+  0.813      51.513\r
+  0.888      46.169\r
+  0.983      34.701\r
+  1.002      31.807\r
+  1.096      23.902\r
+  1.134      21.453\r
+  1.210      14.106\r
+  1.229      12.992\r
+  1.285      8.4282\r
+  1.342      5.5328\r
+  1.361      5.4218\r
+  1.418      2.9723\r
+  1.420       0.0\r
diff --git a/datafiles/thrustcurves/Roadrunner_F60.eng b/datafiles/thrustcurves/Roadrunner_F60.eng
new file mode 100644 (file)
index 0000000..d8cacf9
--- /dev/null
@@ -0,0 +1,34 @@
+;\r
+; ROADRUNNER F60 RASP.ENG FILE\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file. The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited\r
+; number of points (32) allowed with wRASP up to v1.6.\r
+F60R 29 112 4-7-10 0.038 0.109 RR\r
+0.013 45.860\r
+0.021 63.937\r
+0.029 72.291\r
+0.041 75.214\r
+0.061 74.374\r
+0.087 76.872\r
+0.155 83.122\r
+0.231 86.440\r
+0.309 88.088\r
+0.329 90.070\r
+0.345 88.33\r
+0.395 87.90\r
+0.454 87.208\r
+0.514 87.188\r
+0.616 82.141\r
+0.699 77.105\r
+0.765 70.400\r
+0.807 61.611\r
+0.859 51.983\r
+0.926 42.355\r
+0.978 33.556\r
+1.022 21.430\r
+1.061 13.056\r
+1.101 6.776\r
+1.133 3.423\r
+1.190 0.000\r
diff --git a/datafiles/thrustcurves/Roadrunner_G80.eng b/datafiles/thrustcurves/Roadrunner_G80.eng
new file mode 100644 (file)
index 0000000..4d9abab
--- /dev/null
@@ -0,0 +1,35 @@
+;\r
+; ROADRUNNER G80 RASP.ENG FILE\r
+; The total impulse, peak thrust, average thrust and burn time are\r
+; the same as the averaged static test data on the NAR web site in\r
+; the certification file. The curve drawn with these data points is as\r
+; close to the certification curve as can be with such a limited\r
+; number of points (32) allowed with wRASP up to v1.6.\r
+G80R 29 140 4-7-10 0.055 0.133 RR\r
+0.012 63.563\r
+0.028 84.077\r
+0.057 89.563\r
+0.119 96.03\r
+0.206 102.518\r
+0.242 104.42\r
+0.297 106.923\r
+0.356 109.826\r
+0.422 111.829\r
+0.483 111.328\r
+0.558 112.632\r
+0.622 112.750\r
+0.683 112.129\r
+0.739 109.125\r
+0.796 102.017\r
+0.863 90.494\r
+0.901 82.750\r
+0.935 72.41\r
+0.976 59.869\r
+1.018 49.826\r
+1.028 44.321\r
+1.042 39.805\r
+1.073 28.272\r
+1.113 18.231\r
+1.170 11.176\r
+1.218 4.636\r
+1.310 0.000\r
diff --git a/datafiles/thrustcurves/SkyR_G125.eng b/datafiles/thrustcurves/SkyR_G125.eng
new file mode 100644 (file)
index 0000000..475ed67
--- /dev/null
@@ -0,0 +1,17 @@
+;\r
+;\r
+;\r
+G125  38.0 408.00 1 0.15800 0.53700 SRS\r
+   0.01     346.87 \r
+   0.04     325.72 \r
+   0.07     324.57 \r
+   0.08     415.57 \r
+   0.09     219.61 \r
+   0.13     194.84 \r
+   0.20     177.77 \r
+   0.40     157.13 \r
+   0.60     131.89 \r
+   0.80      88.31 \r
+   1.00      42.44 \r
+   1.09      14.64 \r
+   1.20       0.00 \r
diff --git a/datafiles/thrustcurves/SkyR_G63.eng b/datafiles/thrustcurves/SkyR_G63.eng
new file mode 100644 (file)
index 0000000..988d871
--- /dev/null
@@ -0,0 +1,21 @@
+;\r
+;Sky Ripper Systems 29/75 G63\r
+G63  29 304.80 0 .06500 .23600 SRS\r
+   0.01     121.91 \r
+   0.03     142.66 \r
+   0.07     156.57 \r
+   0.09     133.60 \r
+   0.13     100.62 \r
+   0.18     114.82 \r
+   0.20     105.21 \r
+   0.27     104.91 \r
+   0.35      93.38 \r
+   0.41      83.85 \r
+   0.50      67.95 \r
+   0.65      61.99 \r
+   0.83      61.99 \r
+   0.93      40.14 \r
+   1.09      17.09 \r
+   1.18      13.78 \r
+   1.29       5.56 \r
+   1.30       0.00 \r
diff --git a/datafiles/thrustcurves/SkyR_G69.eng b/datafiles/thrustcurves/SkyR_G69.eng
new file mode 100644 (file)
index 0000000..7c73a6a
--- /dev/null
@@ -0,0 +1,29 @@
+;\r
+;\r
+;Sky Ripper Systems 29/125 G69\r
+G69  29 406.40 0 .10700 .33300 SRS\r
+   0.01      99.80 \r
+   0.04     137.51 \r
+   0.07     103.01 \r
+   0.13      94.13 \r
+   0.30      80.09 \r
+   0.49      72.20 \r
+   0.57      70.72 \r
+   0.65      71.96 \r
+   0.74      80.83 \r
+   0.81      81.81 \r
+   0.94      73.43 \r
+   1.01      74.42 \r
+   1.06      85.02 \r
+   1.11      83.78 \r
+   1.19      62.10 \r
+   1.24      60.62 \r
+   1.32      65.30 \r
+   1.37      64.81 \r
+   1.43      52.98 \r
+   1.49      48.55 \r
+   1.55      44.85 \r
+   1.64      28.59 \r
+   1.85      17.74 \r
+   1.99      14.29 \r
+   2.00       0.00 \r
diff --git a/datafiles/thrustcurves/SkyR_H78.eng b/datafiles/thrustcurves/SkyR_H78.eng
new file mode 100644 (file)
index 0000000..3cc0382
--- /dev/null
@@ -0,0 +1,27 @@
+;\r
+;Sky Ripper Systems 29/185 H78\r
+H78  29 520.70 0 .15800 .41800 SRS\r
+   0.01     138.21 \r
+   0.08     150.10 \r
+   0.12     142.67 \r
+   0.15     132.27 \r
+   0.22     130.49 \r
+   0.29      90.30 \r
+   0.34      88.27 \r
+   0.40      86.81 \r
+   0.61      86.52 \r
+   0.72      81.59 \r
+   0.76      71.72 \r
+   0.86      64.46 \r
+   1.01      63.30 \r
+   1.18      62.42 \r
+   1.28      60.39 \r
+   1.50      57.49 \r
+   1.80      58.36 \r
+   1.89      59.23 \r
+   2.01      55.46 \r
+   2.21      36.29 \r
+   2.36      22.94 \r
+   2.54      13.36 \r
+   2.72       9.58 \r
+   2.75       0.00 \r
index a226d42f95c4ab0d83d62388b2d823f60f0ca642..36fe9e17b5d4eabf27edb70d16daef64f2fcebdf 100644 (file)
@@ -32,4 +32,7 @@ The following file format versions exist:
       allows attaching subcomponents to a tube coupler (previously
       forbidden).
 
+1.2:  Introduced with OpenRocket 1.1.1.  Adds the <digest> tag to
+      motor definitions.  The digest uniquely identifies the
+      functional characteristics of a particular thrust curve motor.
 
diff --git a/src/net/sf/openrocket/arch/SystemInfo.java b/src/net/sf/openrocket/arch/SystemInfo.java
new file mode 100644 (file)
index 0000000..7b526f2
--- /dev/null
@@ -0,0 +1,83 @@
+package net.sf.openrocket.arch;
+
+import java.io.File;
+
+import net.sf.openrocket.util.BugException;
+
+public class SystemInfo {
+       
+
+       /**
+        * Enumeration of supported operating systems.
+        * 
+        * @see <a href="http://lopica.sourceforge.net/os.html">JNLP os and arch Value Collection</a>
+        * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+        */
+       public enum Platform {
+               WINDOWS,
+               MAC_OS,
+               UNIX;
+       }
+       
+       
+       /**
+        * Return the current operating system.
+        * 
+        * @return      the operating system of the current system.
+        */
+       public static Platform getPlatform() {
+               String os = System.getProperty("os.name").toLowerCase();
+               
+               if (os.indexOf("win") >= 0) {
+                       return Platform.WINDOWS;
+               } else if (os.indexOf("mac") >= 0) {
+                       return Platform.MAC_OS;
+               } else {
+                       /*
+                        * Assume UNIX otherwise, e.g. "Linux", "Solaris", "AIX" etc.
+                        */
+                       return Platform.UNIX;
+               }
+       }
+       
+       
+
+
+       /**
+        * Return the application data directory of this user.  The location depends
+        * on the current platform.
+        * <p>
+        * The directory will not be created by this method.
+        * 
+        * @return      the application directory for OpenRocket
+        */
+       public static File getUserApplicationDirectory() {
+               final String homeDir = System.getProperty("user.home");
+               final File dir;
+               
+               switch (getPlatform()) {
+               case WINDOWS:
+                       String appdata = System.getenv("APPDATA");
+                       if (appdata != null) {
+                               dir = new File(appdata, "OpenRocket/");
+                       } else {
+                               dir = new File(homeDir, "OpenRocket/");
+                       }
+                       break;
+               
+               case MAC_OS:
+                       dir = new File(homeDir, "Library/Application Support/OpenRocket/");
+                       break;
+               
+               case UNIX:
+                       dir = new File(homeDir, ".openrocket/");
+                       break;
+               
+               default:
+                       throw new BugException("Not implemented for platform " + getPlatform());
+               }
+               
+               return dir;
+       }
+       
+}
index 3f20c5ca679b59a1afe6889cea79dac40a57c0f1..772bc90c6097396317946d90e7e61ae224446f8d 100644 (file)
@@ -8,12 +8,15 @@ import java.io.Reader;
 import java.net.HttpURLConnection;
 import java.util.ArrayList;
 
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.util.ComparablePair;
 import net.sf.openrocket.util.LimitedInputStream;
 import net.sf.openrocket.util.Prefs;
 
 public class UpdateInfoRetriever {
-
+       private static final LogHelper log = Application.getLogger();
+       
        private UpdateInfoFetcher fetcher = null;
        
        
@@ -63,7 +66,7 @@ public class UpdateInfoRetriever {
        }
        
        
-       
+
        /**
         * Parse the data received from the server.
         * 
@@ -75,15 +78,15 @@ public class UpdateInfoRetriever {
        static UpdateInfo parseUpdateInput(Reader r) throws IOException {
                BufferedReader reader;
                if (r instanceof BufferedReader) {
-                       reader = (BufferedReader)r;
+                       reader = (BufferedReader) r;
                } else {
                        reader = new BufferedReader(r);
                }
                
-               
+
                String version = null;
-               ArrayList<ComparablePair<Integer,String>> updates = 
-                       new ArrayList<ComparablePair<Integer,String>>();
+               ArrayList<ComparablePair<Integer, String>> updates =
+                               new ArrayList<ComparablePair<Integer, String>>();
                
                String str = reader.readLine();
                while (str != null) {
@@ -92,9 +95,9 @@ public class UpdateInfoRetriever {
                        } else if (str.matches("^[0-9]+:\\p{Print}+$")) {
                                int index = str.indexOf(':');
                                int value = Integer.parseInt(str.substring(0, index));
-                               String desc = str.substring(index+1).trim();
+                               String desc = str.substring(index + 1).trim();
                                if (!desc.equals("")) {
-                                       updates.add(new ComparablePair<Integer,String>(value, desc));
+                                       updates.add(new ComparablePair<Integer, String>(value, desc));
                                }
                        }
                        // Ignore anything else
@@ -109,14 +112,14 @@ public class UpdateInfoRetriever {
        }
        
        
-       
+
        /**
         * An asynchronous task that fetches and parses the update info.
         * 
         * @author Sampo Niskanen <sampo.niskanen@iki.fi>
         */
        private class UpdateInfoFetcher extends Thread {
-
+               
                private volatile UpdateInfo info = null;
                
                @Override
@@ -124,14 +127,14 @@ public class UpdateInfoRetriever {
                        try {
                                doConnection();
                        } catch (IOException e) {
-                               System.out.println("fetching update failed: " + e);
+                               log.info("Fetching update failed: " + e);
                                return;
                        }
                }
                
                
                private void doConnection() throws IOException {
-                       String url = Communicator.UPDATE_INFO_URL + "?" + Communicator.VERSION_PARAM + "=" 
+                       String url = Communicator.UPDATE_INFO_URL + "?" + Communicator.VERSION_PARAM + "="
                                        + Communicator.encode(Prefs.getVersion());
                        
                        HttpURLConnection connection = Communicator.connectionSource.getConnection(url);
@@ -141,48 +144,48 @@ public class UpdateInfoRetriever {
                        connection.setRequestMethod("GET");
                        connection.setUseCaches(false);
                        connection.setDoInput(true);
-                       connection.setRequestProperty("X-OpenRocket-Version", 
+                       connection.setRequestProperty("X-OpenRocket-Version",
                                        Communicator.encode(Prefs.getVersion() + " " + Prefs.getBuildSource()));
-                       connection.setRequestProperty("X-OpenRocket-ID", 
+                       connection.setRequestProperty("X-OpenRocket-ID",
                                        Communicator.encode(Prefs.getUniqueID()));
-                       connection.setRequestProperty("X-OpenRocket-OS", 
-                                       Communicator.encode(System.getProperty("os.name") + " " + 
+                       connection.setRequestProperty("X-OpenRocket-OS",
+                                       Communicator.encode(System.getProperty("os.name") + " " +
                                                        System.getProperty("os.arch")));
-                       connection.setRequestProperty("X-OpenRocket-Java", 
-                                       Communicator.encode(System.getProperty("java.vendor") + " " + 
+                       connection.setRequestProperty("X-OpenRocket-Java",
+                                       Communicator.encode(System.getProperty("java.vendor") + " " +
                                                        System.getProperty("java.version")));
-                       connection.setRequestProperty("X-OpenRocket-Country", 
+                       connection.setRequestProperty("X-OpenRocket-Country",
                                        Communicator.encode(System.getProperty("user.country") + " " +
                                                        System.getProperty("user.timezone")));
+                       connection.setRequestProperty("X-OpenRocket-CPUs", "" + Runtime.getRuntime().availableProcessors());
                        
                        InputStream is = null;
                        try {
                                connection.connect();
                                
-                               System.out.println("response code: " + connection.getResponseCode());
+                               log.debug("Update response code: " + connection.getResponseCode());
                                
                                if (connection.getResponseCode() == Communicator.UPDATE_INFO_NO_UPDATE_CODE) {
                                        // No updates are available
+                                       log.info("No updates available");
                                        info = new UpdateInfo();
                                        return;
                                }
                                
                                if (connection.getResponseCode() != Communicator.UPDATE_INFO_UPDATE_AVAILABLE) {
                                        // Error communicating with server
-                                       System.out.println("Unknown response code: " + connection.getResponseCode());
+                                       log.warn("Unknown server response code: " + connection.getResponseCode());
                                        return;
                                }
                                
                                String contentType = connection.getContentType();
-                               if (contentType == null || 
+                               if (contentType == null ||
                                                contentType.toLowerCase().indexOf(Communicator.UPDATE_INFO_CONTENT_TYPE) < 0) {
                                        // Unknown response type
-                                       System.out.println("Unknown Content-type received:"+contentType);
+                                       log.warn("Unknown Content-type received:" + contentType);
                                        return;
                                }
                                
-                               System.out.println("Update is available");
-                               
                                // Update is available, parse input
                                is = connection.getInputStream();
                                is = new LimitedInputStream(is, Communicator.MAX_INPUT_BYTES);
@@ -192,8 +195,8 @@ public class UpdateInfoRetriever {
                                BufferedReader reader = new BufferedReader(new InputStreamReader(is, encoding));
                                
                                String version = null;
-                               ArrayList<ComparablePair<Integer, String>> updates = 
-                                       new ArrayList<ComparablePair<Integer, String>>();
+                               ArrayList<ComparablePair<Integer, String>> updates =
+                                               new ArrayList<ComparablePair<Integer, String>>();
                                
                                String line = reader.readLine();
                                while (line != null) {
@@ -203,23 +206,23 @@ public class UpdateInfoRetriever {
                                        } else if (line.matches("^[0-9]{1,9}:\\P{Cntrl}{1,300}$")) {
                                                String[] split = line.split(":", 2);
                                                int n = Integer.parseInt(split[0]);
-                                               updates.add(new ComparablePair<Integer,String>(n, split[1].trim()));
+                                               updates.add(new ComparablePair<Integer, String>(n, split[1].trim()));
                                        }
                                        // Ignore line otherwise
                                        line = reader.readLine();
                                }
                                
                                // Check version input
-                               if (version == null || version.length() == 0 || 
+                               if (version == null || version.length() == 0 ||
                                                version.equalsIgnoreCase(Prefs.getVersion())) {
                                        // Invalid response
-                                       System.out.println("Invalid version received, ignoring.");
+                                       log.warn("Invalid version received, ignoring.");
                                        return;
                                }
                                
-                               
+
                                info = new UpdateInfo(version, updates);
-                               System.out.println("Found update: " + info);
+                               log.info("Found update: " + info);
                        } finally {
                                try {
                                        if (is != null)
diff --git a/src/net/sf/openrocket/file/DirectoryIterator.java b/src/net/sf/openrocket/file/DirectoryIterator.java
deleted file mode 100644 (file)
index 825987f..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-package net.sf.openrocket.file;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.net.URL;
-import java.util.Iterator;
-import java.util.NoSuchElementException;
-
-import net.sf.openrocket.logging.LogHelper;
-import net.sf.openrocket.startup.Application;
-import net.sf.openrocket.util.JarUtil;
-import net.sf.openrocket.util.Pair;
-
-public abstract class DirectoryIterator implements Iterator<Pair<String, InputStream>> {
-
-       private static final LogHelper logger = Application.getLogger();
-
-       private Pair<String, InputStream> next = null;
-
-       @Override
-       public boolean hasNext() {
-               if (next != null)
-                       return true;
-               
-               next = findNext();
-               return (next != null);
-       }
-       
-
-       @Override
-       public Pair<String, InputStream> next() {
-               if (next == null) {
-                       next = findNext();
-               }
-               if (next == null) {
-                       throw new NoSuchElementException("No more files");
-               }
-               
-               Pair<String, InputStream> n = next;
-               next = null;
-               return n;
-       }
-       
-
-       @Override
-       public void remove() {
-               throw new UnsupportedOperationException("remove() not supported");
-       }
-       
-
-       
-       /**
-        * Closes the resources related to this iterator.  This method should be
-        * overridden if the iterator needs to close any resources of its own, but
-        * must call this method as well.
-        */
-       public void close() {
-               if (next != null) {
-                       try {
-                               next.getV().close();
-                       } catch (IOException e) {
-                               logger.error("Error closing file " + next.getU());
-                       }
-                       next = null;
-               }
-       }
-       
-       /**
-        * Return the next pair of file name and InputStream.
-        * 
-        * @return      a pair with the file name and input stream reading the file.
-        */
-       protected abstract Pair<String, InputStream> findNext();
-       
-       
-       
-       /**
-        * Return a DirectoryIterator for a directory that can be located either
-        * within the containing JAR file, in the classpath or in the current directory
-        * (searched in this order).  The first place that contains matching files
-        * will be iterated through.
-        * 
-        * @param directory             the directory to search for.
-        * @param filter                the filter for matching files in the directory.
-        * @return                              a DirectoryIterator for iterating through the files in the
-        *                                              directory, or <code>null</code> if no directory containing
-        *                                              matching files can be found.
-        */
-       public static DirectoryIterator findDirectory(String directory, FileFilter filter) {
-               DirectoryIterator iterator = null;
-               
-               // Try to load from containing JAR file
-               File jarFile = JarUtil.getCurrentJarFile();
-               if (jarFile != null) {
-                       try {
-                               iterator = new ZipDirectoryIterator(jarFile, directory, filter);
-                               if (iterator.hasNext()) {
-                                       return iterator;
-                               }
-                               iterator.close();
-                       } catch (IOException e) {
-                               logger.error("Error opening containing JAR file " + jarFile, e);
-                       }
-               }
-               
-
-               // Try to find directory as a system resource
-               URL url = ClassLoader.getSystemResource(directory);
-               if (url != null) {
-                       try {
-                               File dir = JarUtil.urlToFile(url);
-                               iterator = new RegularDirectoryIterator(dir, filter);
-                               if (iterator.hasNext()) {
-                                       return iterator;
-                               }
-                               iterator.close();
-                       } catch (Exception e1) {
-                               logger.error("Error opening directory from URL " + url);
-                       }
-               }
-               
-               
-               // Try to open directory as such
-               try {
-                       iterator = new RegularDirectoryIterator(new File(directory), filter);
-                       if (iterator.hasNext()) {
-                               return iterator;
-                       }
-                       iterator.close();
-               } catch (IOException e) {
-                       logger.error("Error opening directory " + directory);
-               }
-                       
-               return null;
-       }
-       
-}
diff --git a/src/net/sf/openrocket/file/GeneralMotorLoader.java b/src/net/sf/openrocket/file/GeneralMotorLoader.java
deleted file mode 100644 (file)
index 117672f..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-package net.sf.openrocket.file;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.util.List;
-
-import net.sf.openrocket.file.motor.RASPMotorLoader;
-import net.sf.openrocket.file.motor.RockSimMotorLoader;
-import net.sf.openrocket.motor.Motor;
-
-/**
- * A motor loader class that detects the file type based on the file name extension.
- * 
- * @author Sampo Niskanen <sampo.niskanen@iki.fi>
- */
-public class GeneralMotorLoader extends MotorLoader {
-
-       private static final MotorLoader RASP_LOADER = new RASPMotorLoader();
-       private static final MotorLoader ROCKSIM_LOADER = new RockSimMotorLoader();
-       
-       
-       @Override
-       public List<Motor> load(InputStream stream, String filename) throws IOException {
-               return selectLoader(filename).load(stream, filename);
-       }
-
-       @Override
-       public List<Motor> load(Reader reader, String filename) throws IOException {
-               return selectLoader(filename).load(reader, filename);
-       }
-       
-
-       @Override
-       protected Charset getDefaultCharset() {
-               // Not used, may return null
-               return null;
-       }
-
-       
-       /**
-        * Return the appropriate motor loader based on the file name.
-        * 
-        * @param filename              the file name (may be <code>null</code>).
-        * @return                              the appropriate motor loader to use for the file.
-        * @throws IOException  if the file type cannot be detected from the file name.
-        */
-       public static MotorLoader selectLoader(String filename) throws IOException {
-               if (filename == null) {
-                       throw new IOException("Unknown file type.");
-               }
-               
-               String ext = "";
-               int point = filename.lastIndexOf('.');
-               
-               if (point > 0)
-                       ext = filename.substring(point+1);
-               
-               if (ext.equalsIgnoreCase("eng")) {
-                       return RASP_LOADER;
-               } else if (ext.equalsIgnoreCase("rse")) {
-                       return ROCKSIM_LOADER;
-               }
-               
-               throw new IOException("Unknown file type.");
-       }
-       
-}
diff --git a/src/net/sf/openrocket/file/MotorLoader.java b/src/net/sf/openrocket/file/MotorLoader.java
deleted file mode 100644 (file)
index 004b14f..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-package net.sf.openrocket.file;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.Reader;
-import java.nio.charset.Charset;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-
-import net.sf.openrocket.motor.Motor;
-import net.sf.openrocket.util.MathUtil;
-
-
-public abstract class MotorLoader implements Loader<Motor> {
-       
-       
-       /**
-        * Load motors from the specified <code>InputStream</code>.  The file is read using
-        * the default charset returned by {@link #getDefaultCharset()}.
-        * 
-        * @param stream                the source of the motor definitions.
-        * @param filename              the file name of the file, may be <code>null</code> if not 
-        *                                              applicable.
-        * @return                              a list of motors contained in the file.
-        * @throws IOException  if an I/O exception occurs of the file format is invalid.
-        */
-       public List<Motor> load(InputStream stream, String filename) throws IOException {
-               return load(new InputStreamReader(stream, getDefaultCharset()), filename);
-       }
-       
-       
-       /**
-        * Load motors from the specified <code>Reader</code>.
-        * 
-        * @param reader                the source of the motor definitions.
-        * @param filename              the file name of the file, may be <code>null</code> if not 
-        *                                              applicable.
-        * @return                              a list of motors contained in the file.
-        * @throws IOException  if an I/O exception occurs of the file format is invalid.
-        */
-       public abstract List<Motor> load(Reader reader, String filename) throws IOException;
-       
-
-       
-       /**
-        * Return the default charset to use when loading rocket files of this type.
-        * <p>
-        * If the method {@link #load(InputStream, String)} is overridden as well, this
-        * method may return <code>null</code>.
-        * 
-        * @return      the charset to use when loading the rocket file.
-        */
-       protected abstract Charset getDefaultCharset(); 
-       
-
-       
-       
-       //////////  Helper methods  //////////
-       
-       
-       /**
-        * Calculate the mass of a motor at distinct points in time based on the
-        * initial total mass, propellant weight and thrust.
-        * <p>
-        * This calculation assumes that the velocity of the exhaust remains constant
-        * during the burning.  This derives from the mass-flow and thrust relation
-        * <pre>F = m' * v</pre>
-        *  
-        * @param time    list of time points
-        * @param thrust  thrust at the discrete times
-        * @param total   total weight of the motor
-        * @param prop    propellant amount consumed during burning
-        * @return                a list of the mass at the specified time points
-        */
-       protected static List<Double> calculateMass(List<Double> time, List<Double> thrust,
-                       double total, double prop) {
-               List<Double> mass = new ArrayList<Double>();
-               List<Double> deltam = new ArrayList<Double>();
-
-               double t0, f0;
-               double totalMassChange = 0;
-               double scale;
-               
-               // First calculate mass change between points
-               t0 = time.get(0);
-               f0 = thrust.get(0);
-               for (int i=1; i < time.size(); i++) {
-                       double t1 = time.get(i);
-                       double f1 = thrust.get(i);
-                       
-                       double dm = 0.5*(f0+f1)*(t1-t0);
-                       deltam.add(dm);
-                       totalMassChange += dm;
-                       t0 = t1;
-                       f0 = f1;
-               }
-               
-               // Scale mass change and calculate mass
-               mass.add(total);
-               scale = prop / totalMassChange;
-               for (double dm: deltam) {
-                       total -= dm*scale;
-                       mass.add(total);
-               }
-               
-               return mass;
-       }
-       
-       
-       /**
-        * Helper method to remove a delay (or plugged) from the end of a motor designation,
-        * if present.
-        * 
-        * @param designation   the motor designation.
-        * @return                              the designation with a possible delay removed.
-        */
-       protected static String removeDelay(String designation) {
-               if (designation.matches(".*-([0-9]+|[pP])$")) {
-                       designation = designation.substring(0, designation.lastIndexOf('-'));
-               }
-               return designation;
-       }
-       
-       
-       
-       /**
-        * Helper method to tokenize a string using whitespace as the delimiter.
-        */
-       protected static String[] split(String str) {
-               return split(str,"\\s+");
-       }
-       
-       
-       /**
-        * Helper method to tokenize a string using the given delimiter.
-        */
-       protected static String[] split(String str, String delim) {
-               String[] pieces = str.split(delim);
-               if (pieces.length==0 || !pieces[0].equals(""))
-                       return pieces;
-               return Arrays.copyOfRange(pieces, 1, pieces.length);
-       }
-       
-       
-       /**
-        * Sort the primary list and other lists in that order.
-        * 
-        * @param primary       the list to order.
-        * @param lists         lists to order in the same permutation.
-        */
-       protected static void sortLists(List<Double> primary, List<?> ... lists) {
-               
-               // TODO: LOW: Very idiotic sort algorithm, but should be fast enough
-               // since the time should be sorted already
-               
-               int index;
-               
-               do {
-                       for (index=0; index < primary.size()-1; index++) {
-                               if (primary.get(index+1) < primary.get(index)) {
-                                       Collections.swap(primary, index, index+1);
-                                       for (List<?> l: lists) {
-                                               Collections.swap(l, index, index+1);
-                                       }
-                                       break;
-                               }
-                       }
-               } while (index < primary.size()-1);
-       }
-       
-
-       
-       @SuppressWarnings("unchecked")
-       protected static void finalizeThrustCurve(List<Double> time, List<Double> thrust,
-                       List ... lists) {
-               
-               if (time.size() == 0)
-                       return;
-               
-               // Start
-               if (!MathUtil.equals(time.get(0), 0) || !MathUtil.equals(thrust.get(0), 0)) {
-                       time.add(0, 0.0);
-                       thrust.add(0, 0.0);
-                       for (List l: lists) {
-                               Object o = l.get(0);
-                               l.add(0, o);
-                       }
-               }
-               
-               // End
-               int n = time.size()-1;
-               if (!MathUtil.equals(thrust.get(n), 0)) {
-                       time.add(time.get(n));
-                       thrust.add(0.0);
-                       for (List l: lists) {
-                               Object o = l.get(n);
-                               l.add(o);
-                       }
-               }
-       }
-       
-}
diff --git a/src/net/sf/openrocket/file/RegularDirectoryIterator.java b/src/net/sf/openrocket/file/RegularDirectoryIterator.java
deleted file mode 100644 (file)
index 25f3545..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-package net.sf.openrocket.file;
-
-import java.io.BufferedInputStream;
-import java.io.File;
-import java.io.FileFilter;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.InputStream;
-
-import net.sf.openrocket.logging.LogHelper;
-import net.sf.openrocket.startup.Application;
-import net.sf.openrocket.util.Pair;
-
-/**
- * A DirectoryIterator that scans for files within a directory in the file system.
- * 
- * TODO: MEDIUM: Does not support recursive search.
- * 
- * @author Sampo Niskanen <sampo.niskanen@iki.fi>
- */
-public class RegularDirectoryIterator extends DirectoryIterator {
-
-       private static final LogHelper logger = Application.getLogger();
-
-       private final File[] files;
-       private int position = 0;
-       
-       /**
-        * Sole constructor.
-        * 
-        * @param directory             the directory to read.
-        * @param filter                the filter for selecting files.
-        * @throws IOException  if the directory cannot be read.
-        */
-       public RegularDirectoryIterator(File directory, FileFilter filter) 
-                       throws IOException {
-               this.files = directory.listFiles(filter);
-               if (this.files == null) {
-                       throw new IOException("not a directory or IOException occurred when listing files " +
-                                       "from " + directory);
-               }
-       }
-       
-       
-       
-       @Override
-       protected Pair<String, InputStream> findNext() {
-               for (; position < files.length; position++) {
-                       try {
-                               InputStream is = new BufferedInputStream(new FileInputStream(files[position]));
-                               position++;
-                               return new Pair<String, InputStream>(files[position-1].getName(), is);
-                       } catch (FileNotFoundException e) {
-                               logger.warn("Error opening file " + files[position], e);
-                       }
-               }
-               return null;
-       }
-
-}
diff --git a/src/net/sf/openrocket/file/UnknownFileTypeException.java b/src/net/sf/openrocket/file/UnknownFileTypeException.java
new file mode 100644 (file)
index 0000000..bcea2bb
--- /dev/null
@@ -0,0 +1,27 @@
+package net.sf.openrocket.file;
+
+import java.io.IOException;
+
+/**
+ * An exception marking that a file type was not supported.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class UnknownFileTypeException extends IOException {
+       
+       public UnknownFileTypeException() {
+       }
+       
+       public UnknownFileTypeException(String message) {
+               super(message);
+       }
+       
+       public UnknownFileTypeException(Throwable cause) {
+               super(cause);
+       }
+       
+       public UnknownFileTypeException(String message, Throwable cause) {
+               super(message, cause);
+       }
+       
+}
diff --git a/src/net/sf/openrocket/file/ZipDirectoryIterator.java b/src/net/sf/openrocket/file/ZipDirectoryIterator.java
deleted file mode 100644 (file)
index f335a3f..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-package net.sf.openrocket.file;
-
-import java.io.File;
-import java.io.FileFilter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Enumeration;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import net.sf.openrocket.logging.LogHelper;
-import net.sf.openrocket.startup.Application;
-import net.sf.openrocket.util.Pair;
-
-/**
- * A DirectoryIterator that reads files from the specified directory of a
- * ZIP (or JAR) file.
- * 
- * TODO: MEDIUM: This is always a recursive search.
- * 
- * @author Sampo Niskanen <sampo.niskanen@iki.fi>
- */
-public class ZipDirectoryIterator extends DirectoryIterator {
-       
-       private static final LogHelper logger = Application.getLogger();
-
-       private final File zipFileName;
-       private final String directory;
-       private final FileFilter filter;
-       
-       private ZipFile zipFile;
-       private Enumeration<? extends ZipEntry> entries;
-       
-       
-       /**
-        * Sole constructor.
-        * 
-        * @param zipFileName   the ZIP file to read.
-        * @param directory             the directory within the ZIP file to read, relative to the
-        *                                              base (an empty string corresponds to the root directory)
-        * @param filter                the filter for accepted files.
-        * @throws IOException  if the ZIP file could not be read.
-        */
-       public ZipDirectoryIterator(File zipFileName, String directory, FileFilter filter) 
-                       throws IOException {
-
-               // Process directory and extension
-               if (!directory.endsWith("/")) {
-                       directory += "/";
-               }
-               
-               this.zipFileName = zipFileName;
-               this.directory = directory;
-               this.filter = filter;
-
-               
-               // Loop through ZIP entries searching for files to load
-               this.zipFile = new ZipFile(zipFileName);
-               entries = zipFile.entries();
-
-       }
-       
-
-       @Override
-       public void close() {
-               super.close();
-               if (zipFile != null) {
-                       try {
-                               zipFile.close();
-                       } catch (IOException e) {
-                               logger.error("Closing ZIP file failed", e);
-                       }
-                       zipFile = null;
-                       entries = null;
-               }
-       }
-       
-       
-       @Override
-       protected Pair<String, InputStream> findNext() {
-               if (entries == null) {
-                       return null;
-               }
-
-               while (entries.hasMoreElements()) {
-                       ZipEntry entry = entries.nextElement();
-                       String name = entry.getName();
-                       File file = new File(name);
-                       if (name.startsWith(directory) && filter.accept(file)) {
-                               try {
-                                       InputStream is = zipFile.getInputStream(entry);
-                                       return new Pair<String, InputStream>(name, is);
-                               } catch (IOException e) {
-                                       logger.error("IOException when reading ZIP file " + zipFileName, e);
-                               }
-                       }
-               }
-               
-               // No more elements exist
-               close();
-               return null;
-       }
-
-
-}
diff --git a/src/net/sf/openrocket/file/iterator/DirectoryIterator.java b/src/net/sf/openrocket/file/iterator/DirectoryIterator.java
new file mode 100644 (file)
index 0000000..c934482
--- /dev/null
@@ -0,0 +1,187 @@
+package net.sf.openrocket.file.iterator;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileFilter;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.net.URL;
+
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.JarUtil;
+import net.sf.openrocket.util.Pair;
+
+/**
+ * A DirectoryIterator that scans for files within a directory in the file system
+ * matching a FileFilter.  The scan is optionally recursive.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class DirectoryIterator extends FileIterator {
+       
+       private static final LogHelper logger = Application.getLogger();
+       
+       private final FileFilter filter;
+       private final File[] files;
+       private final boolean recursive;
+       private int position = 0;
+       private DirectoryIterator subIterator = null;
+       
+       /**
+        * Sole constructor.
+        * 
+        * @param directory             the directory to read.
+        * @param filter                the filter for selecting files.
+        * @throws IOException  if the directory cannot be read.
+        */
+       public DirectoryIterator(File directory, FileFilter filter, boolean recursive)
+                       throws IOException {
+               
+               this.filter = filter;
+               this.recursive = recursive;
+               
+               this.files = directory.listFiles(new DirSelectionFileFilter(filter, recursive));
+               if (this.files == null) {
+                       throw new IOException("not a directory or IOException occurred when listing files " +
+                                       "from " + directory);
+               }
+       }
+       
+       
+
+
+
+       @Override
+       protected Pair<String, InputStream> findNext() {
+               
+               // Check if we're recursing
+               if (subIterator != null) {
+                       if (subIterator.hasNext()) {
+                               return subIterator.next();
+                       } else {
+                               subIterator.close();
+                               subIterator = null;
+                       }
+               }
+               
+               // Scan through file entries
+               while (position < files.length) {
+                       File file = files[position];
+                       position++;
+                       
+                       try {
+                               if (recursive && file.isDirectory()) {
+                                       subIterator = new DirectoryIterator(file, filter, recursive);
+                                       if (subIterator.hasNext()) {
+                                               return subIterator.next();
+                                       } else {
+                                               subIterator.close();
+                                               subIterator = null;
+                                               continue;
+                                       }
+                               }
+                               
+                               InputStream is = new BufferedInputStream(new FileInputStream(file));
+                               return new Pair<String, InputStream>(file.getName(), is);
+                       } catch (IOException e) {
+                               logger.warn("Error opening file/directory " + file, e);
+                       }
+               }
+               return null;
+       }
+       
+       
+
+       /**
+        * Return a DirectoryIterator for a directory that can be located either
+        * within the containing JAR file, in the classpath or in the current directory
+        * (searched in this order).  The first place that contains matching files
+        * will be iterated through.
+        * 
+        * @param directory             the directory to search for.
+        * @param filter                the filter for matching files in the directory.
+        * @return                              a DirectoryIterator for iterating through the files in the
+        *                                              directory, or <code>null</code> if no directory containing
+        *                                              matching files can be found.
+        */
+       public static FileIterator findDirectory(String directory, FileFilter filter) {
+               FileIterator iterator = null;
+               
+               // Try to load from containing JAR file
+               File jarFile = JarUtil.getCurrentJarFile();
+               if (jarFile != null) {
+                       try {
+                               iterator = new ZipDirectoryIterator(jarFile, directory, filter);
+                               if (iterator.hasNext()) {
+                                       return iterator;
+                               }
+                               iterator.close();
+                       } catch (IOException e) {
+                               logger.error("Error opening containing JAR file " + jarFile, e);
+                       }
+               }
+               
+
+               // Try to find directory as a system resource
+               URL url = ClassLoader.getSystemResource(directory);
+               if (url != null) {
+                       try {
+                               File dir = JarUtil.urlToFile(url);
+                               iterator = new DirectoryIterator(dir, filter, true);
+                               if (iterator.hasNext()) {
+                                       return iterator;
+                               }
+                               iterator.close();
+                       } catch (Exception e1) {
+                               logger.error("Error opening directory from URL " + url);
+                       }
+               }
+               
+
+               // Try to open directory as such
+               try {
+                       iterator = new DirectoryIterator(new File(directory), filter, true);
+                       if (iterator.hasNext()) {
+                               return iterator;
+                       }
+                       iterator.close();
+               } catch (IOException e) {
+                       logger.error("Error opening directory " + directory);
+               }
+               
+               return null;
+       }
+       
+       
+
+       /**
+        * A FileFilter wrapper that accepts or discards directories.
+        */
+       private class DirSelectionFileFilter implements FileFilter {
+               
+               private final boolean acceptDirs;
+               private final FileFilter parentFilter;
+               
+               
+               public DirSelectionFileFilter(FileFilter filter, boolean acceptDirs) {
+                       this.acceptDirs = acceptDirs;
+                       this.parentFilter = filter;
+               }
+               
+               
+               @Override
+               public boolean accept(File pathname) {
+                       if (pathname.getName().startsWith(".")) {
+                               return false;
+                       }
+                       if (pathname.isDirectory()) {
+                               return acceptDirs;
+                       }
+                       return parentFilter.accept(pathname);
+               }
+               
+       }
+       
+}
diff --git a/src/net/sf/openrocket/file/iterator/FileIterator.java b/src/net/sf/openrocket/file/iterator/FileIterator.java
new file mode 100644 (file)
index 0000000..14d220a
--- /dev/null
@@ -0,0 +1,94 @@
+package net.sf.openrocket.file.iterator;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Iterator;
+import java.util.NoSuchElementException;
+
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.Pair;
+
+/**
+ * An abstract class for iterating over files fulfilling some condition.  The files are
+ * returned as pairs of open InputStreams and file names.  Conditions can be for example
+ * files in a directory matching a specific FileFilter.
+ * <p>
+ * Concrete implementations must implement the method {@link #findNext()} and possibly
+ * {@link #close()}.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public abstract class FileIterator implements Iterator<Pair<String, InputStream>> {
+       private static final LogHelper logger = Application.getLogger();
+       
+       private Pair<String, InputStream> next = null;
+       private int fileCount = 0;
+       
+       @Override
+       public boolean hasNext() {
+               if (next != null)
+                       return true;
+               
+               next = findNext();
+               return (next != null);
+       }
+       
+       
+       @Override
+       public Pair<String, InputStream> next() {
+               if (next == null) {
+                       next = findNext();
+               }
+               if (next == null) {
+                       throw new NoSuchElementException("No more files");
+               }
+               
+               Pair<String, InputStream> n = next;
+               next = null;
+               fileCount++;
+               return n;
+       }
+       
+       
+       @Override
+       public void remove() {
+               throw new UnsupportedOperationException("remove() not supported");
+       }
+       
+       
+
+       /**
+        * Closes the resources related to this iterator.  This method should be
+        * overridden if the iterator needs to close any resources of its own, but
+        * must call this method as well.
+        */
+       public void close() {
+               if (next != null) {
+                       try {
+                               next.getV().close();
+                       } catch (IOException e) {
+                               logger.error("Error closing file " + next.getU());
+                       }
+                       next = null;
+               }
+       }
+       
+       
+       /**
+        * Return the number of files that have so far been returned by this iterator.
+        * 
+        * @return      the number of files that this iterator has returned so far.
+        */
+       public int getFileCount() {
+               return fileCount;
+       }
+       
+       /**
+        * Return the next pair of file name and InputStream.
+        * 
+        * @return      a pair with the file name and input stream reading the file.
+        */
+       protected abstract Pair<String, InputStream> findNext();
+       
+}
diff --git a/src/net/sf/openrocket/file/iterator/ZipDirectoryIterator.java b/src/net/sf/openrocket/file/iterator/ZipDirectoryIterator.java
new file mode 100644 (file)
index 0000000..3d3e6df
--- /dev/null
@@ -0,0 +1,105 @@
+package net.sf.openrocket.file.iterator;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Enumeration;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.Pair;
+
+/**
+ * A DirectoryIterator that reads files from the specified directory of a
+ * ZIP (or JAR) file.
+ * 
+ * TODO: MEDIUM: This is always a recursive search.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class ZipDirectoryIterator extends FileIterator {
+       
+       private static final LogHelper logger = Application.getLogger();
+
+       private final File zipFileName;
+       private final String directory;
+       private final FileFilter filter;
+       
+       private ZipFile zipFile;
+       private Enumeration<? extends ZipEntry> entries;
+       
+       
+       /**
+        * Sole constructor.
+        * 
+        * @param zipFileName   the ZIP file to read.
+        * @param directory             the directory within the ZIP file to read, relative to the
+        *                                              base (an empty string corresponds to the root directory)
+        * @param filter                the filter for accepted files.
+        * @throws IOException  if the ZIP file could not be read.
+        */
+       public ZipDirectoryIterator(File zipFileName, String directory, FileFilter filter) 
+                       throws IOException {
+
+               // Process directory and extension
+               if (!directory.endsWith("/")) {
+                       directory += "/";
+               }
+               
+               this.zipFileName = zipFileName;
+               this.directory = directory;
+               this.filter = filter;
+
+               
+               // Loop through ZIP entries searching for files to load
+               this.zipFile = new ZipFile(zipFileName);
+               entries = zipFile.entries();
+
+       }
+       
+
+       @Override
+       public void close() {
+               super.close();
+               if (zipFile != null) {
+                       try {
+                               zipFile.close();
+                       } catch (IOException e) {
+                               logger.error("Closing ZIP file failed", e);
+                       }
+                       zipFile = null;
+                       entries = null;
+               }
+       }
+       
+       
+       @Override
+       protected Pair<String, InputStream> findNext() {
+               if (entries == null) {
+                       return null;
+               }
+
+               while (entries.hasMoreElements()) {
+                       ZipEntry entry = entries.nextElement();
+                       String name = entry.getName();
+                       File file = new File(name);
+                       if (name.startsWith(directory) && filter.accept(file)) {
+                               try {
+                                       InputStream is = zipFile.getInputStream(entry);
+                                       return new Pair<String, InputStream>(name, is);
+                               } catch (IOException e) {
+                                       logger.error("IOException when reading ZIP file " + zipFileName, e);
+                               }
+                       }
+               }
+               
+               // No more elements exist
+               close();
+               return null;
+       }
+
+
+}
diff --git a/src/net/sf/openrocket/file/motor/AbstractMotorLoader.java b/src/net/sf/openrocket/file/motor/AbstractMotorLoader.java
new file mode 100644 (file)
index 0000000..e9051f7
--- /dev/null
@@ -0,0 +1,200 @@
+package net.sf.openrocket.file.motor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.Reader;
+import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.util.MathUtil;
+
+public abstract class AbstractMotorLoader implements MotorLoader {
+       
+
+       /**
+        * {@inheritDoc}
+        * <p>
+        * This method delegates the reading to the loaded from the Reader using the charset
+        * returned by {@link #getDefaultCharset()}.
+        */
+       public List<Motor> load(InputStream stream, String filename) throws IOException {
+               return load(new InputStreamReader(stream, getDefaultCharset()), filename);
+       }
+       
+       
+       /**
+        * Load motors from the specified <code>Reader</code>.
+        * 
+        * @param reader                the source of the motor definitions.
+        * @param filename              the file name of the file, may be <code>null</code> if not 
+        *                                              applicable.
+        * @return                              a list of motors contained in the file.
+        * @throws IOException  if an I/O exception occurs of the file format is invalid.
+        */
+       protected abstract List<Motor> load(Reader reader, String filename) throws IOException;
+       
+       
+
+       /**
+        * Return the default charset to use when loading rocket files of this type.
+        * <p>
+        * If the method {@link #load(InputStream, String)} is overridden as well, this
+        * method may return <code>null</code>.
+        * 
+        * @return      the charset to use when loading the rocket file.
+        */
+       protected abstract Charset getDefaultCharset();
+       
+       
+
+
+       //////////  Helper methods  //////////
+       
+
+       /**
+        * Calculate the mass of a motor at distinct points in time based on the
+        * initial total mass, propellant weight and thrust.
+        * <p>
+        * This calculation assumes that the velocity of the exhaust remains constant
+        * during the burning.  This derives from the mass-flow and thrust relation
+        * <pre>F = m' * v</pre>
+        *  
+        * @param time    list of time points
+        * @param thrust  thrust at the discrete times
+        * @param total   total weight of the motor
+        * @param prop    propellant amount consumed during burning
+        * @return                a list of the mass at the specified time points
+        */
+       protected static List<Double> calculateMass(List<Double> time, List<Double> thrust,
+                       double total, double prop) {
+               List<Double> mass = new ArrayList<Double>();
+               List<Double> deltam = new ArrayList<Double>();
+               
+               double t0, f0;
+               double totalMassChange = 0;
+               double scale;
+               
+               // First calculate mass change between points
+               t0 = time.get(0);
+               f0 = thrust.get(0);
+               for (int i = 1; i < time.size(); i++) {
+                       double t1 = time.get(i);
+                       double f1 = thrust.get(i);
+                       
+                       double dm = 0.5 * (f0 + f1) * (t1 - t0);
+                       deltam.add(dm);
+                       totalMassChange += dm;
+                       t0 = t1;
+                       f0 = f1;
+               }
+               
+               // Scale mass change and calculate mass
+               mass.add(total);
+               scale = prop / totalMassChange;
+               for (double dm : deltam) {
+                       total -= dm * scale;
+                       mass.add(total);
+               }
+               
+               return mass;
+       }
+       
+       
+       /**
+        * Helper method to remove a delay (or plugged) from the end of a motor designation,
+        * if present.
+        * 
+        * @param designation   the motor designation.
+        * @return                              the designation with a possible delay removed.
+        */
+       protected static String removeDelay(String designation) {
+               if (designation.matches(".*-([0-9]+|[pP])$")) {
+                       designation = designation.substring(0, designation.lastIndexOf('-'));
+               }
+               return designation;
+       }
+       
+       
+
+       /**
+        * Helper method to tokenize a string using whitespace as the delimiter.
+        */
+       protected static String[] split(String str) {
+               return split(str, "\\s+");
+       }
+       
+       
+       /**
+        * Helper method to tokenize a string using the given delimiter.
+        */
+       protected static String[] split(String str, String delim) {
+               String[] pieces = str.split(delim);
+               if (pieces.length == 0 || !pieces[0].equals(""))
+                       return pieces;
+               return Arrays.copyOfRange(pieces, 1, pieces.length);
+       }
+       
+       
+       /**
+        * Sort the primary list and other lists in that order.
+        * 
+        * @param primary       the list to order.
+        * @param lists         lists to order in the same permutation.
+        */
+       protected static void sortLists(List<Double> primary, List<?>... lists) {
+               
+               // TODO: LOW: Very idiotic sort algorithm, but should be fast enough
+               // since the time should be sorted already
+               
+               int index;
+               
+               do {
+                       for (index = 0; index < primary.size() - 1; index++) {
+                               if (primary.get(index + 1) < primary.get(index)) {
+                                       Collections.swap(primary, index, index + 1);
+                                       for (List<?> l : lists) {
+                                               Collections.swap(l, index, index + 1);
+                                       }
+                                       break;
+                               }
+                       }
+               } while (index < primary.size() - 1);
+       }
+       
+       
+
+       @SuppressWarnings("unchecked")
+       protected static void finalizeThrustCurve(List<Double> time, List<Double> thrust,
+                       List... lists) {
+               
+               if (time.size() == 0)
+                       return;
+               
+               // Start
+               if (!MathUtil.equals(time.get(0), 0) || !MathUtil.equals(thrust.get(0), 0)) {
+                       time.add(0, 0.0);
+                       thrust.add(0, 0.0);
+                       for (List l : lists) {
+                               Object o = l.get(0);
+                               l.add(0, o);
+                       }
+               }
+               
+               // End
+               int n = time.size() - 1;
+               if (!MathUtil.equals(thrust.get(n), 0)) {
+                       time.add(time.get(n));
+                       thrust.add(0.0);
+                       for (List l : lists) {
+                               Object o = l.get(n);
+                               l.add(o);
+                       }
+               }
+       }
+       
+}
diff --git a/src/net/sf/openrocket/file/motor/GeneralMotorLoader.java b/src/net/sf/openrocket/file/motor/GeneralMotorLoader.java
new file mode 100644 (file)
index 0000000..937c679
--- /dev/null
@@ -0,0 +1,80 @@
+package net.sf.openrocket.file.motor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import net.sf.openrocket.file.UnknownFileTypeException;
+import net.sf.openrocket.motor.Motor;
+
+/**
+ * A motor loader class that detects the file type based on the file name extension.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class GeneralMotorLoader implements MotorLoader {
+       
+       private final MotorLoader RASP_LOADER = new RASPMotorLoader();
+       private final MotorLoader ROCKSIM_LOADER = new RockSimMotorLoader();
+       private final MotorLoader ZIP_LOADER;
+       
+       
+       public GeneralMotorLoader() {
+               // Must use this loader in order to avoid recursive instantiation
+               ZIP_LOADER = new ZipFileMotorLoader(this);
+       }
+       
+       
+
+       /**
+        * {@inheritDoc}
+        * 
+        * @throws UnknownFileTypeException             if the file format is not supported
+        */
+       @Override
+       public List<Motor> load(InputStream stream, String filename) throws IOException {
+               return selectLoader(filename).load(stream, filename);
+       }
+       
+       
+
+       /**
+        * Return an array containing the supported file extensions.
+        * 
+        * @return      an array of the supported file extensions.
+        */
+       public String[] getSupportedExtensions() {
+               return new String[] { "rse", "eng", "zip" };
+       }
+       
+       
+       /**
+        * Return the appropriate motor loader based on the file name.
+        * 
+        * @param filename              the file name (may be <code>null</code>).
+        * @return                              the appropriate motor loader to use for the file.
+        * @throws UnknownFileTypeException             if the file type cannot be detected from the file name.
+        */
+       private MotorLoader selectLoader(String filename) throws IOException {
+               if (filename == null) {
+                       throw new UnknownFileTypeException("Unknown file type, filename=null");
+               }
+               
+               String ext = "";
+               int point = filename.lastIndexOf('.');
+               
+               if (point > 0)
+                       ext = filename.substring(point + 1);
+               
+               if (ext.equalsIgnoreCase("eng")) {
+                       return RASP_LOADER;
+               } else if (ext.equalsIgnoreCase("rse")) {
+                       return ROCKSIM_LOADER;
+               } else if (ext.equalsIgnoreCase("zip")) {
+                       return ZIP_LOADER;
+               }
+               
+               throw new UnknownFileTypeException("Unknown file type, filename=" + filename);
+       }
+       
+}
diff --git a/src/net/sf/openrocket/file/motor/MotorLoader.java b/src/net/sf/openrocket/file/motor/MotorLoader.java
new file mode 100644 (file)
index 0000000..73e1403
--- /dev/null
@@ -0,0 +1,24 @@
+package net.sf.openrocket.file.motor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import net.sf.openrocket.file.Loader;
+import net.sf.openrocket.motor.Motor;
+
+
+public interface MotorLoader extends Loader<Motor> {
+       
+       /**
+        * Load motors from the specified <code>InputStream</code>.
+        * 
+        * @param stream                the source of the motor definitions.
+        * @param filename              the file name of the file, may be <code>null</code> if not 
+        *                                              applicable.
+        * @return                              a list of motors contained in the file.
+        * @throws IOException  if an I/O exception occurs of the file format is invalid.
+        */
+       public List<Motor> load(InputStream stream, String filename) throws IOException;
+       
+}
diff --git a/src/net/sf/openrocket/file/motor/MotorLoaderHelper.java b/src/net/sf/openrocket/file/motor/MotorLoaderHelper.java
new file mode 100644 (file)
index 0000000..377ade4
--- /dev/null
@@ -0,0 +1,110 @@
+package net.sf.openrocket.file.motor;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+
+import net.sf.openrocket.file.iterator.DirectoryIterator;
+import net.sf.openrocket.file.iterator.FileIterator;
+import net.sf.openrocket.gui.main.SimpleFileFilter;
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.motor.ThrustCurveMotor;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.Pair;
+
+public final class MotorLoaderHelper {
+       
+       private static final LogHelper log = Application.getLogger();
+       
+       private MotorLoaderHelper() {
+               // Prevent construction
+       }
+       
+       /**
+        * Load a file or directory of thrust curves.  Directories are loaded
+        * recursively.  Any errors during loading are logged, but otherwise ignored.
+        * 
+        * @param target        the file or directory to load.
+        * @return                      a list of all motors in the file/directory.
+        */
+       public static List<Motor> load(File target) {
+               GeneralMotorLoader loader = new GeneralMotorLoader();
+               
+               if (target.isDirectory()) {
+                       
+                       try {
+                               return load(new DirectoryIterator(target, new SimpleFileFilter("", loader.getSupportedExtensions()), true));
+                       } catch (IOException e) {
+                               log.warn("Could not read directory " + target, e);
+                               return Collections.emptyList();
+                       }
+                       
+               } else {
+                       
+                       InputStream is = null;
+                       try {
+                               is = new FileInputStream(target);
+                               return loader.load(new BufferedInputStream(is), target.getName());
+                       } catch (IOException e) {
+                               log.warn("Could not load file " + target, e);
+                               return Collections.emptyList();
+                       } finally {
+                               if (is != null) {
+                                       try {
+                                               is.close();
+                                       } catch (IOException e) {
+                                               log.error("Could not close file " + target, e);
+                                       }
+                               }
+                       }
+                       
+               }
+       }
+       
+       
+       /**
+        * Load motors from files iterated over by a FileIterator.  Any errors during
+        * loading are logged, but otherwise ignored.
+        * <p>
+        * The iterator is closed at the end of the operation.
+        * 
+        * @param iterator      the FileIterator that iterates of the files to load.
+        * @return                      a list of all motors loaded.
+        */
+       public static List<Motor> load(FileIterator iterator) {
+               GeneralMotorLoader loader = new GeneralMotorLoader();
+               List<Motor> list = new ArrayList<Motor>();
+               
+               while (iterator.hasNext()) {
+                       final Pair<String, InputStream> input = iterator.next();
+                       log.debug("Loading motors from file " + input.getU());
+                       try {
+                               List<Motor> motors = loader.load(input.getV(), input.getU());
+                               if (motors.size() == 0) {
+                                       log.warn("No motors found in file " + input.getU());
+                               }
+                               for (Motor m : motors) {
+                                       list.add((ThrustCurveMotor) m);
+                               }
+                       } catch (IOException e) {
+                               log.warn("IOException when loading motor file " + input.getU(), e);
+                       } finally {
+                               try {
+                                       input.getV().close();
+                               } catch (IOException e) {
+                                       log.error("IOException when closing InputStream", e);
+                               }
+                       }
+               }
+               iterator.close();
+               
+               return list;
+       }
+       
+}
index 1f6477ed046b9827d40328236b6764471dd62315..ee243d434c14283865b0614011add1bf90c81da5 100644 (file)
@@ -8,7 +8,6 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import net.sf.openrocket.file.MotorLoader;
 import net.sf.openrocket.motor.Manufacturer;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.MotorDigest;
@@ -16,7 +15,7 @@ import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.motor.MotorDigest.DataType;
 import net.sf.openrocket.util.Coordinate;
 
-public class RASPMotorLoader extends MotorLoader {
+public class RASPMotorLoader extends AbstractMotorLoader {
        
        public static final String CHARSET_NAME = "ISO-8859-1";
        
@@ -161,10 +160,6 @@ public class RASPMotorLoader extends MotorLoader {
                        
                        throw new IOException("Illegal file format.");
                        
-               } finally {
-                       
-                       in.close();
-                       
                }
                
                return motors;
index 2e156f2d79ecf543b698d6abed714d34d1d88542..747adeb696097c068f2153aac930f9e7d9afb51e 100644 (file)
@@ -8,7 +8,6 @@ import java.util.HashMap;
 import java.util.List;
 
 import net.sf.openrocket.aerodynamics.WarningSet;
-import net.sf.openrocket.file.MotorLoader;
 import net.sf.openrocket.file.simplesax.ElementHandler;
 import net.sf.openrocket.file.simplesax.NullElementHandler;
 import net.sf.openrocket.file.simplesax.PlainTextHandler;
@@ -23,7 +22,7 @@ import net.sf.openrocket.util.Coordinate;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 
-public class RockSimMotorLoader extends MotorLoader {
+public class RockSimMotorLoader extends AbstractMotorLoader {
        
        public static final String CHARSET_NAME = "UTF-8";
        
diff --git a/src/net/sf/openrocket/file/motor/ZipFileMotorLoader.java b/src/net/sf/openrocket/file/motor/ZipFileMotorLoader.java
new file mode 100644 (file)
index 0000000..804226f
--- /dev/null
@@ -0,0 +1,85 @@
+package net.sf.openrocket.file.motor;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipInputStream;
+
+import net.sf.openrocket.file.UnknownFileTypeException;
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.UncloseableInputStream;
+
+/**
+ * A motor loader that loads motors from a ZIP file.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class ZipFileMotorLoader implements MotorLoader {
+       private static final LogHelper log = Application.getLogger();
+       
+       private final MotorLoader loader;
+       
+       
+       /**
+        * Construct a ZipFileMotorLoader that loads files using a 
+        * {@link GeneralMotorLoader}.
+        */
+       public ZipFileMotorLoader() {
+               this(new GeneralMotorLoader());
+       }
+       
+       /**
+        * Constructs a ZipFileMotorLoader that loads files using the provided motor loader.
+        * 
+        * @param loader        the motor loader to use when loading.
+        */
+       public ZipFileMotorLoader(MotorLoader loader) {
+               this.loader = loader;
+       }
+       
+       
+       @Override
+       public List<Motor> load(InputStream stream, String filename) throws IOException {
+               List<Motor> motors = new ArrayList<Motor>();
+               
+               ZipInputStream is = new ZipInputStream(stream);
+               
+               // SAX seems to close the input stream, prevent it
+               InputStream uncloseable = new UncloseableInputStream(is);
+               
+               while (true) {
+                       ZipEntry entry = is.getNextEntry();
+                       if (entry == null)
+                               break;
+                       
+                       if (entry.isDirectory())
+                               continue;
+                       
+                       // Get the file name of the entry
+                       String name = entry.getName();
+                       int index = name.lastIndexOf('/');
+                       if (index < 0) {
+                               index = name.lastIndexOf('\\');
+                       }
+                       if (index >= 0) {
+                               name = name.substring(index + 1);
+                       }
+                       
+                       try {
+                               List<Motor> m = loader.load(uncloseable, entry.getName());
+                               motors.addAll(m);
+                               log.info("Loaded " + m.size() + " motors from ZIP entry " + entry.getName());
+                       } catch (UnknownFileTypeException e) {
+                               log.info("Could not read ZIP entry " + entry.getName() + ": " + e.getMessage());
+                       }
+                       
+               }
+               
+               return motors;
+       }
+       
+}
index d3d568b2dac9587e7613473f980926a2275ac26f..616b3adcdc91fa41954ba8dd0794780f74d1202e 100644 (file)
@@ -1,27 +1,43 @@
 package net.sf.openrocket.gui.components;
 
+import java.awt.Color;
 import java.awt.Dimension;
 import java.awt.Font;
 import java.awt.Rectangle;
 
 import javax.swing.JEditorPane;
+import javax.swing.JPanel;
 import javax.swing.JScrollPane;
 import javax.swing.ScrollPaneConstants;
 import javax.swing.SwingUtilities;
 
 public class DescriptionArea extends JScrollPane {
-
+       
        private final JEditorPane editorPane;
        
-
+       
        public DescriptionArea(int rows) {
                this("", rows, -1);
        }
+       
        public DescriptionArea(int rows, float size) {
                this("", rows, size);
        }
        
        public DescriptionArea(String text, int rows, float size) {
+               this(text, rows, size, true);
+       }
+       
+       /**
+        * Constructor with all options.
+        * 
+        * @param text          the text for the description area.
+        * @param rows          the number of rows to set
+        * @param size          the relative font size in points (positive or negative)
+        * @param opaque        if <code>false</code> the background color will be set to the background color
+        *                                      of a default JPanel (simulation non-opaque)
+        */
+       public DescriptionArea(String text, int rows, float size, boolean opaque) {
                super(ScrollPaneConstants.VERTICAL_SCROLLBAR_AS_NEEDED,
                                ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
                
@@ -30,6 +46,12 @@ public class DescriptionArea extends JScrollPane {
                editorPane.setFont(font.deriveFont(font.getSize2D() + size));
                editorPane.setEditable(false);
                
+               if (!opaque) {
+                       Color bg = new JPanel().getBackground();
+                       editorPane.setBackground(new Color(bg.getRed(), bg.getGreen(), bg.getBlue()));
+                       this.setOpaque(true);
+               }
+               
                // Calculate correct height
                editorPane.setText("abc");
                Dimension oneline = editorPane.getPreferredSize();
@@ -52,14 +74,14 @@ public class DescriptionArea extends JScrollPane {
                editorPane.setText(txt);
                editorPane.revalidate();
                SwingUtilities.invokeLater(new Runnable() {
-
+                       
                        @Override
                        public void run() {
-                               editorPane.scrollRectToVisible(new Rectangle(0,0,1,1));
+                               editorPane.scrollRectToVisible(new Rectangle(0, 0, 1, 1));
                        }
                        
                });
-               editorPane.scrollRectToVisible(new Rectangle(0,0,1,1));
+               editorPane.scrollRectToVisible(new Rectangle(0, 0, 1, 1));
        }
        
 }
index 2e3131601f774da74d6bc6e04fe9a1c02558bdc4..cf62fd08b8301f5cf8b6e8c0a70183afba3484d6 100644 (file)
@@ -16,27 +16,26 @@ import net.sf.openrocket.rocketcomponent.RocketComponent;
 import net.sf.openrocket.util.GUIUtil;
 
 public class RocketConfig extends RocketComponentConfig {
-
+       
        private TextFieldListener textFieldListener;
        
        private JTextArea designerTextArea;
        private JTextArea revisionTextArea;
-
+       
        private final Rocket rocket;
        
        public RocketConfig(RocketComponent c) {
                super(c);
                
-               rocket = (Rocket)c;
+               rocket = (Rocket) c;
                
                this.removeAll();
                setLayout(new MigLayout("fill"));
-
+               
                this.add(new JLabel("Design name:"), "top, pad 4lp, gapright 10lp");
                this.add(componentNameField, "growx, wrap para");
                
-               
-               
+
                this.add(new JLabel("Designer:"), "top, pad 4lp, gapright 10lp");
                
                textFieldListener = new TextFieldListener();
@@ -46,13 +45,13 @@ public class RocketConfig extends RocketComponentConfig {
                designerTextArea.setEditable(true);
                GUIUtil.setTabToFocusing(designerTextArea);
                designerTextArea.addFocusListener(textFieldListener);
-               this.add(new JScrollPane(designerTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
-               
+               this.add(new JScrollPane(designerTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
                
+
                this.add(new JLabel("Comments:"), "top, pad 4lp, gapright 10lp");
-               this.add(new JScrollPane(commentTextArea), "wmin 300lp, hmin 105lp, grow 100, wrap para");
-               
+               this.add(new JScrollPane(commentTextArea), "wmin 400lp, height 155lp:155lp:, grow 100, wrap para");
                
+
                this.add(new JLabel("Revision history:"), "top, pad 4lp, gapright 10lp");
                revisionTextArea = new JTextArea(rocket.getRevision());
                revisionTextArea.setLineWrap(true);
@@ -61,9 +60,9 @@ public class RocketConfig extends RocketComponentConfig {
                GUIUtil.setTabToFocusing(revisionTextArea);
                revisionTextArea.addFocusListener(textFieldListener);
                
-               this.add(new JScrollPane(revisionTextArea), "wmin 300lp, hmin 45lp, grow 30, wrap para");
-
+               this.add(new JScrollPane(revisionTextArea), "wmin 400lp, height 60lp:60lp:, grow 30, wrap para");
                
+
                addButtons();
        }
        
@@ -73,10 +72,14 @@ public class RocketConfig extends RocketComponentConfig {
                public void actionPerformed(ActionEvent e) {
                        setName();
                }
-               public void focusGained(FocusEvent e) { }
+               
+               public void focusGained(FocusEvent e) {
+               }
+               
                public void focusLost(FocusEvent e) {
                        setName();
                }
+               
                private void setName() {
                        if (!rocket.getDesigner().equals(designerTextArea.getText())) {
                                rocket.setDesigner(designerTextArea.getText());
@@ -87,6 +90,6 @@ public class RocketConfig extends RocketComponentConfig {
                }
        }
        
-       
-       
+
+
 }
index 0f46cfe9772b8d759117e4edcd0dda7881c15a99..58f5664bb3685ded37675aefb3fe3a842d7ae4f9 100644 (file)
@@ -6,6 +6,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.WindowAdapter;
 import java.awt.event.WindowEvent;
+import java.io.File;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -15,41 +16,52 @@ import javax.swing.JButton;
 import javax.swing.JCheckBox;
 import javax.swing.JComboBox;
 import javax.swing.JDialog;
+import javax.swing.JFileChooser;
 import javax.swing.JLabel;
 import javax.swing.JOptionPane;
 import javax.swing.JPanel;
 import javax.swing.JProgressBar;
 import javax.swing.JTabbedPane;
+import javax.swing.JTextField;
 import javax.swing.Timer;
+import javax.swing.event.DocumentEvent;
+import javax.swing.event.DocumentListener;
 
 import net.miginfocom.swing.MigLayout;
 import net.sf.openrocket.communication.UpdateInfo;
 import net.sf.openrocket.communication.UpdateInfoRetriever;
+import net.sf.openrocket.gui.components.DescriptionArea;
 import net.sf.openrocket.gui.components.StyledLabel;
 import net.sf.openrocket.gui.dialogs.UpdateInfoDialog;
+import net.sf.openrocket.gui.main.SimpleFileFilter;
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
 import net.sf.openrocket.unit.Unit;
 import net.sf.openrocket.unit.UnitGroup;
 import net.sf.openrocket.util.GUIUtil;
 import net.sf.openrocket.util.Prefs;
 
 public class PreferencesDialog extends JDialog {
+       private static final LogHelper log = Application.getLogger();
        
        private final List<DefaultUnitSelector> unitSelectors = new ArrayList<DefaultUnitSelector>();
-
+       
+       private File defaultDirectory = null;
+       
        private PreferencesDialog() {
-               super((Window)null, "Preferences", Dialog.ModalityType.APPLICATION_MODAL);
+               super((Window) null, "Preferences", Dialog.ModalityType.APPLICATION_MODAL);
+               
+               JPanel panel = new JPanel(new MigLayout("fill, gap unrel", "[grow]", "[grow][]"));
                
-               JPanel panel = new JPanel(new MigLayout("fill, gap unrel","[grow]","[grow][]"));
-                               
                JTabbedPane tabbedPane = new JTabbedPane();
-               panel.add(tabbedPane,"grow, wrap");
+               panel.add(tabbedPane, "grow, wrap");
                
 
                tabbedPane.addTab("Units", null, unitsPane(), "Default units");
                tabbedPane.addTab("Materials", null, new MaterialEditPanel(), "Custom materials");
                tabbedPane.addTab("Options", null, optionsPane(), "Miscellaneous options");
                
-               
+
                JButton close = new JButton("Close");
                close.addActionListener(new ActionListener() {
                        @Override
@@ -58,7 +70,7 @@ public class PreferencesDialog extends JDialog {
                                PreferencesDialog.this.dispose();
                        }
                });
-               panel.add(close,"span, right, tag close");
+               panel.add(close, "span, right, tag close");
                
                this.setContentPane(panel);
                pack();
@@ -70,7 +82,7 @@ public class PreferencesDialog extends JDialog {
                                Prefs.storeDefaultUnits();
                        }
                });
-
+               
                GUIUtil.setDisposableDialogOptions(this, close);
        }
        
@@ -78,7 +90,7 @@ public class PreferencesDialog extends JDialog {
        private JPanel optionsPane() {
                JPanel panel = new JPanel(new MigLayout("fillx, ins 30lp n n n"));
                
-               
+
                panel.add(new JLabel("Position to insert new body components:"), "gapright para");
                panel.add(new JComboBox(new PrefChoiseSelector(Prefs.BODY_COMPONENT_INSERT_POSITION_KEY,
                                "Always ask", "Insert in middle", "Add to end")), "wrap para, growx, sg combos");
@@ -87,7 +99,104 @@ public class PreferencesDialog extends JDialog {
                panel.add(new JComboBox(new PrefBooleanSelector(Prefs.CONFIRM_DELETE_SIMULATION,
                                "Delete", "Confirm", true)), "wrap 40lp, growx, sg combos");
                
+
+               panel.add(new JLabel("User-defined thrust curves:"), "spanx, wrap");
+               final JTextField field = new JTextField();
+               List<File> files = Prefs.getUserThrustCurveFiles();
+               String str = "";
+               for (File file : files) {
+                       if (str.length() > 0) {
+                               str += ";";
+                       }
+                       str += file.getAbsolutePath();
+               }
+               field.setText(str);
+               field.getDocument().addDocumentListener(new DocumentListener() {
+                       @Override
+                       public void removeUpdate(DocumentEvent e) {
+                               changed();
+                       }
+                       
+                       @Override
+                       public void insertUpdate(DocumentEvent e) {
+                               changed();
+                       }
+                       
+                       @Override
+                       public void changedUpdate(DocumentEvent e) {
+                               changed();
+                       }
+                       
+                       private void changed() {
+                               String text = field.getText();
+                               List<File> list = new ArrayList<File>();
+                               for (String s : text.split(";")) {
+                                       s = s.trim();
+                                       if (s.length() > 0) {
+                                               list.add(new File(s));
+                                       }
+                               }
+                               Prefs.setUserThrustCurveFiles(list);
+                       }
+               });
+               panel.add(field, "w 100px, gapright unrel, spanx, growx, split");
                
+               JButton button = new JButton("Add");
+               button.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               JFileChooser chooser = new JFileChooser();
+                               SimpleFileFilter filter = new SimpleFileFilter("All thrust curve files (*.eng; *.rse; *.zip; directories)",
+                                               true, "eng", "rse", "zip");
+                               chooser.addChoosableFileFilter(filter);
+                               chooser.addChoosableFileFilter(new SimpleFileFilter("RASP motor files (*.eng)",
+                                               true, "eng"));
+                               chooser.addChoosableFileFilter(new SimpleFileFilter("RockSim engine files (*.rse)",
+                                               true, "rse"));
+                               chooser.addChoosableFileFilter(new SimpleFileFilter("ZIP archives (*.zip)",
+                                               true, "zip"));
+                               chooser.setFileFilter(filter);
+                               chooser.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+                               if (defaultDirectory != null) {
+                                       chooser.setCurrentDirectory(defaultDirectory);
+                               }
+                               
+                               int returnVal = chooser.showDialog(PreferencesDialog.this, "Add");
+                               if (returnVal == JFileChooser.APPROVE_OPTION) {
+                                       log.user("Adding user thrust curve: " + chooser.getSelectedFile());
+                                       defaultDirectory = chooser.getCurrentDirectory();
+                                       String text = field.getText().trim();
+                                       if (text.length() > 0) {
+                                               text += ";";
+                                       }
+                                       text += chooser.getSelectedFile().getAbsolutePath();
+                                       field.setText(text);
+                               }
+                       }
+               });
+               panel.add(button, "gapright unrel");
+               
+               button = new JButton("Reset");
+               
+               button.addActionListener(new ActionListener() {
+                       @Override
+                       public void actionPerformed(ActionEvent e) {
+                               // First one sets to the default, but does not un-set the pref
+                               field.setText(Prefs.getDefaultUserThrustCurveFile().getAbsolutePath());
+                               Prefs.setUserThrustCurveFiles(null);
+                       }
+               });
+               panel.add(button, "wrap");
+               
+               DescriptionArea desc = new DescriptionArea("Add directories, RASP motor files (*.eng), " +
+                               "RockSim engine files (*.rse) or ZIP archives separated by a semicolon (;) to load external " +
+                               "thrust curves.  Changes will take effect the next time you start OpenRocket.", 3, -3, false);
+               desc.setBackground(getBackground());
+               panel.add(desc, "spanx, growx, wrap 40lp");
+               
+
+
+
                final JCheckBox softwareUpdateBox = new JCheckBox("Check for software updates at startup");
                softwareUpdateBox.setSelected(Prefs.getCheckUpdates());
                softwareUpdateBox.addActionListener(new ActionListener() {
@@ -98,7 +207,7 @@ public class PreferencesDialog extends JDialog {
                });
                panel.add(softwareUpdateBox);
                
-               JButton button = new JButton("Check now");
+               button = new JButton("Check now");
                button.setToolTipText("Check for software updates now");
                button.addActionListener(new ActionListener() {
                        @Override
@@ -108,19 +217,17 @@ public class PreferencesDialog extends JDialog {
                });
                panel.add(button, "right, wrap");
                
-               
+
                return panel;
        }
        
-       
-       
        private JPanel unitsPane() {
                JPanel panel = new JPanel(new MigLayout("", "[][]40lp[][]"));
                JComboBox combo;
                
                panel.add(new JLabel("Select your preferred units:"), "span, wrap paragraph");
                
-               
+
                panel.add(new JLabel("Rocket dimensions:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_LENGTH));
                panel.add(combo, "sizegroup boxes");
@@ -129,8 +236,8 @@ public class PreferencesDialog extends JDialog {
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_DENSITY_LINE));
                panel.add(combo, "sizegroup boxes, wrap");
                
-               
-               
+
+
                panel.add(new JLabel("Motor dimensions:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_MOTOR_DIMENSIONS));
                panel.add(combo, "sizegroup boxes");
@@ -140,7 +247,7 @@ public class PreferencesDialog extends JDialog {
                panel.add(combo, "sizegroup boxes, wrap");
                
 
-               
+
                panel.add(new JLabel("Distance:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_DISTANCE));
                panel.add(combo, "sizegroup boxes");
@@ -150,26 +257,26 @@ public class PreferencesDialog extends JDialog {
                panel.add(combo, "sizegroup boxes, wrap");
                
 
-               
+
                panel.add(new JLabel("Velocity:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_VELOCITY));
                panel.add(combo, "sizegroup boxes");
-
+               
                panel.add(new JLabel("Surface roughness:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_ROUGHNESS));
                panel.add(combo, "sizegroup boxes, wrap");
                
-               
-               
+
+
                panel.add(new JLabel("Acceleration:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_ACCELERATION));
                panel.add(combo, "sizegroup boxes");
-
+               
                panel.add(new JLabel("Area:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_AREA));
                panel.add(combo, "sizegroup boxes, wrap");
                
-               
+
 
                panel.add(new JLabel("Mass:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_MASS));
@@ -180,7 +287,7 @@ public class PreferencesDialog extends JDialog {
                panel.add(combo, "sizegroup boxes, wrap");
                
 
-               
+
                panel.add(new JLabel("Force:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_FORCE));
                panel.add(combo, "sizegroup boxes");
@@ -190,7 +297,7 @@ public class PreferencesDialog extends JDialog {
                panel.add(combo, "sizegroup boxes, wrap");
                
 
-               
+
                panel.add(new JLabel("Total impulse:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_IMPULSE));
                panel.add(combo, "sizegroup boxes");
@@ -200,23 +307,23 @@ public class PreferencesDialog extends JDialog {
                panel.add(combo, "sizegroup boxes, wrap");
                
 
-               
+
                panel.add(new JLabel("Stability:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_STABILITY));
                panel.add(combo, "sizegroup boxes");
-
+               
                panel.add(new JLabel("Pressure:"));
                combo = new JComboBox(new DefaultUnitSelector(UnitGroup.UNITS_PRESSURE));
                panel.add(combo, "sizegroup boxes, wrap para");
                
-               
-               
+
+
                JButton button = new JButton("Default metric");
                button.addActionListener(new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                                UnitGroup.setDefaultMetricUnits();
-                               for (DefaultUnitSelector s: unitSelectors)
+                               for (DefaultUnitSelector s : unitSelectors)
                                        s.fireChange();
                        }
                });
@@ -227,14 +334,14 @@ public class PreferencesDialog extends JDialog {
                        @Override
                        public void actionPerformed(ActionEvent e) {
                                UnitGroup.setDefaultImperialUnits();
-                               for (DefaultUnitSelector s: unitSelectors)
+                               for (DefaultUnitSelector s : unitSelectors)
                                        s.fireChange();
                        }
                });
                panel.add(button, "grow, wrap para");
                
-               
-               panel.add(new StyledLabel("The effects will take place the next time you open a window.",-2),
+
+               panel.add(new StyledLabel("The effects will take place the next time you open a window.", -2),
                                "spanx, wrap");
                
 
@@ -242,12 +349,13 @@ public class PreferencesDialog extends JDialog {
        }
        
        
-       
-       
-       
+
+
+
        private class DefaultUnitSelector extends AbstractListModel implements ComboBoxModel {
                
                private final UnitGroup group;
+               
                public DefaultUnitSelector(UnitGroup group) {
                        this.group = group;
                        unitSelectors.add(this);
@@ -257,6 +365,7 @@ public class PreferencesDialog extends JDialog {
                public Object getSelectedItem() {
                        return group.getDefaultUnit();
                }
+               
                @Override
                public void setSelectedItem(Object item) {
                        if (item == null) {
@@ -264,14 +373,16 @@ public class PreferencesDialog extends JDialog {
                                return;
                        }
                        if (!(item instanceof Unit)) {
-                               throw new IllegalArgumentException("Illegal argument "+item);
+                               throw new IllegalArgumentException("Illegal argument " + item);
                        }
-                       group.setDefaultUnit(group.getUnitIndex((Unit)item));
+                       group.setDefaultUnit(group.getUnitIndex((Unit) item));
                }
+               
                @Override
                public Object getElementAt(int index) {
                        return group.getUnit(index);
                }
+               
                @Override
                public int getSize() {
                        return group.getUnitCount();
@@ -283,13 +394,13 @@ public class PreferencesDialog extends JDialog {
                }
        }
        
-
        
+
        private class PrefChoiseSelector extends AbstractListModel implements ComboBoxModel {
                private final String preference;
                private final String[] descriptions;
                
-               public PrefChoiseSelector(String preference, String ... descriptions) {
+               public PrefChoiseSelector(String preference, String... descriptions) {
                        this.preference = preference;
                        this.descriptions = descriptions;
                }
@@ -306,15 +417,15 @@ public class PreferencesDialog extends JDialog {
                                return;
                        }
                        if (!(item instanceof String)) {
-                               throw new IllegalArgumentException("Illegal argument "+item);
+                               throw new IllegalArgumentException("Illegal argument " + item);
                        }
                        int index;
                        for (index = 0; index < descriptions.length; index++) {
-                               if (((String)item).equalsIgnoreCase(descriptions[index]))
+                               if (((String) item).equalsIgnoreCase(descriptions[index]))
                                        break;
                        }
                        if (index >= descriptions.length) {
-                               throw new IllegalArgumentException("Illegal argument "+item);
+                               throw new IllegalArgumentException("Illegal argument " + item);
                        }
                        
                        Prefs.putChoise(preference, index);
@@ -324,19 +435,20 @@ public class PreferencesDialog extends JDialog {
                public Object getElementAt(int index) {
                        return descriptions[index];
                }
+               
                @Override
                public int getSize() {
                        return descriptions.length;
                }
        }
        
-
+       
        private class PrefBooleanSelector extends AbstractListModel implements ComboBoxModel {
                private final String preference;
                private final String trueDesc, falseDesc;
                private final boolean def;
                
-               public PrefBooleanSelector(String preference, String falseDescription, 
+               public PrefBooleanSelector(String preference, String falseDescription,
                                String trueDescription, boolean defaultState) {
                        this.preference = preference;
                        this.trueDesc = trueDescription;
@@ -360,7 +472,7 @@ public class PreferencesDialog extends JDialog {
                                return;
                        }
                        if (!(item instanceof String)) {
-                               throw new IllegalArgumentException("Illegal argument "+item);
+                               throw new IllegalArgumentException("Illegal argument " + item);
                        }
                        
                        if (trueDesc.equals(item)) {
@@ -368,7 +480,7 @@ public class PreferencesDialog extends JDialog {
                        } else if (falseDesc.equals(item)) {
                                Prefs.NODE.putBoolean(preference, false);
                        } else {
-                               throw new IllegalArgumentException("Illegal argument "+item);
+                               throw new IllegalArgumentException("Illegal argument " + item);
                        }
                }
                
@@ -377,14 +489,15 @@ public class PreferencesDialog extends JDialog {
                        switch (index) {
                        case 0:
                                return def ? trueDesc : falseDesc;
-
+                               
                        case 1:
-                               return def ? falseDesc: trueDesc;
+                               return def ? falseDesc : trueDesc;
                                
                        default:
-                               throw new IndexOutOfBoundsException("Boolean asked for index="+index);
+                               throw new IndexOutOfBoundsException("Boolean asked for index=" + index);
                        }
                }
+               
                @Override
                public int getSize() {
                        return 2;
@@ -396,7 +509,7 @@ public class PreferencesDialog extends JDialog {
                final UpdateInfoRetriever retriever = new UpdateInfoRetriever();
                retriever.start();
                
-               
+
                // Progress dialog
                final JDialog dialog = new JDialog(this, ModalityType.APPLICATION_MODAL);
                JPanel panel = new JPanel(new MigLayout());
@@ -419,15 +532,15 @@ public class PreferencesDialog extends JDialog {
                
                GUIUtil.setDisposableDialogOptions(dialog, cancel);
                
-               
+
                // Timer to monitor progress
                final Timer timer = new Timer(100, null);
                final long startTime = System.currentTimeMillis();
-
+               
                ActionListener listener = new ActionListener() {
                        @Override
                        public void actionPerformed(ActionEvent e) {
-                               if (!retriever.isRunning() || startTime+10000 < System.currentTimeMillis()) {
+                               if (!retriever.isRunning() || startTime + 10000 < System.currentTimeMillis()) {
                                        timer.stop();
                                        dialog.dispose();
                                }
@@ -436,22 +549,22 @@ public class PreferencesDialog extends JDialog {
                timer.addActionListener(listener);
                timer.start();
                
-               
+
                // Wait for action
                dialog.setVisible(true);
                
-               
+
                // Check result
                UpdateInfo info = retriever.getUpdateInfo();
                if (info == null) {
-                       JOptionPane.showMessageDialog(this, 
-                                       "An error occurred while communicating with the server.", 
+                       JOptionPane.showMessageDialog(this,
+                                       "An error occurred while communicating with the server.",
                                        "Unable to retrieve update information", JOptionPane.WARNING_MESSAGE, null);
-               } else if (info.getLatestVersion() == null || 
+               } else if (info.getLatestVersion() == null ||
                                info.getLatestVersion().equals("") ||
                                Prefs.getVersion().equalsIgnoreCase(info.getLatestVersion())) {
-                       JOptionPane.showMessageDialog(this, 
-                                       "You are running the latest version of OpenRocket.", 
+                       JOptionPane.showMessageDialog(this,
+                                       "You are running the latest version of OpenRocket.",
                                        "No updates available", JOptionPane.INFORMATION_MESSAGE, null);
                } else {
                        UpdateInfoDialog infoDialog = new UpdateInfoDialog(info);
@@ -478,5 +591,5 @@ public class PreferencesDialog extends JDialog {
                dialog.setVisible(true);
        }
        
-       
+
 }
index 1f22c2e9ad2605a0b506522d6affaee61e6b7e4a..3fe592677d768a34d21b6c70f766da03a8d89018 100644 (file)
@@ -148,7 +148,6 @@ public class ComponentAddButtons extends JPanel implements Scrollable {
                }
                
                // Set all buttons to maximum size
-               System.out.println("Setting w=" + w + " h=" + h);
                width = w;
                height = h;
                Dimension d = new Dimension(width, height);
diff --git a/src/net/sf/openrocket/optimization/Function.java b/src/net/sf/openrocket/optimization/Function.java
new file mode 100644 (file)
index 0000000..636e8a4
--- /dev/null
@@ -0,0 +1,40 @@
+package net.sf.openrocket.optimization;
+
+/**
+ * An interface defining an optimizable function.
+ * <p>
+ * Some function optimizers require that the function is thread-safe.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public interface Function {
+       
+       /**
+        * Evaluate the function at the specified point.
+        * <p>
+        * If the function evaluation is slow, then this method should abort the computation if
+        * the thread is interrupted.
+        * 
+        * @param point         the point at which to evaluate the function.
+        * @return                      the function value.
+        * @throws InterruptedException         if the thread was interrupted before function evaluation was completed.
+        */
+       public double evaluate(Point point) throws InterruptedException;
+       
+       
+       /**
+        * Return a cached value of the function at the specified point.  This allows efficient
+        * caching of old values even between calls to optimization methods.  This method should
+        * NOT evaluate the function except in special cases (e.g. the point is outside of the
+        * function domain).
+        * <p>
+        * Note that it is allowed to always allowed to return <code>Double.NaN</code>, especially
+        * for functions that are fast to evaluate.
+        * 
+        * @param point         the point of function evaluation.
+        * @return                      the function value, or <code>Double.NaN</code> if the function value has not been
+        *                                      evaluated at this point.
+        */
+       public double preComputed(Point point);
+       
+}
diff --git a/src/net/sf/openrocket/optimization/FunctionCache.java b/src/net/sf/openrocket/optimization/FunctionCache.java
new file mode 100644 (file)
index 0000000..faa080b
--- /dev/null
@@ -0,0 +1,13 @@
+package net.sf.openrocket.optimization;
+
+public interface FunctionCache {
+       
+       public double getValue(Point point);
+       
+       public void clearCache();
+       
+       public Function getFunction();
+       
+       public void setFunction(Function function);
+       
+}
diff --git a/src/net/sf/openrocket/optimization/FunctionCacheComparator.java b/src/net/sf/openrocket/optimization/FunctionCacheComparator.java
new file mode 100644 (file)
index 0000000..11e7229
--- /dev/null
@@ -0,0 +1,26 @@
+package net.sf.openrocket.optimization;
+
+import java.util.Comparator;
+
+/**
+ * A comparator that orders Points in a function value order, smallest first.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class FunctionCacheComparator implements Comparator<Point> {
+       
+       private final FunctionCache cache;
+       
+       public FunctionCacheComparator(FunctionCache cache) {
+               this.cache = cache;
+       }
+       
+       @Override
+       public int compare(Point o1, Point o2) {
+               double v1 = cache.getValue(o1);
+               double v2 = cache.getValue(o2);
+               
+               return Double.compare(v1, v2);
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/FunctionCallable.java b/src/net/sf/openrocket/optimization/FunctionCallable.java
new file mode 100644 (file)
index 0000000..3154665
--- /dev/null
@@ -0,0 +1,34 @@
+package net.sf.openrocket.optimization;
+
+import java.util.concurrent.Callable;
+
+/**
+ * A Callable that computes the value of a function at a specific point.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class FunctionCallable implements Callable<Double> {
+       
+       private final Function function;
+       private final Point point;
+       
+       /**
+        * Sole constructor.
+        * 
+        * @param function      the function to evaluate
+        * @param point         the point at which to evaluate the function
+        */
+       public FunctionCallable(Function function, Point point) {
+               this.function = function;
+               this.point = point;
+       }
+       
+       /**
+        * Evaluate the function and return the result.
+        */
+       @Override
+       public Double call() throws InterruptedException {
+               return function.evaluate(point);
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/FunctionDecorator.java b/src/net/sf/openrocket/optimization/FunctionDecorator.java
new file mode 100644 (file)
index 0000000..0214b2c
--- /dev/null
@@ -0,0 +1,22 @@
+package net.sf.openrocket.optimization;
+
+public class FunctionDecorator implements Function {
+       
+       private final Function function;
+       
+       public FunctionDecorator(Function function) {
+               this.function = function;
+       }
+       
+       
+       @Override
+       public double evaluate(Point x) throws InterruptedException {
+               return function.evaluate(x);
+       }
+       
+       @Override
+       public double preComputed(Point x) {
+               return function.preComputed(x);
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/FunctionOptimizer.java b/src/net/sf/openrocket/optimization/FunctionOptimizer.java
new file mode 100644 (file)
index 0000000..8c151ea
--- /dev/null
@@ -0,0 +1,18 @@
+package net.sf.openrocket.optimization;
+
+public interface FunctionOptimizer {
+       
+       public void optimize(Point initial, OptimizationController control);
+       
+       
+       public Point getOptimumPoint();
+       
+       public double getOptimumValue();
+       
+       
+       public FunctionCache getFunctionCache();
+       
+       public void setFunctionCache(FunctionCache functionCache);
+       
+
+}
diff --git a/src/net/sf/openrocket/optimization/MultidirectionalSearchOptimizer.java b/src/net/sf/openrocket/optimization/MultidirectionalSearchOptimizer.java
new file mode 100644 (file)
index 0000000..9125c32
--- /dev/null
@@ -0,0 +1,290 @@
+package net.sf.openrocket.optimization;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.LinkedList;
+import java.util.List;
+
+import net.sf.openrocket.logging.LogHelper;
+import net.sf.openrocket.startup.Application;
+import net.sf.openrocket.util.Statistics;
+
+/**
+ * A customized implementation of the parallel multidirectional search algorithm by Dennis and Torczon.
+ * <p>
+ * This is a parallel pattern search optimization algorithm.  The function evaluations are performed
+ * using an ExecutorService.  By default a ThreadPoolExecutor is used that has as many thread defined
+ * as the system has processors.
+ */
+public class MultidirectionalSearchOptimizer implements FunctionOptimizer, Statistics {
+       private static final LogHelper log = Application.getLogger();
+       
+       private List<Point> simplex = new ArrayList<Point>();
+       
+       private ParallelFunctionCache functionExecutor;
+       
+       private boolean useExpansion = false;
+       
+       private int stepCount = 0;
+       private int reflectionAcceptance = 0;
+       private int expansionAcceptance = 0;
+       private int coordinateAcceptance = 0;
+       private int reductionFallback = 0;
+       
+       
+       public MultidirectionalSearchOptimizer() {
+               // No-op
+       }
+       
+       public MultidirectionalSearchOptimizer(ParallelFunctionCache functionCache) {
+               this.functionExecutor = functionCache;
+       }
+       
+       
+
+       @Override
+       public void optimize(Point initial, OptimizationController control) {
+               FunctionCacheComparator comparator = new FunctionCacheComparator(functionExecutor);
+               
+               final List<Point> pattern = SearchPattern.square(initial.dim());
+               log.info("Starting optimization at " + initial + " with pattern " + pattern);
+               
+               try {
+                       
+                       boolean simplexComputed = false;
+                       double step = 0.5;
+                       
+                       // Set up the current simplex
+                       simplex.clear();
+                       simplex.add(initial);
+                       for (Point p : pattern) {
+                               simplex.add(initial.add(p.mul(step)));
+                       }
+                       
+                       // Normal iterations
+                       List<Point> reflection = new ArrayList<Point>(simplex.size());
+                       List<Point> expansion = new ArrayList<Point>(simplex.size());
+                       List<Point> coordinateSearch = new ArrayList<Point>(simplex.size());
+                       Point current;
+                       double currentValue;
+                       do {
+                               
+                               log.debug("Starting optimization step with simplex " + simplex +
+                                               (simplexComputed ? "" : " (not computed)"));
+                               stepCount++;
+                               
+                               if (!simplexComputed) {
+                                       // TODO: Could something be computed in parallel?
+                                       functionExecutor.compute(simplex);
+                                       functionExecutor.waitFor(simplex);
+                                       Collections.sort(simplex, comparator);
+                                       simplexComputed = true;
+                               }
+                               
+                               current = simplex.get(0);
+                               currentValue = functionExecutor.getValue(current);
+                               
+                               /*
+                                * Compute and queue the next points in likely order of usefulness.
+                                * Expansion is unlikely as we're mainly dealing with bounded optimization.
+                                */
+                               createReflection(simplex, reflection);
+                               createCoordinateSearch(current, step, coordinateSearch);
+                               if (useExpansion)
+                                       createExpansion(simplex, expansion);
+                               
+                               functionExecutor.compute(reflection);
+                               functionExecutor.compute(coordinateSearch);
+                               if (useExpansion)
+                                       functionExecutor.compute(expansion);
+                               
+                               // Check reflection acceptance
+                               log.debug("Computing reflection");
+                               functionExecutor.waitFor(reflection);
+                               
+                               if (accept(reflection, currentValue)) {
+                                       
+                                       log.debug("Reflection was successful, aborting coordinate search, " +
+                                                       (useExpansion ? "computing" : "skipping") + " expansion");
+                                       
+                                       functionExecutor.abort(coordinateSearch);
+                                       
+                                       simplex.clear();
+                                       simplex.add(current);
+                                       simplex.addAll(reflection);
+                                       Collections.sort(simplex, comparator);
+                                       
+                                       if (useExpansion) {
+                                               
+                                               /*
+                                                * Assume expansion to be unsuccessful, queue next reflection while computing expansion.
+                                                */
+                                               createReflection(simplex, reflection);
+                                               
+                                               functionExecutor.compute(reflection);
+                                               functionExecutor.waitFor(expansion);
+                                               
+                                               if (accept(expansion, currentValue)) {
+                                                       log.debug("Expansion was successful, aborting reflection");
+                                                       functionExecutor.abort(reflection);
+                                                       
+                                                       simplex.clear();
+                                                       simplex.add(current);
+                                                       simplex.addAll(expansion);
+                                                       step *= 2;
+                                                       Collections.sort(simplex, comparator);
+                                                       expansionAcceptance++;
+                                               } else {
+                                                       log.debug("Expansion failed");
+                                                       reflectionAcceptance++;
+                                               }
+                                               
+                                       } else {
+                                               reflectionAcceptance++;
+                                       }
+                                       
+                               } else {
+                                       
+                                       log.debug("Reflection was unsuccessful, aborting expansion, computing coordinate search");
+                                       
+                                       functionExecutor.abort(expansion);
+                                       
+                                       /*
+                                        * Assume coordinate search to be unsuccessful, queue contraction step while computing.
+                                        */
+                                       halveStep(simplex);
+                                       functionExecutor.compute(simplex);
+                                       functionExecutor.waitFor(coordinateSearch);
+                                       
+                                       if (accept(coordinateSearch, currentValue)) {
+                                               
+                                               log.debug("Coordinate search successful, reseting simplex");
+                                               List<Point> toAbort = new LinkedList<Point>(simplex);
+                                               simplex.clear();
+                                               simplex.add(current);
+                                               for (Point p : pattern) {
+                                                       simplex.add(current.add(p.mul(step)));
+                                               }
+                                               toAbort.removeAll(simplex);
+                                               functionExecutor.abort(toAbort);
+                                               simplexComputed = false;
+                                               coordinateAcceptance++;
+                                               
+                                       } else {
+                                               log.debug("Coordinate search unsuccessful, halving step.");
+                                               step /= 2;
+                                               reductionFallback++;
+                                       }
+                                       
+                               }
+                               
+                               log.debug("Ending optimization step with simplex " + simplex);
+                               
+                               if (Thread.interrupted()) {
+                                       throw new InterruptedException();
+                               }
+                               
+                       } while (control.stepTaken(current, currentValue, simplex.get(0),
+                                       functionExecutor.getValue(simplex.get(0)), step));
+                       
+               } catch (InterruptedException e) {
+                       log.info("Optimization was interrupted with InterruptedException");
+               }
+               
+               log.info("Finishing optimization at point " + simplex.get(0) + " value = " +
+                               functionExecutor.getValue(simplex.get(0)));
+       }
+       
+       
+
+       private void createReflection(List<Point> base, List<Point> reflection) {
+               Point current = base.get(0);
+               reflection.clear();
+               for (int i = 1; i < base.size(); i++) {
+                       Point p = current.mul(2).sub(base.get(i));
+                       reflection.add(p);
+               }
+       }
+       
+       private void createExpansion(List<Point> base, List<Point> expansion) {
+               Point current = base.get(0);
+               expansion.clear();
+               for (int i = 1; i < base.size(); i++) {
+                       Point p = current.mul(3).sub(base.get(i).mul(2));
+                       expansion.add(p);
+               }
+       }
+       
+       private void halveStep(List<Point> base) {
+               Point current = base.get(0);
+               for (int i = 1; i < base.size(); i++) {
+                       Point p = base.get(i);
+                       p = p.add(current).mul(0.5);
+                       base.set(i, p);
+               }
+       }
+       
+       private void createCoordinateSearch(Point current, double step, List<Point> coordinateDirections) {
+               coordinateDirections.clear();
+               for (int i = 0; i < current.dim(); i++) {
+                       Point p = new Point(current.dim());
+                       p = p.set(i, step);
+                       coordinateDirections.add(current.add(p));
+                       coordinateDirections.add(current.sub(p));
+               }
+       }
+       
+       
+       private boolean accept(List<Point> points, double currentValue) {
+               for (Point p : points) {
+                       if (functionExecutor.getValue(p) < currentValue) {
+                               return true;
+                       }
+               }
+               return false;
+       }
+       
+       
+
+       @Override
+       public Point getOptimumPoint() {
+               return simplex.get(0);
+       }
+       
+       @Override
+       public double getOptimumValue() {
+               return functionExecutor.getValue(getOptimumPoint());
+       }
+       
+       @Override
+       public FunctionCache getFunctionCache() {
+               return functionExecutor;
+       }
+       
+       @Override
+       public void setFunctionCache(FunctionCache functionCache) {
+               if (!(functionCache instanceof ParallelFunctionCache)) {
+                       throw new IllegalArgumentException("Function cache needs to be a ParallelFunctionCache: " + functionCache);
+               }
+               this.functionExecutor = (ParallelFunctionCache) functionCache;
+       }
+       
+       @Override
+       public String getStatistics() {
+               return "MultidirectionalSearchOptimizer[stepCount=" + stepCount +
+                               ", reflectionAcceptance=" + reflectionAcceptance +
+                               ", expansionAcceptance=" + expansionAcceptance +
+                               ", coordinateAcceptance=" + coordinateAcceptance +
+                               ", reductionFallback=" + reductionFallback;
+       }
+       
+       @Override
+       public void resetStatistics() {
+               stepCount = 0;
+               reflectionAcceptance = 0;
+               expansionAcceptance = 0;
+               coordinateAcceptance = 0;
+               reductionFallback = 0;
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/MultipleOptimizationController.java b/src/net/sf/openrocket/optimization/MultipleOptimizationController.java
new file mode 100644 (file)
index 0000000..50e51b9
--- /dev/null
@@ -0,0 +1,41 @@
+package net.sf.openrocket.optimization;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * An OptimizationController that delegates control actions to multiple other controllers.
+ * The optimization is stopped if any of the controllers stops it.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class MultipleOptimizationController implements OptimizationController {
+       
+       private final List<OptimizationController> controllers = new ArrayList<OptimizationController>();
+       
+       public MultipleOptimizationController(OptimizationController... controllers) {
+               for (OptimizationController c : controllers) {
+                       this.controllers.add(c);
+               }
+       }
+       
+       public MultipleOptimizationController(Collection<OptimizationController> controllers) {
+               this.controllers.addAll(controllers);
+       }
+       
+       
+       @Override
+       public boolean stepTaken(Point oldPoint, double oldValue, Point newPoint, double newValue, double stepSize) {
+               boolean ret = true;
+               
+               for (OptimizationController c : controllers) {
+                       if (!c.stepTaken(oldPoint, oldValue, newPoint, newValue, stepSize)) {
+                               ret = false;
+                       }
+               }
+               
+               return ret;
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/OptimizationController.java b/src/net/sf/openrocket/optimization/OptimizationController.java
new file mode 100644 (file)
index 0000000..3146243
--- /dev/null
@@ -0,0 +1,19 @@
+package net.sf.openrocket.optimization;
+
+public interface OptimizationController {
+       
+       /**
+        * Control for whether to continue the optimization.  This method is called after
+        * every full step taken by the optimization algorithm.
+        * 
+        * @param oldPoint      the old position.
+        * @param oldValue      the value of the function at the old position.
+        * @param newPoint      the new position.
+        * @param newValue      the value of the function at the new position.
+        * @param stepSize      the step length that is used to search for smaller function values (when applicable).
+        * @return                      <code>true</code> to continue optimization, <code>false</code> to stop.
+        */
+       public boolean stepTaken(Point oldPoint, double oldValue, Point newPoint, double newValue,
+                       double stepSize);
+       
+}
diff --git a/src/net/sf/openrocket/optimization/ParallelExecutorCache.java b/src/net/sf/openrocket/optimization/ParallelExecutorCache.java
new file mode 100644 (file)
index 0000000..d1c4f6b
--- /dev/null
@@ -0,0 +1,226 @@
+package net.sf.openrocket.optimization;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Future;
+import java.util.concurrent.LinkedBlockingQueue;
+import java.util.concurrent.ThreadFactory;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+/**
+ * A class that evaluates function values in parallel and caches them.
+ * This allows pre-calculating possibly required function values beforehand.
+ * If values are not required after all, the computation can be aborted assuming
+ * the function evaluation supports it.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class ParallelExecutorCache implements ParallelFunctionCache {
+       
+       private final Map<Point, Double> functionCache = new HashMap<Point, Double>();
+       private final Map<Point, Future<Double>> futureMap = new HashMap<Point, Future<Double>>();
+       
+       private ExecutorService executor;
+       
+       private Function function;
+       
+       
+
+       public ParallelExecutorCache() {
+               this(Runtime.getRuntime().availableProcessors());
+       }
+       
+       public ParallelExecutorCache(int threadCount) {
+               executor = new ThreadPoolExecutor(threadCount, threadCount, 60, TimeUnit.SECONDS,
+                               new LinkedBlockingQueue<Runnable>(),
+                               new ThreadFactory() {
+                                       @Override
+                                       public Thread newThread(Runnable r) {
+                                               Thread t = new Thread(r);
+                                               t.setDaemon(true);
+                                               return t;
+                                       }
+                               });
+       }
+       
+       public ParallelExecutorCache(ExecutorService executor) {
+               this.executor = executor;
+       }
+       
+       
+
+       /**
+        * Queue a list of function evaluations at the specified points.
+        * 
+        * @param points        the points at which to evaluate the function.
+        */
+       public void compute(Collection<Point> points) {
+               for (Point p : points) {
+                       compute(p);
+               }
+       }
+       
+       
+       /**
+        * Queue function evaluation for the specified point.
+        * 
+        * @param point         the point at which to evaluate the function.
+        */
+       public void compute(Point point) {
+               if (functionCache.containsKey(point)) {
+                       // Function has already been evaluated at the point
+                       return;
+               }
+               
+               if (futureMap.containsKey(point)) {
+                       // Function is being evaluated at the point
+                       return;
+               }
+               
+               double value = function.preComputed(point);
+               if (!Double.isNaN(value)) {
+                       // Function value was in function cache
+                       functionCache.put(point, value);
+                       return;
+               }
+               
+               // Submit point for evaluation
+               FunctionCallable callable = new FunctionCallable(function, point);
+               Future<Double> future = executor.submit(callable);
+               futureMap.put(point, future);
+       }
+       
+       
+       /**
+        * Wait for a collection of points to be computed.  After calling this method
+        * the function values are available by calling XXX
+        * 
+        * @param points        the points to wait for.
+        * @throws InterruptedException         if this thread was interrupted while waiting.
+        */
+       public void waitFor(Collection<Point> points) throws InterruptedException {
+               for (Point p : points) {
+                       waitFor(p);
+               }
+       }
+       
+       /**
+        * Wait for a point to be computed.  After calling this method
+        * the function values are available by calling XXX
+        * 
+        * @param point         the point to wait for.
+        * @throws InterruptedException         if this thread was interrupted while waiting.
+        */
+       public void waitFor(Point point) throws InterruptedException {
+               if (functionCache.containsKey(point)) {
+                       return;
+               }
+               
+               Future<Double> future = futureMap.get(point);
+               if (future == null) {
+                       throw new IllegalStateException("waitFor called for " + point + " but it is not being computed");
+               }
+               
+               try {
+                       double value = future.get();
+                       functionCache.put(point, value);
+               } catch (ExecutionException e) {
+                       throw new IllegalStateException("Function threw exception while processing", e.getCause());
+               }
+       }
+       
+       
+       /**
+        * Abort the computation of the specified point.  If computation has ended,
+        * the result is stored in the function cache anyway.
+        * 
+        * @param points        the points to abort.
+        * @return                      a list of the points that have been computed anyway
+        */
+       public List<Point> abort(Collection<Point> points) {
+               List<Point> computed = new ArrayList<Point>(Math.min(points.size(), 10));
+               
+               for (Point p : points) {
+                       if (abort(p)) {
+                               computed.add(p);
+                       }
+               }
+               
+               return computed;
+       }
+       
+       
+       /**
+        * Abort the computation of the specified point.  If computation has ended,
+        * the result is stored in the function cache anyway.
+        * 
+        * @param point         the point to abort.
+        * @return                      <code>true</code> if the point has been computed anyway, <code>false</code> if not.
+        */
+       public boolean abort(Point point) {
+               if (functionCache.containsKey(point)) {
+                       return true;
+               }
+               
+               Future<Double> future = futureMap.remove(point);
+               if (future == null) {
+                       throw new IllegalStateException("abort called for " + point + " but it is not being computed");
+               }
+               
+               if (future.isDone()) {
+                       // Evaluation has been completed, store value in cache
+                       try {
+                               double value = future.get();
+                               functionCache.put(point, value);
+                               return true;
+                       } catch (Exception e) {
+                               return false;
+                       }
+               } else {
+                       // Cancel the evaluation
+                       future.cancel(true);
+                       return false;
+               }
+       }
+       
+       
+       public double getValue(Point point) {
+               Double d = functionCache.get(point);
+               if (d == null) {
+                       throw new IllegalStateException(point.toString() + " is not in function cache.  " +
+                                       "functionCache=" + functionCache + "  futureMap=" + futureMap);
+               }
+               return d;
+       }
+       
+       
+
+       @Override
+       public Function getFunction() {
+               return function;
+       }
+       
+       @Override
+       public void setFunction(Function function) {
+               this.function = function;
+               clearCache();
+       }
+       
+       @Override
+       public void clearCache() {
+               List<Point> list = new ArrayList<Point>(futureMap.keySet());
+               abort(list);
+               functionCache.clear();
+       }
+       
+       public ExecutorService getExecutor() {
+               return executor;
+       }
+       
+}
diff --git a/src/net/sf/openrocket/optimization/ParallelFunctionCache.java b/src/net/sf/openrocket/optimization/ParallelFunctionCache.java
new file mode 100644 (file)
index 0000000..c035d9e
--- /dev/null
@@ -0,0 +1,59 @@
+package net.sf.openrocket.optimization;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface ParallelFunctionCache extends FunctionCache {
+       
+       /**
+        * Queue a list of function evaluations at the specified points.
+        * 
+        * @param points        the points at which to evaluate the function.
+        */
+       public void compute(Collection<Point> points);
+       
+       /**
+        * Queue function evaluation for the specified point.
+        * 
+        * @param point         the point at which to evaluate the function.
+        */
+       public void compute(Point point);
+       
+       /**
+        * Wait for a collection of points to be computed.  After calling this method
+        * the function values are available by calling XXX
+        * 
+        * @param points        the points to wait for.
+        * @throws InterruptedException         if this thread was interrupted while waiting.
+        */
+       public void waitFor(Collection<Point> points) throws InterruptedException;
+       
+       /**
+        * Wait for a point to be computed.  After calling this method
+        * the function values are available by calling XXX
+        * 
+        * @param point         the point to wait for.
+        * @throws InterruptedException         if this thread was interrupted while waiting.
+        */
+       public void waitFor(Point point) throws InterruptedException;
+       
+       
+       /**
+        * Abort the computation of the specified point.  If computation has ended,
+        * the result is stored in the function cache anyway.
+        * 
+        * @param points        the points to abort.
+        * @return                      a list of the points that have been computed anyway
+        */
+       public List<Point> abort(Collection<Point> points);
+       
+       
+       /**
+        * Abort the computation of the specified point.  If computation has ended,
+        * the result is stored in the function cache anyway.
+        * 
+        * @param point         the point to abort.
+        * @return                      <code>true</code> if the point has been computed anyway, <code>false</code> if not.
+        */
+       public boolean abort(Point point);
+}
diff --git a/src/net/sf/openrocket/optimization/Point.java b/src/net/sf/openrocket/optimization/Point.java
new file mode 100644 (file)
index 0000000..41140f5
--- /dev/null
@@ -0,0 +1,182 @@
+package net.sf.openrocket.optimization;
+
+import java.util.Arrays;
+
+import net.sf.openrocket.util.MathUtil;
+
+/**
+ * An immutable n-dimensional coordinate point.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public final class Point {
+       
+       private final double[] point;
+       private double length = -1;
+       private double length2 = -1;
+       
+       
+       public Point(int dim) {
+               if (dim <= 0) {
+                       throw new IllegalArgumentException("Invalid dimensionality " + dim);
+               }
+               point = new double[dim];
+       }
+       
+       public Point(int dim, double value) {
+               this(dim);
+               Arrays.fill(point, value);
+       }
+       
+       public Point(double... value) {
+               if (value.length == 0) {
+                       throw new IllegalArgumentException("Zero-dimensional point not allowed");
+               }
+               point = value.clone();
+       }
+       
+       private Point(Point p) {
+               point = p.point.clone();
+       }
+       
+       
+
+       /**
+        * Return the point dimensionality.
+        * 
+        * @return      the point dimensionality
+        */
+       public int dim() {
+               return point.length;
+       }
+       
+       
+
+       public double get(int i) {
+               return point[i];
+       }
+       
+       public Point set(int i, double v) {
+               Point p = new Point(this);
+               p.point[i] = v;
+               return p;
+       }
+       
+       
+       /**
+        * Return a new point that is the sum of two points.
+        * 
+        * @param other         the point to add to this point.
+        * @return                      the sum of these points.
+        */
+       public Point add(Point other) {
+               Point p = new Point(this);
+               for (int i = 0; i < point.length; i++) {
+                       p.point[i] += other.point[i];
+               }
+               return p;
+       }
+       
+       
+       /**
+        * Return a new point that is the subtraction of two points.
+        * 
+        * @param other         the point to subtract from this point.
+        * @return                      the value of this - other.
+        */
+       public Point sub(Point other) {
+               Point p = new Point(this);
+               for (int i = 0; i < point.length; i++) {
+                       p.point[i] -= other.point[i];
+               }
+               return p;
+       }
+       
+       
+       /**
+        * Return this point multiplied by a scalar value.
+        * 
+        * @param v             the scalar to multiply with
+        * @return              the scaled point
+        */
+       public Point mul(double v) {
+               Point p = new Point(this);
+               for (int i = 0; i < point.length; i++) {
+                       p.point[i] *= v;
+               }
+               return p;
+       }
+       
+       
+       /**
+        * Return the length of this coordinate.
+        * 
+        * @return      the length.
+        */
+       public double length() {
+               if (length < 0) {
+                       length = Math.sqrt(length2());
+               }
+               return length;
+       }
+       
+       
+       /**
+        * Return the squared length of this coordinate.
+        * 
+        * @return      the square of the length of thie coordinate.
+        */
+       public double length2() {
+               if (length2 < 0) {
+                       length2 = 0;
+                       for (double p : point) {
+                               length2 += p * p;
+                       }
+               }
+               return length2;
+       }
+       
+       
+       /**
+        * Return the point as an array.
+        * 
+        * @return      the point as an array.
+        */
+       public double[] asArray() {
+               return point.clone();
+       }
+       
+       @Override
+       public boolean equals(Object obj) {
+               if (this == obj)
+                       return true;
+               
+               if (!(obj instanceof Point))
+                       return false;
+               
+               Point other = (Point) obj;
+               if (this.point.length != other.point.length)
+                       return false;
+               
+               for (int i = 0; i < point.length; i++) {
+                       if (!MathUtil.equals(this.point[i], other.point[i]))
+                               return false;
+               }
+               return true;
+       }
+       
+       @Override
+       public int hashCode() {
+               int n = 0;
+               for (double d : point) {
+                       n *= 37;
+                       n += (int) (d * 1000);
+               }
+               return n;
+       }
+       
+       @Override
+       public String toString() {
+               return "Point" + Arrays.toString(point);
+       }
+}
diff --git a/src/net/sf/openrocket/optimization/SearchPattern.java b/src/net/sf/openrocket/optimization/SearchPattern.java
new file mode 100644 (file)
index 0000000..8082928
--- /dev/null
@@ -0,0 +1,89 @@
+package net.sf.openrocket.optimization;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import net.sf.openrocket.util.MathUtil;
+
+public class SearchPattern {
+       
+       /**
+        * Create a square search pattern with the specified dimensionality.
+        * 
+        * @param dimensionality        the dimensionality
+        */
+       public static List<Point> square(int dimensionality) {
+               List<Point> pattern = new ArrayList<Point>(dimensionality);
+               
+               for (int i = 0; i < dimensionality; i++) {
+                       double[] p = new double[dimensionality];
+                       p[i] = 1.0;
+                       pattern.add(new Point(p));
+               }
+               return pattern;
+       }
+       
+       
+
+       /**
+        * Create a regular simplex search pattern with the specified dimensionality.
+        * 
+        * @param dimensionality        the dimensionality
+        */
+       public static List<Point> regularSimplex(int dimensionality) {
+               if (dimensionality <= 0) {
+                       throw new IllegalArgumentException("Illegal dimensionality " + dimensionality);
+               }
+               
+               List<Point> pattern = new ArrayList<Point>(dimensionality);
+               
+               double[] coordinates = new double[dimensionality];
+               double dot = -1.0 / dimensionality;
+               
+               /*
+                * First construct an origin-centered regular simplex.
+                * http://en.wikipedia.org/wiki/Simplex#Cartesian_coordinates_for_regular_n-dimensional_simplex_in_Rn
+                */
+
+               for (int i = 0; i < dimensionality; i++) {
+                       // Compute the next point coordinate
+                       double value = 1;
+                       
+                       for (int j = 0; j < i; j++) {
+                               value -= MathUtil.pow2(coordinates[j]);
+                       }
+                       value = Math.sqrt(value);
+                       
+                       coordinates[i] = value;
+                       pattern.add(new Point(coordinates));
+                       
+                       // Compute the i-coordinate for all next points
+                       value = dot;
+                       for (int j = 0; j < i; j++) {
+                               value -= MathUtil.pow2(coordinates[j]);
+                       }
+                       value = value / coordinates[i];
+                       
+                       coordinates[i] = value;
+               }
+               
+               // Minimum point
+               Point min = pattern.get(dimensionality - 1);
+               min = min.set(dimensionality - 1, -min.get(dimensionality - 1));
+               
+
+               /*
+                * Shift simplex to have a corner at the origin and scale to unit length.
+                */
+               if (dimensionality > 1) {
+                       double scale = 1.0 / (pattern.get(1).sub(pattern.get(0)).length());
+                       for (int i = 0; i < dimensionality; i++) {
+                               Point p = pattern.get(i);
+                               p = p.sub(min).mul(scale);
+                               pattern.set(i, p);
+                       }
+               }
+               
+               return pattern;
+       }
+}
index 971a5e94c6bc79cda85f4388fae4fb4c6e0dcea7..2d2d492e0e9d8c09c81f210b51ef196cc88a4349 100644 (file)
@@ -4,8 +4,6 @@ import java.awt.GraphicsEnvironment;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
 import java.io.PrintStream;
 import java.util.List;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -20,8 +18,9 @@ import net.sf.openrocket.communication.UpdateInfoRetriever;
 import net.sf.openrocket.database.Databases;
 import net.sf.openrocket.database.ThrustCurveMotorSet;
 import net.sf.openrocket.database.ThrustCurveMotorSetDatabase;
-import net.sf.openrocket.file.DirectoryIterator;
-import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.iterator.DirectoryIterator;
+import net.sf.openrocket.file.iterator.FileIterator;
+import net.sf.openrocket.file.motor.MotorLoaderHelper;
 import net.sf.openrocket.gui.dialogs.UpdateInfoDialog;
 import net.sf.openrocket.gui.main.BasicFrame;
 import net.sf.openrocket.gui.main.ExceptionHandler;
@@ -35,7 +34,6 @@ import net.sf.openrocket.logging.PrintStreamLogger;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.util.GUIUtil;
-import net.sf.openrocket.util.Pair;
 import net.sf.openrocket.util.Prefs;
 
 
@@ -86,8 +84,8 @@ public class Startup {
                
                log.info("Startup complete");
                
-               // Block motor loading for 2 seconds to allow window painting
-               blockLoading.set(2000);
+               // Block motor loading for 1.5 seconds to allow window painting
+               blockLoading.set(1500);
        }
        
        
@@ -125,7 +123,6 @@ public class Startup {
                Prefs.loadDefaultUnits();
                
                // Load motors etc.
-               // TODO: HIGH: Use new motor loading
                log.info("Loading databases");
                loadMotor();
                Databases.fakeMethod();
@@ -145,74 +142,70 @@ public class Startup {
 
        private static void loadMotor() {
                
-               log.info("Starting motor loading from " + THRUSTCURVE_DIRECTORY +
-                               " in background thread.");
+               log.info("Starting motor loading from " + THRUSTCURVE_DIRECTORY + " in background thread.");
                ThrustCurveMotorSetDatabase db = new ThrustCurveMotorSetDatabase(true) {
                        
                        @Override
                        protected void loadMotors() {
                                
+                               // Block loading until timeout occurs or database is taken into use
                                log.info("Blocking motor loading while starting up");
-                               
-                               // Block for 100ms a time until timeout or database in use
                                while (!inUse && blockLoading.addAndGet(-100) > 0) {
                                        try {
                                                Thread.sleep(100);
                                        } catch (InterruptedException e) {
                                        }
                                }
-                               
                                log.info("Blocking ended, inUse=" + inUse + " slowLoadingCount=" + blockLoading.get());
                                
-                               log.info("Started to load motors from " + THRUSTCURVE_DIRECTORY);
+                               // Start loading
+                               log.info("Loading motors from " + THRUSTCURVE_DIRECTORY);
                                long t0 = System.currentTimeMillis();
+                               int fileCount;
+                               int thrustCurveCount;
                                
-                               int fileCount = 0;
-                               int thrustCurveCount = 0;
-                               int distinctMotorCount = 0;
-                               int distinctThrustCurveCount = 0;
-                               
-                               GeneralMotorLoader loader = new GeneralMotorLoader();
-                               DirectoryIterator iterator = DirectoryIterator.findDirectory(THRUSTCURVE_DIRECTORY,
+                               // Load the packaged thrust curves
+                               List<Motor> list;
+                               FileIterator iterator = DirectoryIterator.findDirectory(THRUSTCURVE_DIRECTORY,
                                                                new SimpleFileFilter("", false, "eng", "rse"));
                                if (iterator == null) {
-                                       throw new IllegalStateException("No thrust curves found, distribution built wrong");
+                                       throw new IllegalStateException("Thrust curve directory " + THRUSTCURVE_DIRECTORY +
+                                                       "not found, distribution built wrong");
                                }
-                               while (iterator.hasNext()) {
-                                       final Pair<String, InputStream> input = iterator.next();
-                                       log.debug("Loading motors from file " + input.getU());
-                                       fileCount++;
-                                       try {
-                                               List<Motor> motors = loader.load(input.getV(), input.getU());
-                                               if (motors.size() == 0) {
-                                                       log.warn("No motors found in file " + input.getU());
-                                               }
-                                               for (Motor m : motors) {
-                                                       thrustCurveCount++;
-                                                       this.addMotor((ThrustCurveMotor) m);
-                                               }
-                                       } catch (IOException e) {
-                                               log.warn("IOException when loading motor file " + input.getU(), e);
-                                       } finally {
-                                               try {
-                                                       input.getV().close();
-                                               } catch (IOException e) {
-                                                       log.error("IOException when closing InputStream", e);
-                                               }
+                               list = MotorLoaderHelper.load(iterator);
+                               for (Motor m : list) {
+                                       this.addMotor((ThrustCurveMotor) m);
+                               }
+                               fileCount = iterator.getFileCount();
+                               
+                               thrustCurveCount = list.size();
+                               
+                               // Load the user-defined thrust curves
+                               for (File file : Prefs.getUserThrustCurveFiles()) {
+                                       // TODO: LOW: This counts a directory as one file
+                                       log.info("Loading motors from " + file);
+                                       list = MotorLoaderHelper.load(file);
+                                       for (Motor m : list) {
+                                               this.addMotor((ThrustCurveMotor) m);
                                        }
-                                       
+                                       fileCount++;
+                                       thrustCurveCount += list.size();
                                }
                                
                                long t1 = System.currentTimeMillis();
                                
                                // Count statistics
+                               int distinctMotorCount = 0;
+                               int distinctThrustCurveCount = 0;
                                distinctMotorCount = motorSets.size();
                                for (ThrustCurveMotorSet set : motorSets) {
                                        distinctThrustCurveCount += set.getMotorCount();
                                }
                                log.info("Motor loading done, took " + (t1 - t0) + " ms to load "
-                                               + fileCount + " files containing " + thrustCurveCount + " thrust curves which contained "
-                                               + distinctMotorCount + " distinct motors with " + distinctThrustCurveCount + " thrust curves.");
+                                               + fileCount + " files/directories containing "
+                                               + thrustCurveCount + " thrust curves which contained "
+                                               + distinctMotorCount + " distinct motors with "
+                                               + distinctThrustCurveCount + " distinct thrust curves.");
                        }
                        
                };
index c120b763ab25b45ca253c241a444bd36efedbed9..58585d7717c66d54b62c2d18bda811d966939fc0 100644 (file)
@@ -1,15 +1,21 @@
 package net.sf.openrocket.util;
 
-public class MathUtil {
-       public static final double EPSILON = 0.00000001;  // 10mm^3 in m^3
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.List;
 
+public class MathUtil {
+       public static final double EPSILON = 0.00000001; // 10mm^3 in m^3
+       
        /**
         * The square of x (x^2).  On Sun's JRE using this method is as fast as typing x*x. 
         * @param x  x
         * @return   x^2
         */
        public static double pow2(double x) {
-               return x*x;
+               return x * x;
        }
        
        /**
@@ -18,11 +24,11 @@ public class MathUtil {
         * @return   x^3
         */
        public static double pow3(double x) {
-               return x*x*x;
+               return x * x * x;
        }
        
        public static double pow4(double x) {
-               return (x*x)*(x*x);
+               return (x * x) * (x * x);
        }
        
        /**
@@ -73,11 +79,11 @@ public class MathUtil {
                if (equals(toMin, toMax))
                        return toMin;
                if (equals(fromMin, fromMax)) {
-                       throw new IllegalArgumentException("from range is singular and to range is not: "+
+                       throw new IllegalArgumentException("from range is singular and to range is not: " +
                                        "value=" + value + " fromMin=" + fromMin + " fromMax=" + fromMax +
                                        "toMin=" + toMin + " toMax=" + toMax);
                }
-               return (value - fromMin)/(fromMax-fromMin) * (toMax - toMin) + toMin;
+               return (value - fromMin) / (fromMax - fromMin) * (toMax - toMin) + toMin;
        }
        
        
@@ -97,14 +103,14 @@ public class MathUtil {
                if (toMin.equals(toMax))
                        return toMin;
                if (equals(fromMin, fromMax)) {
-                       throw new IllegalArgumentException("from range is singular and to range is not: "+
+                       throw new IllegalArgumentException("from range is singular and to range is not: " +
                                        "value=" + value + " fromMin=" + fromMin + " fromMax=" + fromMax +
                                        "toMin=" + toMin + " toMax=" + toMax);
                }
-               double a = (value - fromMin)/(fromMax-fromMin);
-               return toMax.multiply(a).add(toMin.multiply(1-a));
+               double a = (value - fromMin) / (fromMax - fromMin);
+               return toMax.multiply(a).add(toMin.multiply(1 - a));
        }
-
+       
        
        /**
         * Compute the minimum of two values.  This is performed by direct comparison. 
@@ -135,9 +141,9 @@ public class MathUtil {
         */
        public static double min(double x, double y, double z) {
                if (x < y || Double.isNaN(y)) {
-                       return min(x,z);
+                       return min(x, z);
                } else {
-                       return min(y,z);
+                       return min(y, z);
                }
        }
        
@@ -148,9 +154,9 @@ public class MathUtil {
         */
        public static double max(double x, double y, double z) {
                if (x > y || Double.isNaN(y)) {
-                       return max(x,z);
+                       return max(x, z);
                } else {
-                       return max(y,z);
+                       return max(y, z);
                }
        }
        
@@ -159,19 +165,19 @@ public class MathUtil {
         * faster than <code>Math.hypot(x,y)</code>.
         */
        public static double hypot(double x, double y) {
-               return Math.sqrt(x*x + y*y);
+               return Math.sqrt(x * x + y * y);
        }
-
+       
        /**
         * Reduce the angle x to the range 0 - 2*PI.
         * @param x  Original angle.
         * @return   The equivalent angle in the range 0 ... 2*PI.
         */
        public static double reduce360(double x) {
-               double d = Math.floor(x / (2*Math.PI));
-               return x - d*2*Math.PI;
+               double d = Math.floor(x / (2 * Math.PI));
+               return x - d * 2 * Math.PI;
        }
-
+       
        /**
         * Reduce the angle x to the range -PI - PI.
         * 
@@ -181,19 +187,19 @@ public class MathUtil {
         * @return   The equivalent angle in the range -PI ... PI.
         */
        public static double reduce180(double x) {
-               double d = Math.rint(x / (2*Math.PI));
-               return x - d*2*Math.PI;
+               double d = Math.rint(x / (2 * Math.PI));
+               return x - d * 2 * Math.PI;
        }
        
        
        public static boolean equals(double a, double b) {
                double absb = Math.abs(b);
                
-               if (absb < EPSILON/2) {
+               if (absb < EPSILON / 2) {
                        // Near zero
-                       return Math.abs(a) < EPSILON/2;
+                       return Math.abs(a) < EPSILON / 2;
                }
-               return Math.abs(a-b) < EPSILON*absb;
+               return Math.abs(a - b) < EPSILON * absb;
        }
        
        
@@ -207,15 +213,66 @@ public class MathUtil {
         * @return              -1.0 if x<0; 1.0 if x>0; otherwise either -1.0 or 1.0.
         */
        public static double sign(double x) {
-               return (x<0) ? -1.0 : 1.0;
+               return (x < 0) ? -1.0 : 1.0;
        }
-
+       
        /* Math.abs() is about 3x as fast as this:
        
        public static double abs(double x) {
                return (x<0) ? -x : x;
        }
        */
+
+
+       public static double average(Collection<? extends Number> values) {
+               if (values.isEmpty()) {
+                       return Double.NaN;
+               }
+               
+               double avg = 0.0;
+               int count = 0;
+               for (Number n : values) {
+                       avg += n.doubleValue();
+                       count++;
+               }
+               return avg / count;
+       }
+       
+       public static double stddev(Collection<? extends Number> values) {
+               if (values.size() < 2) {
+                       return Double.NaN;
+               }
+               
+               double avg = average(values);
+               double stddev = 0.0;
+               int count = 0;
+               for (Number n : values) {
+                       stddev += pow2(n.doubleValue() - avg);
+                       count++;
+               }
+               stddev = Math.sqrt(stddev / (count - 1));
+               return stddev;
+       }
        
+       public static double median(Collection<? extends Number> values) {
+               if (values.isEmpty()) {
+                       return Double.NaN;
+               }
+               
+               List<Number> sorted = new ArrayList<Number>(values);
+               Collections.sort(sorted, new Comparator<Number>() {
+                       @Override
+                       public int compare(Number o1, Number o2) {
+                               return Double.compare(o1.doubleValue(), o2.doubleValue());
+                       }
+               });
+               
+               int n = sorted.size();
+               if (n % 2 == 0) {
+                       return (sorted.get(n / 2).doubleValue() + sorted.get(n / 2 - 1).doubleValue()) / 2;
+               } else {
+                       return sorted.get(n / 2).doubleValue();
+               }
+       }
        
 }
index 53d9ff262a965bd0c957911eacca00826f106f89..ed7cb2c85b77281aa5a3ca6fd61d286faf90fe8c 100644 (file)
@@ -7,8 +7,10 @@ import java.awt.Toolkit;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
 import java.util.Map;
 import java.util.MissingResourceException;
 import java.util.Properties;
@@ -16,6 +18,7 @@ import java.util.Set;
 import java.util.prefs.BackingStoreException;
 import java.util.prefs.Preferences;
 
+import net.sf.openrocket.arch.SystemInfo;
 import net.sf.openrocket.database.Databases;
 import net.sf.openrocket.document.Simulation;
 import net.sf.openrocket.gui.main.ExceptionHandler;
@@ -39,6 +42,9 @@ import net.sf.openrocket.unit.UnitGroup;
 public class Prefs {
        private static final LogHelper log = Application.getLogger();
        
+       private static final String SPLIT_CHARACTER = "|";
+       
+
        /**
         * Whether to use the debug-node instead of the normal node.
         */
@@ -64,6 +70,7 @@ public class Prefs {
         */
        private static class BuildPropertyHolder {
                
+               public static final Properties PROPERTIES;
                public static final String BUILD_VERSION;
                public static final String BUILD_SOURCE;
                public static final boolean DEFAULT_CHECK_UPDATES;
@@ -78,11 +85,11 @@ public class Prefs {
                                                        "build.properties", "build.version");
                                }
                                
-                               Properties props = new Properties();
-                               props.load(is);
+                               PROPERTIES = new Properties();
+                               PROPERTIES.load(is);
                                is.close();
                                
-                               String version = props.getProperty("build.version");
+                               String version = PROPERTIES.getProperty("build.version");
                                if (version == null) {
                                        throw new MissingResourceException(
                                                        "build.version not found in property file",
@@ -90,14 +97,14 @@ public class Prefs {
                                }
                                BUILD_VERSION = version.trim();
                                
-                               BUILD_SOURCE = props.getProperty("build.source");
+                               BUILD_SOURCE = PROPERTIES.getProperty("build.source");
                                if (BUILD_SOURCE == null) {
                                        throw new MissingResourceException(
                                                        "build.source not found in property file",
                                                        "build.properties", "build.source");
                                }
                                
-                               String value = props.getProperty("build.checkupdates");
+                               String value = PROPERTIES.getProperty("build.checkupdates");
                                if (value != null)
                                        DEFAULT_CHECK_UPDATES = Boolean.parseBoolean(value);
                                else
@@ -113,7 +120,8 @@ public class Prefs {
        
        public static final String BODY_COMPONENT_INSERT_POSITION_KEY = "BodyComponentInsertPosition";
        
-
+       public static final String USER_THRUST_CURVES_KEY = "UserThrustCurves";
+       
        public static final String CONFIRM_DELETE_SIMULATION = "ConfirmDeleteSimulation";
        
        // Preferences related to data export
@@ -287,9 +295,13 @@ public class Prefs {
         * Set a string preference.
         * 
         * @param key           the preference key
-        * @param value         the value to set
+        * @param value         the value to set, or <code>null</code> to remove the key
         */
        public static void putString(String key, String value) {
+               if (value == null) {
+                       PREFNODE.remove(key);
+                       return;
+               }
                PREFNODE.put(key, value);
                storeVersion();
        }
@@ -361,6 +373,70 @@ public class Prefs {
        }
        
        
+       /**
+        * Return a list of files/directories to be loaded as custom thrust curves.
+        * <p>
+        * If this property has not been set, the directory "ThrustCurves" in the user
+        * application directory will be used.  The directory will be created if it does not
+        * exist.
+        * 
+        * @return      a list of files to load as thrust curves.
+        */
+       public static List<File> getUserThrustCurveFiles() {
+               List<File> list = new ArrayList<File>();
+               
+               String files = getString(USER_THRUST_CURVES_KEY, null);
+               if (files == null) {
+                       // Default to application directory
+                       File tcdir = getDefaultUserThrustCurveFile();
+                       if (!tcdir.isDirectory()) {
+                               tcdir.mkdirs();
+                       }
+                       list.add(tcdir);
+               } else {
+                       for (String file : files.split("\\" + SPLIT_CHARACTER)) {
+                               file = file.trim();
+                               if (file.length() > 0) {
+                                       list.add(new File(file));
+                               }
+                       }
+               }
+               
+               return list;
+       }
+       
+       public static File getDefaultUserThrustCurveFile() {
+               File appdir = SystemInfo.getUserApplicationDirectory();
+               File tcdir = new File(appdir, "ThrustCurves");
+               return tcdir;
+       }
+       
+       
+       /**
+        * Set the list of files/directories to be loaded as custom thrust curves.
+        * 
+        * @param files         the files to load, or <code>null</code> to reset to default value.
+        */
+       public static void setUserThrustCurveFiles(List<File> files) {
+               if (files == null) {
+                       putString(USER_THRUST_CURVES_KEY, null);
+                       return;
+               }
+               
+               String str = "";
+               
+               for (File file : files) {
+                       if (str.length() > 0) {
+                               str += SPLIT_CHARACTER;
+                       }
+                       str += file.getAbsolutePath();
+               }
+               putString(USER_THRUST_CURVES_KEY, str);
+       }
+       
+       
+
+
 
        public static Color getDefaultColor(Class<? extends RocketComponent> c) {
                String color = get("componentColors", c, DEFAULT_COLORS);
diff --git a/src/net/sf/openrocket/util/Statistics.java b/src/net/sf/openrocket/util/Statistics.java
new file mode 100644 (file)
index 0000000..f96adf1
--- /dev/null
@@ -0,0 +1,9 @@
+package net.sf.openrocket.util;
+
+public interface Statistics {
+       
+       public String getStatistics();
+       
+       public void resetStatistics();
+       
+}
index cf6b2787a959d401375cc2b56372194c80e6c62c..1748fcd8b3168d8e8aa0cdf8473a188d8da9a4b0 100644 (file)
@@ -349,9 +349,9 @@ public class TestRockets {
                String id = rocket.newMotorConfigurationID();
                bodytube.setMotorMount(true);
                
-               Motor m = Application.getMotorSetDatabase().findMotors(null, null, "F12J", Double.NaN, Double.NaN).get(0);
-               bodytube.setMotor(id, m);
-               bodytube.setMotorOverhang(0.005);
+               //              Motor m = Application.getMotorSetDatabase().findMotors(null, null, "F12J", Double.NaN, Double.NaN).get(0);
+               //              bodytube.setMotor(id, m);
+               //              bodytube.setMotorOverhang(0.005);
                rocket.getDefaultConfiguration().setMotorConfigurationID(id);
                
                rocket.getDefaultConfiguration().setAllStages();
@@ -552,9 +552,9 @@ public class TestRockets {
                String id = rocket.newMotorConfigurationID();
                tube3.setMotorMount(true);
                
-               Motor m = Application.getMotorSetDatabase().findMotors(null, null, "L540", Double.NaN, Double.NaN).get(0);
-               tube3.setMotor(id, m);
-               tube3.setMotorOverhang(0.02);
+               //              Motor m = Application.getMotorSetDatabase().findMotors(null, null, "L540", Double.NaN, Double.NaN).get(0);
+               //              tube3.setMotor(id, m);
+               //              tube3.setMotorOverhang(0.02);
                rocket.getDefaultConfiguration().setMotorConfigurationID(id);
                
                //              tube3.setIgnitionEvent(MotorMount.IgnitionEvent.NEVER);
diff --git a/src/net/sf/openrocket/util/UncloseableInputStream.java b/src/net/sf/openrocket/util/UncloseableInputStream.java
new file mode 100644 (file)
index 0000000..ca0779f
--- /dev/null
@@ -0,0 +1,23 @@
+package net.sf.openrocket.util;
+
+import java.io.FilterInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+
+/**
+ * An InputStream filter that prevents closing the source stream.  The
+ * {@link #close()} method is overridden to do nothing.
+ * 
+ * @author Sampo Niskanen <sampo.niskanen@iki.fi>
+ */
+public class UncloseableInputStream extends FilterInputStream {
+       
+       public UncloseableInputStream(InputStream in) {
+               super(in);
+       }
+       
+       @Override
+       public void close() throws IOException {
+               // No-op
+       }
+}
index 44d35eece8ecb72293b689495977d97c10389d49..1087c5df57ab99e29fdc6997bd353694a76921c3 100644 (file)
@@ -8,7 +8,7 @@ import java.util.LinkedHashMap;
 import java.util.List;
 import java.util.Map;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.util.Pair;
index 50cbeb0ae4b8ae7c41c1d2965580570afe4fa80d..5710486d875360ef1657611cb01fbeb9cd4cf9b3 100644 (file)
@@ -5,8 +5,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.motor.Manufacturer;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
index db229bbea3eb2aadd2035795bc4a41225efe030e..dcb16aebc09f0cf92d3e94a0b6570734f5eed5ec 100644 (file)
@@ -6,8 +6,8 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.motor.Manufacturer;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
index cc7866849de22fc1d7d75b573870585f9058561f..f3a6f8a7bf15fcc2f663d59f6df62ad97e6d31a9 100644 (file)
@@ -9,8 +9,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.util.Pair;
 
index aab9b171e3b101f5624bbc23ea5738f30a7c03c8..3394a59e0b60f93de423e427886c5533846346e9 100644 (file)
@@ -6,8 +6,8 @@ import java.io.InputStream;
 import java.util.ArrayList;
 import java.util.List;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.logging.LogLevel;
 import net.sf.openrocket.models.atmosphere.AtmosphericConditions;
 import net.sf.openrocket.motor.Motor;
index d9e53a9b274e8ca6a4226d5b96afab57bf28f4ce..754d4075a9796632efbd60b3d7ab6a12a18d9bca 100644 (file)
@@ -5,8 +5,8 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.util.List;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.MotorDigest;
 import net.sf.openrocket.motor.ThrustCurveMotor;
index 6fdeee8f69d60caa96799305e9b06e0c5763cd99..1f3eb90cf2a0efc3da8ed9a05fb4e1201a5e0931 100644 (file)
@@ -19,7 +19,7 @@ import javax.swing.JTextArea;
 import javax.swing.SwingUtilities;
 
 import net.miginfocom.swing.MigLayout;
-import net.sf.openrocket.file.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
 import net.sf.openrocket.motor.Motor;
 import net.sf.openrocket.motor.ThrustCurveMotor;
 import net.sf.openrocket.util.GUIUtil;
index 44b78ed416544612074d1be9dd4000f646386f6e..0ca4e98714847518dd2b75fa97ada3d2061ed32e 100644 (file)
@@ -6,9 +6,10 @@ import java.io.InputStream;
 import java.util.Arrays;
 import java.util.List;
 
-import net.sf.openrocket.file.GeneralMotorLoader;
-import net.sf.openrocket.file.MotorLoader;
+import net.sf.openrocket.file.motor.GeneralMotorLoader;
+import net.sf.openrocket.file.motor.MotorLoader;
 import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.motor.MotorDigest;
 import net.sf.openrocket.motor.ThrustCurveMotor;
 
 public class MotorPrinter {
@@ -38,11 +39,16 @@ public class MotorPrinter {
                                System.out.printf("  Total impulse: %.2f Ns\n", m.getTotalImpulseEstimate());
                                System.out.println("  Diameter:      " + m.getDiameter() * 1000 + " mm");
                                System.out.println("  Length:        " + m.getLength() * 1000 + " mm");
-                               //                              System.out.println("  Digest:        " + m.getDigestString());
+                               System.out.println("  Digest:        " + MotorDigest.digestMotor(m));
                                
                                if (m instanceof ThrustCurveMotor) {
                                        ThrustCurveMotor tc = (ThrustCurveMotor) m;
                                        System.out.println("  Data points:   " + tc.getTimePoints().length);
+                                       for (int i = 0; i < m.getTimePoints().length; i++) {
+                                               double time = m.getTimePoints()[i];
+                                               double thrust = m.getThrustPoints()[i];
+                                               System.out.printf("    t=%.3f   F=%.3f\n", time, thrust);
+                                       }
                                }
                                
                                System.out.println("  Comment:");
diff --git a/src/net/sf/openrocket/utils/TestFunctionOptimizer.java b/src/net/sf/openrocket/utils/TestFunctionOptimizer.java
new file mode 100644 (file)
index 0000000..4eacec3
--- /dev/null
@@ -0,0 +1,127 @@
+package net.sf.openrocket.utils;
+
+import net.sf.openrocket.optimization.Function;
+import net.sf.openrocket.optimization.FunctionOptimizer;
+import net.sf.openrocket.optimization.MultidirectionalSearchOptimizer;
+import net.sf.openrocket.optimization.OptimizationController;
+import net.sf.openrocket.optimization.ParallelExecutorCache;
+import net.sf.openrocket.optimization.ParallelFunctionCache;
+import net.sf.openrocket.optimization.Point;
+
+
+
+
+public class TestFunctionOptimizer {
+       
+       private static final int LOOP_COUNT = 1000000;
+       
+       private volatile int evaluations = 0;
+       private volatile int aborted = 0;
+       private volatile int stepCount = 0;
+       
+       
+
+       private void go(final ParallelFunctionCache functionCache,
+                       final FunctionOptimizer optimizer, final Point optimum, final int maxSteps) {
+               
+               Function function = new Function() {
+                       @Override
+                       public double evaluate(Point p) throws InterruptedException {
+                               if (loop(LOOP_COUNT)) {
+                                       evaluations++;
+                                       return p.sub(optimum).length2();
+                               } else {
+                                       aborted++;
+                                       return Double.NaN;
+                               }
+                       }
+                       
+                       @Override
+                       public double preComputed(Point p) {
+                               for (double d : p.asArray()) {
+                                       if (d < 0 || d > 1)
+                                               return Double.MAX_VALUE;
+                               }
+                               return Double.NaN;
+                       }
+               };
+               
+               OptimizationController control = new OptimizationController() {
+                       
+                       @Override
+                       public boolean stepTaken(Point oldPoint, double oldValue, Point newPoint, double newValue, double stepSize) {
+                               stepCount++;
+                               //                              System.out.println("CSV " + count + ", " + evaluations + ", " + newPoint.sub(optimum).length());
+                               //                              System.out.println("Steps: " + count + "  Function evaluations: " + evaluations);
+                               //                              System.out.println("Distance: " + newPoint.sub(optimum).length() + "   " + newPoint + "  value=" + newValue);
+                               return stepCount < maxSteps;
+                       }
+               };
+               ;
+               
+               functionCache.setFunction(function);
+               optimizer.setFunctionCache(functionCache);
+               optimizer.optimize(new Point(optimum.dim(), 0.5), control);
+               System.err.println("Result: " + optimizer.getOptimumPoint() + "  value=" + optimizer.getOptimumValue());
+               System.err.println("Steps: " + stepCount + " Evaluations: " + evaluations);
+       }
+       
+       
+       public static double counter;
+       
+       private static boolean loop(int count) {
+               counter = 1.0;
+               for (int i = 0; i < count; i++) {
+                       counter += Math.sin(counter);
+                       if (i % 1024 == 0) {
+                               if (Thread.interrupted()) {
+                                       return false;
+                               }
+                       }
+               }
+               return true;
+       }
+       
+       
+       public static void main(String[] args) throws InterruptedException {
+               
+               System.err.println("Number of processors: " + Runtime.getRuntime().availableProcessors());
+               
+               for (int i = 0; i < 20; i++) {
+                       long t0 = System.currentTimeMillis();
+                       loop(LOOP_COUNT);
+                       long t1 = System.currentTimeMillis();
+                       System.err.println("Loop delay at startup: " + (t1 - t0) + "ms");
+               }
+               System.err.println();
+               
+               for (int threadCount = 1; threadCount <= 10; threadCount++) {
+                       
+                       System.err.println("THREAD COUNT:  " + threadCount);
+                       TestFunctionOptimizer test = new TestFunctionOptimizer();
+                       
+                       ParallelExecutorCache executor = new ParallelExecutorCache(threadCount);
+                       MultidirectionalSearchOptimizer optimizer = new MultidirectionalSearchOptimizer();
+                       long t0 = System.currentTimeMillis();
+                       test.go(executor, optimizer, new Point(0.2, 0.3, 0.85), 30);
+                       long t1 = System.currentTimeMillis();
+                       
+                       System.err.println("Optimization took " + (t1 - t0) + "ms");
+                       System.err.println("" + test.stepCount + " steps, " + test.evaluations +
+                                       " function evaluations, " + test.aborted + " aborted evaluations");
+                       System.err.println("Statistics: " + optimizer.getStatistics());
+                       
+                       executor.getExecutor().shutdownNow();
+                       Thread.sleep(1000);
+                       
+                       t0 = System.currentTimeMillis();
+                       loop(LOOP_COUNT);
+                       t1 = System.currentTimeMillis();
+                       System.err.println("Loop delay afterwards: " + (t1 - t0) + "ms");
+                       System.err.println();
+               }
+       }
+       
+
+
+}
diff --git a/src/net/sf/openrocket/utils/TestFunctionOptimizerLoop.java b/src/net/sf/openrocket/utils/TestFunctionOptimizerLoop.java
new file mode 100644 (file)
index 0000000..5a81d10
--- /dev/null
@@ -0,0 +1,109 @@
+package net.sf.openrocket.utils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.concurrent.ArrayBlockingQueue;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
+
+import net.sf.openrocket.optimization.Function;
+import net.sf.openrocket.optimization.FunctionOptimizer;
+import net.sf.openrocket.optimization.MultidirectionalSearchOptimizer;
+import net.sf.openrocket.optimization.OptimizationController;
+import net.sf.openrocket.optimization.ParallelExecutorCache;
+import net.sf.openrocket.optimization.Point;
+import net.sf.openrocket.util.MathUtil;
+
+
+public class TestFunctionOptimizerLoop {
+       
+       private static final double PRECISION = 0.01;
+       
+       private Point optimum;
+       private int stepCount = 0;
+       private int evaluations = 0;
+       
+       
+
+       private void go(final FunctionOptimizer optimizer, final Point optimum, final int maxSteps, ExecutorService executor) {
+               
+               Function function = new Function() {
+                       @Override
+                       public double evaluate(Point p) throws InterruptedException {
+                               evaluations++;
+                               return p.sub(optimum).length2();
+                       }
+                       
+                       @Override
+                       public double preComputed(Point p) {
+                               for (double d : p.asArray()) {
+                                       if (d < 0 || d > 1)
+                                               return Double.MAX_VALUE;
+                               }
+                               return Double.NaN;
+                       }
+               };
+               
+               OptimizationController control = new OptimizationController() {
+                       
+                       @Override
+                       public boolean stepTaken(Point oldPoint, double oldValue, Point newPoint, double newValue, double stepSize) {
+                               stepCount++;
+                               if (stepCount % 1000 == 0) {
+                                       System.err.println("WARNING: Over " + stepCount + " steps required for optimum=" + optimum +
+                                                               " position=" + newPoint);
+                               }
+                               double distance = newPoint.sub(optimum).length();
+                               return distance >= PRECISION;
+                       }
+               };
+               ;
+               
+               ParallelExecutorCache cache = new ParallelExecutorCache(executor);
+               cache.setFunction(function);
+               optimizer.setFunctionCache(cache);
+               optimizer.optimize(new Point(optimum.dim(), 0.5), control);
+       }
+       
+       
+       public static void main(String[] args) {
+               
+               System.err.println("PRECISION = " + PRECISION);
+               
+               ThreadPoolExecutor executor = new ThreadPoolExecutor(2, 2, 1, TimeUnit.SECONDS, new ArrayBlockingQueue<Runnable>(100));
+               
+               for (int dim = 1; dim <= 10; dim++) {
+                       
+                       List<Integer> stepCount = new ArrayList<Integer>();
+                       List<Integer> functionCount = new ArrayList<Integer>();
+                       
+                       MultidirectionalSearchOptimizer optimizer = new MultidirectionalSearchOptimizer();
+                       for (int count = 0; count < 200; count++) {
+                               TestFunctionOptimizerLoop test = new TestFunctionOptimizerLoop();
+                               double[] point = new double[dim];
+                               for (int i = 0; i < dim; i++) {
+                                       point[i] = Math.random();
+                               }
+                               //                              point[0] = 0.7;
+                               test.go(optimizer, new Point(point), 20, executor);
+                               stepCount.add(test.stepCount);
+                               functionCount.add(test.evaluations);
+                       }
+                       
+                       //                      System.err.println("StepCount = " + stepCount);
+                       
+                       System.out.printf("dim=%d  Steps avg=%5.2f dev=%5.2f median=%.1f  " +
+                                       "Evaluations avg=%5.2f dev=%5.2f median=%.1f\n",
+                                       dim, MathUtil.average(stepCount), MathUtil.stddev(stepCount), MathUtil.median(stepCount),
+                                       MathUtil.average(functionCount), MathUtil.stddev(functionCount), MathUtil.median(functionCount));
+                       System.out.println("stat: " + optimizer.getStatistics());
+                       
+               }
+               
+               executor.shutdownNow();
+       }
+       
+
+
+}
diff --git a/test/net/sf/openrocket/arch/TestSystemInfo.java b/test/net/sf/openrocket/arch/TestSystemInfo.java
new file mode 100644 (file)
index 0000000..80c6558
--- /dev/null
@@ -0,0 +1,73 @@
+package net.sf.openrocket.arch;
+
+import static org.junit.Assert.assertEquals;
+
+import java.io.File;
+
+import org.junit.Test;
+
+/*
+ * Note:  These tests have not been tested on Windows, they might fail there
+ * due to a different directory separator character.
+ */
+public class TestSystemInfo {
+       
+       private String osname;
+       private String userhome;
+       
+       
+       public void setup() {
+               this.osname = System.getProperty("os.name");
+               this.userhome = System.getProperty("user.home");
+       }
+       
+       public void tearDown() {
+               System.setProperty("os.name", this.osname);
+               System.setProperty("user.home", this.userhome);
+       }
+       
+       @Test
+       public void testWindows() {
+               setup();
+               
+               System.setProperty("os.name", "Windows Me");
+               System.setProperty("user.home", "C:/Users/my user");
+               assertEquals(SystemInfo.Platform.WINDOWS, SystemInfo.getPlatform());
+               if (System.getenv("APPDATA") != null) {
+                       assertEquals(new File(System.getenv("APPDATA") + "/OpenRocket/"), SystemInfo.getUserApplicationDirectory());
+               } else {
+                       assertEquals(new File("C:/Users/my user/OpenRocket/"), SystemInfo.getUserApplicationDirectory());
+               }
+               
+               tearDown();
+       }
+       
+       @Test
+       public void testMacOS() {
+               setup();
+               
+               System.setProperty("os.name", "Mac OS X");
+               System.setProperty("user.home", "/Users/My User");
+               assertEquals(SystemInfo.Platform.MAC_OS, SystemInfo.getPlatform());
+               assertEquals(new File("/Users/My User/Library/Application Support/OpenRocket/"),
+                               SystemInfo.getUserApplicationDirectory());
+               
+               tearDown();
+       }
+       
+       @Test
+       public void testUnix() {
+               setup();
+               
+               System.setProperty("user.home", "/home/myuser");
+               for (String os : new String[] { "Linux", "Solaris", "Foobar" }) {
+                       System.setProperty("os.name", os);
+                       
+                       assertEquals(SystemInfo.Platform.UNIX, SystemInfo.getPlatform());
+                       assertEquals(new File("/home/myuser/.openrocket"), SystemInfo.getUserApplicationDirectory());
+               }
+               
+               tearDown();
+       }
+       
+}
diff --git a/test/net/sf/openrocket/file/iterator/TestDirectoryIterator.java b/test/net/sf/openrocket/file/iterator/TestDirectoryIterator.java
new file mode 100644 (file)
index 0000000..dce1486
--- /dev/null
@@ -0,0 +1,25 @@
+package net.sf.openrocket.file.iterator;
+
+import java.io.File;
+import java.io.FileFilter;
+import java.io.IOException;
+
+import org.junit.Test;
+
+public class TestDirectoryIterator {
+       
+       @Test
+       public void testDirectoryIterator() throws IOException {
+               DirectoryIterator iterator = new DirectoryIterator(new File("test/net/sf/openrocket/file"), new FileFilter() {
+                       @Override
+                       public boolean accept(File pathname) {
+                               return pathname.getName().matches("^Test(Directory|File)Iterator.java");
+                       }
+               }, true);
+               
+               while (iterator.hasNext()) {
+                       System.out.println("" + iterator.next());
+               }
+               
+       }
+}
diff --git a/test/net/sf/openrocket/file/iterator/TestFileIterator.java b/test/net/sf/openrocket/file/iterator/TestFileIterator.java
new file mode 100644 (file)
index 0000000..c3e424e
--- /dev/null
@@ -0,0 +1,41 @@
+package net.sf.openrocket.file.iterator;
+
+import static org.junit.Assert.*;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+import net.sf.openrocket.util.Pair;
+
+import org.junit.Test;
+
+public class TestFileIterator {
+       
+       @Test
+       public void testFileIterator() {
+               final Pair<String, InputStream> one = new Pair<String, InputStream>("one", new ByteArrayInputStream(new byte[] { 1 }));
+               final Pair<String, InputStream> two = new Pair<String, InputStream>("two", new ByteArrayInputStream(new byte[] { 2 }));
+               
+               FileIterator iterator = new FileIterator() {
+                       private int count = 0;
+                       
+                       @Override
+                       protected Pair<String, InputStream> findNext() {
+                               count++;
+                               switch (count) {
+                               case 1:
+                                       return one;
+                               case 2:
+                                       return two;
+                               default:
+                                       return null;
+                               }
+                       }
+               };
+               
+               assertTrue(iterator.hasNext());
+               assertEquals(one, iterator.next());
+               assertEquals(two, iterator.next());
+               assertFalse(iterator.hasNext());
+       }
+}
diff --git a/test/net/sf/openrocket/file/motor/TestMotorLoader.java b/test/net/sf/openrocket/file/motor/TestMotorLoader.java
new file mode 100644 (file)
index 0000000..8200310
--- /dev/null
@@ -0,0 +1,63 @@
+package net.sf.openrocket.file.motor;
+
+import static org.junit.Assert.*;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.List;
+
+import net.sf.openrocket.motor.Motor;
+import net.sf.openrocket.motor.MotorDigest;
+import net.sf.openrocket.motor.ThrustCurveMotor;
+
+import org.junit.Test;
+
+public class TestMotorLoader {
+       
+       @Test
+       public void testGeneralMotorLoader() throws IOException {
+               MotorLoader loader = new GeneralMotorLoader();
+               
+               test(loader, "test1.eng", "c056cf25df6751f7bb8a94bc4f64750f");
+               test(loader, "test2.rse", "b2fe203ee319ae28b9ccdad26a8f21de");
+               test(loader, "test.zip", "b2fe203ee319ae28b9ccdad26a8f21de", "c056cf25df6751f7bb8a94bc4f64750f");
+               
+       }
+       
+       @Test
+       public void testRASPMotorLoader() throws IOException {
+               test(new RASPMotorLoader(), "test1.eng", "c056cf25df6751f7bb8a94bc4f64750f");
+       }
+       
+       @Test
+       public void testRocksimMotorLoader() throws IOException {
+               test(new RockSimMotorLoader(), "test2.rse", "b2fe203ee319ae28b9ccdad26a8f21de");
+       }
+       
+       @Test
+       public void testZipMotorLoader() throws IOException {
+               test(new ZipFileMotorLoader(), "test.zip", "b2fe203ee319ae28b9ccdad26a8f21de", "c056cf25df6751f7bb8a94bc4f64750f");
+       }
+       
+       
+       private void test(MotorLoader loader, String file, String... digests) throws IOException {
+               List<Motor> motors;
+               
+               InputStream is = this.getClass().getResourceAsStream(file);
+               assertNotNull("File " + file + " not found", is);
+               motors = loader.load(is, file);
+               is.close();
+               assertEquals(digests.length, motors.size());
+               
+               String[] d = new String[digests.length];
+               for (int i = 0; i < motors.size(); i++) {
+                       d[i] = MotorDigest.digestMotor((ThrustCurveMotor) motors.get(i));
+               }
+               
+               Arrays.sort(digests);
+               Arrays.sort(d);
+               assertTrue(Arrays.equals(d, digests));
+       }
+       
+}
diff --git a/test/net/sf/openrocket/file/motor/test.txt b/test/net/sf/openrocket/file/motor/test.txt
new file mode 100644 (file)
index 0000000..4b43be8
--- /dev/null
@@ -0,0 +1 @@
+boo bah
diff --git a/test/net/sf/openrocket/file/motor/test.zip b/test/net/sf/openrocket/file/motor/test.zip
new file mode 100644 (file)
index 0000000..eeb5ef7
Binary files /dev/null and b/test/net/sf/openrocket/file/motor/test.zip differ
diff --git a/test/net/sf/openrocket/file/motor/test1.eng b/test/net/sf/openrocket/file/motor/test1.eng
new file mode 100644 (file)
index 0000000..06dc100
--- /dev/null
@@ -0,0 +1,24 @@
+D10 18 70 7 0.009800000000000001 0.0259 AT\r
+   0.0070 23.0\r
+   0.018 25.0\r
+   0.027 20.25\r
+   0.066 20.25\r
+   0.073 18.5\r
+   0.094 20.25\r
+   0.112 20.75\r
+   0.137 19.75\r
+   0.163 21.5\r
+   0.202 20.75\r
+   0.231 20.75\r
+   0.254 22.75\r
+   0.27 20.75\r
+   0.504 20.0\r
+   0.536 18.25\r
+   0.607 17.0\r
+   0.687 14.75\r
+   0.751 14.25\r
+   0.84 11.25\r
+   0.998 8.25\r
+   1.024 8.25\r
+   1.248 2.5\r
+   1.385 0.0\r
diff --git a/test/net/sf/openrocket/file/motor/test2.rse b/test/net/sf/openrocket/file/motor/test2.rse
new file mode 100644 (file)
index 0000000..a77408f
--- /dev/null
@@ -0,0 +1,52 @@
+<engine-database>\r
+  <engine-list>\r
+    <engine  mfg="Cesaroni Technology Inc." code="G115-13A" Type="reloadable" dia="38."\r
+len="127." initWt="195." propWt="61.8" delays="13" auto-calc-mass="1"\r
+auto-calc-cg="1" avgThrust="113.512" peakThrust="131.895" throatDia="0."\r
+exitDia="0." Itot="140.755" burn-time="1.24" massFrac="31.69" Isp="232.25"\r
+tDiv="10" tStep="-1." tFix="1" FDiv="10" FStep="-1." FFix="1" mDiv="10"\r
+mStep="-1." mFix="1" cgDiv="10" cgStep="-1." cgFix="1">\r
+    <data>\r
+      <eng-data  t="0." f="0." m="61.8" cg="63.5"/>\r
+      <eng-data  t="0.00787402" f="10.3447" m="61.7821" cg="63.5"/>\r
+      <eng-data  t="0.0183727" f="117.671" m="61.4871" cg="63.5"/>\r
+      <eng-data  t="0.0209974" f="128.447" m="61.3453" cg="63.5"/>\r
+      <eng-data  t="0.0446194" f="131.895" m="59.9952" cg="63.5"/>\r
+      <eng-data  t="0.0577428" f="125.861" m="59.2526" cg="63.5"/>\r
+      <eng-data  t="0.0629921" f="119.395" m="58.97" cg="63.5"/>\r
+      <eng-data  t="0.0787402" f="113.792" m="58.1638" cg="63.5"/>\r
+      <eng-data  t="0.107612" f="115.947" m="56.7077" cg="63.5"/>\r
+      <eng-data  t="0.149606" f="118.964" m="54.542" cg="63.5"/>\r
+      <eng-data  t="0.188976" f="119.395" m="52.4819" cg="63.5"/>\r
+      <eng-data  t="0.233596" f="121.981" m="50.1176" cg="63.5"/>\r
+      <eng-data  t="0.278215" f="122.412" m="47.7237" cg="63.5"/>\r
+      <eng-data  t="0.322835" f="122.843" m="45.3213" cg="63.5"/>\r
+      <eng-data  t="0.380577" f="123.274" m="42.2014" cg="63.5"/>\r
+      <eng-data  t="0.440945" f="122.843" m="38.9398" cg="63.5"/>\r
+      <eng-data  t="0.480315" f="123.274" m="36.8126" cg="63.5"/>\r
+      <eng-data  t="0.540682" f="122.843" m="33.5509" cg="63.5"/>\r
+      <eng-data  t="0.590551" f="122.412" m="30.866" cg="63.5"/>\r
+      <eng-data  t="0.622047" f="120.688" m="29.1851" cg="63.5"/>\r
+      <eng-data  t="0.67979" f="120.257" m="26.1308" cg="63.5"/>\r
+      <eng-data  t="0.734908" f="119.395" m="23.231" cg="63.5"/>\r
+      <eng-data  t="0.790026" f="117.671" m="20.3625" cg="63.5"/>\r
+      <eng-data  t="0.845144" f="116.809" m="17.5253" cg="63.5"/>\r
+      <eng-data  t="0.88189" f="116.378" m="15.6442" cg="63.5"/>\r
+      <eng-data  t="0.929134" f="113.361" m="13.2615" cg="63.5"/>\r
+      <eng-data  t="0.979003" f="113.361" m="10.7794" cg="63.5"/>\r
+      <eng-data  t="1.0315" f="111.206" m="8.19152" cg="63.5"/>\r
+      <eng-data  t="1.07087" f="108.188" m="6.29532" cg="63.5"/>\r
+      <eng-data  t="1.11286" f="108.188" m="4.30052" cg="63.5"/>\r
+      <eng-data  t="1.16535" f="106.033" m="1.83186" cg="63.5"/>\r
+      <eng-data  t="1.18373" f="112.499" m="0.95044" cg="63.5"/>\r
+      <eng-data  t="1.18635" f="96.5506" m="0.829987" cg="63.5"/>\r
+      <eng-data  t="1.19685" f="81.0335" m="0.420696" cg="63.5"/>\r
+      <eng-data  t="1.2021" f="51.7235" m="0.267708" cg="63.5"/>\r
+      <eng-data  t="1.2126" f="30.172" m="0.0789575" cg="63.5"/>\r
+      <eng-data  t="1.21522" f="16.8101" m="0.0518866" cg="63.5"/>\r
+      <eng-data  t="1.21785" f="7.75853" m="0.0377303" cg="63.5"/>\r
+      <eng-data  t="1.24" f="0." m="0." cg="63.5"/>\r
+    </data>\r
+  </engine>\r
+</engine-list>\r
+</engine-database>\r
diff --git a/test/net/sf/openrocket/optimization/TestSearchPattern.java b/test/net/sf/openrocket/optimization/TestSearchPattern.java
new file mode 100644 (file)
index 0000000..7ba5965
--- /dev/null
@@ -0,0 +1,40 @@
+package net.sf.openrocket.optimization;
+
+import static org.junit.Assert.*;
+
+import java.util.List;
+
+import org.junit.Test;
+
+public class TestSearchPattern {
+       
+       @Test
+       public void testRegularSimplex() {
+               for (int dim = 1; dim < 20; dim++) {
+                       List<Point> points = SearchPattern.regularSimplex(dim);
+                       assertEquals(dim, points.size());
+                       
+                       for (int i = 0; i < dim; i++) {
+                               // Test dot product
+                               for (int j = i + 1; j < dim; j++) {
+                                       double[] x = points.get(i).asArray();
+                                       double[] y = points.get(j).asArray();
+                                       double dot = 0;
+                                       for (int k = 0; k < dim; k++) {
+                                               dot += x[k] * y[k];
+                                       }
+                                       assertEquals(0.5, dot, 0.000000001);
+                               }
+                               
+                               // Test positive coordinates
+                               for (int j = 0; j < dim; j++) {
+                                       assertTrue(points.get(i).get(j) >= 0);
+                               }
+                               
+                               // Test length
+                               assertEquals(1.0, points.get(i).length(), 0.000000001);
+                       }
+               }
+       }
+       
+}
index df1524271755bc844c9dbfcfb60567af9548a469..a794a090797fdb7943fd546885caa490cbc51471 100644 (file)
@@ -4,22 +4,25 @@ import static java.lang.Double.NaN;
 import static java.lang.Math.PI;
 import static org.junit.Assert.*;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import org.junit.Test;
 
 public class MathUtilTest {
        
        public static final double EPS = 0.00000000001;
-
+       
        @Test
        public void miscMathTest() {
                
-               assertEquals(PI*PI, MathUtil.pow2(PI), EPS);
-               assertEquals(PI*PI*PI, MathUtil.pow3(PI), EPS);
-               assertEquals(PI*PI*PI*PI, MathUtil.pow4(PI), EPS);
+               assertEquals(PI * PI, MathUtil.pow2(PI), EPS);
+               assertEquals(PI * PI * PI, MathUtil.pow3(PI), EPS);
+               assertEquals(PI * PI * PI * PI, MathUtil.pow4(PI), EPS);
                
                assertEquals(1.0, MathUtil.clamp(0.9999, 1.0, 2.0), 0);
                assertEquals(1.23, MathUtil.clamp(1.23, 1.0, 2.0), 0);
-               assertEquals(2.0, MathUtil.clamp(2 + EPS/100, 1.0, 2.0), 0);
+               assertEquals(2.0, MathUtil.clamp(2 + EPS / 100, 1.0, 2.0), 0);
                
                assertEquals(1.0f, MathUtil.clamp(0.9999f, 1.0f, 2.0f), 0);
                assertEquals(1.23f, MathUtil.clamp(1.23f, 1.0f, 2.0f), 0);
@@ -32,17 +35,17 @@ public class MathUtilTest {
                assertEquals(-1.0, MathUtil.sign(Double.NEGATIVE_INFINITY), EPS);
                assertEquals(-1.0, MathUtil.sign(-100), EPS);
                assertEquals(-1.0, MathUtil.sign(Math.nextAfter(0.0, -1.0)), EPS);
-               assertEquals( 1.0, MathUtil.sign(Math.nextUp(0.0)), EPS);
-               assertEquals( 1.0, MathUtil.sign(100), EPS);
-               assertEquals( 1.0, MathUtil.sign(Double.POSITIVE_INFINITY), EPS);
+               assertEquals(1.0, MathUtil.sign(Math.nextUp(0.0)), EPS);
+               assertEquals(1.0, MathUtil.sign(100), EPS);
+               assertEquals(1.0, MathUtil.sign(Double.POSITIVE_INFINITY), EPS);
        }
        
        @Test
        public void hypotTest() {
                
-               for (int i=0; i<10000; i++) {
-                       double x = Math.random()*100 - 50;
-                       double y = Math.random()*i - i/2;
+               for (int i = 0; i < 10000; i++) {
+                       double x = Math.random() * 100 - 50;
+                       double y = Math.random() * i - i / 2;
                        double z = Math.hypot(x, y);
                        assertEquals(z, MathUtil.hypot(x, y), EPS);
                }
@@ -52,15 +55,15 @@ public class MathUtilTest {
        @Test
        public void reduceTest() {
                
-               for (int i=-1000; i<1000; i++) {
-                       double angle = Math.random() * 2*PI;
-                       double shift = angle + i*2*PI;
+               for (int i = -1000; i < 1000; i++) {
+                       double angle = Math.random() * 2 * PI;
+                       double shift = angle + i * 2 * PI;
                        assertEquals(angle, MathUtil.reduce360(shift), EPS);
                }
                
-               for (int i=-1000; i<1000; i++) {
-                       double angle = Math.random() * 2*PI - PI;
-                       double shift = angle + i*2*PI;
+               for (int i = -1000; i < 1000; i++) {
+                       double angle = Math.random() * 2 * PI - PI;
+                       double shift = angle + i * 2 * PI;
                        assertEquals(angle, MathUtil.reduce180(shift), EPS);
                }
                
@@ -73,7 +76,7 @@ public class MathUtilTest {
                assertEquals(1.0, MathUtil.min(NaN, 1.0), 0);
                assertEquals(1.0, MathUtil.min(1.0, NaN), 0);
                assertEquals(NaN, MathUtil.min(NaN, NaN), 0);
-
+               
                assertEquals(Math.nextUp(1.0), MathUtil.max(1.0, Math.nextUp(1.0)), 0);
                assertEquals(Double.POSITIVE_INFINITY, MathUtil.max(1.0, Double.POSITIVE_INFINITY), 0);
                assertEquals(1.0, MathUtil.max(NaN, 1.0), 0);
@@ -107,44 +110,45 @@ public class MathUtilTest {
                try {
                        MathUtil.map(6.0, 1.0, Math.nextUp(1.0), 1.0, 2.0);
                        fail("Should not be reached.");
-               } catch (IllegalArgumentException normal) { }
-
+               } catch (IllegalArgumentException normal) {
+               }
+               
                assertEquals(7.0, MathUtil.map(Math.nextUp(1.0), 0.0, 5.0, 9.0, -1.0), EPS);
        }
        
        
        @Test
        public void mapCoordinateTest() {
-               assertEquals(new Coordinate(0.8, 2.0, 1.6, 4.0), 
+               assertEquals(new Coordinate(0.8, 2.0, 1.6, 4.0),
                                MathUtil.map(1.0, 0.0, 5.0, new Coordinate(0, 1, 2, 3), new Coordinate(4, 6, 0, 8)));
        }
        
        
        @Test
        public void equalsTest() {
-               assertTrue(MathUtil.equals(1.0, 1.0 + MathUtil.EPSILON/3));
-               assertFalse(MathUtil.equals(1.0, 1.0 + MathUtil.EPSILON*2));
-               assertTrue(MathUtil.equals(-1.0, -1.0 + MathUtil.EPSILON/3));
-               assertFalse(MathUtil.equals(-1.0, -1.0 + MathUtil.EPSILON*2));
+               assertTrue(MathUtil.equals(1.0, 1.0 + MathUtil.EPSILON / 3));
+               assertFalse(MathUtil.equals(1.0, 1.0 + MathUtil.EPSILON * 2));
+               assertTrue(MathUtil.equals(-1.0, -1.0 + MathUtil.EPSILON / 3));
+               assertFalse(MathUtil.equals(-1.0, -1.0 + MathUtil.EPSILON * 2));
                
-               for (double zero: new double[] { 0.0, MathUtil.EPSILON/10, -MathUtil.EPSILON/10 }) {
-
-                       assertTrue(MathUtil.equals(zero, MathUtil.EPSILON/3));
-                       assertTrue(MathUtil.equals(zero, -MathUtil.EPSILON/3));
-                       assertFalse(MathUtil.equals(zero, MathUtil.EPSILON*2));
-                       assertFalse(MathUtil.equals(zero, -MathUtil.EPSILON*2));
-
-                       assertTrue(MathUtil.equals(MathUtil.EPSILON/3, zero));
-                       assertTrue(MathUtil.equals(-MathUtil.EPSILON/3, zero));
-                       assertFalse(MathUtil.equals(MathUtil.EPSILON*2, zero));
-                       assertFalse(MathUtil.equals(-MathUtil.EPSILON*2, zero));
-
+               for (double zero : new double[] { 0.0, MathUtil.EPSILON / 10, -MathUtil.EPSILON / 10 }) {
+                       
+                       assertTrue(MathUtil.equals(zero, MathUtil.EPSILON / 3));
+                       assertTrue(MathUtil.equals(zero, -MathUtil.EPSILON / 3));
+                       assertFalse(MathUtil.equals(zero, MathUtil.EPSILON * 2));
+                       assertFalse(MathUtil.equals(zero, -MathUtil.EPSILON * 2));
+                       
+                       assertTrue(MathUtil.equals(MathUtil.EPSILON / 3, zero));
+                       assertTrue(MathUtil.equals(-MathUtil.EPSILON / 3, zero));
+                       assertFalse(MathUtil.equals(MathUtil.EPSILON * 2, zero));
+                       assertFalse(MathUtil.equals(-MathUtil.EPSILON * 2, zero));
+                       
                }
                
-               for (double value: new double[] { PI*1e20, -PI*1e20 }) {
+               for (double value : new double[] { PI * 1e20, -PI * 1e20 }) {
                        assertTrue("value=" + value, MathUtil.equals(value, value + 1));
                        assertTrue("value=" + value, MathUtil.equals(value, Math.nextUp(value)));
-                       assertTrue("value=" + value, MathUtil.equals(value, value * (1+MathUtil.EPSILON)));
+                       assertTrue("value=" + value, MathUtil.equals(value, value * (1 + MathUtil.EPSILON)));
                }
                
                assertFalse(MathUtil.equals(NaN, 0.0));
@@ -152,4 +156,54 @@ public class MathUtilTest {
                assertFalse(MathUtil.equals(NaN, NaN));
        }
        
+       @Test
+       public void testAverageStddev() {
+               List<Integer> ints = new ArrayList<Integer>();
+               List<Double> doubles = new ArrayList<Double>();
+               
+               ints.add(3);
+               ints.add(4);
+               ints.add(7);
+               ints.add(5);
+               
+               doubles.add(3.4);
+               doubles.add(2.9);
+               doubles.add(7.5);
+               doubles.add(5.43);
+               doubles.add(2.8);
+               doubles.add(6.6);
+               
+               assertEquals(4.75, MathUtil.average(ints), EPS);
+               assertEquals(1.707825127659933, MathUtil.stddev(ints), EPS);
+               assertEquals(4.771666666666667, MathUtil.average(doubles), EPS);
+               assertEquals(2.024454659078999, MathUtil.stddev(doubles), EPS);
+       }
+       
+       @Test
+       public void testMedian() {
+               List<Integer> ints = new ArrayList<Integer>();
+               List<Double> doubles = new ArrayList<Double>();
+               
+               ints.add(3);
+               ints.add(4);
+               ints.add(7);
+               ints.add(5);
+               
+               doubles.add(3.4);
+               doubles.add(2.9);
+               doubles.add(7.5);
+               doubles.add(5.43);
+               doubles.add(2.8);
+               doubles.add(6.6);
+               
+               assertEquals(4.5, MathUtil.median(ints), EPS);
+               assertEquals(4.415, MathUtil.median(doubles), EPS);
+               
+               ints.add(9);
+               doubles.add(10.0);
+               
+               assertEquals(5, MathUtil.median(ints), EPS);
+               assertEquals(5.43, MathUtil.median(doubles), EPS);
+       }
+       
 }
index 94c5049f12c96ec7b7799c676cc9347f1695a093..5a8d9994a0efc73820b3ebc606e258748b55f360 100644 (file)
@@ -21,6 +21,7 @@ $orversion = "";
 $oros = "";
 $orjava = "";
 $orcountry = "";
+$orcores = "";
 foreach (getallheaders() as $header => $value) {
     if (preg_match("/^[a-zA-Z0-9 !$%&()*+,.\\/:=?@_~-]{1,40}$/", $value)) {
        $h = strtolower($header);
@@ -34,20 +35,23 @@ foreach (getallheaders() as $header => $value) {
            $orjava = $value;
        } else if ($h == 'x-openrocket-country') {
            $orcountry = $value;
+       } else if ($h == 'x-openrocket-cpus') {
+           $orcores = $value;
        }
     }
 }
 
 // Log the request
 if ((strlen($orversion) > 0 || strlen($orid) > 0 || strlen($oros) > 0
-     || strlen($orjava) > 0 || strlen($orcountry) > 0) &&
-
+     || strlen($orjava) > 0 || strlen($orcountry) > 0 
+     || strlen($orcores) > 0) &&
     (strlen($orversion) < 20 && strlen($orid) < 50 && strlen($oros) < 50
-     && strlen($orjava) < 50 && strlen($orcountry) < 50)) {
+     && strlen($orjava) < 50 && strlen($orcountry) < 50) 
+     && strlen($orcores) < 10) {
 
     $file = $logfiles . gmdate("Y-m");
     $line = gmdate("Y-m-d H:i:s") . ";" . $orid . ";" . $orversion .
-       ";" . $oros . ";" . $orjava . ";" . $orcountry . "\n";
+       ";" . $oros . ";" . $orjava . ";" . $orcountry . ";" . $orcores . "\n";
 
     $fp = fopen($file, 'a');
     if ($fp != FALSE) {
@@ -65,15 +69,23 @@ header("Content-type: text/plain");
 /*
  * Currently all old versions are handled manually.
  * Update checking was introduced in OpenRocket 0.9.4
+ *
+ * We ignore "pre" versions, they are handled exacly like
+ * their non-pre counterparts.
  */
 $version = $_GET["version"];
 $updates = "";
 
-if (preg_match("/^0\.9\.6/",$version)) {
+if (preg_match("/^1\.1\.0/", $version)) {
+  $updates = "Version: 1.1.1\n" .
+    "6: Enhanced motor selection\n" .
+    "5: Rewritten simulation code" .
+    "4: Bug fixes";
+} else if (preg_match("/^0\.9\.6/", $version)) {
   $updates = "Version: 1.0.0\n" .
     "6: Hundreds of new thrustcurves\n" .
     "5: Bug fixes";
-} else if (preg_match("/^0\.9\.(4|5pre|5|6pre)/",$version)) {
+} else if (preg_match("/^0\.9\.[45]/", $version)) {
   $updates = "Version: 1.0.0\n" .
     "7: Hundreds of new thrustcurves\n" .
     "6: Aerodynamic computation updates\n" .