@@ -78,9 +78,7 @@ def _y_to_speed_interpolation_function(
7878 x_data : np .ndarray = np .array ([])
7979 for interval in num_points :
8080 step = (interval ["to" ] - interval ["from" ]) / (interval ["num_points" ] - 1 )
81- x_data = np .append (
82- x_data , np .arange (interval ["from" ], interval ["to" ], step )
83- ) # type: ignore[no-untyped-call]
81+ x_data = np .append (x_data , np .arange (interval ["from" ], interval ["to" ], step )) # type: ignore[no-untyped-call]
8482 x_data = np .append (x_data , y_max ) # type: ignore[no-untyped-call]
8583 y_data = np .zeros (x_data .shape ) # type: ignore[no-untyped-call]
8684 for index , x_i in enumerate (x_data ):
@@ -91,9 +89,7 @@ def _y_to_speed_interpolation_function(
9189 args = x_i ,
9290 )
9391
94- return get_interpolation_1d_function (
95- x = x_data , y = y_data , kind = kind , add_origo = True
96- )
92+ return get_interpolation_1d_function (x = x_data , y = y_data , kind = kind , add_origo = True )
9793
9894
9995class CalmWaterResistanceBySpeedPowerCurve (CalmWaterResistanceBase ):
@@ -105,12 +101,7 @@ class CalmWaterResistanceBySpeedPowerCurve(CalmWaterResistanceBase):
105101 """
106102
107103 def __init__ (
108- self ,
109- * ,
110- speed_ref_kn : np .ndarray ,
111- power_ref_kw : np .ndarray ,
112- draft_m : float = 0 ,
113- trim_deg = 0
104+ self , * , speed_ref_kn : np .ndarray , power_ref_kw : np .ndarray , draft_m : float = 0 , trim_deg = 0
114105 ):
115106 self .speed_ref_kn = speed_ref_kn
116107 self .power_ref_kw = power_ref_kw
@@ -151,7 +142,7 @@ def __init__(
151142 speed_ref_kn : np .ndarray ,
152143 resistance_ref_k_n : np .ndarray ,
153144 draft_m : float = 0 ,
154- trim_deg = 0
145+ trim_deg = 0 ,
155146 ):
156147 self .speed_ref_kn = speed_ref_kn
157148 self .resistance_ref_k_n = resistance_ref_k_n
@@ -214,9 +205,7 @@ class CalmWaterResistanceHollenbachBase(ABC):
214205
215206 def __init__ (self , ship_dimensions ):
216207 self .b_beam = ship_dimensions .b_beam_m
217- self .l_length_between_perpendiculars = (
218- ship_dimensions .lpp_length_between_perpendiculars_m
219- )
208+ self .l_length_between_perpendiculars = ship_dimensions .lpp_length_between_perpendiculars_m
220209 self .ta_draft_aft = ship_dimensions .ta_draft_aft_m
221210 self .tf_draft_forward = ship_dimensions .tf_draft_forward_m
222211 self .los_length_over_surface = ship_dimensions .los_length_over_surface_m
@@ -248,8 +237,7 @@ def _k_shape_factor(self) -> float:
248237 self .l_length_between_perpendiculars / self .b_beam ,
249238 self .b_beam / self .t_draft ,
250239 self .l_length_between_perpendiculars / self .t_draft ,
251- (self .ta_draft_aft - self .tf_draft_forward )
252- / self .l_length_between_perpendiculars ,
240+ (self .ta_draft_aft - self .tf_draft_forward ) / self .l_length_between_perpendiculars ,
253241 self .dp_diameter_propeller / self .t_draft ,
254242 ]
255243 )
@@ -315,18 +303,14 @@ def _k_ll(self) -> float:
315303 @property
316304 def _k_ao (self ) -> float :
317305 """Aft overhang ratio factor"""
318- ratio = min (
319- self .lwl_length_water_line / self .l_length_between_perpendiculars , 1.06
320- )
306+ ratio = min (self .lwl_length_water_line / self .l_length_between_perpendiculars , 1.06 )
321307 return ratio ** self ._coeff_for_aft_overhang_ratio_factor
322308
323309 @property
324310 def _k_tr (self ) -> float :
325311 """Trim correction factor"""
326312 return (
327- 1
328- + (self .ta_draft_aft - self .tf_draft_forward )
329- / self .l_length_between_perpendiculars
313+ 1 + (self .ta_draft_aft - self .tf_draft_forward ) / self .l_length_between_perpendiculars
330314 ) ** self ._coeff_for_trim_correct_factor
331315
332316 @property
@@ -342,8 +326,7 @@ def _lfn_length_froude_number(self) -> float:
342326 return self .los_length_over_surface
343327 elif ratio <= 1.1 :
344328 return (
345- 1 / 3 * self .l_length_between_perpendiculars
346- + 2 / 3 * self .los_length_over_surface
329+ 1 / 3 * self .l_length_between_perpendiculars + 2 / 3 * self .los_length_over_surface
347330 )
348331 else :
349332 return 1.0667 * self .l_length_between_perpendiculars
@@ -463,17 +446,11 @@ def _get_c_app(self, velocity: Numeric) -> Numeric:
463446 form_factor_for_bilge_keel = 0.4
464447 if area_appendage == 0 :
465448 return 0
466- equiv_factor = (
467- (1 + form_factor_for_bilge_keel ) * self .area_bilge_keel / area_appendage
468- )
449+ equiv_factor = (1 + form_factor_for_bilge_keel ) * self .area_bilge_keel / area_appendage
469450 c_f = self ._get_c_f (velocity )
470- r_app = (
471- 0.5 * self .rho_seawater * velocity ** 2 * area_appendage * equiv_factor * c_f
472- )
451+ r_app = 0.5 * self .rho_seawater * velocity ** 2 * area_appendage * equiv_factor * c_f
473452 r_th = self ._get_r_th (velocity )
474- return (r_app + r_th ) / (
475- 0.5 * self .rho_seawater * velocity ** 2 * self .wetted_surface_area
476- )
453+ return (r_app + r_th ) / (0.5 * self .rho_seawater * velocity ** 2 * self .wetted_surface_area )
477454
478455 def _get_total_resistance_mean (self , velocity_kn : Numeric ) -> Numeric :
479456 """Calculates the total mean resistance of a ship using Hollenbach relation"""
@@ -575,10 +552,8 @@ def get_speed_from_resistance(
575552 resistance_function = self ._get_total_resistance_min
576553 elif resistance_level == ResistanceLevel .MEAN :
577554 if form_factor is not None :
578- resistance_function = (
579- lambda speed : self ._get_total_resistance_mean_minsaas (
580- speed , form_factor = form_factor
581- )
555+ resistance_function = lambda speed : self ._get_total_resistance_mean_minsaas (
556+ speed , form_factor = form_factor
582557 )
583558 else :
584559 resistance_function = self ._get_total_resistance_mean
@@ -598,9 +573,7 @@ def func_to_solve(speed):
598573 return sol .root
599574
600575
601- class CalmWaterResistanceHollenbachSingleScrewDesignDraft (
602- CalmWaterResistanceHollenbachBase
603- ):
576+ class CalmWaterResistanceHollenbachSingleScrewDesignDraft (CalmWaterResistanceHollenbachBase ):
604577 def __init__ (self , ship_dimensions : ShipDimensionsHollenbachSingleScrew ):
605578 super ().__init__ (ship_dimensions )
606579
@@ -636,9 +609,7 @@ def _get_coeff_for_high_froude_number_factor(self, fn: Numeric) -> Numeric:
636609 return fn / self ._fn_critical
637610
638611
639- class CalmWaterResistanceHollenbachSingleScrewBallastDraft (
640- CalmWaterResistanceHollenbachBase
641- ):
612+ class CalmWaterResistanceHollenbachSingleScrewBallastDraft (CalmWaterResistanceHollenbachBase ):
642613 _coeff_for_shape_factor : np .ndarray = np .array (
643614 [- 0.8037 , 0.2726 , 0.7133 , 0.6699 , 0.0243 , 0.0265 , - 0.0061 , 0.2349 , 0.0131 ]
644615 )
@@ -671,9 +642,7 @@ def _get_c_r_min(self, fn: Numeric):
671642 return self ._get_c_r (fn )
672643
673644
674- class CalmWaterResistanceHollenbachTwinScrewDesignDraft (
675- CalmWaterResistanceHollenbachBase
676- ):
645+ class CalmWaterResistanceHollenbachTwinScrewDesignDraft (CalmWaterResistanceHollenbachBase ):
677646 _coeff_for_shape_factor : np .ndarray = np .array (
678647 [- 0.4319 , 0.1685 , 0.5637 , 0.5891 , 0.0033 , 0.0134 , - 0.0005 , 2.7932 , 0.0072 ]
679648 )
0 commit comments