models.propulsion.propellants.categories¶
machwave.models.propulsion.propellants.categories
¶
Propellant categories or mixture types.
BiliquidPropellant
¶
Bases: Propellant
Biliquid propellant with separate oxidizer and fuel.
Source code in machwave/models/propulsion/propellants/categories/biliquid.py
__init__(name, components=None, combustion_efficiency=0.95, properties=None, of_ratio=None)
¶
Initialize biliquid propellant.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Propellant name. |
required |
components
|
list[PropellantComponent] | None
|
Chemical components (should be exactly 2: oxidizer and fuel). |
None
|
combustion_efficiency
|
float
|
Efficiency factor (0-1). |
0.95
|
properties
|
ThermochemicalProperties | None
|
Pre-defined thermochemical properties (optional). |
None
|
of_ratio
|
float | None
|
Oxidizer-to-fuel mass ratio. |
None
|
Source code in machwave/models/propulsion/propellants/categories/biliquid.py
BurnRateOutOfBoundsError
¶
Bases: Exception
Raised when chamber pressure is outside burn rate model valid range.
Source code in machwave/models/propulsion/propellants/categories/solid.py
__init__(chamber_pressure)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure that is out of bounds [Pa]. |
required |
Source code in machwave/models/propulsion/propellants/categories/solid.py
MixtureType
¶
Propellant
¶
Bases: ABC
Base class for propellant formulations.
Source code in machwave/models/propulsion/propellants/categories/base.py
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 | |
thermochemical_service
cached
property
¶
Get thermochemical service, cached.
__init__(name, components=None, combustion_efficiency=0.95)
¶
Initialize propellant.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Propellant name. |
required |
components
|
list[PropellantComponent] | None
|
Chemical components. If None, defaults to empty list. |
None
|
combustion_efficiency
|
float
|
Efficiency factor (0-1). |
0.95
|
Source code in machwave/models/propulsion/propellants/categories/base.py
evaluate(chamber_pressure, expansion_ratio=8.0)
¶
Evaluate thermochemical properties at given conditions.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
expansion_ratio
|
float
|
Nozzle area ratio (Ae/At). |
8.0
|
Returns:
| Type | Description |
|---|---|
ThermochemicalProperties
|
ThermochemicalProperties. |
Raises:
| Type | Description |
|---|---|
ValueError
|
If evaluation fails. |
Source code in machwave/models/propulsion/propellants/categories/base.py
PropellantValidationError
¶
Bases: Exception
Raised when propellant validation fails.
Source code in machwave/models/propulsion/propellants/categories/base.py
__init__(message)
¶
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
message
|
str
|
Description of the validation error. |
required |
SolidPropellant
¶
Bases: Propellant
Solid propellant with burn rate model.
Source code in machwave/models/propulsion/propellants/categories/solid.py
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 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 | |
ideal_density
property
¶
Calculate ideal propellant density [kg/m^3] for solid mixtures.
Uses harmonic mean based on solid mixture mass fractions.
properties
property
¶
Expose pre-defined thermochemical properties when present.
__init__(name, components=None, mass_fractions=None, combustion_efficiency=0.95, properties=None, burn_rate_map=None)
¶
Initialize solid propellant. If components are not provided, properties must be defined and vice-versa.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
name
|
str
|
Propellant name. |
required |
components
|
list[PropellantComponent] | None
|
Chemical components (optional). |
None
|
combustion_efficiency
|
float
|
Efficiency factor (0-1). |
0.95
|
properties
|
ThermochemicalProperties | None
|
Pre-defined thermochemical properties (optional). |
None
|
burn_rate
|
St. Robert's law coefficients by pressure range. |
required |
Source code in machwave/models/propulsion/propellants/categories/solid.py
evaluate(chamber_pressure, expansion_ratio=8.0)
¶
Evaluate thermochemical properties.
If properties are pre-defined, returns them directly. Otherwise, evaluates using the thermochemical service via parent class.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
expansion_ratio
|
float
|
Nozzle area expansion ratio (Ae/At). |
8.0
|
Returns:
| Type | Description |
|---|---|
ThermochemicalProperties
|
Pre-defined or calculated properties. |
Raises:
| Type | Description |
|---|---|
PropellantValidationError
|
If evaluation fails. |
Source code in machwave/models/propulsion/propellants/categories/solid.py
get_burn_rate(chamber_pressure)
¶
Calculate instantaneous burn rate for solid propellants.
Uses St. Robert's law: r = a * P^n, where r is burn rate [m/s], P is chamber pressure [MPa], and a, n are empirical coefficients.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
chamber_pressure
|
float
|
Chamber pressure [Pa]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Burn rate [m/s]. |
Raises:
| Type | Description |
|---|---|
BurnRateOutOfBoundsError
|
If pressure is outside valid range. |
ValueError
|
If burn_rate model is not defined. |