models.motors¶
Top-level motor/engine definitions that assemble all physical sub-components into a complete propulsion unit.
SolidMotor— Combines aGrain,SolidPropellant, andSolidMotorThrustChamber. Provides launch/dry mass, free chamber volume, CoG (mass-weighted across grain and hardware), and thrust coefficient with loss corrections.BiliquidEngine— Combines aBiliquidPropellant,BiliquidEngineThrustChamber, andFeedSystem. Tracks CoG shift as propellant is consumed from the tanks.
Both inherit from the generic Motor[P, T] base class. A motor instance is the primary input to InternalBallisticsSimulation.
machwave.models.motors
¶
BiliquidEngine
¶
Bases: Motor[BiliquidPropellant, BiliquidEngineThrustChamber]
Biliquid rocket engine with a bipropellant feed system.
Source code in machwave/models/motors/biliquid.py
initial_propellant_mass
property
¶
Return the initial propellant mass [kg].
__init__(propellant, thrust_chamber, feed_system, combustion_efficiency=0.95, nozzle_loss_model=None)
¶
Initialize a biliquid rocket engine.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
propellant
|
BiliquidPropellant
|
Biliquid propellant properties (oxidizer + fuel). |
required |
thrust_chamber
|
BiliquidEngineThrustChamber
|
Thrust chamber assembly (nozzle, combustion chamber, injector). |
required |
feed_system
|
FeedSystem
|
Propellant feed system (tanks, lines, pumps or pressurization). |
required |
combustion_efficiency
|
float
|
Ratio of the actual flame temperature to the ideal adiabatic flame temperature (0, 1]. |
0.95
|
nozzle_loss_model
|
NozzleLossModel | None
|
Nozzle loss model. |
None
|
Source code in machwave/models/motors/biliquid.py
Motor
¶
Bases: Generic[P, T], ABC
Abstract rocket motor/engine for solid, hybrid, or biliquid systems.
Source code in machwave/models/motors/base.py
initial_propellant_mass
abstractmethod
property
¶
Return the initial propellant mass [kg].
__init__(propellant, thrust_chamber, combustion_efficiency=0.95, nozzle_loss_model=None)
¶
Initialize attributes common to any motor or engine.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
propellant
|
P
|
Propellant used in the motor. |
required |
thrust_chamber
|
T
|
Thrust chamber of the motor. |
required |
combustion_efficiency
|
float
|
Ratio of the actual flame temperature to the ideal adiabatic flame temperature (0, 1]. |
0.95
|
nozzle_loss_model
|
NozzleLossModel | None
|
Nozzle thrust coefficient loss model. Motor subclasses supply an engine-appropriate default. |
None
|
Raises:
| Type | Description |
|---|---|
ValueError
|
If |
Source code in machwave/models/motors/base.py
SolidMotor
¶
Bases: Motor[SolidPropellant, SolidMotorThrustChamber]
Solid rocket motor with a propellant grain and thrust chamber.
Source code in machwave/models/motors/solid.py
initial_propellant_mass
property
¶
Return the initial propellant mass [kg].
__init__(grain, propellant, thrust_chamber, combustion_efficiency=0.95, nozzle_loss_model=None)
¶
Initialize a solid rocket motor.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
grain
|
Grain
|
Grain geometry configuration. |
required |
propellant
|
SolidPropellant
|
Solid propellant properties. |
required |
thrust_chamber
|
SolidMotorThrustChamber
|
Thrust chamber model. |
required |
combustion_efficiency
|
float
|
Ratio of the actual flame temperature to the ideal adiabatic flame temperature (0, 1]. |
0.95
|
nozzle_loss_model
|
NozzleLossModel | None
|
Nozzle loss model. |
None
|
Source code in machwave/models/motors/solid.py
get_free_chamber_volume(propellant_volume)
¶
Return the chamber volume without any propellant.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
propellant_volume
|
float
|
Propellant volume [m^3]. |
required |
Returns:
| Type | Description |
|---|---|
float
|
Free chamber volume [m^3]. |