models.thrust_chamber¶
Thrust chamber assembly and sub-components.
Nozzle— Conical nozzle defined by throat diameter, expansion ratio, and convergent/divergent half-angles. Computes throat area and outlet diameter.CombustionChamber— Cylindrical casing with thermal liner. Provides internal volume from casing dimensions and liner thickness.BipropellantInjector— Injector for biliquid engines, characterized by discharge coefficients, orifice areas, and a per-sideMassFlowModelfor the oxidizer and fuel sides. Owns the orifice mass-flow dispatch:get_mass_flow_ox(*, tank, pressure_upstream, chamber_pressure, fluid_mass)andget_mass_flow_fuel(*, tank, pressure_upstream, chamber_pressure, fluid_mass). Feed systems delegate to these methods.MassFlowModel— Enum selecting the orifice flow model.SPI(single-phase incompressible) for subcooled liquid propellants;HEM(homogeneous-equilibrium two-phase) for self-pressurized propellants such as nitrous oxide, where flow can choke on the two-phase sound speed.SolidMotorThrustChamber— Bundles nozzle + chamber + the distance from nozzle exit to grain port.BiliquidEngineThrustChamber— Bundles nozzle + chamber + injector.
machwave.models.thrust_chamber
¶
BiliquidEngineThrustChamber
¶
Bases: ThrustChamber
Thrust chamber assembly specialized for biliquid rocket engines.
Source code in machwave/models/thrust_chamber/base.py
__init__(nozzle, injector, combustion_chamber, dry_mass, center_of_gravity_coordinate=None)
¶
Initialize a biliquid engine thrust chamber.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nozzle
|
Nozzle
|
Nozzle instance. |
required |
injector
|
BipropellantInjector
|
Bipropellant injector instance. |
required |
combustion_chamber
|
CombustionChamber
|
Combustion chamber instance. |
required |
dry_mass
|
float
|
Dry mass of the thrust chamber assembly [kg]. |
required |
center_of_gravity_coordinate
|
tuple[float, float, float] | None
|
Dry-mass center of gravity position
|
None
|
Source code in machwave/models/thrust_chamber/base.py
BipropellantInjector
¶
A simple injector class for a biliquid rocket engine.
Source code in machwave/models/thrust_chamber/injector.py
28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | |
__init__(discharge_coefficient_fuel, discharge_coefficient_oxidizer, area_fuel, area_ox, mass_flow_model_fuel=MassFlowModel.SPI, mass_flow_model_oxidizer=MassFlowModel.SPI)
¶
Initialize an Injector instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
discharge_coefficient_fuel
|
float
|
Discharge coefficient for the fuel side (dimensionless). |
required |
discharge_coefficient_oxidizer
|
float
|
Discharge coefficient for the oxidizer side (dimensionless). |
required |
area_fuel
|
float
|
Effective flow area of the fuel injector [m^2]. |
required |
area_ox
|
float
|
Effective flow area of the oxidizer injector [m^2]. |
required |
mass_flow_model_fuel
|
MassFlowModel
|
Mass flow model for the fuel side. |
SPI
|
mass_flow_model_oxidizer
|
MassFlowModel
|
Mass flow model for the oxidizer side. |
SPI
|
Source code in machwave/models/thrust_chamber/injector.py
get_mass_flow_fuel(*, tank, pressure_upstream, chamber_pressure, fluid_mass)
¶
Compute the fuel-side mass flow rate through this injector.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tank
|
Tank
|
Tank supplying the fuel. |
required |
pressure_upstream
|
float
|
Upstream stagnation pressure [Pa]. |
required |
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
fluid_mass
|
float
|
Current fuel mass in the tank [kg]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Fuel mass flow rate [kg/s]. |
Source code in machwave/models/thrust_chamber/injector.py
get_mass_flow_ox(*, tank, pressure_upstream, chamber_pressure, fluid_mass)
¶
Compute the oxidizer-side mass flow rate through this injector.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
tank
|
Tank
|
Tank supplying the oxidizer. |
required |
pressure_upstream
|
float
|
Upstream stagnation pressure [Pa]. |
required |
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
fluid_mass
|
float
|
Current oxidizer mass in the tank [kg]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Oxidizer mass flow rate [kg/s]. |
Source code in machwave/models/thrust_chamber/injector.py
CombustionChamber
¶
Geometry model of a cylindrical combustion-chamber.
Source code in machwave/models/thrust_chamber/combustion_chamber.py
inner_diameter
property
¶
Inner diameter of the combustion chamber [m].
inner_radius
property
¶
Inner radius of the combustion chamber [m].
internal_volume
property
¶
Internal volume of the combustion chamber [m^3].
outer_diameter
property
¶
Outer diameter of the combustion chamber [m].
outer_radius
property
¶
Outer radius of the combustion chamber [m].
__init__(casing_inner_diameter, casing_outer_diameter, internal_length, thermal_liner_thickness=0.0)
¶
Create a new CombustionChamber instance.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
casing_inner_diameter
|
float
|
Internal diameter [m]. |
required |
casing_outer_diameter
|
float
|
Outer diameter [m]. |
required |
internal_length
|
float
|
Distance from combustion chamber inlet to nozzle inlet [m]. |
required |
thermal_liner_thickness
|
float
|
Thermal liner thickness [m]. Defaults to 0.0. |
0.0
|
Source code in machwave/models/thrust_chamber/combustion_chamber.py
MassFlowModel
¶
Bases: StrEnum
Models for computing mass flow through an injector orifice.
Single-phase incompressible orifice equation. Valid for subcooled liquid
propellants.
HEM: Homogeneous-equilibrium two-phase model. Required for self-pressurized propellants such as nitrous oxide, where flow can choke at the injector due to flash boiling.
Source code in machwave/models/thrust_chamber/injector.py
Nozzle
¶
Converging-diverging nozzle geometry.
Source code in machwave/models/thrust_chamber/nozzle.py
outlet_diameter
property
¶
Return the nozzle exit diameter [m].
__init__(inlet_diameter, throat_diameter, divergent_angle, convergent_angle, expansion_ratio, discharge_coefficient=1.0, separation_pressure_ratio=DEFAULT_SEPARATION_PRESSURE_RATIO)
¶
Initialize a nozzle.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
inlet_diameter
|
float
|
Inlet diameter [m]. |
required |
throat_diameter
|
float
|
Throat diameter [m]. |
required |
divergent_angle
|
float
|
Divergent half-angle [deg]. |
required |
convergent_angle
|
float
|
Convergent half-angle [deg]. |
required |
expansion_ratio
|
float
|
Area ratio of exit to throat. |
required |
discharge_coefficient
|
float
|
Throat discharge coefficient. |
1.0
|
separation_pressure_ratio
|
float
|
Pressure ratio at which the overexpanded flow separates from the nozzle wall (Summerfield criterion). |
DEFAULT_SEPARATION_PRESSURE_RATIO
|
Source code in machwave/models/thrust_chamber/nozzle.py
SolidMotorThrustChamber
¶
Bases: ThrustChamber
Thrust chamber assembly specialized for solid rocket motors.
Source code in machwave/models/thrust_chamber/base.py
__init__(nozzle, combustion_chamber, dry_mass, nozzle_exit_to_grain_port_distance, center_of_gravity_coordinate=None)
¶
Initialize a solid motor thrust chamber.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nozzle
|
Nozzle
|
Nozzle instance. |
required |
combustion_chamber
|
CombustionChamber
|
Combustion chamber instance. |
required |
dry_mass
|
float
|
Dry mass of the thrust chamber assembly [kg]. |
required |
nozzle_exit_to_grain_port_distance
|
float
|
Axial distance from the nozzle exit plane to the grain port [m]. |
required |
center_of_gravity_coordinate
|
tuple[float, float, float] | None
|
Dry-mass center of gravity position
|
None
|
Source code in machwave/models/thrust_chamber/base.py
ThrustChamber
¶
Bases: ABC
Thrust chamber assembly that ties nozzle, chamber, and injectors together.
Source code in machwave/models/thrust_chamber/base.py
__init__(nozzle, combustion_chamber, dry_mass, center_of_gravity_coordinate=None)
¶
Initialize a thrust chamber.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nozzle
|
Nozzle
|
Nozzle instance. |
required |
combustion_chamber
|
CombustionChamber
|
Combustion chamber instance. |
required |
dry_mass
|
float
|
Dry mass of the thrust chamber assembly [kg]. |
required |
center_of_gravity_coordinate
|
tuple[float, float, float] | None
|
Dry-mass center of gravity position
|
None
|