Вы находитесь на странице: 1из 111

Version 2.

User Manual

Cologne, Germany 2013 www.propulsion-analysis.com

Rocket Propulsion Analysis v.2.1

Rocket Propulsion Analysis v.2.1

Table of Contents
Introduction............................................................................................................................. !"# editions............................................................................................................................ $ystem re%uirements..............................................................................................................& Microso't (indows.............................................................................................................& #pple Mac...........................................................................................................................& )inu*...................................................................................................................................& Installation on Microso't (indows..........................................................................................& I' you downloaded installation pac+age..............................................................................& I' you downloaded ,I" pac+age.........................................................................................Installation on #pple Mac .$ /..............................................................................................Installation on )inu*................................................................................................................!unning !"#...........................................................................................................................Grap0ical User Inter'ace.....................................................................................................Command-line utility.........................................................................................................10 $cripting utility...................................................................................................................11 Con'iguration 1iles................................................................................................................12 2ngine 3e'inition...................................................................................................................12 "ropellant $peci'ication........................................................................................................14 "ropellant $peci'ication $creen.......................................................................................14 Component "roperties......................................................................................................1& Components 3ata5ase.....................................................................................................16o77le 1low Model................................................................................................................18 6o77le 1low Model $creen...............................................................................................18 6o77le conditions.............................................................................................................20 6o77le $0ape and 2''iciencies.........................................................................................21 #m5ient condition.............................................................................................................22 90rottle settings................................................................................................................22 $tarting #nalysis...................................................................................................................23 C0am5er "er'ormance.........................................................................................................24 90ermodynamic properties...............................................................................................24 "er'ormance.....................................................................................................................2 #ltitude per'ormance........................................................................................................290rottled per'ormance......................................................................................................28 6ested #nalysis....................................................................................................................31 "ropellant #nalysis................................................................................................................32 C0am5er Geometry..............................................................................................................34 3esign "arameters...........................................................................................................34 $i7e and Geometry...........................................................................................................3: 90ermal #nalysis...................................................................................................................3 ;eat 9rans'er "arameters................................................................................................3& 90rust C0am5er Cooling..................................................................................................3& !adiation Cooling.........................................................................................................38 !egenerati<e Cooling...................................................................................................40 Coolant de'inition.....................................................................................................41 3

Rocket Propulsion Analysis v.2.1

