@@ -187,16 +187,28 @@ def setup(self):
187
187
self .add_input (m_name + 't' , val = 0.0 , units = 'm' , desc = 'Wall thicknesses' )
188
188
else :
189
189
self .add_input (m_name + 't' , val = np .zeros (mnpts ), units = 'm' , desc = 'Wall thicknesses' )
190
+ if mshape == "circ" :
191
+ if scalar_coeff :
192
+ self .add_input (m_name + 'Cd' , val = 0.0 , desc = 'Transverse drag coefficient' )
193
+ self .add_input (m_name + 'Ca' , val = 0.0 , desc = 'Transverse added mass coefficient' )
194
+ else :
195
+ self .add_input (m_name + 'Cd' , val = np .zeros (mnpts ), desc = 'Transverse drag coefficient' )
196
+ self .add_input (m_name + 'Ca' , val = np .zeros (mnpts ), desc = 'Transverse added mass coefficient' )
197
+ elif mshape == "rect" or mshape == 'square' :
198
+ if scalar_coeff :
199
+ self .add_input (m_name + 'Cd' , val = [0.0 , 0.0 ], desc = 'Transverse drag coefficient' )
200
+ self .add_input (m_name + 'Ca' , val = [0.0 , 0.0 ], desc = 'Transverse added mass coefficient' )
201
+ else :
202
+ self .add_input (m_name + 'Cd' , val = np .zeros ([mnpts ,2 ]), desc = 'Transverse drag coefficient' )
203
+ self .add_input (m_name + 'Ca' , val = np .zeros ([mnpts ,2 ]), desc = 'Transverse added mass coefficient' )
204
+
190
205
if scalar_coeff :
191
- self .add_input (m_name + 'Cd' , val = 0.0 , desc = 'Transverse drag coefficient' )
192
- self .add_input (m_name + 'Ca' , val = 0.0 , desc = 'Transverse added mass coefficient' )
193
206
self .add_input (m_name + 'CdEnd' , val = 0.0 , desc = 'End axial drag coefficient' )
194
207
self .add_input (m_name + 'CaEnd' , val = 0.0 , desc = 'End axial added mass coefficient' )
195
208
else :
196
- self .add_input (m_name + 'Cd' , val = np .zeros (mnpts ), desc = 'Transverse drag coefficient' )
197
- self .add_input (m_name + 'Ca' , val = np .zeros (mnpts ), desc = 'Transverse added mass coefficient' )
198
209
self .add_input (m_name + 'CdEnd' , val = np .zeros (mnpts ), desc = 'End axial drag coefficient' )
199
210
self .add_input (m_name + 'CaEnd' , val = np .zeros (mnpts ), desc = 'End axial added mass coefficient' )
211
+
200
212
self .add_input (m_name + 'rho_shell' , val = 0.0 , units = 'kg/m**3' , desc = 'Material density' )
201
213
# optional
202
214
self .add_input (m_name + 'l_fill' , val = np .zeros (mnpts_lfill ), units = 'm' , desc = 'Fill heights of ballast in each section' )
@@ -530,7 +542,9 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs):
530
542
design ['platform' ]['members' ][i ]['d' ] = np .interp (s_grid , s_0 , inputs [m_name + 'd' ])
531
543
elif m_shape == 'rect' :
532
544
if member_scalar_d [i ]:
533
- design ['platform' ]['members' ][i ]['d' ] = [inputs [m_name + 'd' ]]* mnpts
545
+ design ['platform' ]['members' ][i ]['d' ] = np .zeros ([mnpts ,2 ])
546
+ design ['platform' ]['members' ][i ]['d' ][:,0 ] = [inputs [m_name + 'd' ][0 ]]* mnpts
547
+ design ['platform' ]['members' ][i ]['d' ][:,1 ] = [inputs [m_name + 'd' ][1 ]]* mnpts
534
548
else :
535
549
design ['platform' ]['members' ][i ]['d' ] = np .zeros ([len (s_grid ),2 ])
536
550
design ['platform' ]['members' ][i ]['d' ][:,0 ] = np .interp (s_grid , s_0 , inputs [m_name + 'd' ][:,0 ])
@@ -545,14 +559,32 @@ def compute(self, inputs, outputs, discrete_inputs, discrete_outputs):
545
559
design ['platform' ]['members' ][i ]['t' ] = float (inputs [m_name + 't' ])
546
560
else :
547
561
design ['platform' ]['members' ][i ]['t' ] = np .interp (s_grid , s_0 , inputs [m_name + 't' ])
562
+
563
+ if m_shape == "circ" :
564
+ if member_scalar_coeff [i ]:
565
+ design ['platform' ]['members' ][i ]['Cd' ] = float (inputs [m_name + 'Cd' ])
566
+ design ['platform' ]['members' ][i ]['Ca' ] = float (inputs [m_name + 'Ca' ])
567
+ else :
568
+ design ['platform' ]['members' ][i ]['Cd' ] = np .interp (s_grid , s_0 , inputs [m_name + 'Cd' ])
569
+ design ['platform' ]['members' ][i ]['Ca' ] = np .interp (s_grid , s_0 , inputs [m_name + 'Ca' ])
570
+ elif m_shape == "rect" :
571
+ if member_scalar_coeff [i ]:
572
+ design ['platform' ]['members' ][i ]['Cd' ][0 ] = float (inputs [m_name + 'Cd' ][0 ])
573
+ design ['platform' ]['members' ][i ]['Cd' ][1 ] = float (inputs [m_name + 'Cd' ][1 ])
574
+ design ['platform' ]['members' ][i ]['Ca' ][0 ] = float (inputs [m_name + 'Ca' ][0 ])
575
+ design ['platform' ]['members' ][i ]['Ca' ][1 ] = float (inputs [m_name + 'Ca' ][1 ])
576
+ else :
577
+ design ['platform' ]['members' ][i ]['Cd' ] = np .zeros ([len (s_grid ),2 ])
578
+ design ['platform' ]['members' ][i ]['Ca' ] = np .zeros ([len (s_grid ),2 ])
579
+ design ['platform' ]['members' ][i ]['Cd' ][:,0 ] = np .interp (s_grid , s_0 , inputs [m_name + 'Cd' ][:,0 ])
580
+ design ['platform' ]['members' ][i ]['Cd' ][:,1 ] = np .interp (s_grid , s_0 , inputs [m_name + 'Cd' ][:,1 ])
581
+ design ['platform' ]['members' ][i ]['Ca' ][:,0 ] = np .interp (s_grid , s_0 , inputs [m_name + 'Ca' ][:,0 ])
582
+ design ['platform' ]['members' ][i ]['Ca' ][:,1 ] = np .interp (s_grid , s_0 , inputs [m_name + 'Ca' ][:,1 ])
583
+
548
584
if member_scalar_coeff [i ]:
549
- design ['platform' ]['members' ][i ]['Cd' ] = float (inputs [m_name + 'Cd' ])
550
- design ['platform' ]['members' ][i ]['Ca' ] = float (inputs [m_name + 'Ca' ])
551
585
design ['platform' ]['members' ][i ]['CdEnd' ] = float (inputs [m_name + 'CdEnd' ])
552
586
design ['platform' ]['members' ][i ]['CaEnd' ] = float (inputs [m_name + 'CaEnd' ])
553
587
else :
554
- design ['platform' ]['members' ][i ]['Cd' ] = np .interp (s_grid , s_0 , inputs [m_name + 'Cd' ])
555
- design ['platform' ]['members' ][i ]['Ca' ] = np .interp (s_grid , s_0 , inputs [m_name + 'Ca' ])
556
588
design ['platform' ]['members' ][i ]['CdEnd' ] = np .interp (s_grid , s_0 , inputs [m_name + 'CdEnd' ])
557
589
design ['platform' ]['members' ][i ]['CaEnd' ] = np .interp (s_grid , s_0 , inputs [m_name + 'CaEnd' ])
558
590
design ['platform' ]['members' ][i ]['rho_shell' ] = float (inputs [m_name + 'rho_shell' ])
0 commit comments