@@ -4448,31 +4448,27 @@ def mapRAFTResults(self, results=None, SFs=True):
44484448 for moor in self .mooringList .values ():
44494449 moor .safety_factors ['tension' ] = 1e10
44504450
4451- # initialize raftResults dictionary in Line [Why isn't line an edge?]
4452- for moor in self .mooringList .values ():
4453- for line in moor .ss .lineList :
4454- line .raftResults = {}
4455-
44564451 for iCase in range (nCases ):
4457- i = 0
4458- for moor in self .mooringList .values ():
4452+ for i , moor in enumerate (self .mooringList .values ()):
4453+ # Find the corresponding line in the proj.ms.lineList
4454+ idx = moor .ss .number - 1
4455+
44594456 moor .raftResults [iCase ] = {
4460- 'Tmoor_avg' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_avg' ][[i , i + len (self .ms .lineList )]],
4461- 'Tmoor_std' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_std' ][[i , i + len (self .ms .lineList )]],
4462- 'Tmoor_min' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_min' ][[i , i + len (self .ms .lineList )]],
4463- 'Tmoor_max' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_max' ][[i , i + len (self .ms .lineList )]],
4464- 'Tmoor_PSD' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_PSD' ][[i , i + len (self .ms .lineList )], :]
4457+ 'Tmoor_avg' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_avg' ][[idx , idx + len (self .ms .lineList )]],
4458+ 'Tmoor_std' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_std' ][[idx , idx + len (self .ms .lineList )]],
4459+ 'Tmoor_min' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_min' ][[idx , idx + len (self .ms .lineList )]],
4460+ 'Tmoor_max' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_max' ][[idx , idx + len (self .ms .lineList )]],
4461+ 'Tmoor_PSD' : self .array .results ['case_metrics' ][iCase ]['array_mooring' ]['Tmoor_PSD' ][[idx , idx + len (self .ms .lineList )], :]
44654462 }
44664463 if SFs :
44674464 SF = np .zeros ((len (moor .ss .lineList )))
4468- for i , line in enumerate (moor .ss .lineList ):
4465+ for j , line in enumerate (moor .ss .lineList ):
44694466 line_MBL = line .type ['MBL' ]
4470- SF [i ] = line_MBL / np .mean (moor .raftResults [iCase ]['Tmoor_avg' ])
4467+ SF [j ] = line_MBL / np .mean (moor .raftResults [iCase ]['Tmoor_avg' ])
44714468
44724469 moor .safety_factors ['tension' ] = min ([moor .safety_factors ['tension' ], min (SF )])
44734470 moor .safety_factors ['analysisType' ] = f'(RAFT) MoorMod={ self .array .moorMod } '
44744471
4475- i += 1
44764472
44774473 def generateSheets (self , filename ):
44784474 """
@@ -4601,31 +4597,43 @@ def style_it(sheet, row, col_start, col_end, fill_color="FFFF00"):
46014597
46024598 # Create a sheet for mooring lines
46034599 mooring_sheet = workbook .create_sheet (title = "Mooring Lines" )
4604- mooring_sheet .append (["ID" , "endA" , "endB" , "Shrd" , "Safety Factors" , "Fid Level" , "Case" , "Avg EndA Tension (kN)" , "Std EndA Tension (kN)" , "Avg EndB Tension (kN)" , "Std EndB Tension (kN)" ])
4600+ 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)" ])
46054601 for moor in self .mooringList .values ():
4602+ # Find nominal diameters in moor
4603+ ch_dnom = '-'
4604+ rp_dnom = '-'
4605+
4606+ for line in moor .ss .lineList :
4607+ if 'rope' in line .type ['material' ] or 'polyester' in line .type ['material' ]: # change the polyester/rope length
4608+ rp_dnom = line .type ['d_nom' ] * 1e3
4609+ elif 'chain' in line .type ['material' ]:
4610+ ch_dnom = line .type ['d_nom' ] * 1e3
4611+
46064612 if hasattr (moor , 'raftResults' ):
46074613 for iCase in range (nCases ):
46084614 if iCase == 0 :
4609- mooring_sheet .append ([moor .id , moor .attached_to [0 ].id , moor .attached_to [1 ].id , moor .shared , round (moor .safety_factors ['tension' ], 3 ), moor .safety_factors ['analysisType' ], iCase ,
4615+ 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' ], iCase ,
46104616 round (moor .raftResults [iCase ]['Tmoor_avg' ][0 ], 3 )/ 1e3 , round (moor .raftResults [iCase ]['Tmoor_std' ][0 ], 3 )/ 1e3 ,
46114617 round (moor .raftResults [iCase ]['Tmoor_avg' ][1 ], 3 )/ 1e3 , round (moor .raftResults [iCase ]['Tmoor_std' ][1 ], 3 )/ 1e3 ])
46124618 if moor .safety_factors ['tension' ]< 2.0 :
4613- style_it (mooring_sheet , mooring_sheet .max_row , 1 , 6 , fill_color = "FF0000" )
4619+ style_it (mooring_sheet , mooring_sheet .max_row , 1 , 8 , fill_color = "FF0000" )
46144620
46154621 else :
4616- mooring_sheet .append ([" " , " " , " " , " " , " " , " " , iCase ,
4622+ mooring_sheet .append ([" " , " " , " " , " " , " " , " " , " " , " " , iCase ,
46174623 round (moor .raftResults [iCase ]['Tmoor_avg' ][0 ], 3 )/ 1e3 , round (moor .raftResults [iCase ]['Tmoor_std' ][0 ], 3 )/ 1e3 ,
46184624 round (moor .raftResults [iCase ]['Tmoor_avg' ][1 ], 3 )/ 1e3 , round (moor .raftResults [iCase ]['Tmoor_std' ][1 ], 3 )/ 1e3 ])
46194625 if np .any (moor .raftResults [iCase ]['Tmoor_avg' ]/ 1e3 < 100 ):
4620- style_it (mooring_sheet , mooring_sheet .max_row , 7 , mooring_sheet .max_column , fill_color = "FFFF00" )
4626+ style_it (mooring_sheet , mooring_sheet .max_row , 9 , mooring_sheet .max_column , fill_color = "FFFF00" )
46214627 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 1 , end_row = mooring_sheet .max_row , end_column = 1 )
46224628 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 2 , end_row = mooring_sheet .max_row , end_column = 2 )
46234629 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 3 , end_row = mooring_sheet .max_row , end_column = 3 )
46244630 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 4 , end_row = mooring_sheet .max_row , end_column = 4 )
46254631 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 5 , end_row = mooring_sheet .max_row , end_column = 5 )
46264632 mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 6 , end_row = mooring_sheet .max_row , end_column = 6 )
4633+ mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 7 , end_row = mooring_sheet .max_row , end_column = 7 )
4634+ mooring_sheet .merge_cells (start_row = mooring_sheet .max_row - nCases + 1 , start_column = 8 , end_row = mooring_sheet .max_row , end_column = 8 )
46274635 else :
4628- mooring_sheet .append ([moor .id , moor .attached_to [0 ].id , moor .attached_to [1 ].id , moor .shared , round (moor .safety_factors ['tension' ], 3 ), moor .safety_factors ['analysisType' ]])
4636+ 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' ]])
46294637
46304638 # Create a sheet for a 2D Plot
46314639 plot_sheet_2D = workbook .create_sheet (title = "2D Plot" )
0 commit comments