Coa*ial $0ell =ac+et 3esign....................................................................................41 9u5ular (all =ac+et 3esign.....................................................................................42 C0annel (all =ac+et 3esign....................................................................................43 1ilm Cooling.................................................................................................................44 90rust c0am5er wit0 se<eral cooling sections.............................................................44 90ermal >arrier Coating )ayer.....................................................................................4: 90ermal #nalysis..............................................................................................................4: "ropellant 1eed $ystem ?Cycle #nalysis@.............................................................................4& 3esign "arameters...........................................................................................................4& !unning Cycle #nalysis....................................................................................................:2 .perating "arameters......................................................................................................:2 Cycle "er'ormance.......................................................................................................:3 2ngine 3ry (eig0t.......................................................................................................:3 90ermodynamic 3ata5ase 2ditor.........................................................................................:4 "re'erences...........................................................................................................................:& Input and .utput Units..........................................................................................................:8 $cripting Utility...................................................................................................................... 0 >uilt-In 1unctions.............................................................................................................. 0 #"I !e'erence.................................................................................................................. 1 Con'iguration #"I.................................................................................................................. 1 .5Aect Con'ig1ile.............................................................................................................. 1 .5Aect General.ptions..................................................................................................... : .5Aect 6o77le1low.ptions............................................................................................... & .5Aect Com5ustionC0am5erConditions........................................................................... .5Aect 1ree7ingConditions............................................................................................... .5Aect 6o77leInletConditions........................................................................................... 8 .5Aect 6o77le$ectionConditions......................................................................................&0 .5Aect 2''iciency1actors...................................................................................................&0 .5Aect #m5ientConditions................................................................................................&1 .5Aect 90rottlingConditions..............................................................................................&2 .5Aect "ropellant..............................................................................................................&3 .5Aect Component............................................................................................................&3 .5Aect 2ngine$i7e............................................................................................................&4 .5Aect C0am5erGeometry................................................................................................&: 90ermo #"I...........................................................................................................................& .5Aect data5ase...............................................................................................................& .5Aect $pecies..................................................................................................................& .5Aect "ropellant..............................................................................................................&.5Aect Mi*ture...................................................................................................................-1 !eaction #"I.........................................................................................................................-3 .5Aect "roduct..................................................................................................................-3 .5Aect !eaction................................................................................................................-: .5Aect 3eri<ati<es............................................................................................................-& "er'ormance #"I...................................................................................................................-.5Aect C0am5er...............................................................................................................-.5Aect 6o77le$ectionConditions......................................................................................80 4

Rocket Propulsion Analysis v.2.1

.5Aect C0am5er1r............................................................................................................81 .5Aect 6o77le$ectionConditions1r...................................................................................83 .5Aect "er'ormance..........................................................................................................84 $cripting e*amples................................................................................................................8: "er'ormance - 2*ample 1.................................................................................................8: "er'ormance - 2*ample 2.................................................................................................8 "er'ormance - 2*ample 3.................................................................................................8& "er'ormance - 2*ample 4.................................................................................................88 "er'ormance - 2*ample :...............................................................................................100 "ropellant........................................................................................................................101 Mi*ture............................................................................................................................102 !eaction..........................................................................................................................104 !eaction "roducts..........................................................................................................10 1ro7en 2%uili5rium..........................................................................................................10& 6ested #nalysis..............................................................................................................108 "ropellant #nalysis.........................................................................................................110

Rocket Propulsion Analysis v.2.1

Introduction
!"# is an acronym 'or !oc+et "ropulsion #nalysis. !"# is a roc+et engine analysis tool 'or roc+etry pro'essionals, scientists, students and amateurs. !"# is an easy-to-use multi-plat'orm tool 'or t0e per'ormance prediction o' roc+et engines. It 'eatures an intuiti<e grap0ical user inter'ace wit0 con<enient grouping t0e input parameters and analysis results. !"# utili7es an e*panda5le c0emical species li5rary 5ased on 6#$# Glenn t0ermodynamic data5ase, t0at includes data 'or numerous 'uels and o*idi7ers, suc0 as li%uid 0ydrogen and o*ygen, +erosene, 0ydrogen pero*ide, MM;, and many ot0ers. (it0 em5edded species editor, t0e users may also easily de'ine new propellant components, or import components 'rom PROPEP or CEA2 species data5ases. >y pro<iding a 'ew engine parameters suc0 as com5ustion c0am5er pressure, used propellant components, and no77le parameters, t0e program o5tains c0emical e%uili5rium composition o' com5ustion products, determines its t0ermodynamic properties, and predicts t0e t0eoretical roc+et per'ormance. 90e results o' calculation can also 5e used to design com5ustion c0am5ers, gas generators and pre5urners o' t0e li%uid propellant roc+et engines. 90e calculation met0od is 5ased on ro5ust, pro<en and industry-accepted Gi55s 'ree energy minimi7ation approac0 to o5tain t0e com5ustion composition, analysis o' no77le 'lows wit0 s0i'ting and 'ro7en c0emical e%uili5rium, and calculation o' engine per'ormance 'or a 'initeand in'inite-area com5ustion c0am5ers. !"# is written in CBB programming language using 'ollowing li5rariesC 6o+ia Dt, Dwt, li5con'igBB. 90e program was written 5y #le*ander "onomaren+o. Eou can contact 0im 5y sending an email toC contactFpropulsion-analysis.com

RPA editions
Eou can download t0ree di''erent <ersions o' !"# 'rom 0ttpCGGwww.propulsionanalysis.comGdownloads.0tmC 'reeware )ite 2dition, commercial $tandard 2dition <.1.* and commercial $tandard 2dition <.2.*. $ystem re%uirements and installation procedure are t0e same 'or 5ot0 editions. I' you downloaded and used an e<aluation copy o' !"# $tandard 2dition wit0 'ree 1:-day trial period, you may purc0ase a license and get your personali7ed product +ey w0ic0 con<erts t0is e<aluation <ersion o' t0e product to a 'ully licensed <ersion.

Rocket Propulsion Analysis v.2.1

System requirements
Microsoft Windows
.perating $ystemsC (indows 2000 ?32-5it or 4-5it 2dition@ (indows /" ?32-5it or 4-5it 2dition@ (indows Hista ?32-5it or 4-5it 2dition@ (indows & ?32-5it or 4-5it 2dition@

#ny computer t0at runs wit0 mentioned operating systems.

Apple Mac
Mac .$ / 10.: or later Macintos0 computer wit0 an Intel *- or *- - 4 processor

Linux
!"# will not run wit0out t0e 'ollowing li5rariesC Gli5 2.12 or 0ig0er /..rg 1.0 or 0ig0er

Installation on Microsoft Windows


!"# 'or Microso't (indows is distri5uted in installation and ,I" pac+ages 5ot0 'or *- and *- - 4 arc0itectures. !"# 'or (indows depends on 6o+ia Dt and M$ HCBB 200- $"1 run-time li5raries. I' your computer does not 0a<e it installed, please c0oose t0e pac+age t0at includes all re%uired components.

If you downloaded installation package


!un installation e*ecuta5le 'ile and 'ollow t0e instructions t0e installer pro<ides (0en done wit0 t0e installation, you can delete t0e installer 'ile to reco<er dis+ space 90e installer will create s0ortcuts 'or !"# e*ecuta5le on des+top and start menu, w0ic0 you can use to start t0e application 9o uninstall t0e application run Uninstall.exe 'rom t0e !"# installation directory 6ote t0at in order to install t0e so'tware 'rom installation e*ecuta5le 'ile you must 0a<e administrator rig0ts. I' you donIt 0a<e administrati<e rig0ts, you can still install t0e program 'rom ,I" pac+age.

&

Rocket Propulsion Analysis v.2.1

If you downloaded I! package


2*tract 'iles 'rom t0e ,I" pac+age into selected directory $tart t0e program, e*ecuting t0e command RPA.exe 9o uninstall t0e application delete t0e !"# installation directory

Installation on Apple Mac "S #


!"# 'or #pple Mac .$ / is distri5uted in installation pac+age, containing uni<ersal 5inary 'or Intel *- and *- - 4 arc0itectures. !"# 'or #pple Mac .$ / depends on 6o+ia Dt run-time li5raries. I' your computer does not 0a<e it installed, please c0oose t0e pac+age t0at includes all re%uired components. 9o install t0e program !un installation pac+age and 'ollow t0e instructions t0e installer pro<ides (0en done wit0 t0e installation, you can delete t0e installer 'ile to reco<er dis+ space 90e program RPA.app will 5e installed in #pplication directory 9o uninstall t0e application delete RPA.app 'rom t0e #pplication directory

Installation on Linux
!"# 'or )inu* is distri5uted in tar.g7 pac+ages 5ot0 'or *- and *- - 4 arc0itectures. !"# 'or )inu* depends on 6o+ia Dt li5raries. I' your computer does not 0a<e it installed, please c0oose t0e pac+age t0at includes all re%uired components. 9o install t0e program 2*tract 'iles 'rom t0e arc0i<ed pac+age into selected directory $tart t0e program, e*ecuting t0e s0ell script RPA.exe 9o uninstall t0e application delete t0e !"# installation directory

$unning $!A
%rap&ical 'ser Interface
Eou start !"# eit0er 5y clic+ing on an icon ?on 3es+top or in 'ile 5rowser@, or typing RPA.exe on a command line. #lt0oug0 command line arguments are not re%uired w0en starting !"#, t0e a<aila5le arguments are s0own 5elowC

Rocket Propulsion Analysis v.2.1

"ption -t or --thermo -ut or --usr_thermo -p or --properties

(alue FILE FILE FILE

)escription 90ermodynamics data5ase. 3e'ault is resourcesGt0ermo.inp User-de'ined t0ermodynamics data5ase. 3e'ault is resourcesGusrJt0ermo.inp "roperties data5ase. 3e'ault is resourcesGproperties.inp User-de'ined properties data5ase. 3e'ault is resourcesGproperties.inp "ro5lem con'iguration 'ile t0at 0as to 5e loaded. 3e'ault is last opened 'ile.

-up or --usr_properties FILE -i or --input FILE

Command line arguments must 5e in t0e command line t0at you use to start !"#. $ee c0apter 90ermodynamic 3ata5ase 2ditor 'or more in'ormation a5out data5ase types. #'ter starting t0e program, t0e !"# main window will appear. 90e main windows 'eatures menu 5ar, tool5ar and wor+ing area, t0at can 5e used in two <iewsC 2*press #nalysis and 2*tended #nalysis. 2*press #nalysis <iew is intended to +eep t0e su5set o' input parameters and results on t0e same screen, and can 5e use'ul 'or %uic+ analysis o' t0e roc+et engines, w0en t0eoretical per'ormance is t0e only result t0at s0ould 5e considered.

Express Analysis view

2*tended #nalysis <iew consists o' se<eral screens w0ic0 con<eniently group t0e input parameters and results. 90e desired screen can 5e acti<ated 5y mouse clic+ on corresponding 5utton on t0e list at t0e le't side o' t0e main window. Eou can enlarge or narrow t0e list w0ile t0e screens will 5e narrowed or enlarged, dragging t0e <ertical 5ar 5etween t0e list and t0e screens rig0t or le't.

Rocket Propulsion Analysis v.2.1

Extended Analysis view (Lite Edition)

2xtended Analysis view (Standard Edition)

In !"# $tandard 2dition, t0ere are 4 di''erent lists grouped in t0e 'ollowing 'oldersC Initial )ata containing items 2ngine 3e'inition, "ropellant $peci'ication, and 6o77le 1low Model, !erformance Analysis containing items C0am5er "er'ormance, 6ested #nalysis, and "ropwllant #nalysis, *ngine )esign containing items C0am5er Geometry, 90ermal #nalysis, and "ropellant 1eed $ystem and Tools containing t0e item 90ermodynamic 3ata5ase.

Command+line utility
Eou start command-line utility 5y typing rpac.exe on a command line. 90e a<aila5le command-line arguments are s0own 5elowC
"ption -t or --thermo -ut or --usr_thermo -p or --properties -up or --usr_properties -i or --input -o or --output -opt or --optimize (alue FILE FILE FILE FILE FILE FILE_NAME_PREFIX )escription 90ermodynamics data5ase. 3e'ault is resourcesGt0ermo.inp User-de'ined t0ermodynamics data5ase. 3e'ault is resourcesGusrJt0ermo.inp "roperties data5ase. 3e'ault is resourcesGproperties.inp User-de'ined properties data5ase. 3e'ault is resourcesGproperties.inp "ro5lem con'iguration 'ile t0at 0as to 5e loaded. 3e'ault is last opened 'ile. .utput 'ile name pre'i* wit0out e*tension. 3e'ault is Kin'oK. 1ind optimum propellant mi*ture ratio, 5ypassing t0e one

10

Rocket Propulsion Analysis v.2.1

"ption -bau or --bau_units -pr -pt

(alue

)escription de'ined in input con'iguration 'ile. "rint out results using 5ritisA-american units. "rint out per'ormance ta5le

or --performance or --points
NUMBER

6um5er o' lines in altitude per'ormance ta5le

Upon completion, t0e command-line utility prints out t0e results in console window and writes it into t0e log 'ile.

Scripting utility
$cripting utility is a tool t0at can 5e used to e*ecute userIs own pro5lems. $cripting utility can 5e started in eit0er an interacti<e mode or a 5atc0 mode. Eou start scripting utility 5y typing rpas.exe on a command line. 90e a<aila5le command-line arguments are s0own 5elowC 90e a<aila5le command-line arguments are s0own 5elowC
"ption -t or --thermo -ut or --usr_thermo -p or --properties -up or --usr_properties -i or --input -o or --output (alue FILE FILE FILE FILE FILE FILE_NAME_PREFIX )escription 90ermodynamics data5ase. 3e'ault is resourcesGt0ermo.inp User-de'ined t0ermodynamics data5ase. 3e'ault is resourcesGusrJt0ermo.inp "roperties data5ase. 3e'ault is resourcesGproperties.inp User-de'ined properties data5ase. 3e'ault is resourcesGproperties.inp $cript 'ile. .utput 'ile name pre'i* wit0out e*tension. 3e'ault is Kin'oK.

Upon start up, scripting utility prints out t0e prompt rpa>, in<iting you to type any <alid command. 9ype Ke*itK to stop t0e interacti<e interpreter. $ee $cripting >uilt-In Commands and $cripting #"I !e'erence to get more in'ormation a5out a<aila5le commands. 9o start scripting utility in t0e 5atc0 mode, speci'y t0e name o' t0e script you want to e*ecute as a command-line argumentC
rpa.exe -i some_script.js

#'ter completion, t0e scripting utility prints out t0e results in console window and writes it into t0e log 'ile.

11

Rocket Propulsion Analysis v.2.1

Configuration ,iles
90e analysis pro5lem input data is stored in t0e con'iguration 'ile wit0 e*tension .cfg. 90is is a specially 'ormatted #$CII 'ile, t0at can 5e <iewedGedited in any #$CII te*t editor. 9o start new analysis pro5lem, create con'iguration 'ile 5y clic+ing ,ile, and t0en -ew in menu 5ar, or clic+ing icon -ew on t0e tool5ar. 9o continue wit0 old analysis pro5lem, load e*isting con'iguration 'ile 5y clic+ing ,ile, and t0en "pen in menu 5ar, or clic+ing icon "pen on t0e tool5ar, and select t0e 'ile to 5e opened. I' you already 0a<e opened a con'iguration 'ile, or 0a<e created new one, you will 5e as+ed to con'irm t0e opening anot0er con'iguration 'ile. 9o sa<e t0e current analysis pro5lem into t0e 'ile, clic+ ,ile, and t0en Sa.e in t0e menu 5ar. I' t0e current analysis pro5lem is new, you will 5e as+ed to speci'y t0e 'ile name, or to select t0e e*isting 'ile to 5e written. .t0erwise t0e data will 5e sa<ed into t0e same source 'ile, t0at 0as 5een opened 5e'ore. Eou also can write t0e current analysis pro5lem into anot0er 'ile, clic+ing ,ile, and t0en Sa.e As/// in t0e menu 5ar. 90e last 10 used 'iles are s0own at t0e 5ottom o' menu ,ile in menu 5ar. 90e last used con'iguration 'ile is automatically opened at program start up. 90e program is s0ipped wit0 a 'ew e*ample con'iguration 'iles, located in directory e*amples.

*ngine )efinition
In t0e $!A Lite *dition, 2ngine 3e'inition screen is used to de'ine t0e engine name, t0e description and t0e com5ustion c0am5er pressure.

Engine Definition screen (Lite Edition)

Engine Definition in Express Analysis view

12

Rocket Propulsion Analysis v.2.1

2ngine name and description are optional parameters, w0ereas t0e com5ustion c0am5er pressure is o5ligatory parameter. 6ote t0at engine name is used in results print out to identi'y t0e pro5lem. 90e pressure is an a5solute pressure and can 5e entered using one o' t0e 'ollowing unitsC MPa, atm, kg/sm2, bar, psi, Pa. In t0e 2*press #nalysis <iew t0e only parameter t0at is <isi5le and can 5e c0anged is com5ustion c0am5er pressure. In t0e $!A Standard *dition, 2ngine 3e'inition screen is also used to de'ine t0e parameters 'or t0e com5ustion c0am5er and no77le si7ing, 'or switc0ing on t0e 'lag 'or per'orming t0e t0rust c0am5er t0ermal analysis, and to de'ine t0e type o' t0e engine cycle.

Engine Definition screen (Standard Edition)

90e program can estimate t0e si7e o' t0e com5ustion c0am5er and no77le matc0ing one o' t0e 'ollowing re%uirementsC 6ominal t0rust at t0e certain am5ient pressure 6ominal mass 'low rate 90roat diameter

Chamber and nozzle sizing parameters

I' speci'ied num5er o' c0am5ers is greater t0an 1, t0e gi<en t0rust is a total engine t0rust, and t0e gi<en mass 'low rate is a total mass 'low rate. I' am5ient pressure is not speci'ied, it is assumed t0at t0e engine nominally operates in 13

Rocket Propulsion Analysis v.2.1

<acuum condition. 90e user can speci'y t0e no77le s0ape on t0e screen 6o77le $0ape and 2''iciencies, and si7ing parameters on t0e screens 6o77le Conditions and C0am5er Geometry. I' 'lag L"er'orm c0am5er t0ermal analysisM is switc0ed on, t0e program will e*ecute t0e t0ermal analysis. 90e user can speci'y additional 0eat trans'er and c0am5er cooling parameters on t0e screens ;eat 9rans'er "arameters and 90rust C0am5er Cooling. 90e program can per'orm engine cycle analysis, o5taining parameters o' li%uid propellant 'eed system and estimating engine weig0t 'or one o' t0e 'ollowing engine cyclesC Gas generator cycle $taged com5ustion cycle 1ull 'low staged com5ustion cycle

Engine cycle type

#dditional parameters 'or cycle analysis can 5e speci'ied on t0e screen "ropellant 1eed $ystem. #ll parameters can 5e entered using eit0er $I or #merican Customary unitsC t0rustC kN, kg, lbf, N mass 'low rateC kg/s, lbm/s t0roat diameterC mm, in, m, ft

!ropellant Specification
!ropellant Specification Screen
"ropellant $peci'ication screen is intended to speci'y used propellant componentGs.

14

Rocket Propulsion Analysis v.2.1

Propellant Specification screen (Lite Edition)

Propellant Specification screen (Standard Edition)

Eou can c0oose 5etween 5ipropellant and monopropellant propulsion systems, selecting t0e corresponding item in t0e list 5o* at t0e top o' t0e screenC

-ote0 alt0oug0 you 0a<e t0e c0oice 5etween 5ipropellant and monopropellant propulsion systems only, there is a possibility to specify three (or more) propellant components . $ee section 1ow to/// ?0ttpCGGwww.propulsion-analysis.comG0owtoGinde*.0tm@ on !"# we5 site 'or 'urt0er details. 1or 5ipropellant systems, t0e lists 'or 5ot0 .*idi7er and 1uel are ena5led ?see 'igure "Propellant Specification screen" a5o<e@, as well as t0e 'ields 'or speci'ying a mi*ture ratio. 90e mi*ture ratio can 5e speci'ied eit0er as an .G1 ratio ?ratio o' Ko*idi7er 'low rateK to K'uel 'low rateK@, or as an o*idi7er e*cess coe''icient, gi<en as ratio o' desired .G1 to stoic0iometric .G1. Eou can also select an item KoptimumKC

In t0is case t0e mi*ture ratio will 5e optimi7ed 'or getting ma*imum speci'ic impulse under gi<en conditions. 90e 'ound optimum .G1 ratio will 5e displayed on t0e screen C0am5er "er'ormance. 1or monopropellant system, t0e single list o' propellant components is ena5led, w0ereas t0e 1uel list and 'ields 'or speci'ying mi*ture ratio are disa5led.

1:

Rocket Propulsion Analysis v.2.1

Specifying monopropellant system

-ote0 'or t0e t0ermodynamic calculation, t0e only di''erence 5etween 5ipropellant system and monopropellant system t0at contains two species, is 0ow t0e species mi*ture is de'ined. #ctually, you can de'ine any 5ipropellant system ?as well as t0ree- or more propellant systems@ as a monopropellant system, speci'ying t0e proper mass 'raction 'or eac0 component on t0e list. 1or instance, t0e 'ollowing KmonopropellantK con'iguration is e%ui<alent to t0e 5ipropellant one wit0 .G1N0.&24:G0.2&::N2. 3C

2ac0 component list ?.*idi7er, 1uel, or "ropellant@ contains one or more species, displayed on t0e single row. 9o add species to t0e list, clic+ t0e 5utton Add at t0e 5ottom o' t0e corresponding list. 9o remo<e t0e selected species 'rom t0e list, clic+ t0e 5utton $emo.e. 9o add new species, clic+ t0e 5utton )efine new ?a<aila5le in !"# $tandard 2dition only@C

In t0e appeared dialog window, speci'y at least t0e name, t0e e*ploded c0emical 'ormula, and 1

Rocket Propulsion Analysis v.2.1

t0e 0eat o' 'ormation o' new speciesC

.nce t0e new species was de'ined, it is stored in t0e user t0ermodynamic data5ase and permanent a<aila5le 'or using in ot0er pro5lems.

Component !roperties
90e component on t0e list 'eatures 4 parametersC species name, mass 'raction o' t0e species in t0e component ?'or 5ipropellant systems@ or propellant ?'or monopropellant systems@, initial temperature o' t0e species, and initial pressure o' t0e speciesC

Initial species temperature and pressure are optional parameters. I' not speci'ied, t0e 'ollowing de'ault <alues will 5e assigned automaticallyC p = 1 atm, T = 298.15 K 'or non-cryogenic species T = O5oiling point temperatureP 'or cryogenic li%uids (0en composing component ?'or 5ipropellant systems@ or propellant ?'or monopropellant systems@ 'rom se<eral species, t0e sum o' all t0e mass 'ractions o' components on t0e same list 0as to 5e e%ual to 1. 9o c0ange t0e mass 'raction 'or t0e species, dou5le-clic+ on t0e corresponding cell, enter t0e new <alue and press 2nter 5utton ?or clic+ away@. 2ac0 list 'eatures t0e automatic mass 'raction c0ec+er, t0at displays t0e current sum in t0e list 'ooter. I' t0e sum is correct, t0e 5ac+ground color o' t0e 'ooter is lig0t-green, ot0erwise t0e color is lig0t-redC

1&

Rocket Propulsion Analysis v.2.1

9o speci'y t0e initial temperature andGor pressure o' t0e species, dou5le-clic+ on t0e corresponding cell, enter t0e new <alue and t0en press 2nter 5utton ?or clic+ away@C

9o c0ange t0e unit, dou5le-clic+ on t0e corresponding cell, select t0e desired unit on t0e list, and t0en press 2nter 5utton ?or clic+ away@C

90e temperature can 5e entered using one o' t0e 'ollowing unitsC K, C, F, R. 90e pressure is an a5solute pressure and can 5e entered using one o' t0e 'ollowing unitsC MPa, atm, kg/sm2, bar, psi, Pa. -ote0 t0e initial temperature andGor pressure can only 5e speci'ied 'or t0e components w0ic0 are supplied toget0er wit0 t0ermodynamic properties eit0er in t0e polynomial 'orm or in ta5ular 'orm. $ee c0apter 90ermodynamic 3ata5ase 2ditor 'or 'urt0er details. -ote0 i' t0e components c0ange t0eir temperatureGpressure due to t0e wor+ per'ormed 5y components t0emsel<es, you s0ould assign initial (T,p) w0ic0 components 0ad before the or! is performe". 1or instance, in staged com5ustion engine, a tur5opump is powered 5y components, and t0e correct initial parameters correspond to componentsI conditions at t0e pump inlets, in opposite to t0e conditions at pump outlets or com5ustion c0am5er inAector.

Components )atabase
#'ter clic+ing on 5utton Add, t0e dialog window "Components" appears. 90e content o' t0e dialog window depends on t0e type o' target list, w0ere component will 5e added. 1-

Rocket Propulsion Analysis v.2.1

Components Database

(0en adding new component to t0e o*idi7er list, t0e dialog window displays a<aila5le o*idi7ersQ w0en adding new component to t0e 'uel list, t0e dialog window displays a<aila5le 'uels. 1or monopropellant systems, 5ot0 o*idi7ers and 'uels will 5e displayed in t0e dialog window. Eou can 'ilter t0e list in t0e dialog window, using a regular e*pression. 90e 'ilter pattern is applied to 5ot0 columns o' t0e ta5le. Mar+ t0e c0ec+ 5o* "Sho complete list of a#ailable reactants an" pro"$ct of reaction" i' you want to see all species, including atomi7ed andGor ioni7ed products o' reaction, or +eep it unmar+ed i' you want to see only possi5le propellant components. $elect one or more species on t0e list and clic+ t0e 5utton "2. Clic+ t0e 5utton Cancel i' you want to lea<e wit0out adding any species.

-o33le ,low Model


-o33le ,low Model Screen
90e program can eit0er calculate t0e com5ustion parameters in t0e com5ustion c0am5er, or per'orm t0e complete engine per'ormance analysis, calculating t0e 'low t0roug0 t0e no77le. Clear t0e c0ec+ 5o* "Calc$late no%%le flo ", in order to c0oose t0e 'irst possi5ility, or mar+ it to start t0e no77le 'low analysisC

18

Rocket Propulsion Analysis v.2.1

-o33le conditions
I' you are sol<ing t0e no77le 'low pro5lem, you 0a<e to de'ine at least no77le e*it conditions, speci'ying one o' t0ree parametersC no77le e*it pressure, no77le e*pansion area ratio, or no77le e*pansion pressure ratio.

Nozzle conditions (Lite Edition)

Nozzle conditions (Standard Edition)

90e program can calculate t0e per'ormance 'or a com5ustion c0am5ers wit0 'inite or in'inite cross section area. 90e de'ault model assumes t0e in'inite cross section area o' t0e c0am5er. 9o switc0 to t0e 'inite-area model, mar+ t0e c0ec+ 5o* "&o%%le inlet con"itions", and t0en speci'y t0e c0am5er contraction area ratio Ac/At or mass 'lu* in t0e com5ustion c0am5er. I' speci'ied, t0e no77le inlet and e*it conditions are used 'or c0am5er and no77le si7ing, toget0er wit0 additional parameters on t0e screen C0am5er Geometry ?press t0e 5utton C&amber spec to Aump directly to t0e t0at screen@. 90e program can calculate t0e per'ormance wit0 respect to t0e s0i'ting and 'ro7en c0emical e%uili5rium in t0e no77le. 90e de'ault model assumes t0e s0i'ting c0emical e%uili5rium in t0e w0ole no77le. 9o switc0 to t0e 'ro7en c0emical e%uili5rium model, mar+ t0e c0ec+ 5o* "'ro%en e($ilibri$m flo " , and t0en speci'y t0e no77le section, w0ere application o' t0is model s0ould 5e started. >y de'ault, t0e program calculates parameters at 'ollowing no77le stationsC no77le inlet, no77le t0roat and no77le e*it. 9o speci'y additional no77le stations, press t0e 5utton Stations and speci'y one or more additional stations, de'ining t0em 5y area ratio Ac/At or 5y pressure ratio pc/pC

20

Rocket Propulsion Analysis v.2.1

Nozzle Stations (Standard Edition)

-o33le S&ape and *fficiencies


90e program calculates 5ot0 t0eoretical and deli<ered engine per'ormance. Eou can de'ine correction 'actors on t0e screen &o%%le Shape an" Efficiencies, ot0erwise t0e program estimates it on t0e 5asis o' de'ined engine parameters, suc0 as c0am5er pressure, propellant components and no77le conditions.

Nozzle Shape and Efficiencies (Lite Edition)

Nozzle Shape and Efficiencies (Standard Edition)

In !"# $tandard 2dition, you can also control t0e considered 5y t0e program no77le 'low e''ectsC

$witc0 o'' t0e 'lag Consider multip&ase flow and p&ase transition in order to suppress t0e calculation o' multip0ase 'low e''ects. 6ote t0at 'or t0e most o' solid propellant pro5lems t0is 'lag s0ould 5e switc0ed on. $witc0 o'' t0e 'lag Consider species ioni3ation effects in order to to suppress t0e calculation o' species ioni7ation e''ects. $witc0 o'' t0e 'lag *stimate performance loss due to flow separation in order to disa5le t0e additional calculation o' 'low separation e''ects. 21

Rocket Propulsion Analysis v.2.1

Ambient condition
>y de'ault t0e program calculates per'ormance o' t0e roc+et engine at t0e sea le<el conditions ?pa=1 atm, or 14.7 psi@, optimum no77le e*pansion ?pe=pa@, and <acuum conditions ?pa=0@. 9o calculate t0e per'ormance at desired am5ient conditions, you can also e*plicitly speci'y eit0er t0e speci'ic am5ient pressure or t0e range o' am5ient pressures gi<en as 0ig0 and low range <alues.

Ambient condition

$witc0 on t0e 'lag LCalculate estimated deli<ered per'ormanceM in order to apply t0e per'ormance corrections 'actors to results o' calculation. 90e pressure is an a5solute pressure and can 5e entered using one o' t0e 'ollowing unitsC MPa, atm, kg/sm2, bar, psi, Pa.

T&rottle settings
>y de'ault t0e program calculates per'ormance o' t0e roc+et engine assuming t0e propellant 'low rate t0at correspond to nominal t0rust. 9o calculate t0e per'ormance at desired t0rottle settings, you can also e*plicitly speci'y eit0er t0e speci'ic t0rottle <alue, or t0e range o' t0rottle <alues gi<en as 0ig0 and low range <alues.

22

Rocket Propulsion Analysis v.2.1

Throttle settings

$witc0 on t0e 'lag LCalculate estimated deli<ered per'ormanceM in order to apply t0e per'ormance corrections 'actors to results o' calculation. 90e t0rottle <alue is a ratio o' propellant 'low rate at desired t0rottle setting to 'low rate t0at correspond to nominal t0rust ?100R 'low rate@.

Starting Analysis
#'ter speci'ying t0e initial data, or opening e*isting con'iguration 'ile, you can start t0e analysis 5y clic+ing menu $un, and t0en Start analysis in menu 5arC

or clic+ing icon Start on t0e main tool5arC

#'ter success'ul 'inis0ing t0e analysis t0e program automatically switc0es to t0e screen C0am5er "er'ormance, t0at displays t0e calculated results. Eou can also print out t0e results, clic+ing menu $un, and t0en !rint results, or c0ec+ t0e analysis log, clic+ing menu $un, and t0en S&ow log in menu 5ar.

23

Rocket Propulsion Analysis v.2.1

Analysis Log

C&amber !erformance
90e screen C0am5er "er'ormance consists o' 4 ta5s )hermo"ynamic properties, Performance, Altit$"e performance, and )hrottle" performance. Eou can print out t0e results, clic+ing t0e 5utton !rint, or sa<e t0e results as #$CII or ;9M) 'ile, clic+ing t0e 5utton Sa.e As/// at t0e rig0t-5ottom corner o' t0e screen.

T&ermodynamic properties
90e ta5 )hermo"ynamic properties displays t0e parameters o' reaction products and t0eir mass 'ractions at t0e c0am5er stations in<ol<ed into t0e analysis.

24

Rocket Propulsion Analysis v.2.1

Thermodynamic properties (Lite Edition)

Thermodynamic properties (Standard Edition)

90e current propellant components ratio ?eit0er e*plicitly de'ined on t0e screen "ropellant $peci'ication, or 'ound 5y optimi7er@ is displayed in t0e 0eader o' t0e top ta5le on t0e ta5C

I' t0e pro5lem is con'igured to sol<e t0e parameters in t0e com5ustion c0am5er ?see c0apter 6o77le 1low Model@, t0e only a<aila5le no77le station is *n+ector ?see 'igure *n+ector thermo"ynamic properties@, ot0erwise t0e a<aila5le c0am5er stations are *n+ector, &o%%le inlet, &o%%le throat and &o%%le e,it as well as additional stations, de'ined on screen &o%%le 'lo -o"el ?see 'igure )hermo"ynamic properties abo#e@. Eou can speci'y additional no77le stations eit0er on screen 6o77le 1low Model, or on screen )hermo"ynamic properties, pressing t0e 5utton Stations.

2:

Rocket Propulsion Analysis v.2.1

Injector thermodynamic properties

I' t0e pro5lem is con'igured to calculate t0e per'ormance 'or t0e com5ustion c0am5er wit0 in'inite cross section area, t0e parameters 'or &o%%le inlet station are identical to t0at at *n+ector stationC

90e t0ermodynamic parameters are displayed in t0e current units, de'ined in t0e "re'erences 3ialog. Eou can s0rin+ or 0eig0ten t0e top ta5le w0ile t0e 5ottom ta5le will 5e 0eig0tened or s0run+, dragging t0e 0ori7ontal 5ar 5etween t0e ta5les down or up.

!erformance
90e ta5 Performance displays t0e t0eoretical ?ideal@ per'ormance o' t0e c0am5er, as well as its estimated deli<ered per'ormance and t0e correction 'actors used to calculate t0e deli<ered per'ormance.

Rocket Propulsion Analysis v.2.1

Chamber performance (Lite Edition)

Chamber performance (Standard Edition)

-ote0 i' you are analy7ing a pressure-'ed-cycle or staged-com5ustion-cycle engine, t0e calculated per'ormance is actually an en.ine per'ormance. I' t0e t0rust c0am5er si7ing parameters 0a<e 5een con'igured ?see screen 2ngine 3e'inition@, t0e program calculates t0e di<ergence t0rust loss and displays it on t0e screen 90rust C0am5er $i7e and GeometryC

#'ter t0e 'irst program run, you can use t0e calculated <alue o' di<ergence t0rust loss as well t0e calculated <alue o' 'riction t0rust loss ?see 90ermal #nalysis@ to adAust t0e no77le e''iciency on t0e screen 6o77le $0ape and 2''iciencies. 90e current propellant components ratio ?eit0er e*plicitly de'ined on t0e screen "ropellant $peci'ication, or 'ound 5y optimi7er@ is displayed in t0e 0eader o' t0e 5ot0 ta5les on t0e ta5C

I' t0e pro5lem is con'igured to sol<e t0e com5ustion parameters at *n+ector station ?see c0apter 6o77le 1low Model@, t0e per'ormance parameters are not a<aila5le, ot0erwise t0e ta5 displays calculated per'ormance o' t0e c0am5er at t0e sea le<el conditions ? pa=1 atm, or 14.7 psi@, optimum no77le e*pansion ?pe=pa@, and <acuum conditions ?pa=0@. In case i' 'low separation occurs in t0e no77le, t0e additional column displays t0e per'ormance at sea le<el wit0 respect to t0e 'low separation. 2&

Rocket Propulsion Analysis v.2.1

Chamber performance with flow separation

#m5ient conditions 'or optimum no77le e*pansion ?altitude and am5ient pressure@ are displayed at t0e 5ottom o' t0e ta5C

90e per'ormance parameters are displayed in t0e current units, de'ined in t0e "re'erences 3ialog. Eou can s0rin+ or 0eig0ten t0e top ta5le w0ile t0e 5ottom ta5le will 5e 0eig0tened or s0run+, dragging t0e 0ori7ontal 5ar 5etween t0e ta5les down or up.

Altitude performance
90e ta5 Altit$"e performance displays t0e per'ormance o' t0e c0am5er in t0e speci'ied am5ient conditions.

Altitude performance

2-

Rocket Propulsion Analysis v.2.1

>y de'ault, t0e program calculates ideal t0eoretical per'ormance. I' you want to calculate estimated deli<ered per'ormance, switc0 on t0e 'lag LCalculate estimated deli<ered per'ormanceM on screen Ambient Con"itions. I' t0e pro5lem is con'igured to sol<e t0e com5ustion parameters at *n+ector station ?see c0apter 6o77le 1low Model@, t0e per'ormance parameters are not a<aila5le, ot0erwise t0e ta5 displays calculated per'ormance o' t0e c0am5er at t0e de'ined altitude and am5ient pressure. Eou can plot t0e diagrams "specific imp$lse #s. altit$"e", "thr$st coefficients #s. altit$"e" or "thr$st #s. altit$"e" clic+ing t0e 5utton !lot at t0e 5ottom-rig0t corner o' t0e ta5. 90e altitude o' t0e optimum e*pansion, as well as t0e altitude o' 'low separation ?i' occurs@ is s0own on t0e diagram 5y corresponded <ertical mar+er lineGs.

Plot - altitude performance

Plot - altitude performance with flow separation

#m5ient conditions 'or optimum no77le e*pansion ?altitude and am5ient pressure@ are displayed at t0e 5ottom o' t0e ta5. 90e per'ormance parameters are displayed in t0e current units, de'ined in t0e "re'erences 3ialog.

T&rottled performance
90e ta5 )hrottle" performance displays t0e per'ormance o' t0e c0am5er at t0e speci'ied t0rottle <alues.

28

Rocket Propulsion Analysis v.2.1

Throttled performance

>y de'ault, t0e program calculates ideal t0eoretical per'ormance. I' you want to calculate estimated deli<ered per'ormance, switc0 on t0e 'lag LCalculate estimated deli<ered per'ormanceM on screen )hrottle Settin.s . I' t0e pro5lem is con'igured to sol<e t0e com5ustion parameters at *n+ector station ?see c0apter 6o77le 1low Model@, t0e per'ormance parameters are not a<aila5le, ot0erwise t0e ta5 displays calculated per'ormance o' t0e roc+et engine at t0e sea le<el conditions ? pa=1 atm, or 14.7 psi@, optimum no77le e*pansion ?pe=pa@, and <acuum conditions ? pa=0@ at t0e de'ined t0rottle <alues. Eou can plot t0e diagrams "specific imp$lse #s. throttle #al$e" or "thr$st #s. throttle #al$e" clic+ing t0e 5utton !lot at t0e 5ottom-rig0t corner o' t0e ta5. 90e t0rottle <alue w0ere 'low separation occurs is s0own on t0e diagram 5y corresponded <ertical mar+er line.

Plot - throttled performance

90e per'ormance parameters are displayed in t0e current units, de'ined in t0e "re'erences 30

Rocket Propulsion Analysis v.2.1

3ialog.

-ested Analysis
Using nested analysis, you can e<aluate t0e per'ormance o' t0e roc+et c0am5er 'or t0e range o' parameterGs, stepping o' up to 'our independent <aria5les ?component ratio, c0am5er pressure, no77le inlet conditions, no77le e*it conditions@.

Nested analysis (Lite Edition)

Nested analysis (Standard Edition)

6ested analysis in0erits t0e initial con'iguration parameters, de'ined on t0e screens 2ngine 3e'inition, "ropellant $peci'ication, and 6o77le 1low Model. Eou can de'ine up to 'our <aria5les parameters, w0ic0 replace corresponding parameterGs o' initial con'iguration, and start t0e nested analysis, clic+ing t0e 5utton Start at t0e le't-5ottom corner o' t0e ta5. -ote0 since t0e program per'orms t0e t0ermodynamic analysis 'or eac0 uni%ue com5ination o' <aria5le parameters, de'inition o' parameters wit0 a small step can lead to <ery long calculation time. >y de'ault, t0e program calculates ideal t0eoretical per'ormance. I' you want to calculate estimated deli<ered per'ormance, switc0 on t0e corresponding 'lagC

90e program per'orms t0e t0ermodynamic analysis 'or eac0 uni%ue com5ination o' <aria5le parameters, stepping it 5y de'ined <alue, and displaying t0e results in t0e ta5le at t0e 5ottom o' t0e ta5. 90e current status o' nested analysis is s0own 5y progress 5ar at t0e 5ottom o' t0e ta5. 90e running analysis can 5e stopped 5y clic+ing t0e 5utton Stop. #'ter 'inis0ing t0e nested analysis, you can plot t0e diagrams "specific imp$lse #s. #ariable parameter", "chamber temperat$re #s. #ariable parameter" , "characteristic #elocity #s. #ariable parameter" or "thr$st coefficient #s. #ariable parameter" , clic+ing t0e 5utton !lot at 31

Rocket Propulsion Analysis v.2.1

t0e rig0t side o' t0e corresponding parameter con'iguration.

Nested analysis plot

Eou can print out t0e results o' nested analysis, clic+ing t0e 5utton !rint, or sa<e t0e results as #$CII or ;9M) 'ile clic+ing t0e 5utton Sa.e As/// at t0e rig0t-5ottom corner o' t0e screen. In !"# $tandard 2dition, you can also sa<e t0e results in "31 or .31 'ormats. 90e de'ined parameters o' t0e nested analysis are stored in t0e glo5al I6I-'ile and s0ared 5etween di''erent con'igurations.

!ropellant Analysis
Using propellant analysis tool, you can e<aluate di''erent propellant compositions, wit0 stepwise replacement o' one component wit0 anot0er one.

32

Rocket Propulsion Analysis v.2.1

Propellant analysis

"ropellant analysis in0erits t0e initial con'iguration parameters, de'ined on t0e screens 2ngine 3e'inition, "ropellant $peci'ication, and 6o77le 1low Model. Eou can de'ine up to 'our pairs o' component, w0ic0 replace corresponding components o' initial propellant composition, and start t0e propellant analysis, clic+ing t0e 5utton Start at t0e le't-5ottom corner o' t0e ta5. -ote0 since t0e program per'orms t0e t0ermodynamic analysis 'or eac0 uni%ue com5ination o' <aria5le parameters, de'inition o' parameters wit0 a small step can lead to <ery long calculation time. >y de'ault, t0e program calculates ideal t0eoretical per'ormance. I' you want to calculate estimated deli<ered per'ormance, switc0 on t0e corresponding 'lagC

90e program per'orms t0e t0ermodynamic analysis 'or eac0 uni%ue com5ination o' <aria5le parameters, stepping it 5y de'ined <alue, and displaying t0e results in t0e ta5le at t0e 5ottom o' t0e ta5. 90e current status o' propellant analysis is s0own 5y progress 5ar at t0e 5ottom o' t0e ta5. 90e running analysis can 5e stopped 5y clic+ing t0e 5utton Stop. #'ter 'inis0ing t0e propellant analysis, you can plot t0e diagrams "specific imp$lse #s. #ariable parameter"/ "chamber temperat$re #s. #ariable parameter"/ "characteristic #elocity #s. #ariable parameter" or "thr$st coefficient #s. #ariable parameter" , clic+ing t0e 5utton !lot at t0e rig0t side o' t0e corresponding parameter con'iguration.

33

Rocket Propulsion Analysis v.2.1

Propellant analysis plot

Eou can print out t0e results o' propellant analysis, clic+ing t0e 5utton !rint, or sa<e t0e results as #$CII or ;9M) 'ile clic+ing t0e 5utton Sa.e As/// at t0e rig0t-5ottom corner o' t0e screen. In !"# $tandard 2dition, you can also sa<e t0e results in "31 or .31 'ormats. 90e de'ined parameters o' t0e propellant analysis are stored in t0e glo5al I6I-'ile and s0ared 5etween di''erent con'igurations.

C&amber %eometry
90e screen C0am5er Geometry consists o' 2 ta5s 0esi.n Parameters and Si%e an" 1eometry. 90e input o' parameters on t0e screen is only ena5led i' t0e 'lag K3etermine t0rust c0am5er si7eK on t0e screen 2ngine 3e'inition is switc0ed on, and at least one o' si7ing parameters is pro<idedC

)esign !arameters
.n t0e ta5 0esi.n Parameters you can de'ine design parameters used to calculate t0e si7e o' t0e com5ustion c0am5er and t0e s0aped o' t0e no77le.

