.. models Models ====== In **RocketIsp** there are 5 objects that work together to model a liquid propellant rocket thruster:: 1) Geometry - Holds all the major thrust chamber geometry values 2) Efficiencies - Holds all of the thrust chamber efficiencies 3) CoreStream - Models combustion gas stream tubes (both core and barrier) 4) Injector - Models injector physical features and calculates injector efficiencies 5) RocketThruster - Models the overall thruster Isp, thrust, mixture ratio, etc. .. note:: The Injector object is often omitted from an analysis when the details of the injector are not known. Simply assuming an injector efficiency of 98 or 99 percent is usually representative of a modern injector. Geometry -------- The Geometry object holds all the major thrust chamber geometry values. The code snippet below shows how to create a Geometry object, and the definition of all the parameters. See the diagram below the parameter definitions for the physical location of the parameters on the thruster. .. note:: Note that many of the parameters are dimensionless, such that if the throat radius (Rthrt) is changed, the rest of the geometry will scale appropriately. .. code-block:: python from rocketisp.geometry import Geometry G = Geometry( Rthrt=1, CR=2.5, eps=20, pcentBell=80, LnozInp=None, RupThroat=1.5, RdwnThroat=1.0, RchmConv=1.0, cham_conv_deg=30, LchmOvrDt=3.0, LchmMin=1.0, LchamberInp=None) .. raw:: html
Rthrt (float) -- in, throat radius
CR (float) -- chamber contraction ratio (Ainj / Athroat)
eps (float) -- nozzle area ratio (Aexit / Athroat)
pcentBell (float) -- nozzle percent bell (Lnoz / L_15deg_cone)
LnozInp (float) -- in, user input nozzle length (will override pcentBell)
RupThroat (float) -- radius of curvature just upstream of throat (Rupstream / Rthrt)
RdwnThroat (float) -- radius of curvature just downstream of throat (Rdownstream / Rthrt)
RchmConv (float) -- radius of curvature at start of convergent section (Rconv / Rthrt)
cham_conv_deg (float) -- deg, half angle of conical convergent section
LchmOvrDt (float) -- ratio of chamber length to throat diameter (Lcham / Dthrt)
LchmMin (float) -- in, minimum chamber length (will override LchmOvrDt)
LchamberInp (float) -- in, user input value of chamber length (will override all other entries)
geomObj (Geometry) -- Geometry that describes thruster
effObj (Efficiencies) -- Efficiencies object to hold individual efficiencies
oxName (str) -- name of oxidizer (e.g. N2O4, LOX)
fuelName (str) -- name of fuel (e.g. MMH, LH2)
MRcore (float) -- mixture ratio of core flow (ox flow rate / fuel flow rate)
Pc (float) -- psia, chamber pressure
CdThroat (float) -- Cd of throat (RocketThruster object may override if calc_CdThroat is True)
Pamb (float) -- psia, ambient pressure (for example sea level is 14.7 psia)
adjCstarODE (float) -- multiplier on NASA CEA code value of cstar ODE (default is 1.0)
adjIspIdeal (float) -- multiplier on NASA CEA code value of Isp ODE (default is 1.0)
pcentFFC (float) -- percent fuel film cooling (if > 0 then add BarrierStream)
ko (float) -- entrainment constant (passed to BarrierStream object, range from 0.03 to 0.06)
ignore_noz_sep (bool) -- flag to force nozzle flow separation to be ignored (USE WITH CAUTION)
coreObj (CoreStream) -- CoreStream object
injObj (Injector) -- Injector object (optional)
noz_regen_eps (float) -- regen cooled nozzle area ratio
pulse_sec (float) -- duration of pulsing engine (default = infinity)
pulse_quality (float) -- on a scale of 0.0 to 1.0, how good is engine at pulsing
isRegenCham (bool) -- flag to indicate chamber is regen cooled
calc_CdThroat (bool) -- flag to trigger calc_CdThroat
coreObj (CoreStream) -- CoreStream object
Tox (float) -- degR, temperature of oxidizer
Tfuel (float) -- degR, temperature of fuel
elemEm (float) -- intra-element Rupe mixing factor
fdPinjOx (float) -- fraction of Pc used as oxidizer injector pressure drop
fdPinjFuel (float) -- fraction of Pc used as fuel injector pressure drop
dpOxInp (None or float) -- input value of injector pressure drop for oxidizer (overrides fdPinjOx)
dpFuelInp (None or float) -- input value of injector pressure drop for fuel (overrides fdPinjFuel)
setNelementsBy (str) -- flag determines how to calculate number of elements ( "acoustics", "elem_density", "input")
elemDensInp (float) -- elem/in**2, input value for element density (setNelementsBy == "elem_density")
NelementsInp (float) -- input value for number of elements (setNelementsBy == "input")
OxOrfPerEl (float) -- number of oxidizer orifices per element
FuelOrfPerEl (float) -- number of fuel orifices per element
lolFuelElem (bool) -- flag for like-on-like fuel element (determines strouhal multiplier)
setAcousticFreqBy (str) -- flag indicating how to determnine design frequency. (can be "mode" or "freq")
desAcousMode (str or float) -- driving acoustic mode of injector OR acoustic mode multiplier (setNelementsBy=="acoustics" and setAcousticFreqBy=="mode")
desFreqInp (None or float) -- Hz, driving acoustic frequency of injector (sets D/V if setNelementsBy=="acoustics" and setAcousticFreqBy=="freq")
CdOxOrf (float) -- flow coefficient of oxidizer orifices
CdFuelOrf (float) -- flow coefficient of fuel orifices
dropCorrOx (float) -- oxidizer drop size multiplier
dropCorrFuel (float) -- fuel drop size multiplier
pcentFFC (float) -- percent fuel film cooling ( FFC flowrate / total fuel flowrate)
DorfMin (float) -- in, minimum orifice diameter (lower limit)
LfanOvDorfOx (float) -- fan length / oxidizer orifice diameter
LfanOvDorfFuel (float) -- fan length / fuel orifice diameter