models.propulsion.feed_systems¶
machwave.models.propulsion.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/propulsion/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/propulsion/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 | |
__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/propulsion/feed_systems/pressure_fed.py
get_fuel_tank_pressure()
¶
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/propulsion/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]. |