34

Rocket Propulsion Analysis v.2.1

Design parameters

-ote0 suc0 design parameters as no77le inlet and e*it conditions, as well as a no77le s0ape ?5ell or conical@ can 5e only c0anged on screen 6o77le 1low Model. Use pro<ided 5uttons to Aump direct to t0at screen and 5ac+.

Si3e and %eometry


90e ta5 Si%e an" 1eometry displays t0e calculated si7e o' t0e c0am5er and no77le.

Size and geometry

I' t0e t0rust c0am5er si7ing parameters 0a<e 5een con'igured ?see screen 2ngine 3e'inition@, t0e program calculates t0e di<ergence t0rust loss and displays it on t0e screen 90rust C0am5er $i7e and GeometryC

3:

Rocket Propulsion Analysis v.2.1

#'ter t0e 'irst program run, you can use t0e calculated <alue o' di<ergence t0rust loss as well t0e calculated <alue o' 'riction t0rust loss ?see 90ermal #nalysis@ to adAust t0e no77le e''iciency on t0e screen 6o77le $0ape and 2''iciencies. Eou can sa<e t0e results as an #$CII 'ile, clic+ing t0e 5utton Sa.e As///, or e*port t0e contour to t0e 3/1 'ile clic+ing t0e 5utton *xport to )#, at t0e rig0t-5ottom corner o' t0e screen. I' e*porting to 3/1 'ile, you pro<ide additional e*port parametersC

90e resulting 3/1 'ile can 5e opened in any C#3 program.

DXF file opened in QCad

T&ermal Analysis
90e program is capa5le o' per'orming t0e steady-state t0ermal analysis. 90e screen 90ermal #nalysis consists o' 3 ta5s 2eat )ransfer Parameters, )hr$st Chamber Coolin. and )hermal Analysis. 90e input o' parameters on t0e screens are only ena5led i' 5ot0 'lags K3etermine t0rust c0am5er si7eK and K"er'orm c0am5er t0ermal analysisK on t0e screen 2ngine 3e'inition are switc0ed on, and at least one o' si7ing parameters is pro<idedC

Rocket Propulsion Analysis v.2.1

1eat Transfer !arameters


.n t0e ta5 2eat )ransfer Parameters you can de'ine 0eat trans'er parameters used to calculate t0e 0eat trans'er rate distri5ution in t0e t0rust c0am5er.

Heat transfer parameters

90e program implements two di''erent met0ods o' calculating t0e gas-side 0eat trans'er ratesC Ie<le< approac0 'or calculation o' con<ecti<e 0eat trans'er in t0e no77le and >art7 semiempirical correlation 'or gas-side 0eat trans'er coe''icient. 90e user 0as t0e possi5ility to c0oose eit0er one o' two mentioned met0ods or com5ined approac0, w0ic0 calculates t0e resulting 0eat trans'er rate as an a<erage <alue o' t0at calculated 5y Ie<le< and >art7 met0ods. 90e program can per'orm t0e t0ermal analysis, calculating t0e 0eat 'lu* eit0er as a con<ecti<e 0eat trans'er only or summing t0e contri5utions o' con<ecti<e and radiation 0eat trans'ers. In t0e last case, t0e user s0all speci'y a radiation emissi<ity coe''icient o' t0e wall inner sur'ace. 90e parameter &$mber of stations de'ines t0e num5er o' stations e<enly distri5uted along t0e t0rust c0am5er. In addition, t0e program automatically inserts stations at no77le inlet and no77le t0roat, as well as at location o' 'ilm cooling slots and cooling sections ?see 90rust C0am5er Cooling@.

T&rust C&amber Cooling


.n t0e ta5 )hr$st Chamber Coolin. you can de'ine design parameters o' t0rust c0am5er 3&

Rocket Propulsion Analysis v.2.1

cooling.

Thrust chamber cooling

In order to ma+e easier t0e de'inition o' location o' cooling sections or 'ilm slots, t0e program displays t0e dimensions o' t0rust c0am5erC

6ote t0at t0e dimensions are only a<aila5le a'ter t0e 'irst run o' t0e program. 90e ta5le Coolin. sections displays all cooling sections con'igured 'or speci'ic t0rust c0am5er, as well as its I3 ?i' a<aila5le@, location and s0ort descriptionC

90e user can add new section pressing t0e 5utton Add or delete e*isting section pressing t0e 5utton $emo.e. -ote0 all new cooling sections are created as L!adiation coolingM. I' you need anot0er type o' cooling, dou5le clic+ t0e created section and c0ange t0e type in t0e parameters area. 9o <iew all parameters assigned to o' t0e e*isting cooling section, or to c0ange t0e type o' section or modi'y its parameters, dou5le-clic+ t0e section on t0e list. #ll parameters o' t0e section will 5e displayed in t0e parameters area Aust 5elow t0e ta5leC

3-

Rocket Propulsion Analysis v.2.1

90e num5er o' currently edited section is displayed at t0e 5ottom o' t0e parameter area. Use t0e 5utton 'pdate in order to re-assign t0e modi'ied parameters to edited section. Use t0e 5utton $eset in order to reload t0e parameters 'rom t0e section. 6ote t0at you will loss all c0anges in t0e parameters area. 90e user 0as to de'ine t0e location o' t0e eac0 cooling section or 'ilm cooling, speci'ying t0e distance 'rom t0e inAector plate. 90e lengt0 o' t0e section is de'ined implicitly 5y t0e location o' t0e ne*t cooling section or no77le e*it. 90e program supports 3 types o' c0am5er coolingC radiation cooling, regenerati<e cooling and 'ilm cooling.
Radiation Cooling

# radiation cooled c0am5er transmits t0e 0eat 'rom its outer sur'ace, c0am5er or no77le e*tension. !adiation cooling is typically used 'or small t0rust c0am5ers wit0 a 0ig0temperature wall material andGor in low-0eat 'lu* regions, suc0 as a no77le e*tension. Con'iguration o' t0e radiation cooling section includes t0e 'ollowing parametersC location o' t0e section wall t0ic+ness and t0ermal conducti<ity t0ermal 5arrier coating layer t0ic+ness and t0ermal conducti<ity ?see also 90ermal >arrier Coating )ayer@ radiation emissi<ity coe''icient o' t0e wall outer sur'ace re%uired re%uired optional re%uired

38

Rocket Propulsion Analysis v.2.1

Radiation cooling parameters

!adiation cooling section can 5e com5ined wit0 t0e 'ilm cooling. -ote0 t0e current <ersion o' t0e program may 'ail to calculate t0e t0ermal state o' radiation cooling section wit0 additional 'ilm cooling, i' calculation o' t0e radiation 0eat trans'er is disa5led ?screen K;eat 9rans'er "arametersK@.
Regenerative Cooling

!egenerati<e cooling is t0e most widely used met0od o' cooling a t0rust c0am5er and is accomplis0ed 5y 'lowing 0ig0-<elocity coolant o<er t0e 5ac+ side o' t0e c0am5er 0ot gas wall to con<ecti<ely cool t0e 0ot liner. 90e coolant wit0 t0e 0eat input 'rom cooling t0e liner is t0en usually disc0arged into t0e inAector and utili7ed as a propellant. Con'iguration o' t0e regenerati<e cooling section includes t0e 'ollowing parametersC location o' t0e section type o' design section I3 re%uired re%uired re%uired i' t0e e*it 'rom t0e section connected wit0 input o' anot0er regenerati<e cooling section re%uired optional re%uired

wall t0ic+ness and t0ermal conducti<ity t0ermal 5arrier coating layer t0ic+ness and t0ermal conducti<ity ?see also 90ermal >arrier Coating )ayer@ coolant de'initionC componentGs, initial temperature and pressure, relati<e mass 'low rate or connection wit0 e*it o' anot0er regenerati<e cooling section, speci'ied 5y its I3 'lag o' opposite 'low direction !egenerati<e cooling section can 5e com5ined wit0 t0e 'ilm cooling. 40

optional

Rocket Propulsion Analysis v.2.1

90e program supports 3 types o' regenerati<e cooling designC coa*ial s0ell Aac+et design, tu5ular wall Aac+et design and c0annel wall Aac+et design.
Coolant definition

90e list o' coolant components contains one or more species, displayed on t0e single row. 9o add species to t0e list, clic+ t0e 5utton Add at t0e 5ottom o' t0e corresponding list. 9o remo<e t0e selected species 'rom t0e list, clic+ t0e 5utton $emo.e. -ote0 only use t0e components a<aila5le in t0e properties, 5ecause t0e e*tended 6#$# data5ase does not include all re%uired properties suc0 as <iscosity, t0ermal conducti<ity, density, temperature o' <apori7ationGdecomposition and 0eat o' <apori7ation o' li%uid components. #lternati<ely, you can con'igure t0e connection 5etween t0e input o' t0e current section wit0 t0e e*it o' anot0er section, speci'ying its I3. In t0is case t0e coolant componentGs and t0e mass 'low rate are e*actly t0e same as de'ined 'or t0e 'irst section, w0ereas t0e initial temperature and pressure are e%ual to temperature and pressure at e*it o' t0e 'irst section, calculated during t0e t0ermal analysis.
Coaxial S&ell 4acket )esign

3esign-speci'ic con'iguration o' t0e section includes t0e 'ollowing parametersC distance 5etween inner and outer walls re%uired

Coaxial shell jacket parameters

90e program supports t0e sections wit0 constant distance 5etween t0e walls. I' you need to de'ine t0e c0am5er wit0 <aria5le inter-wall distance, you 0a<e to de'ine se<eral sections eac0 41

Rocket Propulsion Analysis v.2.1

wit0 di''erent distance. 9ypical mista+es during t0e analysis runC too small inter-wall distance or too large coolant mass 'low rate lead to 0ig0 pressure dropQ t0e message K6egati<e pressure dropK appearsQ due to too large inter-wall distance or too small mass 'low rate t0e program cannot con<erge t0e solution.

"ossi5le solutionC c0ange one or se<eral rele<ant parameters.


Tubular Wall 4acket )esign

3esign-speci'ic con'iguration o' t0e section includes t0e 'ollowing parametersC initial diameter o' tu5e tu5e wall t0ic+ness and t0ermal conducti<ity num5er o' tu5es 'lag o' 0elical tu5e wall Aac+et design re%uired re%uired re%uired re%uired

Tube wall jacket parameters

90e program supports t0e sections wit0 constant num5er and initial diameter o' t0e tu5es. I' you need to de'ine t0e c0am5er wit0 <aria5le num5er o' tu5es andGor <aria5le initial tu5e diameter, you 0a<e to de'ine se<eral sections eac0 wit0 di''erent corresponding parameters. 9ypical mista+es during t0e analysis runC inappropriate num5er or initial diameter o' tu5es, or too 0ig0 coolant mass 'low rate 42

Rocket Propulsion Analysis v.2.1

lead to 0ig0 pressure dropQ t0e message K6egati<e pressure dropK appearsQ due to inappropriate num5er or initial diameter o' tu5es, or too small mass 'low rate t0e program cannot con<erge t0e solution.

"ossi5le solutionC c0ange one or se<eral rele<ant parameters or replace t0e single cooling section wit0 two or more sections wit0 optimum parameters.
C&annel Wall 4acket )esign

3esign-speci'ic con'iguration o' t0e section includes t0e 'ollowing parametersC 0eig0t o' ri5s 01, 02 widt0 o' c0annels a1, a2 num5er o' c0annels n or widt0 o' ri5s 51, 52 angle 5etween c0annels and generati* re%uired re%uired re%uired

optional

-ote0 inde* K1K corresponds to t0e parameters at t0e section end w0ic0 is closer to inAector plateQ inde* K2K corresponds to t0e parameters at t0e section end w0ic0 is closer to no77le e*it.

Channel wall jacket parameters

90e program supports t0e sections wit0 constant num5er o' c0annels ?i' parameter n is de'ined@ and angle 5etween c0annels and generati*. I' you need to de'ine t0e c0am5er wit0 43

Rocket Propulsion Analysis v.2.1

<aria5le num5er o' c0annels andGor angle, you 0a<e to de'ine se<eral sections eac0 wit0 di''erent corresponding parameters. 9ypical mista+es during analysis runC inappropriate geometry andGor num5er o' c0annels, or too 0ig0 coolant mass 'low rate lead to 0ig0 pressure dropQ t0e message K6egati<e pressure dropK appearsQ due to inappropriate geometry andGor num5er o' c0annels, or too small mass 'low rate t0e program cannot con<erge t0e solution.

"ossi5le solutionC c0ange one or se<eral rele<ant parameters or replace t0e single cooling section wit0 two or more sections wit0 optimum parameters.
Film Cooling

1ilm cooling pro<ides protection 'rom e*cessi<e 0eat 5y introducing a t0in 'ilm o' coolant t0roug0 ori'ices around t0e inAector perip0ery or in t0e c0am5er wall. 90is met0od is typically used in 0ig0 0eat 'lu* regions in com5ination wit0 regenerati<e or radiation cooling. Con'iguration o' t0e 'ilm cooling includes t0e 'ollowing parametersC location ?t0e distance 'rom t0e inAector plate@ coolant de'initionC componentGs, initial temperature, relati<e mass 'low rate re%uired re%uired

Film cooling parameters

Eou can speci'y eit0er li%uid or gaseous species to 5e used as a 'ilm coolant.
Thrust chamber with several cooling sections

Eou can de'ine more t0an one cooling sections to com5ine di''erent types o' cooling ?e.g. regenerati<ely cooled com5ustion c0am5er B radiati<ely cooled no77le e*tension B one or more 'ilm cooling@Q to optimi7e parameters along t0e c0am5er ?e.g. num5er o' tu5esGc0annels, tu5eGc0annel geometry etc@. 44

Rocket Propulsion Analysis v.2.1

Thermal Barrier Coating Layer

