models.feed_systems¶
Feed system models for liquid rocket engines. Defines how propellant is delivered from tanks to the combustion chamber.
The base FeedSystem class abstracts mass flow rate and tank pressure calculations. StackedTankPressureFedFeedSystem implements a pressure-fed configuration with oxidizer and fuel lines, accounting for line losses and piston pressure drops.
See tanks for the tank thermodynamic model.
machwave.models.feed_systems
¶
FeedSystem
¶
Bases: ABC
Abstract base class for a bipropellant feed system in a liquid rocket engine (LRE).
This class is responsible for determining oxidizer and fuel mass flows as a function of tank/pressurant states, pumps (if any), and current chamber conditions. Subclasses must implement the abstract methods to specify the actual flow calculations.
Source code in machwave/models/feed_systems/base.py
__init__(fuel_tank, oxidizer_tank)
¶
get_fuel_tank_pressure()
abstractmethod
¶
get_mass_flow_fuel(*args, **kwargs)
abstractmethod
¶
get_mass_flow_ox(*args, **kwargs)
abstractmethod
¶
get_oxidizer_tank_pressure()
abstractmethod
¶
get_propellant_mass()
¶
Compute and return the initial propellant mass in the system [kg].
StackedTankPressureFedFeedSystem
¶
Bases: FeedSystem
Represents a bipropellant liquid rocket engine feed system with stacked tanks.
A stacked tank system is a type of pressure-fed system where the oxidizer and fuel tanks are arranged in a vertical stack. The tanks are separated by a piston and the fuel is pressurized by the oxidizer tank.
Source code in machwave/models/feed_systems/pressure_fed.py
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 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 | |
__init__(oxidizer_line_diameter, oxidizer_line_length, fuel_line_diameter, fuel_line_length, fuel_tank, oxidizer_tank, piston_loss=0.0)
¶
Initialize the StackedTankPressureFedFeedSystem with feedline dimensions, tank objects, and fluid densities.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
oxidizer_line_diameter
|
float
|
Diameter of the oxidizer feedline [m]. |
required |
oxidizer_line_length
|
float
|
Length of the oxidizer feedline [m]. |
required |
fuel_line_diameter
|
float
|
Diameter of the fuel feedline [m]. |
required |
fuel_line_length
|
float
|
Length of the fuel feedline [m]. |
required |
fuel_tank
|
Tank
|
An instance representing the fuel tank. |
required |
oxidizer_tank
|
Tank
|
An instance representing the oxidizer tank. |
required |
piston_loss
|
float
|
Pressure loss across the piston [Pa]. Default is 0.0. |
0.0
|
Source code in machwave/models/feed_systems/pressure_fed.py
get_fuel_tank_pressure()
¶
Returns the fuel-side upstream pressure [Pa].
In a stacked-tank system the fuel is pressurized by the oxidizer through the piston, so the fuel-side pressure is the oxidizer tank pressure minus the piston pressure loss.
Source code in machwave/models/feed_systems/pressure_fed.py
get_mass_flow_fuel(chamber_pressure, discharge_coefficient, injector_area)
¶
Compute the current fuel mass flow rate via get_mass_flow_orifice(). The pressure upstream will be the same as the oxidizer tank pressure, since this is a model for a stacked tank.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
discharge_coefficient
|
float
|
Discharge coefficient for the injector (dimensionless). |
required |
injector_area
|
float
|
Effective flow area for the fuel injector [m^2]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Fuel mass flow rate [kg/s]. |
Source code in machwave/models/feed_systems/pressure_fed.py
get_mass_flow_ox(chamber_pressure, discharge_coefficient, injector_area)
¶
Compute the current oxidizer mass flow rate via get_mass_flow_orifice().
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
discharge_coefficient
|
float
|
Discharge coefficient for the injector (dimensionless). |
required |
injector_area
|
float
|
Effective flow area for the oxidizer injector [m^2]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Oxidizer mass flow rate [kg/s]. |