Files
rocketry/src/engine/engineFieldInfo.js
2026-03-03 16:43:30 +00:00

513 lines
25 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// Per-field descriptions for the Engine Design page info popups.
// Each entry: { name, description, higher, lower }
export const ENGINE_FIELD_INFO = {
/* ── Thermodynamic Inputs ─────────────────────────────────────── */
p0: {
name: 'Chamber Pressure (p₀)',
description: 'Total stagnation pressure in the combustion chamber. One of the most critical design parameters — sets the thermodynamic cycle for the entire engine.',
higher: 'Higher Isp and CF, smaller throat for same flow — but heavier chamber walls and higher required feed pressure',
lower: 'Lighter structure and lower feed pressure — at the cost of performance and a larger throat',
},
T0: {
name: 'Adiabatic Flame Temperature (T₀)',
description: 'Total stagnation temperature of the combustion gases. Set primarily by propellant chemistry and O/F ratio; not a free design variable for real propellants.',
higher: 'Higher c* and Isp — but greater thermal loads demanding better cooling and higher-temperature materials',
lower: 'Reduced thermal stress and cooling requirements — at the cost of performance',
},
gamma: {
name: 'Ratio of Specific Heats (γ)',
description: 'Ratio of Cp to Cv for the combustion gas mixture. Governs how efficiently the gas expands through the nozzle.',
higher: 'Steeper isentropic expansion for a given ε — slightly higher CF',
lower: 'Flatter expansion profile; combustion products typically fall in the range γ ≈ 1.151.30',
},
R_gas: {
name: 'Specific Gas Constant (R)',
description: 'R = R_universal / M_molecular. Reflects the mean molecular weight of the combustion products. Linked to propellant chemistry.',
higher: 'Lower molecular weight gas → higher c* and Isp (e.g. hydrogen propellants)',
lower: 'Heavier exhaust gas → lower performance (e.g. storable propellants)',
},
mdot: {
name: 'Total Mass Flow Rate (ṁ)',
description: 'Total propellant flow through the engine. Combined with exhaust velocity it determines thrust. Sets the size of all flow-path components.',
higher: 'More thrust and a larger engine — greater propellant consumption',
lower: 'Smaller, lighter engine with lower thrust',
},
F_input: {
name: 'Thrust (F) — input',
description: 'Desired thrust level. Specify this instead of mass flow rate; the solver will derive ṁ from F, p₀, and nozzle conditions.',
higher: 'Larger engine, higher propellant consumption, greater structural loads',
lower: 'Smaller engine, lower propellant consumption',
},
OF: {
name: 'Oxidiser-to-Fuel Mass Ratio (O/F)',
description: 'Mass of oxidiser consumed per unit mass of fuel. Affects flame temperature, gas properties, and specific impulse. Peak Isp often occurs slightly fuel-rich.',
higher: 'More oxidiser-rich — can reduce peak temperature but may move away from optimum Isp',
lower: 'More fuel-rich — often closer to peak Isp; excess fuel reduces combustion temperature',
},
At_input: {
name: 'Throat Area (Aₜ) — input',
description: 'Cross-sectional area at the nozzle throat. You can specify it manually to override the solver, or leave it blank and let ṁ and p₀ determine it.',
higher: 'Higher flow capacity — needed for greater thrust or lower chamber pressure',
lower: 'Smaller throat — requires higher chamber pressure to sustain the same flow',
},
eps_input: {
name: 'Expansion Ratio (ε = Aₑ/Aₜ) — input',
description: 'Ratio of exit area to throat area. Controls how far the exhaust gas expands. The optimum ε matches exit pressure to ambient pressure for maximum efficiency.',
higher: 'More expansion, lower exit pressure, higher Isp — but a longer, heavier nozzle',
lower: 'Less expansion, shorter nozzle — under-expanded at altitude',
},
pa: {
name: 'Ambient Pressure (pₐ)',
description: 'Ambient back pressure at the nozzle exit plane. Used to compute the pressure thrust component and the optimum expansion ratio.',
higher: 'Greater back pressure reduces pressure thrust — lower effective Isp',
lower: 'Vacuum conditions maximise the pressure thrust term',
},
/* ── Combustion Chamber ───────────────────────────────────────── */
Lstar: {
name: 'Characteristic Chamber Length (L*)',
description: 'L* = V_chamber / A_throat. A geometric proxy for propellant residence time. Must be long enough for complete combustion — propellant-dependent.',
higher: 'Longer residence time, more complete combustion — but a heavier chamber',
lower: 'Shorter, lighter chamber — risk of incomplete combustion and acoustic instability',
},
contractionRatio: {
name: 'Contraction Ratio (Ac / At)',
description: 'Ratio of the chamber cross-section to the throat area. Determines chamber diameter for a given throat size.',
higher: 'Larger chamber relative to the throat — better flow uniformity, but heavier',
lower: 'More compact chamber — may cause flow maldistribution; typical range is 310',
},
convAngleDeg: {
name: 'Convergent Half-Angle',
description: 'Half-angle of the nozzle convergent section. Affects the length and pressure recovery of the converging part of the chamber.',
higher: 'Steeper convergence → shorter chamber — risk of flow separation or higher losses',
lower: 'Gentler convergence → smoother flow transition, but longer and heavier',
},
/* ── Nozzle ───────────────────────────────────────────────────── */
nozzleType: {
name: 'Nozzle Contour Type',
description: 'Conical nozzles are simple but have divergence losses. Bell (Rao) nozzles are contoured to straighten the flow, achieving ~99% efficiency at 80% of the equivalent conical length.',
higher: null,
lower: null,
},
divAngleDeg: {
name: 'Divergence Half-Angle (Conical)',
description: 'Half-angle of the conical nozzle diverging section. A divergence loss factor λ ≈ (1 + cos α) / 2 applies. Typical range: 1218°.',
higher: 'Shorter nozzle — but higher divergence losses reduce effective CF',
lower: 'Better axial momentum alignment, higher CF — but longer and heavier nozzle',
},
/* ── Injector ─────────────────────────────────────────────────── */
injectorType: {
name: 'Injector Element Type',
description: 'Determines the mixing and atomisation mechanism. Impinging doublets/triplets use jet impingement; coaxial elements rely on shear; pintles use an annular gap.',
higher: null,
lower: null,
},
injectorN: {
name: 'Number of Injector Elements (N)',
description: 'Total number of fuel/oxidiser element pairs on the injector face. More elements give finer atomisation and better mixing uniformity.',
higher: 'Finer spray, better mixing, more stable combustion — but more complex to manufacture',
lower: 'Simpler injector — risk of poor atomisation and combustion instability',
},
dpFraction: {
name: 'Pressure Drop Fraction (ΔP / p₀)',
description: 'Injector pressure drop as a fraction of chamber pressure. Acts as the primary stability margin — higher ΔP makes the injector less sensitive to combustion pressure oscillations.',
higher: 'Better atomisation and stability margin — requires higher tank/feed pressure',
lower: 'Reduces feed-system pressure requirement — risk of combustion instability',
},
Cd: {
name: 'Discharge Coefficient (Cd)',
description: 'Ratio of actual to ideal orifice mass flow. Accounts for vena contracta and flow path losses. Sharp-edged orifices typically have Cd ≈ 0.61; rounded inlets approach 0.850.95.',
higher: 'More efficient orifice → smaller hole needed for the same mass flow',
lower: 'More restricted flow → larger orifice required',
},
rhoFuel_inj: {
name: 'Fuel Density (ρ_f) — injector',
description: 'Liquid fuel density at injection conditions. Used alongside mass flow and jet velocity to size the fuel orifice area.',
higher: 'Denser fuel → smaller orifice diameter for the same mass flow',
lower: 'Less dense fuel → larger orifice required',
},
rhoOx_inj: {
name: 'Oxidiser Density (ρ_ox) — injector',
description: 'Liquid oxidiser density at injection conditions. Used to size the oxidiser orifice area.',
higher: 'Denser oxidiser → smaller orifice diameter',
lower: 'Less dense oxidiser → larger orifice',
},
/* ── Cooling ──────────────────────────────────────────────────── */
coolingMethod: {
name: 'Cooling Method',
description: 'Regenerative cooling circulates propellant through channels to absorb heat. Film cooling injects a thin fuel layer along the wall. Ablative liners sacrifice material. Uncooled engines are for very short burns.',
higher: null,
lower: null,
},
channelCount: {
name: 'Cooling Channel Count',
description: 'Number of regenerative cooling channels around the chamber and nozzle wall. More channels distribute heat pickup across more passages.',
higher: 'Better heat distribution, smaller per-channel flow area — more complex manufacture',
lower: 'Fewer, larger channels — simpler but each must handle more heat load',
},
filmFraction: {
name: 'Film Cooling Mass Fraction',
description: 'Fraction of total propellant flow injected as a film along the chamber walls to protect them from peak heat flux.',
higher: 'Better wall protection — but more unburned propellant reduces Isp',
lower: 'Less Isp penalty — risk of wall overheating at high heat flux',
},
/* ── Feed System ──────────────────────────────────────────────── */
feedType: {
name: 'Feed System Type',
description: 'Pressure-fed systems use pressurised tanks to push propellant to the chamber. Pump-fed systems use turbopumps for much higher chamber pressures at lower tank mass.',
higher: null,
lower: null,
},
feedFactor: {
name: 'Feed Pressure Factor',
description: 'Tank pressure as a multiple of chamber pressure for pressure-fed systems. Must be >1 to overcome injector ΔP and line losses. Typical range: 1.31.6.',
higher: 'More pressure margin — heavier tank walls and more pressurant required',
lower: 'Lighter system — less margin against feed-line or injector flow interruption',
},
rhoFuel_feed: {
name: 'Fuel Density (ρ_f) — feed system',
description: 'Bulk fuel density used to compute the fuel tank volume from the required fuel mass.',
higher: 'Denser fuel → smaller tank volume for the same mass',
lower: 'Less dense fuel → larger tank',
},
rhoOx_feed: {
name: 'Oxidiser Density (ρ_ox) — feed system',
description: 'Bulk oxidiser density used to compute the oxidiser tank volume.',
higher: 'Denser oxidiser → smaller tank volume',
lower: 'Less dense oxidiser → larger tank',
},
burnTime: {
name: 'Burn Time',
description: 'Total engine burn duration. Used to compute total propellant mass and volumes, and pressurant requirements.',
higher: 'More propellant, larger tanks, potentially more pressurant',
lower: 'Less propellant, smaller system — shorter mission or more stages',
},
/* ── Thermodynamic Results ────────────────────────────────────── */
At_result: {
name: 'Throat Area (Aₜ)',
description: 'Choked-flow cross-section that sets the engine mass flow capacity. The most thermally critical point in the nozzle.',
higher: 'Higher flow capacity for a given chamber pressure',
lower: 'Smaller, lighter throat — requires higher p₀ for the same ṁ',
},
Ae_result: {
name: 'Exit Area (Aₑ)',
description: 'Nozzle exit cross-section. Determined by ε × Aₜ. Sets nozzle bell diameter and integration envelope.',
higher: 'Larger exit for higher expansion ratio — heavier and harder to package',
lower: 'More compact nozzle exit — under-expanded at altitude',
},
eps_result: {
name: 'Expansion Ratio (ε)',
description: 'Aₑ / Aₜ. The optimum ε matches exit pressure to ambient for maximum thrust coefficient.',
higher: 'Better vacuum Isp — diminishing returns above ε ≈ 100',
lower: 'Shorter, lighter nozzle — better suited to sea-level operation',
},
Me_result: {
name: 'Exit Mach Number (Mₑ)',
description: 'Exhaust speed at the nozzle exit relative to the local sound speed. Indicates how fully the gas has expanded.',
higher: 'More complete expansion → higher Isp',
lower: 'Under-expanded — flow still has kinetic energy to give',
},
Te_result: {
name: 'Exit Temperature (Tₑ)',
description: 'Static temperature of the exhaust at the nozzle exit plane. Indicates how much thermal energy has been converted to kinetic energy.',
higher: 'More thermal energy remaining → less efficient conversion to velocity',
lower: 'More energy converted to exhaust velocity → higher Isp',
},
pe_result: {
name: 'Exit Pressure (pₑ)',
description: 'Static pressure at the nozzle exit. Ideally matches ambient pressure for maximum CF. Mismatch causes under- or over-expansion losses.',
higher: 'Under-expanded — nozzle too short; pressure thrust wasted',
lower: 'Over-expanded — risk of flow separation at sea level',
},
Ve_result: {
name: 'Exhaust Velocity (Vₑ)',
description: 'Actual gas velocity at the nozzle exit. Primary contributor to specific impulse (Isp ≈ Vₑ / g₀ for perfectly expanded nozzle).',
higher: 'Higher Isp and better propulsive efficiency',
lower: 'Lower performance — more propellant needed for the same Δv',
},
F_result: {
name: 'Thrust (F)',
description: 'Total thrust = momentum thrust + pressure thrust. F = ṁ·Vₑ + (pₑ pₐ)·Aₑ.',
higher: 'Faster vehicle acceleration or higher payload capability',
lower: 'Lower structural loads, easier integration',
},
Isp_result: {
name: 'Specific Impulse (Isp)',
description: 'Thrust per unit weight flow: Isp = F / (ṁ · g₀). The fundamental measure of propellant efficiency.',
higher: 'More Δv per kg of propellant — less propellant mass fraction needed',
lower: 'Less efficient — more propellant mass required for the same mission',
},
cstar_result: {
name: 'Characteristic Velocity (c*)',
description: 'c* = p₀ · Aₜ / ṁ. Measures combustion chamber performance independently of nozzle shape.',
higher: 'Better combustion efficiency or higher-energy propellants',
lower: 'Combustion inefficiency, off-design mixture ratio, or low-energy propellants',
},
CF_result: {
name: 'Thrust Coefficient (CF)',
description: 'Dimensionless nozzle efficiency factor: F = CF · p₀ · Aₜ. Combines expansion efficiency and pressure matching.',
higher: 'Better nozzle performance — closer to the optimum expansion condition',
lower: 'Under- or over-expansion losses, or flow separation in over-expanded nozzle',
},
mdot_f_result: {
name: 'Fuel Mass Flow Rate (ṁ_f)',
description: 'Fuel propellant consumption rate, derived from total ṁ and O/F: ṁ_f = ṁ / (1 + O/F).',
higher: 'More fuel consumption — larger fuel tank and feed system required',
lower: 'Less fuel flow — smaller fuel system',
},
mdot_ox_result: {
name: 'Oxidiser Mass Flow Rate (ṁ_ox)',
description: 'Oxidiser consumption rate: ṁ_ox = ṁ · O/F / (1 + O/F).',
higher: 'More oxidiser consumption — larger oxidiser tank required',
lower: 'Less oxidiser flow — smaller oxidiser system',
},
/* ── Chamber Geometry Results ─────────────────────────────────── */
Dc_result: {
name: 'Chamber Diameter (Dc)',
description: 'Inner diameter of the cylindrical combustion chamber. Determined by Dt × √(contraction ratio).',
higher: 'Larger chamber volume per unit length — can achieve the required L* in a shorter chamber',
lower: 'More compact chamber — requires greater axial length to reach the target L*',
},
Dt_result: {
name: 'Throat Diameter (Dt)',
description: 'Diameter of the nozzle throat. The most thermally and mechanically stressed location in the engine.',
higher: 'Higher mass flow capacity for the given chamber pressure',
lower: 'More concentrated heat flux at the throat — harder to cool',
},
contractionRatio_result: {
name: 'Contraction Ratio (Ac / At)',
description: 'Ratio of chamber cross-section to throat area. Determines how much the flow contracts before the throat.',
higher: 'Wider chamber relative to the throat — better flow uniformity',
lower: 'Tighter contraction — risk of flow distortion entering the throat',
},
Lc_result: {
name: 'Total Chamber Length (Lc)',
description: 'Combined axial length of the cylindrical and convergent chamber sections.',
higher: 'Longer chamber — more complete combustion, but heavier',
lower: 'Shorter, lighter chamber — may need a high-energy propellant to reach required L*',
},
L_cyl_result: {
name: 'Cylindrical Section Length',
description: 'Length of the straight cylindrical portion where most combustion occurs.',
higher: 'More mixing and dwell time in the cylindrical zone',
lower: 'Shorter cylinder — the convergent section supplies additional volume',
},
L_conv_result: {
name: 'Convergent Section Length',
description: 'Axial length of the nozzle convergent section from the cylindrical chamber to the throat.',
higher: 'Gentler convergence angle or wider chamber upstream',
lower: 'Steeper convergence — risk of flow separation or higher losses',
},
Vc_result: {
name: 'Chamber Volume (Vc)',
description: 'Total internal volume of the combustion chamber. Combined with throat area gives L* = Vc / At.',
higher: 'Greater residence time → more complete combustion',
lower: 'Shorter, lighter chamber — needs high-energy propellant for complete combustion',
},
/* ── Nozzle Geometry Results ──────────────────────────────────── */
De_result: {
name: 'Exit Diameter (De)',
description: 'Outer diameter of the nozzle exit plane. Sets the integration envelope for the nozzle.',
higher: 'Larger exit for higher expansion — heavier and harder to package',
lower: 'More compact nozzle — under-expanded at altitude, over-expanded at sea level',
},
Ln_result: {
name: 'Nozzle Length (Ln)',
description: 'Axial length of the diverging nozzle section from throat to exit plane.',
higher: 'More axial length needed for high expansion ratios — adds mass',
lower: 'Shorter nozzle — less expansion, but lighter and easier to integrate',
},
/* ── Injector Results ─────────────────────────────────────────── */
deltaP_result: {
name: 'Injector Pressure Drop (ΔP)',
description: 'Pressure difference across the injector face. A key stability parameter — typically 1530% of chamber pressure.',
higher: 'Better atomisation and stability margin — requires higher feed pressure',
lower: 'Reduced feed pressure requirement — risk of combustion instability',
},
v_f_result: {
name: 'Fuel Jet Velocity',
description: 'Velocity of the fuel stream as it exits the orifice. Higher velocity improves atomisation at impingement.',
higher: 'Better atomisation and mixing — finer spray droplets',
lower: 'Coarser spray — may need more injector elements to compensate',
},
v_ox_result: {
name: 'Oxidiser Jet Velocity',
description: 'Velocity of the oxidiser stream exiting the orifice.',
higher: 'Better atomisation — but higher pressure drop across the orifice',
lower: 'Coarser spray — may impair mixing quality',
},
d_f_result: {
name: 'Fuel Orifice Diameter',
description: 'Diameter of each individual fuel injector orifice. Sized from ṁ_f, Cd, ρ_f, and jet velocity.',
higher: 'Larger, easier-to-manufacture orifice — coarser atomisation',
lower: 'Finer spray — but more susceptible to clogging',
},
d_ox_result: {
name: 'Oxidiser Orifice Diameter',
description: 'Diameter of each oxidiser orifice. Sized from ṁ_ox, Cd, ρ_ox, and jet velocity.',
higher: 'Larger orifice — coarser oxidiser spray',
lower: 'Finer spray — tighter manufacturing tolerances required',
},
/* ── Cooling Results ──────────────────────────────────────────── */
q_est_result: {
name: 'Estimated Heat Flux (q″)',
description: 'Estimated peak heat flux at the throat region based on a simplified Bartz-style correlation.',
higher: 'More aggressive thermal environment — demands greater coolant flow or better channel geometry',
lower: 'Easier cooling problem — more design margin',
},
q_total_result: {
name: 'Total Heat Load',
description: 'Total heat power absorbed by the coolant, integrated over the chamber and nozzle surface area.',
higher: 'More coolant flow or a larger temperature rise in the coolant required',
lower: 'Easier to manage with available coolant flow',
},
channelCount_result: {
name: 'Cooling Channel Count',
description: 'Number of regenerative cooling channels (reflects the input setting).',
higher: 'Distributed heat pickup — less flow per channel',
lower: 'Fewer channels — each must carry more coolant',
},
channelArea_result: {
name: 'Cooling Channel Area (per channel)',
description: 'Cross-sectional flow area of each cooling channel. Determines coolant velocity and pressure drop.',
higher: 'Lower coolant velocity — lower pressure drop but less turbulent heat transfer',
lower: 'Higher velocity — better heat transfer coefficient but larger pressure drop',
},
mdot_film_result: {
name: 'Film Coolant Mass Flow',
description: 'Mass flow rate of propellant injected as a film layer along the chamber walls.',
higher: 'Better wall protection — more effective at high heat flux',
lower: 'Less Isp penalty from film dilution',
},
ispPenalty_result: {
name: 'Isp Penalty (Film Cooling)',
description: 'Estimated percentage reduction in specific impulse due to film coolant that does not participate fully in combustion.',
higher: 'Significant Isp loss — consider reducing film fraction if thermally feasible',
lower: 'Minimal performance impact — film cooling is efficient for this design',
},
/* ── Feed System Results ──────────────────────────────────────── */
p_tank_result: {
name: 'Tank Pressure',
description: 'Required propellant tank pressure to sustain the desired chamber pressure through the injector and feed lines.',
higher: 'Heavier tank walls and more pressurant — may require a composite tank',
lower: 'Lighter structure — check that there is sufficient margin over chamber pressure',
},
V_fuel_result: {
name: 'Fuel Volume',
description: 'Required fuel tank volume for the specified burn time and fuel density.',
higher: 'Larger, heavier fuel tank — may need to be distributed or jettisoned',
lower: 'Compact fuel system — allows a smaller vehicle',
},
V_ox_result: {
name: 'Oxidiser Volume',
description: 'Required oxidiser tank volume for the specified burn time and oxidiser density.',
higher: 'Larger oxidiser tank — often the dominant volume for high-O/F propellants',
lower: 'Compact oxidiser system',
},
V_prop_result: {
name: 'Total Propellant Volume',
description: 'Combined fuel + oxidiser volume. Determines the overall propellant tankage size.',
higher: 'More propellant for longer burns or higher thrust',
lower: 'Smaller, lighter vehicle',
},
m_press_result: {
name: 'Pressurant Mass',
description: 'Mass of pressurising gas (typically helium or nitrogen) needed to maintain tank pressure throughout the burn. Estimated assuming isothermal blowdown.',
higher: 'Heavier pressurant load — consider a regulated or blowdown feed system',
lower: 'Lightweight pressurant — efficient feed system design',
},
dP_pump_result: {
name: 'Pump ΔP',
description: 'Required pump pressure rise across the propellant pump(s) in a pump-fed system.',
higher: 'More pump work — larger, heavier turbopump needed',
lower: 'Lighter pump — may indicate lower chamber pressure or very efficient feed lines',
},
P_turbine_result: {
name: 'Est. Turbine Power',
description: 'Estimated turbopump turbine shaft power required to drive the propellant pumps.',
higher: 'Larger turbine and more turbine propellant bleed — heavier turbopump assembly',
lower: 'Smaller turbine — more efficient or lower chamber pressure design',
},
}