90e t0ermal 5arrier coating ?9>C@ is used to reduce t0e temperature gradient across t0e c0am5er wall. 90e 'unctional principle o' a 9>C, illustrated in 'igure 5elow, is to increase t0e 0ot gas side wall temperature 9wg. 90is is ac0ie<ed 5y applying a ceramic top layer ?e.g. E2.3-sta5ili7ed ,r.2, "E$,@ onto t0e wall 5ase material. 90e "E$, ceramic o''ers a t0ermal conducti<ity S o' a5out 1.: (G?m T@. In order to pre<ent a coating o<er0eat ?U1:00 T@ coating t0ic+nesses o' less t0an 0.1 mm are re%uired. 90ese 0ig0 0ot gas side wall temperatures compared to t0e ma*imum temperatures o' t0e uncoated wall lead to t0e remar+a5le reduction in 0eat 'lu*.

Functional principle of a TBC

(it0 suc0 a protecti<e layer, t0e application range o' e*isting regenerati<e or radiation cooling t0rust c0am5ers can 5e enlarged towards 0ig0er com5ustion c0am5er pressures or an increased t0rust c0am5er li'e. In general a 9>C acts as an insulator to t0e inner liner, reducing t0e wall 0eat 'lu* into t0e wall 5ase material. I' you need to analy7e t0e t0ermal state o' t0e t0rust c0am5ers wit0 9>C consisting o' se<eral layers wit0 +nown t0ic+nesses 1, 2, ... , N and t0ermal conducti<ities 1, 2, ... , N , you may calculate t0e e''ecti<e t0ermal conducti<ity S o' t0e 9>C wit0 t0e t0ic+ness 1 2... N 'rom t0e 'ollowing relationC = 12... N 1 2 ... N 1 2 N

T&ermal Analysis
#'ter speci'ying all re%uired parameters, you can start t0e analysis 5y clic+ing menu $un, and t0en Start analysis in menu 5arC

4:

Rocket Propulsion Analysis v.2.1

or clic+ing icon Start on t0e main tool5arC

#'ter success'ul 'inis0ing t0e analysis t0e program automatically switc0es to t0e screen 90ermal #nalysis, t0at displays t0e calculated results.

Thermal analysis results

90e t0rust c0am5er geometry is printed out in columns K)ocationK and K!adiusK. 90e column K;eat 'lu*K displays t0e calculated 0eat 'lu* ?depending on 0eat trans'er parameters, eit0er t0e sum o' con<ection 0eat 'lu* and radiation 0eat 'lu* or con<ection 0eat 'lu* only@ at t0e corresponding location. 90e column K9wgK displays t0e temperature o' c0am5er wall on its 0ot gas side. 90e column K9wiK displays t0e temperature 5etween t0e t0ermal 5arrier coating layer and c0am5er wall ?i' coating is a<aila5le@ or t0e temperature o' c0am5er wall on its 0ot gas side ?t0e same as 9wg@. 90e column K9wcK displays t0e temperature o' c0am5er wall on its cold side. 90e columns K9cK and KwcK display t0e temperature and t0e <elocity o' t0e coolant ?i' applica5le@. Using conte*t menu, you can copy t0e content o' t0e complete ta5le or single selected row into t0e clip5oard. Clic+ t0e 5utton K$a<e #s...K at t0e rig0t-5ottom corner o' t0e screen in order to sa<e t0e 4

Rocket Propulsion Analysis v.2.1

results as #$CII or ;9M) 'ile. Eou can plot t0e diagrams K;eat 1lu* <s. )ocationK or K9emperatures <s. )ocationK, clic+ing t0e 5utton "lot at t0e 5ottom-rig0t corner o' t0e ta5. 90e location o' no77le t0roat is s0own on t0e diagram 5y corresponded <ertical mar+er line.

Diagram Heat flux vs. Location

Diagram Temperatures vs. Location

#ll results are displayed in t0e current units, de'ined in t0e "re'erences 3ialog.

!ropellant ,eed System 5Cycle Analysis6


90e program is capa5le o' per'orming t0e li%uid-propellant engine cycle analysis. 90e screen "ropellant 1eed $ystem consists o' 2 ta5s 0esi.n Parameters and Operatin. Parameters. 90e input o' parameters on t0e screen 0esi.n Parameters are only ena5led i' 5ot0 'lags K3etermine t0rust c0am5er si7eK and K3etermine parameters o' propellant 'eed systemK on t0e screen 2ngine 3e'inition are switc0ed on, and t0e type o' engine cycle is pro<idedC

)esign !arameters
.n t0e ta5 0esi.n Parameters user can de'ine design parameters o' t0e propellant 'eed system.

4&

Rocket Propulsion Analysis v.2.1

Propellant feed system design parameters

90e program supports analysis o' 'ollowing engine cyclesC Gas generator cycle $taged com5ustion cycle 1ull 'low staged com5ustion cycle 1or selected cycle, t0e 'ollowing design parameters can 5e de'inedC 6um5er o' gas generatorsGpre5urnersC one com5ustion de<ice two com5ustion de<ices 9ype o' gas generatorsGpre5urnersC o*idi7er-ric0 'uel-ric0 In staged com5ination cycle wit0 two pre5urners, t0e type o' 5ot0 com5ustion de<ices 0as to 5e identical. In 'ull 'low staged com5ination cycle, t0e type o' com5ustion de<ices 0as to 5e di''erent. Com5ustion temperature 90e <alue is limited 5y 0eat resistance and 0ig0-temperature strengt0 o' used construction materials. 9ypical <alues 'or o*idi7er-ric0 de<ices are :0--:0 T 9ypical <alues 'or 'uel-ric0 de<ices are -00-1100 T Com5ustion pressure 9ypical <alues 'or gas generator cycleC p = ( 0.8...0.85 ) p c 4re%uired

re%uired

re%uired

re%uired 'or gas generator cycle

Rocket Propulsion Analysis v.2.1

1or staged com5ustion cycles t0e parameter is disa5led. "ressure drop coe''icient 90e <alue de'ines t0e pressure drop 5etween inAector o' t0e com5ustion de<ice and tur5ine inlet. 9ypical <alues are 0.8-0.8: 6um5er o' independent tur5opumpsC one tur5opump two independent tur5opumps I' two com5ustion de<ices are con'igured, t0e only selection possi5ly is two independent tur5opumps re%uired

re%uired

1or eac0 independent tur5opump, t0e 'ollowing design parameters can 5e de'inedC 9ur5ine pressure ratio 9ur5ine e''iciency 9ypical <alues are 0.:-0. 9ur5ine rotational speed Used 'or estimation o' engine dry weig0t. 9ur5ine arrangementC serial 'low parallel 'low Main 'eed 5ranc0 3e'ines parameters o' component 'eed 5ranc0 5etween engine inlet and t0rust c0am5er in gas generator cycle pre5urner in staged com5ustion cycles GGGpre5urner 'eed 5ranc0 3e'ines parameters o' component 'eed 5ranc0 5etween main pump outlet and com5ustion de<ice. #dditional 5ranc0es 3e'ines parameters o' additional 5ranc0. re%uired 'or gas generator cycle re%uired re%uired i' 'lag Estimate en.ine "ry ei.ht is switc0ed on re%uired 'or second tur5ine in con'igurations wit0 one com5ustion de<ice re%uired

0 to 2 5ranc0es depending on cycle diagram optional

1or eac0 main 'eed 5ranc0, t0e 'ollowing design parameters can 5e de'inedC Inlet component pressure 9ypical <alues are 0.2-0.- M"a and depend on tan+ conditions Inlet component <elocity 48 re%uired

re%uired

Rocket Propulsion Analysis v.2.1

9ypical <alues are 4-10 mGs, 'or li%uid 0ydrogen 10-20 mGs Main pump e''iciency 9ypical <alues are 0. -0.1or single-s0a't tur5opumps typical <alues areC 0.&-0.- 'or o*idi7er pump 0.::-0.& 'or 'uel pump >ooster pump e''iciency 9ypical <alues are 0.:-0.& >ooster pump disc0arge pressure >ooster pump rotational speed Used 'or estimation o' engine dry weig0t. re%uired

optional re%uired i' 5ooster pump is con'igured re%uired i' 'lag Estimate en.ine "ry ei.ht is switc0ed on and 5ooster pump is con'igured re%uired i' 5ooster pump is con'igured

>ooster pump dri<e typeC dedicated 0ydraulic tur5ine dedicated gas tur5ine main gas tur5ine >ooster tur5ine pressure ratio 9ypical <alues are 1.1-1.2 'or 0ydraulic tur5ine, and :-1: 'or gas tur5ine >ooster tur5ine e''iciency 9ypical <alues are 0.:-0.& Hal<e pressure drop 9ypical <aluesC p = ( 0.1...0.2) p c Cooling Aac+et pressure drop 9ypical <aluesC p = ( 0.25...0.35) pc , w0ere lower coe''icient is selected 'or pc <6 MPa and upper coe''icient is selected 'or pc >8 MPa Cooling Aac+et temperature raise InAector pressure drop 9ypical <aluesC p = ( 0.4...0.8 ) p c or p = 0.3...1.5 MPa

re%uired i' 5ooster pump wit0 dedicated tur5ine is con'igured re%uired i' 5ooster pump wit0 dedicated tur5ine is con'igured optional optional

optional ?not used in current <ersion@ optional

1or eac0 gas generatorGpre5urner 'eed 5ranc0, t0e 'ollowing design parameters can 5e de'inedC :0

Rocket Propulsion Analysis v.2.1

#ssigned relati<e mass 'low rate Inlet relati<e cross-section area. 3e'ines t0e inlet cross-section area o' t0e 5ranc0 relati<e to t0e inlet cross-section area t0e main 5ranc0. 9ypical <alues are 0.1-0.3 Tic+ pump e''iciency 9ypical <alues are 0.3-0.: I' no +ic+ pump is de'ined, t0e pump o' t0e main 5ranc0 0as to produces suc0 a disc0arge pressure t0at it 'its to inlet o' gas generatorGpre5urner. Usually no +ic+ pump is re%uired 'or gas generator cycle, w0ereas an a5sence o' +ic+ pump in staged com5ustion cycle leads to signi'icant pressure raise. Hal<e pressure drop 9ypical <aluesC p = ( 0.1...0.15 ) p c Cooling Aac+et pressure drop 3e'ines pressure drop in cooling Aac+ets o' additional de<ices ?e.g. gas ducts, pre5urners, etc.@ e*cept cooling Aac+ets o' t0e t0rust c0am5ers. 1i*ed pressure drop 3e'ines additional pressure drops 5etween main pump outlet and com5ustion de<ice e*cept pressure drops in <al<e, cooling Aac+et and inAector. InAector pressure drop 9ypical <aluesC p = ( 0.4...0.8) p c

.ptional ?not used in current <ersion@ re%uired

optional

optional optional

optional

optional

1or eac0 optional 'eed 5ranc0, t0e 'ollowing design parameters can 5e de'inedC 6ame !elati<e mass 'low rate 3e'ines t0e mass 'low rate t0roug0 t0e 5ranc0 relati<e to t0e total mass 'low rate at t0e inlet o' t0e main 5ranc0. Inlet relati<e cross-section area 3e'ines t0e inlet cross-section area o' t0e 5ranc0 relati<e to t0e inlet cross-section area t0e main 5ranc0. 9ypical <alues are 0.1-0.3 Tic+ pump e''iciency 9ypical <alues are 0.3-0.: I' no +ic+ pump is de'ined, t0e pump o' t0e main 5ranc0 0as to produces suc0 a disc0arge pressure t0at it 'its to inlet o' gas generatorGpre5urner. Usually no +ic+ pump is re%uired 'or :1 re%uired re%uired

re%uired

optional

Rocket Propulsion Analysis v.2.1

gas generator cycle, w0ereas an a5sence o' +ic+ pump in staged com5ustion cycle leads to signi'icant pressure raise. Hal<e pressure drop 9ypical <aluesC p = ( 0.1...0.15) p c Cooling Aac+et pressure drop. 3e'ines pressure drop in cooling Aac+ets. I' t0e 5ranc0 is used to 'eed t0e coolant 'or t0e t0rust c0am5ers, t0e typical <aluesC p = ( 0.25...0.35) pc , w0ere lower coe''icient is selected 'or pc <6 MPa and upper coe''icient is selected 'or pc >8 MPa 1i*ed pressure drop 3e'ines additional pressure drops 5etween main pump outlet and com5ustion de<ice e*cept pressure drops in <al<e and cooling Aac+et. 3isc0arge pressure 3e'ines disc0arge pressure 'rom t0e 5ranc0. $u5systems o' "ropellant 1eed $ystem optional optional

optional

re%uired

$unning Cycle Analysis


#'ter speci'ying all re%uired parameters, you can start t0e analysis 5y clic+ing menu $un, and t0en Start analysis in menu 5arC

or clic+ing icon Start on t0e main tool5arC

"perating !arameters
#'ter success'ul 'inis0ing t0e analysis t0e program automatically switc0es to t0e screen .perating "arameters, t0at displays t0e calculated results.

:2

Rocket Propulsion Analysis v.2.1

Cycle analysis results

Cycle Performance

2stimated engine per'ormance is printed out 5elow t0e operating parameters o' t0e 'eed systemC

1or staged com5ustion cycle, t0e engine per'ormance is identical to c0am5er per'ormance.
Engine Dry Weight

I' t0e 'lag Estimate en.ine "ry weig0t was switc0ed on, t0e estimated engine weig0t is printed out at t0e 5ottom o' t0e screen Operatin. ParametersC

:3

Rocket Propulsion Analysis v.2.1

T&ermodynamic )atabase *ditor


90ermodynamic 3ata5ase 2ditor is an em5edded species <iewerGeditor. Using t0e tool, you can easily de'ine new propellant components, or import components 'rom PROPEP or CEA2 species data5ases. !"# distri5ution pac+ages contain two data5ase 'iles resources/thermo.inp and resources/properties.inp. 90e 'ile resources/thermo.inp contains t0e t0ermodynamic properties in 'ormat descri5ed in re'erence 0ttpCGGwww.grc.nasa.go<G(((GC2#(e5Gde'J'ormats.0tm. Eou can de'ine your own species and sa<e it into two additional data5ase 'iles resources/usr_thermo.inp and resources/usr_properties.inp. 90ese 'iles are not s0ipped wit0in standard !"# distri5ution pac+ages, and will not 5e rewritten a'ter program update. 90e tool consists o' data5ase <iewer at t0e top o' t0e screen, and species editor at t0e 5ottom. Eou can s0rin+ or 0eig0ten t0e species <iewer w0ile t0e species editor will 5e 0eig0tened or s0run+, dragging t0e 0ori7ontal 5ar 5etween t0e <iewer and t0e editor down or up.

Thermodynamic Database Editor

90e <iewer 'eatures t0e species ta5le, 'ilter and t0e control 5uttons. $pecies ta5le displays currently a<aila5le species wit0 respect to t0e 'ilter settingsC

:4

Rocket Propulsion Analysis v.2.1

Eou can 'orce t0e <iewer to display t0e 'uels only, or o*idi7ers only, or 5ot0 'uels and o*idi7ers, mar+ing corresponding radio 5uttons. Mar+ t0e c0ec+ 5o* "All species" i' you want to see all species, including atomi7ed andGor ioni7ed products o' reaction, or +eep it unmar+ed i' you want to see only possi5le propellant components. 90e 'ilter pattern is applied to 5ot0 columns o' t0e ta5le. 90e control 5uttons can 5e used as 'ollowsC Clic+ t0e 5utton $eload to reload t0e de'ault data5ase. #ny c0anges made since t0e data5ase was last sa<ed will 5e lost. Clic+ t0e 5utton Sa.e to sa<e t0e c0anges made since t0e data5ase was last sa<ed. 90e program creates a 5ac+up-copy o' pre<ious <ersion o' t0e data5ase 'iles, adding t0e c0aracter KVK to t0e name o' t0e 'ile. Clic+ t0e 5utton Sa.e As/// to sa<e t0e current data5ase in speci'ied location. Clic+ t0e 5utton Import to import t0e species 'rom e*ternal data5ase 'ile in CEA2 or PROPEP 'ormats. #'ter success'ul loading t0e e*ternal data5ase, t0e program displays t0e list o' a<aila5le species is t0e dialog window. $elect one or more species t0at you want to import and clic+ t0e 5utton "2. #ll imported species are immediately a<aila5le 'or t0ermodynamic analysis. Clic+ t0e 5utton *dit to load t0e data o' t0e selected species into t0e species editor. Eou can also dou5le clic+ t0e species on t0e list to load it into t0e editor. Clic+ t0e 5utton $emo.e to remo<e t0e species 'rom t0e current data5ase. 6ote t0at remo<ed species are immediately una<aila5le 'or t0ermodynamic analysis. Clic+ t0e 5utton -ew to reset t0e editor 'or creating a new species. -ote0 all new species are sa<ed into t0e user-de'ined data5ase resources/usr_thermo.inp and resources/usr_properties.inp. 'iles

-ote0 alt0oug0 you can import any component 'rom PROPEP specues data5ase, do not replace all components already a<aila5le in CEA23RPA data5aseC t0e sources o' t0e data in CEA2 'ile are 6#$# Glen t0ermodynamic data5ase and Gur<ic0 t0ermodynamic data5ase, 5ot0 +nown 'or t0eir 0ig0 accuracy. -ote0 since PROPEP li5rary does not contain t0e componentIs temperature, always c0ec+ standard temperature and ta5ular data 'or imported components. -ote0 always c0ec+ t0e log ?clic+ item $un in main menu, and t0en S&ow logQ c0ec+ t0e ta5s "4arnin.s" andGor "Errors"@ Aust a'ter t0e import 'rom PROPEP li5rary.

::

Rocket Propulsion Analysis v.2.1

90e editor consists o' t0ree ta5s Component, Polynomial properties, and )ab$lar properties, and t0e control 5uttons at t0e 5ottom o' t0e editorC

9o sa<e t0e c0anged in e*isting species or sa<e new species, clic+ t0e 5utton 'pdate. 9o reset t0e species data, clic+ t0e 5utton $eset. 90e ta5 Component displays t0e in'ormation a5out component, its aggregate state, c0emical 'ormula, molecular weig0t, 0eat o' 'ormation, and t0e temperature t0e 0eat o' 'ormation is de'ined 'or. 90e component name is also an identi'ier o' t0e species and must 5e uni%ue wit0in t0e data5ase. 90e su''i* ?)@ can 5e added to t0e end o' t0e name 'or t0e li%uid components. 90e description usually contains common name o' t0e species, as well as t0e re'erence in'ormation. 90e c0emical 'ormula is gi<en as a molecular 'ormula ?i' applica5le@, or an e*ploded 'ormula, 'ollowed 5y its molecular weig0t. 90e 0eat o' 'ormation ?ent0alpy@ can 5e gi<en in one one t0e unitsC J/mol, cal/mol, kJ/kg, kcal/kg, Btu/lbm, kcal/lbm. 90e 0eat o' 'ormation is 'ollowed 5y t0e temperature ?gi<en in one o' t0e unitsC K, R, C, F@, 'or w0ic0 it 0as 5een de'ined. 6ote t0at i' polynomial properties are a<aila5le, t0e temperature is always 298.15 K and cannot 5e c0anged. "olynomial properties 'or t0e one or more temperature inter<al are gi<en 5y 8 coe''icients as descri5ed in re'erence 0ttpCGGwww.grc.nasa.go<G(((GC2#(e5Gde'J'ormats.0tm. Clic+ t0e 5utton Add to add new temperature inter<alQ clic+ t0e 5utton $emo.e to delete selected temperature inter<al. 9a5ular properties 'or t0e one or more pressure and temperature inter<als are gi<en 5y <alues o' speci'ic 0eat Cp ?kJ/mol-K@, density rho ?kg/m3@ and dynamic <iscosity mu (muPa-s@ 'or eac0 uni%ue com5ination o' pressure and temperature. Clic+ t0e 5utton Add p to add new pressure inter<alQ clic+ t0e 5utton $emo.e p to delete selected pressure inter<al. Clic+ t0e 5utton Add T to add new temperature inter<alQ clic+ t0e 5utton $emo.e T to delete selected temperature inter<al. -ote0 1or t0e components w0ic0 are supplied toget0er wit0 t0ermodynamic properties in t0e polynomial 'orm, you do not need to de'ine t0e speci'ic 0eat ?de'ine K0K instead@. -ote0 1or t0e gaseous components you do not need to de'ine t0e density. In t0e data5ase 'ile, t0e ta5ular data are 'ormatted as 'ollowsC
!p, MPa T, K Comp_name p1 T1 p1 T2 Cp, kJ/mol-K rho, kg/m3 mu, muPa-s 2,3 Cp11 rho11 mu11 Cp12 rho12 mu12

Rocket Propulsion Analysis v.2.1

p1 p2 p2 p2

