Source code for rocketpy.prints.hybrid_motor_prints

import numpy as np

from .motor_prints import _MotorPrints


[docs] class _HybridMotorPrints(_MotorPrints): """Class that holds prints methods for HybridMotor class. Attributes ---------- _HybridMotorPrints.hybrid_motor : hybrid_motor HybridMotor object that will be used for the prints. """
[docs] def __init__( self, hybrid_motor, ): """Initializes _HybridMotorPrints class Parameters ---------- hybrid_motor: HybridMotor Instance of the HybridMotor class. Returns ------- None """ super().__init__(hybrid_motor) self.hybrid_motor = hybrid_motor
[docs] def nozzle_details(self): """Prints out all data available about the Nozzle. Returns ------- None """ # Print nozzle details print("Nozzle Details") print(f"Outlet Radius: {self.hybrid_motor.nozzle_radius} m") print(f"Throat Radius: {self.hybrid_motor.solid.throat_radius} m") print(f"Outlet Area: {np.pi * self.hybrid_motor.nozzle_radius**2:.6f} m²") print(f"Throat Area: {np.pi * self.hybrid_motor.solid.throat_radius**2:.6f} m²") print(f"Position: {self.hybrid_motor.nozzle_position} m\n")
[docs] def grain_details(self): """Prints out all data available about the Grain. Returns ------- None """ print("Grain Details") print(f"Number of Grains: {self.hybrid_motor.solid.grain_number}") print(f"Grain Spacing: {self.hybrid_motor.solid.grain_separation} m") print(f"Grain Density: {self.hybrid_motor.solid.grain_density} kg/m3") print(f"Grain Outer Radius: {self.hybrid_motor.solid.grain_outer_radius} m") print( "Grain Inner Radius: " f"{self.hybrid_motor.solid.grain_initial_inner_radius} m" ) print(f"Grain Height: {self.hybrid_motor.solid.grain_initial_height} m") print(f"Grain Volume: {self.hybrid_motor.solid.grain_initial_volume:.3f} m3") print(f"Grain Mass: {self.hybrid_motor.solid.grain_initial_mass:.3f} kg\n")
[docs] def all(self): """Prints out all data available about the HybridMotor. Returns ------- None """ self.nozzle_details() self.grain_details() self.motor_details()