Source code for rocketpy.prints.solid_motor_prints
[docs]
class _SolidMotorPrints:
"""Class that holds prints methods for SolidMotor class.
Attributes
----------
_SolidMotorPrints.solid_motor : solid_motor
SolidMotor object that will be used for the prints.
"""
[docs]
def __init__(
self,
solid_motor,
):
"""Initializes _SolidMotorPrints class
Parameters
----------
solid_motor: SolidMotor
Instance of the SolidMotor class.
Returns
-------
None
"""
self.solid_motor = solid_motor
return None
[docs]
def nozzle_details(self):
"""Prints out all data available about the SolidMotor nozzle.
Returns
-------
None
"""
# Print nozzle details
print("Nozzle Details")
print("Nozzle Radius: " + str(self.solid_motor.nozzle_radius) + " m")
print("Nozzle Throat Radius: " + str(self.solid_motor.throat_radius) + " m\n")
[docs]
def grain_details(self):
"""Prints out all data available about the SolidMotor grain.
Returns
-------
None
"""
# Print grain details
print("Grain Details")
print("Number of Grains: " + str(self.solid_motor.grain_number))
print("Grain Spacing: " + str(self.solid_motor.grain_separation) + " m")
print("Grain Density: " + str(self.solid_motor.grain_density) + " kg/m3")
print("Grain Outer Radius: " + str(self.solid_motor.grain_outer_radius) + " m")
print(
"Grain Inner Radius: "
+ str(self.solid_motor.grain_initial_inner_radius)
+ " m"
)
print("Grain Height: " + str(self.solid_motor.grain_initial_height) + " m")
print(
"Grain Volume: "
+ "{:.3f}".format(self.solid_motor.grain_initial_volume)
+ " m3"
)
print(
"Grain Mass: "
+ "{:.3f}".format(self.solid_motor.grain_initial_mass)
+ " kg\n"
)
[docs]
def motor_details(self):
"""Prints out all data available about the SolidMotor.
Returns
-------
None
"""
# Print motor details
print("Motor Details")
print("Total Burning Time: " + str(self.solid_motor.burn_duration) + " s")
print(
"Total Propellant Mass: "
+ "{:.3f}".format(self.solid_motor.propellant_initial_mass)
+ " kg"
)
print(
"Average Propellant Exhaust Velocity: "
+ "{:.3f}".format(
self.solid_motor.exhaust_velocity.average(*self.solid_motor.burn_time)
)
+ " m/s"
)
print(
"Average Thrust: " + "{:.3f}".format(self.solid_motor.average_thrust) + " N"
)
print(
"Maximum Thrust: "
+ str(self.solid_motor.max_thrust)
+ " N at "
+ str(self.solid_motor.max_thrust_time)
+ " s after ignition."
)
print(
"Total Impulse: "
+ "{:.3f}".format(self.solid_motor.total_impulse)
+ " Ns\n"
)
[docs]
def all(self):
"""Prints out all data available about the SolidMotor.
Returns
-------
None
"""
self.nozzle_details()
self.grain_details()
self.motor_details()
return None