T3 T1 T2 T3

Cp13 Cp21 Cp22 Cp23

rho13 rho21 rho22 rho23

mu13 mu21 mu22 mu23

90e minimalist data 'or t0e component consists o' at least two rowsC
!p, MPa T, K Cp, kJ/mol-K rho, kg/m3 Comp_name 1,2 0.10132 2!3.1 0.0!" "23.0 0.10132 3!3.1 0.0!" "23.0 mu, muPa-s

90is data de'ines t0e constant speci'ic 0eat Cp and constant density r0o, and allows to speci'y t0e initial temperature in t0e range 273.15-373.15 K as well as t0e initial pressure in t0e range 0...?t0e-ma*-pressure-you-need@. Hiscosity is not de'ined ?as it will only 5e re%uired 5y !"# $tandard 2dition@ and assumed to 5e e%ual 0.

!references
3ialog window "re'erences can 5e used to set up glo5al con'iguration parameters. Clic+ t0e item 2elp, and t0en Preferences in main 5ar to open t0e windowC

Dialog window "Preferences"

Mar+ t0e c0ec+ 5o* "Clear lo. before start analysis" to 'orce t0e cleaning t0e analysis log 5e'ore eac0 run, or lea<e it unmar+ed to let t0e log accumulate t0e messages 'rom all runs. Eou can de'ine t0e de'ault output units t0at will 5e used 5y t0e program to display t0e results o' analysis, selecting eit0er Metric system ?$I@ or U.$. Customary system on t0e list .utput units. I' selected Metric system ?$I@, t0e 'ollowing units will 5e usedC
!arameter 9emperature 9emperature "ressure 'nit K (of reaction products) K (of propellant components) MPa

:&

Rocket Propulsion Analysis v.2.1

!arameter $peci'ic impulse Helocity Mass 'low rate Mass 'lu* 90rust 3ensity 2nt0alpy 2ntropy, $peci'ic 0eat, Gas constant

'nit m/s m/s kg/s kg/m2-s N, kN kg/m3 kJ/kg, J/mol kJ/kg-K, J/mol-K

I' selected U.$. Customary system, t0e 'ollowing units will 5e usedC
!arameter 9emperature 9emperature "ressure $peci'ic impulse Helocity Mass 'low rate Mass 'lu* 90rust 3ensity 2nt0alpy 2ntropy, $peci'ic 0eat, Gas constant 'nit F (of reaction products) R (of propellant components) psi ft/s ft/s lbm/s lbm/ft2-s lbf lbm/ft3 Btu/lbm, Btu/lb-mol Btu/lbm-R, Btu/lb-mol-R

Mar+ t0e c0ec+ 5o* "Chec! RPA ebsite for $p"ates" to 'orce t0e program to c0ec+ 'or a<aila5le updates, or lea<e it unmar+ed to disa5le t0is 'unction. Eou can also de'ine 0ow o'ten s0ould t0e program per'orm t0e c0ec+, selecting one o' t0e 'ollowing items on t0e list "Once per"C !"# start-up 1 day, 1 wee+ 1 mont0 In order to 'orce t0e program to c0ec+ 'or a<aila5le updates, clic+ t0e item 1elp, and t0en C&eck for 'pdates in main 5ar.

:-

Rocket Propulsion Analysis v.2.1

Input and "utput 'nits


Eou can enter t0e <alues o' input parameters in any a<aila5le units, 'reely mi*ing Metric ?$I@ and U.$. Customary systems. 90e program automatically con<erts all entered <alues to t0e Metric system, w0ic0 is standard internal representation o' 5ot0 input parameters and results o' calculation. 90e 'ollowing con<ersion 'actors are used to con<ert <alues in non-$I units to <alues in $I unitsC
-ame CONST_ATM CONST_AT CONST_BAR CONST_PSI CONST_T0 CONST_R0 CONST_G CONST_POUND CONST_POUND_FORCE CONST_FOOT CONST_INCH CONST_MILE CONST_LBM_FOOT3 CONST_LBM_INCH3 CONST_MASS_FLUX CONST_LBM_MOLE CONST_BTU CONST_CAL CONST_BTU_LBM CONST_BTU_LBM_MOLE (alue 101325.0 98066.5 100000.0 6894.75729316836 298.15 K 8.314472 J/(molK) 9.80665 m/s2 Con<ersion 'actor 'rom l5m ?pound mass@ to +g Con<ersion 'actor 'rom l5' ?pound-'orce@ to 6 ?newton@ Con<ersion 'actor 'rom international 'oot to m Con<ersion 'actor 'rom inc0 to m Con<ersion 'actor 'rom international mile to m Con<ersion 'actor 'rom Kl5mG't3K to K+gGm3 Con<ersion 'actor 'rom Kl5mGinc03K to K+gGm3K Con<ersion 'actor 'rom Kl5mG?'t2Ws@K to K+gG?m2Ws@K Con<ersion 'actor 'rom l5-mole to mole Con<ersion 'actor 'rom >tu to = Con<ersion 'actor 'rom calorie to = Con<ersion 'actor 'rom >tuGl5m to =G+g Con<ersion 'actor 'rom >tuGl5-mol to =Gmol )escription Con<ersion 'actor 'rom atm to "a Con<ersion 'actor 'rom at ?tec0nical atmosp0ere@ to "a Con<ersion 'actor 'rom 5ar to "a Con<ersion 'actor 'rom psi ?pound-'orce per s%uare inc0@ to "a 9emperature 2: C Uni<ersal Gas Constant

0.45359237 (CONST_POUND*CONST_G) 0.3048 0.0254 (5280.0*CONST_FOOT) (CONST_POUND/CONST_FOOT3) (CONST_POUND/CONST_INCH3) (CONST_POUND/CONST_FOOT2) (1000.*CONST_LBM) 1055.05585262 4.1868 (CONST_BTU/CONST_LBM) (CONST_BTU/CONST_LBM_MOLE)

:8

Rocket Propulsion Analysis v.2.1

-ame CONST_BTU_LBM_R CONST_BTU_LBM_F CONST_BTU_LBM_MOLE_R

(alue (1000.*CONST_CAL) CONST_BTU_LBM_R CONST_BTU_LBM_R

)escription Con<ersion 'actor 'rom >tuG?l5mW!@ to =G ?+gWT@ Con<ersion 'actor 'rom >tuG?l5mW1@ to =G ?+gWT@ Con<ersion 'actor 'rom >tuG?l5-molW!@ to =G?molWT@

90e Metric system is also used 5y de'ault to display t0e results o' calculation. Eou can c0ange it to U.$. Customary system, using dialog window "re'erences. !e'erencesC $"--11. 6I$9 Guide 'or t0e Use o' t0e International $ystem o' Units ?$I@. >.- 1actors 'or Units )isted #lp0a5etically Glossary o' terms and ta5le o' con<ersion 'actors used in design o' c0emical propulsion systems. 6#$# $"--12 . 18&8. George ". $utton, .scar >i5lar7. !oc+et "ropulsion 2lements, &t0 2dition ?pp.&2&&28@. 6#$#-$93-3000. Man-$ystems Integration $tandards. Holume II. #ppendi* 2 - Units o' Measure and Con<ersion 1actors

Scripting 'tility
90e scripting language pro<ided is 5ased on t0e 2CM#$cript scripting language, as de'ined in standard 2CM#-2 2. $cripting utility implements 5inding to many internal 'unctions o' !"#, so t0at t0e user can program and run t0e 'ollowing tas+sC load, manipulate and write con'iguration 'iles searc0 t0e t0ermodynamic data5ase 5y species name get t0ermodynamic properties o' t0e species prepare mono- 5i- and multi-propellant compositions run typical com5ustion pro5lems (p,H)=const, (p,S)=const, (p,T)=const run typical roc+et propulsion pro5lems use in a custom =a<a$cript program all 'eatures listed a5o<e

$cripting utility can 5e started in eit0er an interacti<e mode or a 5atc0 mode.

7uilt+In ,unctions
>esides standard 2CM#-2 2 'unctions, !"# $cripting Utility pro<ides t0e 'ollowing 5uilt-in 'unctionsC

Rocket Propulsion Analysis v.2.1

,unction load(path_to_script)

)escription )oad e*ternal script de'ined 5y itIs pat0. 2*ampleC load?KresourcesGscriptsGcon'ig.AsK@Q

print(parameter)

"rint out t0e parameter in console and log 'ile. 2*amplesC print?K$tarting analysis...K@Q print?KIsJ<NK B pr.get6o77le2*it$ection?@.getIsJ<?@.to"recision?&@@Q

exit() or quit()

2*it 'rom t0e interacti<e interpreter.

A!I $eference
>esides standard 2CM#-2 2 #"I, !"# $cripting Utility pro<ides t0e 'ollowing #"IsC
A!I Configuration API Thermo API Reaction API Performance API )escription #"I 'or loading, manipulation and writing con'iguration 'iles. #"I 'or searc0ing t0e t0ermodinamic data5ase, o5taining species properties, preparing mono- 5i- and multipropellant compositions. #"I 'or running typical com5ustion pro5lems ?p,;@Nconst, ?p,$@Nconst, ?p,9@Nconst, o5taining t0ermodinamic properties o' t0e reaction products. #"I 'or running typical roc+et propulsion pro5lems and o5taining per'ormance parameters.

Configuration A!I
Con'iguration #"I is indented 'or searc0ing t0e t0ermodynamic data5ase, o5taining species properties, preparing mono- 5i- and multi-propellant compositions. $ee also =a<a$cript class Config.

"b8ect Config,ile
,unction ConfigFile() !arameters )escription 3e'ault constructor. Creates new empty con'iguration o5Aect. 2*ampleC

Rocket Propulsion Analysis v.2.1

,unction

!arameters

)escription c N Con'ig1ile?@Q

ConfigFile(String path)

File path

Constructor. Creates new empty con'iguration o5Aect and assign t0e speci'ied 'ile. 90e assigned 'ile can 5e loaded wit0 'unction read?@. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q

read()

!eads t0e assigned 'ile. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q

read(String path)

File path

!eads t0e speci'ied 'ile. 2*ampleC c N Con'ig1ile?@Q c.read?Ke*amplesG!3-2&:.c'gK@Q

write()

(rites t0e con'iguration into assigned 'ile. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.set6ame?K!3-2&:K@Q c.write?@Q

write(String path)

File path

(rites t0e con'iguration into speci'ied 'ile. 2*ampleC c N Con'ig1ile?@Q c.set6ame?K!3-2&:K@Q c.write?Ke*amplesG!3-2&:.c'gK@Q

Rocket Propulsion Analysis v.2.1

,unction validate()

!arameters

)escription Halidates t0e correctness o' t0e con'iguration. 2*ampleC c N Con'ig1ile?@Q c.set6ame?K!3-2&:K@Q c.<alidate?@Q

Number getVersion()

!eturns t0e <ersion o' con'iguration 'ile. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q print?KHersionC KBc.getHersion?@@Q

setName(String name)

Engine name

#ssigns t0e engine name. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.set6ame?K!3-2&:K@Q c.write?@Q

String getName()

!eturns t0e engine name. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q print?K2ngine nameC KBc.get6ame?@@Q

setInfo(String info)

Description

#ssigns t0e description. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.setIn'o?K9est case 'or !3-2&:K@Q c.write?@Q

String getInfo()

!eturns t0e assigned description.

Rocket Propulsion Analysis v.2.1

,unction

!arameters

)escription 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q print?KCase descriptionC KBc.getIn'o?@@Q

Object getGeneralOptions()

!eturns t0e associated General.ptions o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q

Object getNozzleFlowOptions()

!eturns t0e associated 6o77le1low.ptions o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect n N c.get6o77le1low.ptions?@Q

Object getCombustionChamberConditions( )

!eturns t0e associated Com5ustionC0am5erConditions o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect cc N c.getCom5ustionC0am5erConditions?@Q

Object getPropellant()

!eturns t0e associated "ropellant o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect p N c.get"ropellant?@Q

Rocket Propulsion Analysis v.2.1

,unction Object getEngineSize()

!arameters

)escription !eturns t0e associated 2ngine$i7e o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect s N c.get2ngine$i7e?@Q

Object getChamberGeometry()

!eturns t0e associated C0am5erGeometry o5Aect. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect s N c.getC0am5erGeometry?@Q

"b8ect %eneral"ptions
,unction Boolean isMultiphaseFlow() !arameters )escription !eturns true, i' multip0ase 'low and p0ase transitions s0ould 5e considered. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q i' ?g.isMultip0ase1low?@@ X print?KMultip0ase 'low 'lag is onK@Q Y setMultiphaseFlow(Boolean flag) true or false Default valie is true. #ssigns multip0ase 'low 'lag. 6ote t0at 'or t0e most o' solid propellant pro5lems t0is 'lag s0ould 5e switc0ed on. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q

Rocket Propulsion Analysis v.2.1

,unction

!arameters

)escription g.setMultip0ase1low?true@Q

Boolean isIons()

!eturns true, i' species ioni7ation e''ects s0ould 5e considered. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q i' ?g.isIons?@@ X print?KIoni7ation e''ects 'lag is onK@Q Y

setIons(Boolean flag)

true or false Default valie is true.

#ssigns ioni7ation e''ects 'lag. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q g.setIons?'alse@Q

Boolean isFlowSeparation()

!eturns true, i' 'low separation e''ects s0ould 5e considered. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q i' ?g.is1low$eparation?@@ X print?K1low separation 'lag is onK@Q Y

setFlowSeparation(Boolean flag) true or false Default valie is true.

#ssigns 'low separation e''ects 'lag. 2*ampleC c N Con'ig1ile?Ke*amplesG!32&:.c'gK@Q c.read?@Q .5Aect g N c.getGeneral.ptions?@Q g.set1low$eparation?'alse@Q

Rocket Propulsion Analysis v.2.1

"b8ect -o33le,low"ptions
$ee also c0apter 6o77le 1low Model.
,unction Boolean isCalculateNozzleFlow() !arameters )escription !eturns true, i' complete engine per'ormance analysis s0ould 5e per'ormed. true or false Default valie is true. $et 'lag Calculate6o77le1low.

setCalculateNozzleFlow(Boolean flag) Boolean isFreezingConditions() Object getFreezingConditions() Object setFreezingConditions()

!eturns true i' 'ree7ing conditions de'ined. !eturns 1ree7ingConditions o5Aect, or null i' not de'ined. !eturns 1ree7ingConditions o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned 1ree7ingConditions o5Aect. !eturns true i' no77le inlet conditions de'ined. !eturns 6o77leInletConditions o5Aect, or null i' not de'ined. !eturns 6o77leInletConditions o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned 6o77leInletConditions o5Aect. !eturns true i' no77le e*it conditions de'ined. !eturns 6o77le2*itConditions o5Aect, or null i' not de'ined. !eturns 6o77le2*itConditions o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned 6o77le2*itConditions o5Aect. !eturns true i' e''iciency 'actors de'ined. !eturns 2''iciency1actors o5Aect, or null i' not de'ined. !eturns 2''iciency1actors o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned 2''iciency1actors

deleteFreezingConditions() Boolean isNozzleInletConditions() Object getNozzleInletConditions() Object setNozzleInletConditions() deleteNozzleInletConditions() Boolean isNozzleExitConditions() Object getNozzleExitConditions() Object setNozzleExitConditions() deleteNozzleExitConditions() Boolean isEfficiencyFactors() Object getEfficiencyFactors() Object setEfficiencyFactors()

deleteEfficiencyFactors()

&

Rocket Propulsion Analysis v.2.1

,unction Boolean isAmbientConditions() Object getAmbientConditions() Object setAmbientConditions()

!arameters

)escription o5Aect. !eturns true i' am5ient conditions de'ined. !eturns #m5ientConditions o5Aect, or null i' not de'ined. !eturns #m5ientConditions o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned #m5ientConditions o5Aect. !eturns true i' t0rottling seetings de'ined. !eturns 90rottlingConditions o5Aect, or null i' not de'ined. !eturns 90rottlingConditions o5Aect. Create new o5Aect and assign to con'iguration, i' not de'ined 5e'ore. !emo<es assigned 90rottlingConditions o5Aect.

deleteAmbientConditions() Boolean isThrottlingConditions() Object getThrottlingConditions() Object setThrottlingConditions() deleteThrottlingConditions()

"b8ect CombustionC&amberConditions
,unction !arameters )escription !eturns c0am5er pressure in speci'ied unit, or in K"aK i' unit not speci'ied. Number getPressure(String unit) Pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") setPressure(Number p, String unit) Pressure value and unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa")

#ssigns c0am5er pressure in speci'ied unit, or in K"aK i' unit not speci'ied.

"b8ect ,ree3ingConditions
,unction Boolean isCalculate() ssCalculate(Boolean flag) Boolean isPressure() Number getPressure(String unit) Pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") !arameters )escription !eturns true i' 'ro7en e%uili5rium s0ould 5e calculated. #ssigns 'ro7en e%uili5rium 'low 'lag. !eturns true i' condition de'ined 5y presure. !eturns pressure in speci'ied unit, or in K"aK i' unit not speci'ied.

Rocket Propulsion Analysis v.2.1

,unction setPressure(Number p, String unit)

!arameters Pressure value and unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa")

)escription #ssigns pressure in speci'ied unit, or in K"aK i' unit not speci'ied.

deletePressure() Boolean isExpansionRatio() Number getExpansionRatio() setExpansionRatio(Number a) deleteExpansionRatio() Boolean isPressureRatio() Number getPressureRatio() setPressureRatio(Number a) deletePressureRatio()

!emo<e condition de'ined 5y presure. !eturns true i' condition de'ined 5y e*pansion area ratio. !eturns e*pansion area ratio. #ssigns e*pansion area ratio. !emo<e condition de'ined 5y e*pansion area ratio. !eturns true i' condition de'ined 5y pressure ratio. !eturns pressure ratio. #ssigns pressure ratio. !emo<e condition de'ined 5y pressure ratio.

Object NozzleInletConditions
,unction Boolean isContractionAreaRatio() Number getContractionAreaRatio() setContractionAreaRatio(Number r) deleteContractionAreaRatio() Boolean isMassFlux() Number getMassFlux(String unit) Desired mass flux unit (one of "kg/ (m2s)", "kg/(m2s)", "kg/(sm2)", "kg/(s-m2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)") setMassFlux(Number f, String unit) f - mass flux unit - mass flux unit (one of "kg/ nozzle inlet contraction area ratio (Ac/At) !arameters )escription !eturns true i' no77le inlet contraction area ratio de'ined. !eturns no77le inlet contraction area ratio. #ssigns no77le inlet contraction area ratio. !emo<es no77le inlet contraction area ratio. !eturns true i' com5ustion c0am5er mass 'lu* de'ined. !eturns com5ustion c0am5er mass 'lu* in speci'ied unit .

#ssigns no77le inlet mass 'lu*.

Rocket Propulsion Analysis v.2.1

,unction

!arameters (m2s)", "kg/(m2s)", "kg/(sm2)", "kg/(s-m2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)")

)escription

deleteMassFlux()

!emo<es no77le inlet mass 'lu*.

"b8ect -o33leSectionConditions
,unction Boolean isAreaRatio() Number getAreaRatio() setAreaRatio(Number r) deleteAreaRatio() Boolean isPressureRatio() Number getPressureRatio() setPressureRatio(Number r) deletePressureRatio() Boolean isPressure() Number getPressure(String unit) Pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") setPressure(Number p, String unit) p - pressure unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") Pressure ratio (pt/pt) Area ratio (A/At) !arameters )escription !eturns true i' no77le section de'ined 5y area ratio ?#G#t@. !eturns assigned area ratio ?#G#t@. #ssigns area ratio. !emo<es area ratio de'inition. !eturns true i' no77le section de'ined 5y pressure ratio ?ptGp@. !eturns assigned pressure ratio ?ptGp@. #ssigns pressure ratio. !emo<es pressure ratio de'inition. !eturns true i' no77le section de'ined 5y pressure. !eturns assigned pressure in desired unit ro in K"aK, i' unit not speci'ied.

#ssigns pressure.

deletePressure()

!emo<es pressure de'inition.

"b8ect *fficiency,actors
,unction Boolean isApplyEfficiencyFactors() setApplyEfficiencyFactors(Boole ApplyEfficiencyFact an flag) ors flag !arameters )escription !eturns true i' de'ined e''iciency correction 'actors s0ould 5e used 'or calculation o' deli<ered per'ormance. #ssigns #pply2''iciency1actors 'lag.

