Skip to content

Commit 8040ea1

Browse files
ENH: refactor motor prints classes to inherit from _MotorPrints
1 parent 5b625a8 commit 8040ea1

File tree

3 files changed

+14
-69
lines changed

3 files changed

+14
-69
lines changed

rocketpy/prints/hybrid_motor_prints.py

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
import numpy as np
22

3+
from .motor_prints import _MotorPrints
34

4-
class _HybridMotorPrints:
5+
6+
class _HybridMotorPrints(_MotorPrints):
57
"""Class that holds prints methods for HybridMotor class.
68
79
Attributes
@@ -26,6 +28,7 @@ def __init__(
2628
-------
2729
None
2830
"""
31+
super().__init__(hybrid_motor)
2932
self.hybrid_motor = hybrid_motor
3033

3134
def nozzle_details(self):
@@ -63,28 +66,6 @@ def grain_details(self):
6366
print(f"Grain Volume: {self.hybrid_motor.solid.grain_initial_volume:.3f} m3")
6467
print(f"Grain Mass: {self.hybrid_motor.solid.grain_initial_mass:.3f} kg\n")
6568

66-
def motor_details(self):
67-
"""Prints out all data available about the HybridMotor.
68-
69-
Returns
70-
-------
71-
None
72-
"""
73-
print("Motor Details")
74-
print(f"Total Burning Time: {self.hybrid_motor.burn_duration} s")
75-
print(
76-
f"Total Propellant Mass: {self.hybrid_motor.propellant_initial_mass:.3f} kg"
77-
)
78-
print(f"Structural Mass Ratio: {self.hybrid_motor.structural_mass_ratio:.3f}")
79-
avg = self.hybrid_motor.exhaust_velocity.average(*self.hybrid_motor.burn_time)
80-
print(f"Average Propellant Exhaust Velocity: {avg:.3f} m/s")
81-
print(f"Average Thrust: {self.hybrid_motor.average_thrust:.3f} N")
82-
print(
83-
f"Maximum Thrust: {self.hybrid_motor.max_thrust} N at "
84-
f"{self.hybrid_motor.max_thrust_time} s after ignition."
85-
)
86-
print(f"Total Impulse: {self.hybrid_motor.total_impulse:.3f} Ns\n")
87-
8869
def all(self):
8970
"""Prints out all data available about the HybridMotor.
9071

rocketpy/prints/liquid_motor_prints.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
class _LiquidMotorPrints:
1+
from .motor_prints import _MotorPrints
2+
3+
4+
class _LiquidMotorPrints(_MotorPrints):
25
"""Class that holds prints methods for LiquidMotor class.
36
47
Attributes
@@ -23,6 +26,7 @@ def __init__(
2326
-------
2427
None
2528
"""
29+
super().__init__(liquid_motor)
2630
self.liquid_motor = liquid_motor
2731

2832
def nozzle_details(self):
@@ -35,28 +39,6 @@ def nozzle_details(self):
3539
print("Nozzle Details")
3640
print("Nozzle Radius: " + str(self.liquid_motor.nozzle_radius) + " m\n")
3741

38-
def motor_details(self):
39-
"""Prints out all data available about the motor.
40-
41-
Returns
42-
-------
43-
None
44-
"""
45-
print("Motor Details")
46-
print(f"Total Burning Time: {self.liquid_motor.burn_duration} s")
47-
print(
48-
f"Total Propellant Mass: {self.liquid_motor.propellant_initial_mass:.3f} kg"
49-
)
50-
print(f"Structural Mass Ratio: {self.liquid_motor.structural_mass_ratio:.3f}")
51-
avg = self.liquid_motor.exhaust_velocity.average(*self.liquid_motor.burn_time)
52-
print(f"Average Propellant Exhaust Velocity: {avg:.3f} m/s")
53-
print(f"Average Thrust: {self.liquid_motor.average_thrust:.3f} N")
54-
print(
55-
f"Maximum Thrust: {self.liquid_motor.max_thrust} N at "
56-
f"{self.liquid_motor.max_thrust_time} s after ignition."
57-
)
58-
print(f"Total Impulse: {self.liquid_motor.total_impulse:.3f} Ns\n")
59-
6042
def all(self):
6143
"""Prints out all data available about the LiquidMotor.
6244

rocketpy/prints/solid_motor_prints.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
1-
class _SolidMotorPrints:
1+
from .motor_prints import _MotorPrints
2+
3+
4+
class _SolidMotorPrints(_MotorPrints):
25
"""Class that holds prints methods for SolidMotor class.
36
47
Attributes
@@ -23,6 +26,7 @@ def __init__(
2326
-------
2427
None
2528
"""
29+
super().__init__(solid_motor)
2630
self.solid_motor = solid_motor
2731

2832
def nozzle_details(self):
@@ -53,28 +57,6 @@ def grain_details(self):
5357
print(f"Grain Volume: {self.solid_motor.grain_initial_volume:.3f} m3")
5458
print(f"Grain Mass: {self.solid_motor.grain_initial_mass:.3f} kg\n")
5559

56-
def motor_details(self):
57-
"""Prints out all data available about the SolidMotor.
58-
59-
Returns
60-
-------
61-
None
62-
"""
63-
print("Motor Details")
64-
print("Total Burning Time: " + str(self.solid_motor.burn_duration) + " s")
65-
print(
66-
f"Total Propellant Mass: {self.solid_motor.propellant_initial_mass:.3f} kg"
67-
)
68-
print(f"Structural Mass Ratio: {self.solid_motor.structural_mass_ratio:.3f}")
69-
average = self.solid_motor.exhaust_velocity.average(*self.solid_motor.burn_time)
70-
print(f"Average Propellant Exhaust Velocity: {average:.3f} m/s")
71-
print(f"Average Thrust: {self.solid_motor.average_thrust:.3f} N")
72-
print(
73-
f"Maximum Thrust: {self.solid_motor.max_thrust} N "
74-
f"at {self.solid_motor.max_thrust_time} s after ignition."
75-
)
76-
print(f"Total Impulse: {self.solid_motor.total_impulse:.3f} Ns\n")
77-
7860
def all(self):
7961
"""Prints out all data available about the SolidMotor.
8062

0 commit comments

Comments
 (0)