Source code for rocketpy.prints.hybrid_motor_prints

import numpy as np


[docs] class _HybridMotorPrints: """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 """ 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 motor_details(self): """Prints out all data available about the HybridMotor. Returns ------- None """ print("Motor Details") print(f"Total Burning Time: {self.hybrid_motor.burn_duration} s") print( f"Total Propellant Mass: {self.hybrid_motor.propellant_initial_mass:.3f} kg" ) print(f"Structural Mass Ratio: {self.hybrid_motor.structural_mass_ratio:.3f}") avg = self.hybrid_motor.exhaust_velocity.average(*self.hybrid_motor.burn_time) print(f"Average Propellant Exhaust Velocity: {avg:.3f} m/s") print(f"Average Thrust: {self.hybrid_motor.average_thrust:.3f} N") print( f"Maximum Thrust: {self.hybrid_motor.max_thrust} N at " f"{self.hybrid_motor.max_thrust_time} s after ignition." ) print(f"Total Impulse: {self.hybrid_motor.total_impulse:.3f} Ns\n")
[docs] def all(self): """Prints out all data available about the HybridMotor. Returns ------- None """ self.nozzle_details() self.grain_details() self.motor_details()