&0

Rocket Propulsion Analysis v.2.1

,unction Boolean isReactionEfficiency()

!arameters

)escription !eturns true i' reaction e''iciency assigned. #ssigns reaction e''iciency. !eturns assigned reaction e''iciency. !emo<es assigned reaction e''iciency. !eturns true i' no77le e''iciency assigned.

setReactionEfficiency(Number r) Reaction efficiency Number getReactionEfficiency() deleteReactionEfficiency() Boolean isNozzleEfficiency() setNozzleEfficiency(Number r) Number getNozzleEfficiency() deleteNozzleEfficiency() Boolean isNozzleLength() setNozzleLength(Number l) Number getNozzleLength() deleteNozzleLength() Boolean isConeHalfAngle() setConeHalfAngle(Number a) Number getConeHalfAngle() deleteConeHalfAngle() Half angle Nozzle length (%) Nozzle efficiency

#ssigns no77le e''iciency. !eturns assigned no77le e''iciency. !emo<es assigned no77le e''iciency. !eturns true i' no77le lengt0 assigned. #ssigns no77le lengt0. !eturns assigned no77le lengt0 ?R@. !emo<es assigned no77le lengt0. !eturns true i' conical no77le 0al' angle assigned. #ssigns conical no77le 0al' angle assigned. !eturns assigned conical no77le 0al' angle assigned. !emo<es assigned conical no77le 0al' angle assigned.

"b8ect AmbientConditions
,unction Boolean isFixedPressure() Number getFixedPressure(String unit) unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") p - pressure unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") !arameters )escription !eturns true i' 'i*ed am5ient pressure de'ined. !eturns 'i*ed am5ient pressure in desired unit.

setFixedPressure(Number p, String unit)

#ssigns 'i*ed am5ient pressure in speci'ied unit.

deleteFixedPressure() Boolean isRangePressure()

!emo<es 'i*ed am5ient pressure. !eturns true i' am5ient condition de'ined as a pressure range.

&1

Rocket Propulsion Analysis v.2.1

,unction Number getRangePressureMin(String unit)

!arameters unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") p - pressure unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa") p - pressure unit - pressure unit (one of "Pa" (default), "psi", "atm", "bar", "at", "MPa")

)escription !eturns low <alue o' pressure range in desired unit.

Number setRangePressureMin(Number p, String unit)

#ssigns low <alue o' pressure range.

Number getRangePressureMaxn(String unit)

!eturns 0ig0 <alue o' pressure range in desired unit.

setRangePressureMax(Number p, String unit)

#ssigns 0ig0 <alue o' pressure range.

deleteRangePressure()

!emo<es pressure range.

"b8ect T&rottlingConditions
,unction Boolean isFixedFlowrate() Number getFixedFlowrate() setFixedFlowrate(Number r) mass flow rate, decimal fraction r/nominal !arameters )escription !eturns true i' 'i*ed mass 'low rate de'ined. !eturns de'ined 'i*ed mass 'low rate ?decimal 'raction, rGnominal@. #ssign 'i*ed mass 'low rate.

Boolean isRangeFlowrate() Number getRangeFlowrateMin() setRangeFlowrateMin(Number r) Number getRangeFlowrateMax() setRangeFlowrateMax(Number r) deleteRangeFlowrate() flow rate, decimal fraction r/nominal flow rate, decimal fraction r/nominal

!eturns true i' 'low rate condition de'ined as a 'low rate range. !eturns low <alue o' 'lowe rate range ?decimal 'raction, rGnominal@. #ssigns low <alue o' pressure range. !eturns 0ig0 <alue o' 'lowe rate range ?decimal 'raction, rGnominal@. #ssigns 0ig0 <alue o' pressure range. !emo<es 'low rate range.

&2

Rocket Propulsion Analysis v.2.1

"b8ect !ropellant
,unction Number getRatio() String getRatioType() !arameters )escription !eturns assigned propellant component ratio. !eturns type o' assigned propellant component ratio ?K.G1K, Kalp0aK, or KoptimalK@. r - ratio unit - type of ratio (one of "O/F", "alpha", or "optimal") #ssigns propellant component ratio.

setRatio(Number r, String unit)

Number getOxidizerListSize()

!eturns num5er o' species in o*idi7er ?not applica5le 'or monopropellant mi*ture composition@. index Component object !eturns Component o5Aect. #dds speci'ied component to t0e o*idi7er. !eturns num5er o' species in 'uel ?not applica5le 'or monopropellant mi*ture composition@. index Component object !eturns Component o5Aect. #dds speci'ied component to t0e 'uel. !eturns num5er o' species in propellant mi*ture ?not applica5le 'or 5ipropellant composition@. index Component object !eturns Component o5Aect. #dds speci'ied component to t0e mi*ture. !eturns eit0er "ropellant or Mi*ture o5Aect ready 'or passing as parameter to constructors !eaction and C0am5er. .

Object getOxidizer(Number i) addOxidizer(Object c) Number getFuelListSize()

Object getFuel(Number i) addFuel(Object c) Number getSpeciesListSize()

Object getSpecies(Number i) addSpecies(Object c) Object getPropellant()

"b8ect Component
,unction String getName() setMassFraction(Number f) Mass fraction !arameters )escription !eturns species name. #ssigns mass 'raction o' t0e species in t0e component ?'or 5ipropellant systems@ or propellant ?'or monopropellant systems@. !eturns mass 'raction. t - temperature #ssigns initial temperature o' t0e

Number getMassFraction() setT(Number t, String unit)

&3

Rocket Propulsion Analysis v.2.1

,unction

!arameters unit - temperature unit (one of "K", "F", "C")

)escription species.

Number getT(String unit)

temperature unit (one of "K", "F", "C")

!eturns initial temperature o' t0e species in desired unit.

setP(Number p, String unit)

p - temperature #ssigns initial temperature o' t0e unit - pressure species. unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") pressure unit (one !eturns initial pressure o' t0e species of "Pa", "psi", in desired unit. "atm", "bar", "at", "MPa")

Number getP(String unit)

"b8ect *ngineSi3e
$ee also c0apter 2ngine 3e'inition.
,unction Boolean isThrust() Number getThrust(String unit) !arameters )escription !eturns true i' engine t0rust de'ined. thrust unit (one of !eturns engine t0rust in desired unit. "kN", "kg", "lbf", "N") t - thrust #ssigns engine t0rust. unit - thrust unit (one of "kN", "kg", "lbf", "N") !emo<es t0rust de'inition. !eturns true i' am5ient pressure de'ined. pressure unit (one !eturns am5ient pressure in desired of "Pa", "psi", unit. "atm", "bar", "at", "MPa") p - pressure #ssigns am5ient pressure. unit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") !emo<es am5ient pressure de'inition. !eturns true i' mass 'low rate de'ined. mass flow rate unit !eturns mass 'low rate in desired unit. (one of "kg/s", "lbm/s")

setThrust(Number t, String unit)

deleteThrust() Boolean isAmbientPressure() Number getAmbientPressure(String unit)

setAmbientPressure(Number p, String unit)

deleteAmbientPressure() Boolean isMdot() Number getMdot(String unit)

&4

Rocket Propulsion Analysis v.2.1

,unction setMdot(Number m, String unit)

!arameters m - mass flow rate unit - mass flow rate unit (one of "kg/s", "lbm/s")

)escription #ssigns mass 'low rate.

deleteMdot() Boolean isThroatD() Number getThroatD(String unit)

!emo<es mass 'low rate de'inition. !eturns true i' t0roat diameter de'ined. diameter unit (one !eturns t0roat diameter. of "mm", "in", "m", "ft") d - diameter unit - diameter unit (one of "mm", "in", "m", "ft") #ssigns t0roat diameter.

setThroatD(Number d, String unit)

deleteThroatD() Number getChambersNo() setChambersNo(Number ) Object getChamberGeometry() number of chambers

!emo<es t0roat diameter de'inition. !eturns num5er o' c0am5ers. #ssigns num5er o' c0am5ers. !eturns C0am5erGeometry o5Aect.

"b8ect C&amber%eometry
$ee also c0apter C0am5er Geometry.
,unction Number getChamberLength(String unit) setChamberLength(Number L, String unit) !arameters )escription length unit (one of !eturns c0am5er c0aractersictic "mm", "in", "m", lengt0 ?)Z@ in dsired unit. "ft") L - charactersictic #ssigns c0am5er c0aractersictic length lengt0 ?)Z@. unit - length unit (one of "mm", "in", "m", "ft") !eturns no77le inlet contraction angle ?deg@. angle (deg) ratio ratio ratio #ssigns no77le inlet contraction angle. !eturns ratio !1G!t. #ssigns ratio !1G!t. !eturns ratio !nG!t. #ssigns ratio !nG!t. !eturns ratio !2G!2ma*. #ssigns ratio !2G!2ma*. !eturns true i' no77le is s0aped as truncated ideal contour. flag #ssigns 9IC 'lag.

Number getContractionAngle() setContractionAngle(Number a) Number getR1ToRtRatio() setR1ToRtRatio(Number r) Number getRnToRtRatio() setRnToRtRatio(Number r) Number getR2ToR2maxRatio() setR2ToR2maxRatio(Number r) Boolean isTIC() setTIC(Boolean s)

&:

Rocket Propulsion Analysis v.2.1

,unction deleteTOC() Boolean isParabolicExitAngle() Number getParabolicExitAngle() setParabolicExitAngle(Number a) deleteParabolicExitAngle()

!arameters

)escription !emo<es 9IC 'lag. !eturns true i' no77le e*it 0al' angle de'ined. !eturns no77le e*it 0al' angle ?deg@.

angle (deg)

#ssigns no77le e*it 0al' angle ?deg@. !emo<es no77le e*it 0al' angle de'inition.

T&ermo A!I
90ermo #"I is indented 'or loading, manipulation and writing con'iguration 'iles.

"b8ect database
,unction species() !arameters )escription $tatic 'unction. !eturns $pecies o5Aect. 2*ampleC print?data5ase.species?K;2.2K@@Q

"b8ect Species
,unction String getName() String getDescr() Boolean isReactantOnly() !arameters )escription !eturns species name. !eturns species description. !eturns true i' species could not 5e usually used as an propellant component. !eturns true i' species is ioni7ed. !eturns t0e c0arge o' ioni7ed species. !eturns t0e <alency o' species. !eturns true i' species is condensed. !eturns t0e num5er o' condensed p0ase in increased order 5y temperature. heat of formation unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", !eturns ;0?28-.1:@ - 0eat o' 'ormation at t0e temperature 28-.1: T and pressure 1 5ar in desired unit.

Boolean isIon() Number getCharge() Number getValence() Boolean isCondensed() Number getCondensed()

Number getDHf298_15(String unit)

&

Rocket Propulsion Analysis v.2.1

,unction Number getDH298_15_0(String unit)

!arameters "Btu/lbm" ) heat of formation unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm" ) temperature unit (one of "K", "F", "C")

)escription !eturns ;0?28-.1:@ ;0?0@, i' a<aila5le.

Number getT0(String unit)

!eturns standard temperature o' t0e species in desired unit.

Number getP0(String unit)

pressure unit (one !eturns standard pressure o' t0e of "Pa", "psi", species in desired unit. "atm", "bar", "at", "MPa") temperature unit (one of "K", "F", "C") temperature unit (one of "K", "F", "C") t - temperature unit - temperature unit (one of "K", "F", "C") gas constant unit (one of "J/(mol K)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lb-mol R)", "Btu/ (lbm R)") t - temperatur !eturns minimum temperature o' t0e species in desired unit. !eturns ma*imum temperature o' t0e species in desired unit. C0ec+s w0et0er t0e speci'ied temperature is <alid. I' <alid, returns speci'ied temperature. .t0erwise t0rows an e*ception. !eturns molecular weig0t o' species. !eturns gas constant in desired unit ?applica5le 'or gaseous species@.

Number getMinimumT(String unit)

Number getMaximumT(String unit)

Number checkT(double t, String unit)

Number getM() Number getR(String unit)

Number getCp(Number t, String tunit, String unit)

!eturns speci'ic 0eat or molar 0eat capasity at speci'ied temperature and tunit - temperature constant pressure in desired unit. unit (one of "K", "F", "C") unit - specific heat unit (one of "J/(kg K)", "kJ/(kg K)", "Btu/(lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)")

Number getH(Number t, String tunit, String unit)

t - temperatur tunit - temperature unit (one of "K",

!eturns speci'ic or molar ent0alpy at speci'ied temperature in desired unit.

&&

Rocket Propulsion Analysis v.2.1

,unction

!arameters "F", "C") unit - enthalpy unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm")

)escription

Number getS(Number t, String tunit, String unit)

t - temperatur tunit - temperature unit (one of "K", "F", "C") unit - entropy unit (one of "J/(mol K)", "Btu/(lb-mol R)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)")

!eturns speci'ic or molar entropy at speci'ied temperature in desired unit.

Number getG(Number t, String tunit, String unit)

t - temperatur tunit - temperature unit (one of "K", "F", "C") unit - Gibbs energy unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm")

!eturns Gi55s energy at speci'ied temperature in desired unit.

Object Propellant
,unction setRatio(Number r, String type) !arameters r - ratio type - ratio type (one of "O/F", "alpha") ratio type (one of "O/F", "alpha") ratio type (one of "O/F", "alpha") type - component type ("o" or "f") )escription #ssigns components ratio.

Number getRatio(String type) Number getRatio0(String type) Object add(String type, String name, Number r)

!eturns assigned components ratio. !eturns stoic0iometric components ratio.

#dds species into component, assigns speci'ied mass 'raction, and returns $pecies o5Aect. 90e components name - species name designated as 'ollowsC KoK - o*idi7er, K'K - 'uel. r - mass fraction of the species in component

&-

Rocket Propulsion Analysis v.2.1

,unction Object add(String type, String name, Number t, String tunit, Number p, String punit, Number r)

!arameters type - component type ("o" or "f")

)escription

#dds species wit0 initial temperature and pressure into component, assigns speci'ied mass 'raction, and returns name - species name $pecies o5Aects. 90e components designated as 'ollowsC KoK - o*idi7er, K'K t - initial - 'uel. temperature tunit - temperature unit (one of "K", "F", "C") p - initial pressure punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") r - mass fraction of the species in component

Object addOxidizer(String name, Number r)

name - species name #dds species into o*idi7er and assigns speci'ied mass 'raction. r - mass fraction of the species in component name - species name #dds species wit0 initial temperature and pressure into o*idi7er, assigns t - initial speci'ied mass 'raction, and returns temperature $pecies o5Aect. tunit - temperature unit (one of "K", "F", "C") p - initial pressure punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") r - mass fraction of the species in component

Object String tunit, Number

addOxidizer(String type, name, Number t, String Number p, String punit, r)

Object addFuel(String name, Number r)

name - species name #dds species into 'uel, assigns speci'ied mass 'raction, and returns r - mass fraction $pecies o5Aect. of the species in

&8

Rocket Propulsion Analysis v.2.1

,unction Object String tunit, Number addFuel(String type, name, Number t, String Number p, String punit, r)

!arameters component

)escription

name - species name #dds species wit0 initial temperature and pressure into 'uel, assigns t - initial speci'ied mass 'raction, and returns temperature $pecies o5Aect. tunit - temperature unit (one of "K", "F", "C") p - initial pressure punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") r - mass fraction of the species in component

add(String type, Object mixture, Number r)

type - component type ("o" or "f") mixture - Mixture object r - mass fraction of the mixture in component

#dds mi*ture into component and assigns speci'ied mass 'raction. 90e components designated as 'ollowsC KoK - o*idi7er, K'K - 'uel.

addOxidizer(Object mixture, Number r)

mixture - Mixture object r - mass fraction of the mixture in component

#dds mi*ture into o*idi7er and assigns speci'ied mass 'raction.

addFuel(Object mixture, Number r)

mixture - Mixture object r - mass fraction of the mixture in component

#dds mi*ture into 'uel and assigns speci'ied mass 'raction.

Number getM() Number getH(String unit) enthalpy unit (one of "J/mol", "Btu/lb-mol", "J/kg", "kJ/kg", "Btu/lbm") type - component type ("o" or "f")

!eturns molecular weig0t o' propellant. !eturns speci'ic or molar ent0alpy o' propellant in desired unit.

Number size(String type)

!eturns num5er o' species included into component.

-0

Rocket Propulsion Analysis v.2.1

,unction Object getSpecies(String type, Number i)

!arameters type - component type ("o" or "f") i - index

)escription !eturns $pecies o5Aect.

Boolean checkFractions()

!eturns true i' mass 'ractions assigned correctly ?i.e. t0e sum o' all mass 'ractions wit0in eac0 component is e%uals to 1.0@. type - component type ("o" or "f") !eturns true i' mass 'ractions assigned correctly ?i.e. t0e sum o' all mass 'ractions wit0in speci'ied component is e%uals to 1.0@. !eturns assigned mass 'raction.

Boolean checkFractions(String type)

Number getFraction(String type, Number i)

type - component type ("o" or "f") i - index

setFraction(String type, Number i, Number f)

type - component type ("o" or "f") i - index f - mass fraction

#ssigns mass 'raction.

print(String units)

desired units (one of "SI" or "US")

"rint out t0e in'ormation a5out propellant in desired units.

"b8ect Mixture
,unction Object addSpecies(String name, Number r) !arameters )escription name - species name #dds species into mi*ture, assigns speci'ied mass 'raction, and returns r - mass fraction $pecies o5Aect. of the species in component name - species name #dds species wit0 initial temperature and pressure into mi*ture, assigns t - initial speci'ied mass 'raction, and returns temperature $pecies o5Aects. tunit - temperature unit (one of "K", "F", "C") p - initial pressure punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa")

Object addSpecies(String name, Number t, String tunit, Number p, String punit, Number r)

-1

Rocket Propulsion Analysis v.2.1

,unction

!arameters r - mass fraction of the species in component

)escription

addMixture(Object mixture, Number r)

mixture - Mixture object r - mass fraction of the mixture in component

#dds mi*ture into t0is mi*ture o5Aect and assigns speci'ied mass 'raction.

Number getValence() Number getM() Number getH(String unit) enthalpy unit (one of "J/mol", "Btu/lb-mol", "J/kg", "kJ/kg", "Btu/lbm") t - temperature unit - temperature unit (one of "K", "F", "C") setP(Number p, String unit) t - temperature punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") Number size() Object getSpecies(Number i) Boolean checkFractions() index

!eturns t0e resulting <alency o' mi*ture. !eturns molecular weig0t o' mi*ture. !eturns speci'ic or molar ent0alpy o' mi*ture in desired unit.

setT(Number t, String unit)

#ssigns temperature to all species o' t0e mi*ture.

#ssigns temperature to all species o' t0e mi*ture.

!eturns num5er o' species included into mi*ture. !eturns $pecies o5Aect. !eturns true i' mass 'ractions assigned correctly ?i.e. t0e sum o' all mass 'raction wit0in eac0 component is e%uals to 1.0@. !eturns true i' mass 'ractions assigned correctly ?i.e. t0e sum o' all mass 'ractions is e%uals to 1.0@. index i - index f - mass fraction !eturns assigned mass 'raction. #ssigns mass 'raction.

Boolean checkFractions()

Number getFraction(Number i) setFraction(Number i, Number f)

print(String units)

desired units (one of "SI" or "US")

"rint out t0e in'ormation a5out mi*ture in desired units.

-2

Rocket Propulsion Analysis v.2.1

$eaction A!I
!eaction #"I is indented 'or running typical com5ustion pro5lems (p,H)=const, (p,S)=const, (p,T)=const, o5taining t0ermodynamic properties o' t0e reaction products.

"b8ect !roduct
.5Aect "roduct represents an indi<idual product o' reaction.
,unction String getName() String getDescr() Number getN() Number getT(String unit) temperature unit (one of "K", "F", "C") !arameters )escription !eturns productIs name. !eturns productIs description. !eturns num5er o' moles o' product. !eturns assigned temperature o' product. !eturns true i' product is ioni7ed. !eturns t0e c0arge o' ioni7ed product. !eturns t0e <alency o' product. !eturns true i' product is condensed. !eturns t0e num5er o' condensed p0ase in increased order 5y temperature. heat of formation unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm" ) heat of formation unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm" ) temperature unit (one of "K", "F", "C") !eturns ;0?28-.1:@ - 0eat o' 'ormation at t0e temperature 28-.1: T and pressure 1 5ar in desired unit.

