Skip to content

Commit 6ffe622

Browse files
yqliaohkdzalkind
authored andcommitted
Ca and Cd from wisdem
1 parent 08ca642 commit 6ffe622

File tree

1 file changed

+41
-9
lines changed

1 file changed

+41
-9
lines changed

raft/omdao_raft.py

Lines changed: 41 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -187,16 +187,28 @@ def setup(self):
187187
self.add_input(m_name+'t', val=0.0, units='m', desc='Wall thicknesses')
188188
else:
189189
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+
190205
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')
193206
self.add_input(m_name+'CdEnd', val=0.0, desc='End axial drag coefficient')
194207
self.add_input(m_name+'CaEnd', val=0.0, desc='End axial added mass coefficient')
195208
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')
198209
self.add_input(m_name+'CdEnd', val=np.zeros(mnpts), desc='End axial drag coefficient')
199210
self.add_input(m_name+'CaEnd', val=np.zeros(mnpts), desc='End axial added mass coefficient')
211+
200212
self.add_input(m_name+'rho_shell', val=0.0, units='kg/m**3', desc='Material density')
201213
# optional
202214
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):
530542
design['platform']['members'][i]['d'] = np.interp(s_grid, s_0, inputs[m_name+'d'])
531543
elif m_shape == 'rect':
532544
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
534548
else:
535549
design['platform']['members'][i]['d'] = np.zeros([len(s_grid),2])
536550
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):
545559
design['platform']['members'][i]['t'] = float(inputs[m_name+'t'])
546560
else:
547561
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+
548584
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'])
551585
design['platform']['members'][i]['CdEnd'] = float(inputs[m_name+'CdEnd'])
552586
design['platform']['members'][i]['CaEnd'] = float(inputs[m_name+'CaEnd'])
553587
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'])
556588
design['platform']['members'][i]['CdEnd'] = np.interp(s_grid, s_0, inputs[m_name+'CdEnd'])
557589
design['platform']['members'][i]['CaEnd'] = np.interp(s_grid, s_0, inputs[m_name+'CaEnd'])
558590
design['platform']['members'][i]['rho_shell'] = float(inputs[m_name+'rho_shell'])

0 commit comments

Comments
 (0)