@@ -4548,12 +4548,20 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
45484548 platform_sheet .merge_cells (start_row = 1 , start_column = 4 , end_row = 2 , end_column = 4 )
45494549 platform_sheet .merge_cells (start_row = 1 , start_column = 5 , end_row = 2 , end_column = 5 )
45504550 excMax = float ('-inf' )
4551- surgeMax = float ('-inf' )
4552- swayMax = float ('-inf' )
4553- rollMax = float ('-inf' )
4554- pitchMax = float ('-inf' )
4555- nacAccMax = float ('-inf' )
4556- twrBendMax = float ('-inf' )
4551+ avg_surgeMax = float ('-inf' )
4552+ avg_swayMax = float ('-inf' )
4553+ avg_rollMax = float ('-inf' )
4554+ avg_pitchMax = float ('-inf' )
4555+ avg_nacAccMax = float ('-inf' )
4556+ avg_twrBendMax = float ('-inf' )
4557+
4558+ std_surgeMax = float ('-inf' )
4559+ std_swayMax = float ('-inf' )
4560+ std_rollMax = float ('-inf' )
4561+ std_pitchMax = float ('-inf' )
4562+ std_nacAccMax = float ('-inf' )
4563+ std_twrBendMax = float ('-inf' )
4564+
45574565 for pf in self .platformList .values ():
45584566 depth_at_pf = self .getDepthAtLocation (pf .r [0 ], pf .r [1 ])
45594567 if hasattr (pf , 'raftResults' ):
@@ -4576,9 +4584,13 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
45764584 round (pf .raftResults [iCase ]['AxRNA_std' ][0 ], 3 ), round (pf .raftResults [iCase ]['Mbase_std' ][0 ]/ 1e3 , 3 )]) #, round(pf.raftResults[iCase]['omega_avg'][0], 3), round(pf.raftResults[iCase]['torque_avg'][0], 3), round(pf.raftResults[iCase]['power_avg'][0]*1e-6, 3)])
45774585 # Update min and max values
45784586 excMax = max (excMax , np .sqrt (pf .raftResults [iCase ]['surge_avg' ]** 2 + pf .raftResults [iCase ]['sway_avg' ]** 2 ))
4579- surgeMax = max (surgeMax , abs (pf .raftResults [iCase ]['surge_avg' ])); swayMax = max (swayMax , abs (pf .raftResults [iCase ]['sway_avg' ]))
4580- rollMax = max (rollMax , abs (pf .raftResults [iCase ]['roll_avg' ])); pitchMax = max (pitchMax , abs (pf .raftResults [iCase ]['pitch_avg' ]))
4581- nacAccMax = max (nacAccMax , abs (pf .raftResults [iCase ]['AxRNA_avg' ][0 ])); twrBendMax = max (twrBendMax , abs (pf .raftResults [iCase ]['Mbase_avg' ][0 ]/ 1e3 ))
4587+ avg_surgeMax = max (avg_surgeMax , abs (pf .raftResults [iCase ]['surge_avg' ])); avg_swayMax = max (avg_swayMax , abs (pf .raftResults [iCase ]['sway_avg' ]))
4588+ avg_rollMax = max (avg_rollMax , abs (pf .raftResults [iCase ]['roll_avg' ])); avg_pitchMax = max (avg_pitchMax , abs (pf .raftResults [iCase ]['pitch_avg' ]))
4589+ avg_nacAccMax = max (avg_nacAccMax , abs (pf .raftResults [iCase ]['AxRNA_avg' ][0 ])); avg_twrBendMax = max (avg_twrBendMax , abs (pf .raftResults [iCase ]['Mbase_avg' ][0 ]/ 1e3 ))
4590+
4591+ std_surgeMax = max (std_surgeMax , abs (pf .raftResults [iCase ]['surge_std' ])); std_swayMax = max (std_swayMax , abs (pf .raftResults [iCase ]['sway_std' ]))
4592+ std_rollMax = max (std_rollMax , abs (pf .raftResults [iCase ]['roll_std' ])); std_pitchMax = max (std_pitchMax , abs (pf .raftResults [iCase ]['pitch_std' ]))
4593+ std_nacAccMax = max (std_nacAccMax , abs (pf .raftResults [iCase ]['AxRNA_std' ][0 ])); std_twrBendMax = max (std_twrBendMax , abs (pf .raftResults [iCase ]['Mbase_std' ][0 ]/ 1e3 ))
45824594
45834595 platform_sheet .merge_cells (start_row = platform_sheet .max_row - nCases + 1 , start_column = 1 , end_row = platform_sheet .max_row , end_column = 1 )
45844596 platform_sheet .merge_cells (start_row = platform_sheet .max_row - nCases + 1 , start_column = 2 , end_row = platform_sheet .max_row , end_column = 2 )
@@ -4587,20 +4599,38 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
45874599 else :
45884600 platform_sheet .append ([pf .id , round (pf .r [0 ], 3 ), round (pf .r [1 ], 3 ), round (depth_at_pf , 3 )])
45894601
4590- platform_sheet .append (["----------------------" ])
4591- platform_sheet .append (["Highest average values" ])
4592- for cell in platform_sheet [platform_sheet .max_row ]:
4593- cell .font = openpyxl .styles .Font (bold = True )
4602+ if hasattr (pf , 'raftResults' ):
4603+ platform_sheet .append (["----------------------" ])
4604+ platform_sheet .append (["Highest average values" ])
4605+ for cell in platform_sheet [platform_sheet .max_row ]:
4606+ cell .font = openpyxl .styles .Font (bold = True )
45944607
4595- platform_sheet .append (["Surge (m)" , "Sway (m)" , "Excursion (m)" , "Roll (deg)" , "Pitch (deg)" , "NacAcc (m/s^2)" , "TwrBend (Nm)" ])
4596- platform_sheet .append ([round (surgeMax , 3 ), round (swayMax , 3 ), round (excMax , 3 ), round (rollMax , 3 ), round (pitchMax , 3 ), round (nacAccMax , 3 ), round (twrBendMax , 3 )])
4597- # style maximum values (bold and italic)
4598- for cell in platform_sheet [platform_sheet .max_row ]:
4599- cell .font = openpyxl .styles .Font (bold = True , italic = True )
4608+ platform_sheet .append (["Surge (m)" , "Sway (m)" , "Roll (deg)" , "Pitch (deg)" , "NacAcc (m/s^2)" , "TwrBend (Nm)" , "Excursion (m)" ])
4609+ platform_sheet .append ([round (avg_surgeMax , 3 ), round (avg_swayMax , 3 ), round (avg_rollMax , 3 ), round (avg_pitchMax , 3 ), round (avg_nacAccMax , 3 ), round (avg_twrBendMax , 3 ), round (excMax , 3 )])
4610+ # style maximum values (bold and italic)
4611+ for cell in platform_sheet [platform_sheet .max_row ]:
4612+ cell .font = openpyxl .styles .Font (bold = True , italic = True )
4613+
4614+ platform_sheet .append (["----------------------" ])
4615+ platform_sheet .append (["Highest std values" ])
4616+ for cell in platform_sheet [platform_sheet .max_row ]:
4617+ cell .font = openpyxl .styles .Font (bold = True )
4618+
4619+ platform_sheet .append (["Surge (m)" , "Sway (m)" , "Roll (deg)" , "Pitch (deg)" , "NacAcc (m/s^2)" , "TwrBend (Nm)" ])
4620+ platform_sheet .append ([round (std_surgeMax , 3 ), round (std_swayMax , 3 ), round (std_rollMax , 3 ), round (std_pitchMax , 3 ), round (std_nacAccMax , 3 ), round (std_twrBendMax , 3 )])
4621+ # style maximum values (bold and italic)
4622+ for cell in platform_sheet [platform_sheet .max_row ]:
4623+ cell .font = openpyxl .styles .Font (bold = True , italic = True )
46004624
46014625 # Create a sheet for mooring lines
46024626 mooring_sheet = workbook .create_sheet (title = "Mooring Lines" )
46034627 mooring_sheet .append (["ID" , "endA" , "endB" , "Shrd" , "chain dnom [mm]" , "rope dnom [mm]" , "Safety Factors" , "Fid Level" , "Case" , "Avg EndA Tension (kN)" , "Std EndA Tension (kN)" , "Avg EndB Tension (kN)" , "Std EndB Tension (kN)" ])
4628+
4629+ avg_Tmoor_endA = float ('-inf' )
4630+ avg_Tmoor_endB = float ('-inf' )
4631+ std_Tmoor_endA = float ('-inf' )
4632+ std_Tmoor_endB = float ('-inf' )
4633+
46044634 for moor in self .mooringList .values ():
46054635 # Find nominal diameters in moor
46064636 ch_dnom = '-'
@@ -4627,6 +4657,11 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
46274657 round (moor .raftResults [iCase ]['Tmoor_avg' ][1 ], 3 )/ 1e3 , round (moor .raftResults [iCase ]['Tmoor_std' ][1 ], 3 )/ 1e3 ])
46284658 if np .any (moor .raftResults [iCase ]['Tmoor_avg' ]/ 1e3 < 100 ):
46294659 style_it (mooring_sheet , mooring_sheet .max_row , 9 , mooring_sheet .max_column , fill_color = "FFFF00" )
4660+
4661+ # Update min and max values
4662+ avg_Tmoor_endA = max (avg_Tmoor_endA , moor .raftResults [iCase ]['Tmoor_avg' ][0 ]); avg_Tmoor_endB = max (avg_Tmoor_endB , moor .raftResults [iCase ]['Tmoor_avg' ][1 ])
4663+ std_Tmoor_endA = max (std_Tmoor_endA , moor .raftResults [iCase ]['Tmoor_std' ][0 ]); std_Tmoor_endB = max (std_Tmoor_endB , moor .raftResults [iCase ]['Tmoor_std' ][1 ])
4664+
46304665 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 1 , end_row = mooring_sheet .max_row , end_column = 1 )
46314666 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 2 , end_row = mooring_sheet .max_row , end_column = 2 )
46324667 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 3 , end_row = mooring_sheet .max_row , end_column = 3 )
@@ -4638,6 +4673,29 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
46384673 else :
46394674 mooring_sheet .append ([moor .id , moor .attached_to [0 ].id , moor .attached_to [1 ].id , moor .shared , ch_dnom , rp_dnom , round (moor .safety_factors ['tension' ], 3 ), moor .safety_factors ['analysisType' ]])
46404675
4676+ if hasattr (moor , 'raftResults' ):
4677+ mooring_sheet .append (["----------------------" ])
4678+ mooring_sheet .append (["Highest average values" ])
4679+ for cell in mooring_sheet [mooring_sheet .max_row ]:
4680+ cell .font = openpyxl .styles .Font (bold = True )
4681+
4682+ mooring_sheet .append (["Tmoor_endA (kN)" , "Tmoor_endB (kN)" ])
4683+ mooring_sheet .append ([round (avg_Tmoor_endA , 3 )/ 1e3 , round (avg_Tmoor_endB , 3 )/ 1e3 ])
4684+ # style maximum values (bold and italic)
4685+ for cell in mooring_sheet [mooring_sheet .max_row ]:
4686+ cell .font = openpyxl .styles .Font (bold = True , italic = True )
4687+
4688+ mooring_sheet .append (["----------------------" ])
4689+ mooring_sheet .append (["Highest std values" ])
4690+ for cell in mooring_sheet [mooring_sheet .max_row ]:
4691+ cell .font = openpyxl .styles .Font (bold = True )
4692+
4693+ mooring_sheet .append (["Tmoor_endA (kN)" , "Tmoor_endB (kN)" ])
4694+ mooring_sheet .append ([round (std_Tmoor_endA , 3 )/ 1e3 , round (std_Tmoor_endB , 3 )/ 1e3 ])
4695+ # style maximum values (bold and italic)
4696+ for cell in mooring_sheet [mooring_sheet .max_row ]:
4697+ cell .font = openpyxl .styles .Font (bold = True , italic = True )
4698+
46414699 # Create a sheet for a 2D Plot
46424700 plot_sheet_2D = workbook .create_sheet (title = "2D Plot" )
46434701 fig , ax = plt .subplots ()
0 commit comments