Boolean isIon() Number getCharge() Number getValence() Boolean isCondensed() Number getCondensed()

Number getDHf298_15(String unit)

Number getDH298_15_0(String unit)

!eturns ;0?28-.1:@ ;0?0@, i' a<aila5le.

Number getT0(String unit)

!eturns standard temperature o' t0e product in desired unit.

Number getP0(String unit)

pressure unit (one !eturns standard pressure o' t0e of "Pa", "psi", product in desired unit. "atm", "bar", "at", "MPa") temperature unit (one of "K", "F", "C") !eturns minimum temperature o' t0e product in desired unit.

Number getMinimumT(String unit)

-3

Rocket Propulsion Analysis v.2.1

,unction Number getMaximumT(String unit)

!arameters temperature unit (one of "K", "F", "C") t - temperature unit - temperature unit (one of "K", "F", "C") gas constant unit (one of "J/(mol K)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lb-mol R)", "Btu/ (lbm R)")

)escription !eturns ma*imum temperature o' t0e product in desired unit. C0ec+s w0et0er t0e speci'ied temperature is <alid. I' <alid, returns speci'ied temperature. .t0erwise t0rows an e*ception. !eturns molecular weig0t o' product. !eturns gas constant in desired unit ?applica5le 'or gaseous species@.

Number checkT(double t, String unit)

Number getM() Number getR(String unit)

Number getCp(String unit)

unit - specific !eturns speci'ic 0eat or molar 0eat heat unit (one of capasity at assigned temperature and "J/(kg K)", "kJ/(kg constant pressure in desired unit. K)", "Btu/(lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)") t - temperatur !eturns speci'ic 0eat or molar 0eat capasity at speci'ied temperature and tunit - temperature constant pressure in desired unit. unit (one of "K", "F", "C") unit - specific heat unit (one of "J/(kg K)", "kJ/(kg K)", "Btu/(lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)")

Number getCp(Number t, String tunit, String unit)

Number getH(String unit)

unit - enthalpy !eturns speci'ic or molar ent0alpy at unit (one of assigned temperature in desired unit. "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm") t - temperatur tunit - temperature unit (one of "K", "F", "C") unit - enthalpy unit (one of "J/mol", "Btu/lb!eturns speci'ic or molar ent0alpy at speci'ied temperature in desired unit.

Number getH(Number t, String tunit, String unit)

-4

Rocket Propulsion Analysis v.2.1

,unction

!arameters mol", "J/kg", "kJ/kg", "Btu/lbm")

)escription

Number getS(String unit)

unit - entropy unit !eturns speci'ic or molar entropy at (one of "J/(mol assigned temperature in desired unit. K)", "Btu/(lb-mol R)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)") t - temperatur tunit - temperature unit (one of "K", "F", "C") unit - entropy unit (one of "J/(mol K)", "Btu/(lb-mol R)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)") !eturns speci'ic or molar entropy at speci'ied temperature in desired unit.

Number getS(Number t, String tunit, String unit)

Number getG(String unit)

unit - Gibbs energy !eturns Gi55s energy at assigned unit (one of temperature in desired unit. "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm") t - temperatur tunit - temperature unit (one of "K", "F", "C") unit - Gibbs energy unit (one of "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm") !eturns Gi55s energy at speci'ied temperature in desired unit.

Number getG(Number t, String tunit, String unit)

"b8ect $eaction
,unction !arameters )escription Constructor. Creates !eaction o5Aect, using speci'ied "ropellant or Mi*ture o5Aect. I' multip0ase 'lag is true, p0ase transitions e''ects are considered. I' ioni7ation 'lag is true, ioni7ation e''ects are considered. #ssigns pressure. Reaction(Object p, Boolean p - Propellant or multiphase, Boolean ionization) Mixture object multiphase multiphase flag ionization ionization flag setP(Number p, String unit) p - pressure

-:

Rocket Propulsion Analysis v.2.1

,unction

!arameters pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa")

)escription

getP(String unit)

pressure unit (one !eturns assigned pressure. of "Pa", "psi", "atm", "bar", "at", "MPa") t - temperature unit - temperature unit (one of "K", "F", "C") setIsothermal isothermal flag #ssigns initial temperature. I' isot0ermal 'lag, t0e sol<ing reaction pro5lem is switc0ed to type ?p,9@Nconst.

setT(Number t, String unit, Boolean setIsothermal)

setH(Number h, String unit)

h - enthalpy unit - enthalpy unit (one of "J/mol", "Btu/lbmol", "kJ/mol")

#ssigns initial molar ent0alpy and switc0es t0e sol<ing reaction pro5lem to type ?p,;@Nconst.

setS(Number s, String unit)

s - enropy unit (one K)", R)", - enropy unit of "J/(mol "Btu/(lb-mol "kJ/(mol K)")

#ssigns initial molar enropy and switc0es t0e sol<ing reaction pro5lem to type ?p,$@Nconst.

solve(Boolean startWithCondensed)

startWithCondensed flag; if not specified default value is false.

$ol<es t0e prepared pro5lem. In some cases t0e pro5lem does not con<erge 5ecause condensed species not included 5e'ore 'irst iteration. 9o sol<e suc0 a pro5lems, set start(it0Condensed to true. !eset t0e pro5lem 5e'ore repeating t0e sol<ing. In some cases t0e pro5lem does not con<erge 5ecause condensed species not included 5e'ore 'irst iteration. 9o sol<e suc0 a pro5lems, set start(it0Condensed to true. !eturns t0e temperature o' reaction.

reset(Boolean startWithCondensed)

startWithCondensed flag; if not specified default value is false.

getT(String unit)

temperature unit (one of "K", "F", "C") enthalpy unit (one of "J/mol", "Btu/lb-mol", "J/kg", "kJ/kg", "Btu/lbm")

getH(String unit)

!eturns speci'ic or molar ent0alpy o' reaction products.

Rocket Propulsion Analysis v.2.1

,unction getS(String unit)

!arameters

)escription

entropy unit (one !eturns speci'ic or molar entropy o' of "J/(mol K)", reaction products. "Btu/(lb-mol R)", "J/(kg K)", "kJ/(kg K)", "Btu/(lbm R)") !eturns true i' reaction products contains condensed species. !eturns Mi*ture o5Aect, containing all products o' reaction. 6ote t0at 'unction Mi*ture.get$pecies?@ actually returns "roduct o5Aect. desired units (one of "SI" or "US") "rint out t0e in'ormation a5out pro5lem results.

Boolean hasCondensedPhase() Object getResultingMixture()

print(String units)

"b8ect )eri.ati.es
,unction Derivatives(Object r) !arameters Reaction object )escription Constructor. Creates new o5Aect 3eri<ati<es 'or gi<en !eaction o5Aect. Constructor. Creates new o5Aect 3eri<ati<es 'or gi<en !eaction o5Aect. !eturns speci'ic 0eat or molar 0eat capasity o' reaction products at constant pressure in desired unit.

Derivatives(Object r)

Reaction object

Number getCp(String unit)

specific heat unit (one of "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)") specific heat unit (one of "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)") gas constant unit (one of "J/(mol K)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lb-mol R)", "Btu/ (lbm R)")

Number getCv(String unit)

!eturns speci'ic 0eat or molar 0eat capasity o' reaction products at constant <olume in desired unit.

Number getR(String unit)

!eturns gas constant o' reaction products in desired unit.

Number getK()

!eturns isentropic e*ponent o' reaction products.

-&

Rocket Propulsion Analysis v.2.1

,unction Number getGamma() Number getA(String unit) Number getRho(String unit)

!arameters

)escription !eturns speci'ic 0eat ratio o' reaction products.

velocity unit (one of "m/s" or "ft/s") density unit (one of "kg/m^3", "g/m^3" or "lbm/ft^3") density unit (one of "kg/m^3", "g/m^3" or "lbm/ft^3")

!eturns <elocity o' sound in desired unit. !eturns density o' reaction products in desired unit.

Number getRhoGas(String unit)

!eturns density o' gaseous reaction products in desired unit.

Number getZ() Number getM() print(String units) desired units (one of "SI" or "US")

!eturns mass 'raction o' condensed reaction products. !eturns molecular weig0t o' reaction products. "rints out t0e in'ormation deri<ati<e properties.

!erformance A!I
"er'ormance #"I is indented 'or running typical roc+et propulsion pro5lems and o5taining per'ormance parameters.

"b8ect C&amber
,unction !arameters )escription Constructor. Creates C0am5er o5Aect, using speci'ied "ropellant or Mi*ture o5Aect. I' multip0ase 'lag is true, p0ase transitions e''ects are considered. I' ioni7ation 'lag is true, ioni7ation e''ects are considered. setP(Number p, String unit) p - pressure pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") setFcr(Number f) area ratio #ssigns com5ustion c0am5er pressure. Chamber(Object p, Boolean p - Propellant or multiphase, Boolean ionization) Mixture object multiphase multiphase flag ionization ionization flag

#ssigns no77le inlet contraction area ratio ?#G#t@.

--

Rocket Propulsion Analysis v.2.1

,unction setMr(Number m, String unit)

!arameters m - mass flux unit - mass flux unit (one of "kg/ (m2s)", "kg/(m2s)", "kg/(sm2)", "kg/(s-m2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)")

)escription #ssigns com5ustion c0am5er mass 'lu*.

solve(Boolean finiteChamberSection, Boolean startWithCondensed) Number getFcr() Number getMr(String unit) mass flux unit (one of "kg/(m2s)", "kg/(m2-s)", "kg/ (sm2)", "kg/(sm2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)") pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa")

$ol<e t0e pro5lem.

!eturns no77le inlet contraction area ratio ?#G#t@. !eturns com5ustion c0am5er mass 'lu* in desired unit.

Number getPc_0(String unit)

!eturns stagnation pressure at no77le inlet in desired unit.

Number getSigmaC() Number getWc(String unit) velocity unit (one of "m/s" or "ft/s") velocity unit (one of "m/s" or "ft/s") chamber station: 0 or "inj" injector 1 or "inl" - nozzle inlet (combustion chamber end) 2 or "thr" - nozzle throat chamber station: 0 or "inj" injector 1 or "inl" - nozzle inlet (combustion

!eturns stagnation pressure drop coe''icient. !eturns <elocity at no77le inlet ?com5ustion c0am5er end@ in desired unit. !eturns c0am5er c0aracteristic <elocity in desired unit. !eturns !eaction o5Aect 'or speci'ied station.

Number getCstar(String unit) Object getReaction(Number station) Object getReaction(String station)

Object getDerivatives(Number station) Object getDerivatives(String station)

!eturns 3eri<ati<es o5Aect 'or speci'ied station.

-8

Rocket Propulsion Analysis v.2.1

,unction

!arameters chamber end) 2 or "thr" - nozzle throat

)escription

"b8ect -o33leSectionConditions
,unction NozzleSectionConditions(Object c, Number p, String ptype) NozzleSectionConditions(Object c, Number p, Number ptype) !arameters c - Chamber p - parameter )escription Constructor. Creates 6o77le$ectionConditions o5Aect, using speci'ied C0am5er o5Aect.

ptype - type of parameter: "arameter de'ines t0e no77le station. 0, "A/At" or "A/A*" - parameter is area ratio 1 or "p" parameter is pressure (Pa) 2, "pc/p" or "pi" parameter is pressure ratio.

Number getFr() Number getPi() Number getP(String unit)

!eturns e*pansion area ratio ?#G#t@ at no77le section. !eturns pressure ratio ?pGpc@ at no77le section. pressure unit (one !eturns pressure at no77le section in of "Pa", "psi", desired unit. "atm", "bar", "at", "MPa") velocity unit (one !eturns <elocity at no77le section in of "m/s" or "ft/s") desired unit. !eturns Mac0 num5er at no77le section. mass flux unit (one !eturns mass 'lu* at no77le section in of "kg/(m2s)", desired unit. "kg/(m2-s)", "kg/ (sm2)", "kg/(sm2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)") specific impulse unit (one of "s", "m/s" or "ft/s") specific impulse unit (one of "s", !eturns <acuum speci'ic impulse in desired unit. !eturns optimum e*pansion speci'ic impulse in desired unit.

Number getW(String unit) Number getMach() Number getMr(String unit)

Number getIs_v(String unit)

Number getIs(String unit)

80

Rocket Propulsion Analysis v.2.1

,unction

!arameters "m/s" or "ft/s")

)escription

Number getIs_H(Number p, String p - ambient !eturns e*pansion speci'ic impulse at punit, String unit) pressure speci'ied am5ient pressure in desired punit - pressure unit. unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") unit - specific impulse unit (one of "s", "m/s" or "ft/s") Number getCf_v() Number getCf() !eturns <acuum t0rust coe''icient. !eturns optimum e*pansion t0rust coe''icient.

Number getCf_H(Number p, String p - ambient !eturns t0rust coe''icient at speci'ied punit) pressure am5ient pressure . punit - pressure unit (one of "Pa", "psi", "atm", "bar", "at", "MPa") Object getReaction() Object getDerivatives() !eturns !eaction o5Aect 'or t0is no77le station. !eturns 3eri<ati<es o5Aect 'or t0is no77le station.

"b8ect C&amber,r
,unction ChamberFr(Object c, Number p, String ptype) ChamberFr(Object c, Number p, Number ptype) !arameters c - Propellant or Mixture object p - parameter )escription Constructor. Creates C0am5er o5Aect, using speci'ied "ropellant or Mi*ture o5Aect.

ptype - type of "arameter de'ines t0e no77le station parameter: w0ere 'ro7en e%uili5rium model is 0, "A/At" or "A/A*" applied. - parameter is area ratio 1 or "p" parameter is pressure (Pa) 2, "pc/p" or "pi" parameter is pressure ratio. setP(Number p, String unit) p - pressure pressure unit (one of "Pa", "psi", "atm", "bar", "at", #ssigns com5ustion c0am5er pressure.

81

Rocket Propulsion Analysis v.2.1

,unction setFcr(Number f) setMr(Number m, String unit)

!arameters "MPa") area ratio m - mass flux unit - mass flux unit (one of "kg/ (m2s)", "kg/(m2s)", "kg/(sm2)", "kg/(s-m2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)")

)escription #ssigns no77le inlet contraction area ratio ?#G#t@. #ssigns com5ustion c0am5er mass 'lu*.

solve(Boolean finiteChamberSection, Boolean startWithCondensed) Object getEquilibriumSection()

$ol<e t0e pro5lem.

!eturns 6o77le$ectionConditions o5Aect 'or t0e no77le station w0ere s0i'ting e%uili5rium model is switc0ed to 'ro7en model. !eturns no77le inlet contraction area ratio ?#G#t@. mass flux unit (one !eturns com5ustion c0am5er mass of "kg/(m2s)", 'lu* in desired unit. "kg/(m2-s)", "kg/ (sm2)", "kg/(sm2)", "lbm/ (ft2s)", "lbm/ (ft2-s)", "lbm/ (sft2)", "lbm/(sft2)") pressure unit (one !eturns stagnation pressure at no77le of "Pa", "psi", inlet in desired unit. "atm", "bar", "at", "MPa") !eturns stagnation pressure drop coe''icient. velocity unit (one !eturns <elocity at no77le inlet of "m/s" or "ft/s") ?com5ustion c0am5er end@ in desired unit. velocity unit (one !eturns c0am5er c0aracteristic of "m/s" or "ft/s") <elocity in desired unit. chamber station: !eturns !eaction o5Aect 'or speci'ied 0 or "inj" station. injector 1 or "inl" - nozzle inlet (combustion

Number getFcr() Number getMr(String unit)

Number getPc_0(String unit)

Number getSigmaC() Number getWc(String unit)

Number getCstar(String unit) Object getReaction(Number station) Object getReaction(String station)

82

Rocket Propulsion Analysis v.2.1

,unction

!arameters chamber end) 2 or "thr" - nozzle throat

)escription

Object getDerivatives(Number station) Object getDerivatives(String station)

chamber station: !eturns 3eri<ati<es o5Aect 'or speci'ied 0 or "inj" station. injector 1 or "inl" - nozzle inlet (combustion chamber end) 2 or "thr" - nozzle throat

"b8ect -o33leSectionConditions,r
,unction NozzleSectionConditionsFr(Objec t c, Number p, String ptype) NozzleSectionConditionsFr(Objec t c, Number p, Number ptype) !arameters c - ChamberFr object p - parameter )escription Constructor. Creates 6o77le$ectionConditions1r o5Aect, using speci'ied C0am5er1r o5Aect.

ptype - type of parameter: "arameter de'ines t0e no77le station. 0, "A/At" or "A/A*" - parameter is area ratio 1 or "p" parameter is pressure (Pa) 2, "pc/p" or "pi" parameter is pressure ratio. Number getT(String unit) temperature unit (one of "K", "F", "C") !eturns temperature o' reaction products in desired unit.

Number getH(String unit)

unit - enthalpy !eturns speci'ic or molar ent0alpy o' unit (one of reaction products in desired unit. "J/mol", "Btu/lbmol", "J/kg", "kJ/kg", "Btu/lbm") unit - entropy unit !eturns speci'ic or molar entropy o' (one of "J/(mol reaction products in desired unit. K)", "Btu/(lb-mol R)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lbm R)") specific heat unit !eturns speci'ic 0eat or molar 0eat (one of "J/(kg K)", capasity o' reaction products at "kJ/(kg K)", "Btu/ constant pressure in desired unit. (lbm R)") or molar heat

Number getS(String unit)

Number getCp(String unit)

83

Rocket Propulsion Analysis v.2.1

,unction

!arameters capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)")

)escription

Number getCv(String unit)

specific heat unit !eturns speci'ic 0eat or molar 0eat (one of "J/(kg K)", capasity o' reaction products at "kJ/(kg K)", "Btu/ constant <olume in desired unit. (lbm R)") or molar heat capasity unit (one of "J/(mol K)", "Btu/(lb-mol R)") gas constant unit (one of "J/(mol K)", "J/(kg K)", "kJ/(kg K)", "Btu/ (lb-mol R)", "Btu/ (lbm R)") !eturns gas constant o' reaction products in desired unit.

Number getR(String unit)

Number getK() Number getA(String unit) Number getRho(String unit)

!eturns isentropic e*ponent o' reaction products. velocity unit (one !eturns <elocity o' sound in desired of "m/s" or "ft/s") unit. density unit (one of "kg/m^3", "g/m^3" or "lbm/ft^3") !eturns density o' reaction products in desired unit.

Number getM()

!eturns molecular weig0t o' reaction products.

"b8ect !erformance
,unction Performance(Object c) !arameters ConfigFile object )escription Constructor. Creates "er'ormance o5Aect, using speci'ied Con'ig1ile o5Aect. "repares t0e o5Aect 'or restart. $ol<es t0e con'igured pro5lem. Calculates t0e optimum component ratio and sol<es t0e pro5lem using 'ound ratio, returning it. left - low value of oxidizer excess coefficient right - high value of oxidizer excess coefficient Calculates t0e optimum component ratio and sol<es t0e pro5lem using 'ound ratio, returning it. "arameters de'ine t0e range o' component ratio.

clearForRestart() solve() Number optimizeForSpecificImpulse() Number optimizeForSpecificImpulse(Numb er left, Number right)

Boolean isOptimized()

!eturns true i' solution is 'ound as result o' optimi7ation.

84

Rocket Propulsion Analysis v.2.1

,unction Object getPropellant() Object getMixture() Object getData() Object getChamber()

!arameters

)escription !eturns "ropellant o5Aect. !eturns Mi*ture o5Aect. !eturns assigned Con'ig1ile o5Aect. !eturns C0am5er o5Aect. .nly applica5le 'or pro5lems, w0ere no77le 'low is sol<ed. !eturns 6o77le$ectionConditions or 6o77le$ectionConditions1r o5Aect. .nly applica5le 'or pro5lems, w0ere no77le 'low is sol<ed. !eturns 6o77le$ectionConditions or 6o77le$ectionConditions1r o5Aect, t0at represent t0e no77le station w0ere 'low separation occurs. .nly applica5le 'or pro5lems, w0ere no77le 'low is sol<ed. !eturns critical am5ient pressure. .nly applica5le 'or pro5lems, w0ere no77le 'low is sol<ed. !eturns 6o77le$ectionConditions or 6o77le$ectionConditions1r o5Aect 'or speci'ied conditions. .nly applica5le 'or pro5lems, w0ere no77le 'low is sol<ed. !eturns !eaction o5Aect. .nly applica5le 'or pro5lems, w0ere no77le 'low is not sol<ed.

