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 return None
[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") return None
[docs] def grain_details(self): """Prints out all data available about the Grain. Returns ------- None """ # Print grain details print("Grain Details") print("Number of Grains: " + str(self.hybrid_motor.solid.grain_number)) print("Grain Spacing: " + str(self.hybrid_motor.solid.grain_separation) + " m") print("Grain Density: " + str(self.hybrid_motor.solid.grain_density) + " kg/m3") print( "Grain Outer Radius: " + str(self.hybrid_motor.solid.grain_outer_radius) + " m" ) print( "Grain Inner Radius: " + str(self.hybrid_motor.solid.grain_initial_inner_radius) + " m" ) print( "Grain Height: " + str(self.hybrid_motor.solid.grain_initial_height) + " m" ) print( "Grain Volume: " + "{:.3f}".format(self.hybrid_motor.solid.grain_initial_volume) + " m3" ) print( "Grain Mass: " + "{:.3f}".format(self.hybrid_motor.solid.grain_initial_mass) + " kg\n" ) return None
[docs] def motor_details(self): """Prints out all data available about the HybridMotor. Returns ------- None """ # Print motor details print("Motor Details") print("Total Burning Time: " + str(self.hybrid_motor.burn_duration) + " s") print( "Total Propellant Mass: " + "{:.3f}".format(self.hybrid_motor.propellant_initial_mass) + " kg" ) print( "Average Propellant Exhaust Velocity: " + "{:.3f}".format( self.hybrid_motor.exhaust_velocity.average(*self.hybrid_motor.burn_time) ) + " m/s" ) print( "Average Thrust: " + "{:.3f}".format(self.hybrid_motor.average_thrust) + " N" ) print( "Maximum Thrust: " + str(self.hybrid_motor.max_thrust) + " N at " + str(self.hybrid_motor.max_thrust_time) + " s after ignition." ) print( "Total Impulse: " + "{:.3f}".format(self.hybrid_motor.total_impulse) + " Ns\n" ) return None
[docs] def all(self): """Prints out all data available about the HybridMotor. Returns ------- None """ self.nozzle_details() self.grain_details() self.motor_details() return None