Object getExitSection()

Object getOverExpansionSection()

Number getPaCrit()

Object solveNozzleSection(Number condition, String type, Boolean checkForFreezing, Boolean checkForOverexpansion, Number pa, String paunit) Object getReaction()

Object getDerivatives()

chamber station: !eturns 3eri<ati<es o5Aect. 0 or "inj" .nly applica5le 'or pro5lems, w0ere injector no77le 'low is not sol<ed. 1 or "inl" - nozzle inlet (combustion chamber end) 2 or "thr" - nozzle throat "rints results 0eader. desired units (one of "SI" or "US") "rints out results.

printHeader() printResults(String units)

Scripting examples
!erformance + *xample 9
/***************************************************

8:

Rocket Propulsion Analysis v.2.1

RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. performance1.js This script loads existing configuration file, solves the performance problem and prints out the results. ****************************************************/ // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration. p = Performance(c); // Solve the problem p.solve(); // Print out the results in SI units (default). p.printResults();

!erformance + *xample :
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. performance2.js This script loads existing configuration file, solves the performance problem and prints out the combustion parameters for each station "injector", "nozzle inlet", "nozzle throat" and "nozzle exit" separately. ****************************************************/ // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration. p = Performance(c);

Rocket Propulsion Analysis v.2.1

// Solve the problem. p.solve(); // Get the combustion chamber object. chamber = p.getChamber(); // Get objects Reaction and Derivatives for injector station (0). injector_r = chamber.getReaction(0); injector_d = chamber.getDerivatives(0); // Get objects Reaction and Derivatives for nozzle inlet station (1). nozzleInlet_r = chamber.getReaction(1); nozzleInlet_d = chamber.getDerivatives(1); // Get objects Reaction and Derivatives for nozzle throat station (2). throat_r = chamber.getReaction(2); throat_d = chamber.getDerivatives(2); // Get objects Reaction and Derivatives for nozzle exit station. nozzleExit_r = p.getNozzleExitSection().getReaction(); nozzleExit_d = p.getNozzleExitSection().getDerivatives(); // Print out the results in US units. print("***************************************************"); print("Injector"); print("***************************************************"); injector_r.print("US"); injector_d.print("US"); print("***************************************************"); print("Nozzle Inlet"); print("***************************************************"); nozzleInlet_r.print("US"); nozzleInlet_d.print("US"); print("***************************************************"); print("Nozzle Throat"); print("***************************************************"); throat_r.print("US"); throat_d.print("US"); print("***************************************************"); print("Nozzle Exit"); print("***************************************************"); nozzleExit_r.print("US"); nozzleExit_d.print("US");

!erformance + *xample ;

8&

Rocket Propulsion Analysis v.2.1

/***************************************************
RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. performance2.js This script loads existing configuration file, and runs a number of problems, replacing the pre-configured O/F ratio with values from array. ****************************************************/ load("resources/scripts/printf.js"); // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration. p = Performance(c); // Array of O/F weight ratios r = [2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1]; // Print out table header printf("#%4s %8s %8s %8s", "r", "Is_v,s", "Is_opt,s", "Is_sl,s"); // Solve the performance problem for each ratio in the array. for (i=0; i<r.length; ++i) { // Assign new O/F weight ratio, replacing pre-configured one. p.getPropellant().setRatio(r[i], "O/F"); // Solve the problem. p.solve(); // Print out current O/F weight ratio and calculated specific // impulse in vacuum, at optimum expansion, and at sea level. printf(" %4.2f %8.2f %8.2f %8.2f", p.getPropellant().getRatio("O/F"), p.getNozzleExitSection().getIs_v("s"), p.getNozzleExitSection().getIs("s"), p.getNozzleExitSection().getIs_H(1, "atm", "s") ); // Prepare the solver for restart. p.clearForRestart();

8-

Rocket Propulsion Analysis v.2.1

!erformance + *xample <


/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. performance4.js This script loads existing configuration file, solves the main problem to obtain chamber conditions, and then calculates the performance for nozzles with different expansion area ratio. ****************************************************/ load("resources/scripts/printf.js"); // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration, // and then solve the problem to get chamber/throat conditions. p = Performance(c); p.solve(); // Print out configured area ratio and corresponding vacuum // specific impulse print("#Configured A/At = "+p.getNozzleExitSection().getFr().toFixed(2)+" Is_v = "+p.getNozzleExitSection().getIs_v("m/s").toPrecision(7)+" m/s"); // Define an array with different expansion area ratios. // Note that area ratio 26.2 is equal to the pre-configured one for RD-275. r = [10, 20, 26.2, 40]; // Print out table header printf("#%5s %8s %8s %8s", "A/At", "Is_v,s", "Is_v,m/s", "Is,ft/s"); // Calculate performance for each area ratio in the array. for (i=0; i<r.length; ++i) { s = p.solveNozzleSection(r[i], "A/At"); // Print out current area ratio and calculated vacuum specific // impulse in s, m/s and ft/s. printf(" %5.2f %8.2f %8.2f %8.2f", r[i],

88

Rocket Propulsion Analysis v.2.1

); }

s.getIs_v("s"), s.getIs_v("m/s"), s.getIs_v("ft/s")

!erformance + *xample =
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. performance5.js ****************************************************/ load("resources/scripts/printf.js"); // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration, // and then solve the problem to get chamber/throat conditions. p = Performance(c); p.solve(); // Get the combustion chamber object. chamber = p.getChamber(); // Nozzle area ratios subsonic = [1.54, 1.35, 1.2, 1]; supersonic = [5, 10, 26.2, 50, 100]; printf("#%6s %5s %5s %8s", "A/At", "Mach", "p,MPa", "Is_v,s"); // For each subsonic nozzle section, print out A/At, Mach number, // and pressure for (i=0; i<subsonic.length; ++i) { s = NozzleSectionConditions(chamber, subsonic[i], "A/At", false); printf(" %6.2f %5.2f %5.2f", s.getFr(), s.getMach(), s.getP("MPa")); } // For each supersonic nozzle section, print out A/At, Mach number, // pressure, and vacuum specific impulse

100

Rocket Propulsion Analysis v.2.1

for (i=0; i<supersonic.length; ++i) { s = NozzleSectionConditions(chamber, supersonic[i], "A/At", true); printf(" %6.2f %5.2f %5.2f %8.2f", s.getFr(), s.getMach(), s.getP("MPa"), s.getIs_v("s")); }

!ropellant
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. propellant.js ****************************************************/ load("resources/scripts/printf.js"); prop = Propellant(); prop.setRatio(6.0, "O/F"); prop.addOxidizer("O2(L)"); // // // prop.addFuel("H2(L)", 0.8); // // prop.addFuel("RP-1", 0, "K", 3, Set O/F weight ratio Add oxidizer at it's normal temperature and atmospheric pressure Add 1st fuel component at it's normal temperature and atmospheric pressure "atm", 0.2); // Add 2nd fuel component at // it's normal temperature and // pressure 3 atm // The sum "H2(L) mass fraction" (0.8) + "RP-1 mass fraction" (0.2) must be equal to 1.0 chamber = Chamber(prop); chamber.setP(10, "MPa"); chamber.setFcr(3); chamber.solve(true); // Chamber pressure // Nozzle inlet contraction area ratio // finiteChamberSection=true

nozzleExit = NozzleSectionConditions(chamber, 40, "A/At", true); // Get objects Reaction and Derivatives for injector station (0). injector_r = chamber.getReaction(0); injector_d = chamber.getDerivatives(0); // Get objects Reaction and Derivatives for nozzle inlet station (1). nozzleInlet_r = chamber.getReaction(1); nozzleInlet_d = chamber.getDerivatives(1); // Get objects Reaction and Derivatives for nozzle throat station (2). throat_r = chamber.getReaction(2); throat_d = chamber.getDerivatives(2);

101

Rocket Propulsion Analysis v.2.1

// Get objects Reaction and Derivatives for nozzle exit. nozzleExit_r = nozzleExit.getReaction(); nozzleExit_d = nozzleExit.getDerivatives(); // Print out propellant information prop.print("US"); print("***************************************************"); print("Injector"); print("***************************************************"); injector_r.print("US"); injector_d.print("US"); print("***************************************************"); print("Nozzle Inlet"); print("***************************************************"); nozzleInlet_r.print("US"); nozzleInlet_d.print("US"); print("***************************************************"); print("Nozzle Throat"); print("***************************************************"); throat_r.print("US"); throat_d.print("US"); print("***************************************************"); print("Nozzle Exit"); print("***************************************************"); nozzleExit_r.print("US"); nozzleExit_d.print("US"); print("***************************************************"); print("Performance"); print("***************************************************"); printf(" Is_v=%8.2f s\n Is_opt=%8.2f s\n Is_sl=%8.2fs", nozzleExit.getIs_v("s"), nozzleExit.getIs("s"), nozzleExit.getIs_H(1, "atm", "s") );

Mixture
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions.

102

Rocket Propulsion Analysis v.2.1

mixture.js ****************************************************/ load("resources/scripts/printf.js"); mix = Mixture(); // Add 1st component at it's normal temperature mix.addSpecies("O2(L)", 0.8); // Add 2nd component at it's normal temperature mix.addSpecies("H2(L)", 0.02); // Add 3rd component at it's normal temperature mix.addSpecies("RP-1", 0, "K", 3, "atm", 0.15); // Add 4th component at it's normal temperature mix.addSpecies("AL(cr)", 0.03); // The sum // "O2(L) mass fraction" (0.8) + // "H2(L) mass fraction" (0.02) + // "RP-1 mass fraction" (0.15) + // "AL(cr) mass fraction" (0.03) // must be equal to 1.0 and atmospheric pressure and atmospheric pressure and pressure 3 atm and atmospheric pressure

chamber = Chamber(mix); chamber.setP(10, "MPa"); // Chamber pressure chamber.setFcr(3); // Nozzle inlet contraction area ratio chamber.solve(true); // finiteChamberSection=true nozzleExit = NozzleSectionConditions(chamber, 40, "A/At", true); // Get objects Reaction and Derivatives for injector station (0). injector_r = chamber.getReaction(0); injector_d = chamber.getDerivatives(0); // Get objects Reaction and Derivatives for nozzle inlet station (1). nozzleInlet_r = chamber.getReaction(1); nozzleInlet_d = chamber.getDerivatives(1); // Get objects Reaction and Derivatives for nozzle throat station (2). throat_r = chamber.getReaction(2); throat_d = chamber.getDerivatives(2); // Get objects Reaction and Derivatives for nozzle exit. nozzleExit_r = nozzleExit.getReaction(); nozzleExit_d = nozzleExit.getDerivatives(); // Print out propellant information mix.print("US"); print("***************************************************"); print("Injector");

103

Rocket Propulsion Analysis v.2.1

print("***************************************************"); injector_r.print("US"); injector_d.print("US"); print("***************************************************"); print("Nozzle Inlet"); print("***************************************************"); nozzleInlet_r.print("US"); nozzleInlet_d.print("US"); print("***************************************************"); print("Nozzle Throat"); print("***************************************************"); throat_r.print("US"); throat_d.print("US"); print("***************************************************"); print("Nozzle Exit"); print("***************************************************"); nozzleExit_r.print("US"); nozzleExit_d.print("US"); print("***************************************************"); print("Performance"); print("***************************************************"); printf(" Is_v=%8.2f s\n Is_opt=%8.2f s\n Is_sl=%8.2fs", nozzleExit.getIs_v("s"), nozzleExit.getIs("s"), nozzleExit.getIs_H(1, "atm", "s") );

$eaction
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. reaction.js ****************************************************/ prop = Propellant(); prop.setRatio(6.0, "O/F"); prop.addOxidizer("O2(L)"); prop.addFuel("H2(L)", 0.8); // // // // // Set O/F weight ratio Add oxidizer at it's normal temperature and atmospheric pressure Add 1st fuel component at it's normal temperature and atmospheric pressure

104

Rocket Propulsion Analysis v.2.1

prop.addFuel("RP-1", 0, "K", 3, "atm", 0.2); // Add 2nd fuel component at // it's normal temperature and // pressure 3 atm // The sum "H2(L) mass fraction" (0.8) + "RP-1 mass fraction" (0.2) // must be equal to 1.0 // Print out propellant information prop.print("US"); print("***************************************************"); print("Problem (p,H)=const"); print("***************************************************"); r1 = Reaction(prop); r1.setP(10, "MPa"); r1.setH(prop.getH("Btu/lb-mol"), "Btu/lb-mol"); r1.solve(); d1 = Derivatives(r1); // Print out reaction information r1.print("US"); d1.print("US"); print("***************************************************"); print("Problem (p,T)=const"); print("***************************************************"); r2 = Reaction(prop); r2.setP(10, "MPa"); r2.setT(6062.38174, "F", true); r2.solve(); d2 = Derivatives(r2); // Print out reaction information r2.print("US"); d2.print("US"); print("***************************************************"); print("Problem (p,S)=const"); print("***************************************************"); r3 = Reaction(prop); r3.setP(10, "MPa"); r3.setS(0.050, "Btu/(lb-mol R)"); r3.solve(); d3 = Derivatives(r3);

// Set "true" to switch to // isothermal problem

10:

Rocket Propulsion Analysis v.2.1

// Print out reaction information r3.print("US"); d3.print("US");

$eaction !roducts
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. reaction.js ****************************************************/ load("resources/scripts/printf.js"); prop = Propellant(); prop.setRatio(6.0, "O/F"); prop.addOxidizer("O2(L)"); prop.addFuel("H2(L)"); // // // // // Set O/F weight ratio Add oxidizer at it's normal temperature and atmospheric pressure Add fuel at it's normal temperature and atmospheric pressure

// Print out propellant information prop.print("US"); r = Reaction(prop); r.setP(10, "MPa"); r.setH(prop.getH("J/mol"), "J/mol"); r.solve(); d = Derivatives(r); products = r.getResultingMixture(); // Reaction products total number of moles // The absolute number does not matter, and only used // for calculation of mole fraction totalMoles = 0; for (i=0; i<products.size(); ++i) { totalMoles += products.getSpecies(i).getN(); } // Reaction products total mass (kg) // The absolute number does not matter, and only used // for calculation of mass fraction totalMass = totalMoles*d.getM()/1000;

10

Rocket Propulsion Analysis v.2.1

printf("%15s %9s %9s %4s", "Name", "Mass Frac", "Mole Frac", "Cond"); sum1 = 0; sum2 = 0; for (i=0; i<products.size(); ++i) { // Reaction product s = products.getSpecies(i); // Mass of reaction product (kg) // The absolute number does not matter, and only used // for calculation of mass fraction mass = s.getN()*s.getM()/1000; massFraction = mass/totalMass; moleFraction = s.getN()/totalMoles; sum1 += massFraction; sum2 += moleFraction; // We are printing out mass fraction in format "%9.7f", // so skip all products with massFraction<1e-7 if (massFraction<1e-7) { continue; } printf( "%15s %9.7f %9.7f %4d", s.getName(), massFraction, moleFraction, s.getCondensed() ); } printf( "%15s %9.7f %9.7f", "Summ:", sum1, sum2 );

Frozen Equilibrium
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need

10&

Rocket Propulsion Analysis v.2.1

additional information or have any questions. frozen.js ****************************************************/ load("resources/scripts/printf.js"); prop = Propellant(); prop.setRatio(6.0, "O/F"); prop.addOxidizer("O2(L)"); atmospheric pressure prop.addFuel("H2(L)"); // Set O/F weight ratio // Add oxidizer at it's normal temperature and // Add fuel at it's normal temperature and // atmospheric pressure

// Define chamber to calculate performance with frozen equilibrium flow, // specifying nozzle area ratio where shifting equilibrium model // switched to frozen one chamber = ChamberFr(prop, true, true, 10, "A/At"); chamber.setP(10, "MPa"); // Chamber pressure chamber.setFcr(3); // Nozzle inlet contraction area ratio chamber.solve(true); // finiteChamberSection=true // Get nozzle area ratio where shifting equilibrium // model switched to frozen one frozenAt = chamber.getEquilibriumSection().getFr(); // Define an array with different expansion area ratios. r = [2, 5, 10, 20, 26.2, 40]; // Print out table header printf("#%5s %8s %8s %8s", "A/At", "Is_v,s", "Is_v,m/s", "Is,ft/s"); // Calculate performance for each area ratio in the array. for (i=0; i<r.length; ++i) { s = r[i]>frozenAt ? NozzleSectionConditionsFr(chamber, r[i], "A/At", true) : NozzleSectionConditions(chamber, r[i], "A/At", true); // Print out current area ratio and calculated vacuum // specific impulse in s, m/s and ft/s. printf(" %5.2f %8.2f %8.2f %8.2f", r[i], s.getIs_v("s"), s.getIs_v("m/s"), s.getIs_v("ft/s") ); }

10-

Rocket Propulsion Analysis v.2.1

-ested Analysis
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. nested_analysis1.js ****************************************************/ load("resources/scripts/printf.js"); // Load configuration file "examples/RD-275.cfg". c = ConfigFile("examples/RD-275.cfg"); c.read(); // Create Performance object, initializing it with loaded configuration. p = Performance(c); // Array of O/F weight ratios r = [2.5, 2.6, 2.7, 2.8, 2.9, 3.0, 3.1]; // Define an array with different expansion area ratios. a = [10, 20, 30, 40]; // Print out table header printf("#%4s %5s %8s %8s %8s", "r", "A/At", "Is_v,s", "Is_opt,s", "Is_sl,s"); // Solve the performance problem for each ratio in the array. for (i=0; i<r.length; ++i) { // Assign new O/F weight ratio, replacing pre-configured one. p.getPropellant().setRatio(r[i], "O/F"); // Solve the combustion problem for given O/F ratio. p.solve(); // Calculate performamce for each area ratio in the array. for (j=0; j<a.length; ++j) { s = p.solveNozzleSection(a[j], "A/At"); // Print out current O/F weight ratio and calculated specific // impulse in vacuum, at optimum expansion, and at sea level. printf(" %4.2f %5.2f %8.2f %8.2f %8.2f", r[i], a[j], s.getIs_v("s"), s.getIs("s"),

108

Rocket Propulsion Analysis v.2.1

); }

s.getIs_H(1, "atm", "s")

// Prepare the solver for restart. p.clearForRestart(); }

!ropellant Analysis
/*************************************************** RPA - Tool for Rocket Propulsion Analysis Copyright 2009-2011 Alexander Ponomarenko Please contact author <contact@lpre.de> or visit http://www.propulsion-analysis.com if you need additional information or have any questions. propellant_analysis.js ****************************************************/ load("resources/scripts/printf.js"); mix = Mixture(); mix.addSpecies("O2(L)", 0.8); // Add 1st component at it's normal // temperature and atmospheric pressure mix.addSpecies("H2(L)", 0.15); // Add 2nd component at it's normal // temperature and atmospheric pressure mix.addSpecies("RP-1", 0, "K", 3, "atm", 0.03); // Add 3rd component at // it's normal temperature // and pressure 3 atm mix.addSpecies("AL(cr)", 0.02); // Add 4th component at it's // normal temperature and atmospheric // pressure // Total mass fraction of components #2 (RP-1) and #3 (AL(cr)) sf = mix.getFraction(2) + mix.getFraction(3); // Array with different values of AL(cr) mass fraction m = Array(); for (i=0; i<=1.0; i+=0.2) { m[m.length] = sf*i; } // Print out table header printf("#%6s %6s %8s %8s %8s", "RP-1", "AL(cr)", "Is_v,s", "Is_opt,s", "Is_sl,s"); for (i=0; i<m.length; ++i) {

110

Rocket Propulsion Analysis v.2.1

// Change mas fractions of components #2 (RP-1) and #3 (AL(cr)) mix.setFraction(2, sf - m[i]); mix.setFraction(3, m[i]); chamber = Chamber(mix); chamber.setP(10, "MPa"); chamber.setFcr(3); chamber.solve(true); // Chamber pressure // Nozzle inlet contraction area ratio // finiteChamberSection=true

nozzleExit = NozzleSectionConditions(chamber, 40, "A/At", true); printf(" %6.3f %6.3f %8.2f %8.2f %8.2f", mix.getFraction(2), mix.getFraction(3), nozzleExit.getIs_v("s"), nozzleExit.getIs("s"), nozzleExit.getIs_H(1, "atm", "s") ); }

111

Вам также может понравиться