Skip to content

Commit bc42fff

Browse files
committed
Give tlp_example members names
1 parent e1dc501 commit bc42fff

1 file changed

Lines changed: 39 additions & 37 deletions

File tree

examples/09_floating/tlp_example.py

Lines changed: 39 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
opt["floating"]["members"]["n_ballasts"] = [2, 0, 0, 0]
2525
opt["floating"]["members"]["n_axial_joints"] = [0, 0, 0, 0]
2626
opt["floating"]["members"]["outer_shape"] = 4 * ["circular"]
27+
opt["floating"]["members"]["name"] = ['spar', 'leg1', 'leg2', 'leg3']
2728
opt["floating"]["rigid_bodies"] = {}
2829
opt["floating"]["rigid_bodies"]["n_bodies"] = 0
2930
opt["WISDEM"] = {}
@@ -73,46 +74,47 @@
7374

7475
# Main geometry
7576
h = np.array([10.0, 20.0, 10.0, 8.0])
76-
prob["member0.outfitting_factor_in"] = 1.05 # Fraction of additional outfitting mass for each column
77-
prob["member0.grid_axial_joints"] = []
78-
prob["member0.ballast_grid"] = np.array([[0, 0.25], [0, 0.5]])
79-
prob["member0.ballast_volume"] = [np.pi * 7**2 * 5, 0.0]
80-
prob["member0.s_in"] = np.cumsum(np.r_[0, h]) / h.sum()
81-
prob["member0.outer_diameter_in"] = 14 * np.ones(npts)
82-
prob["member0.layer_thickness"] = 0.05 * np.ones((1, npts))
83-
prob["member0.layer_materials"] = ["steel"]
84-
prob["member0.ballast_materials"] = ["slurry", "seawater"]
85-
prob["member0:joint1"] = np.array([0.0, 0.0, 8.0 - h.sum()])
86-
prob["member0:joint2"] = np.array([0.0, 0.0, 8.0]) # Freeboard=10
87-
prob["member0.bulkhead_thickness"] = 0.05 * np.ones(4) # Locations of internal bulkheads
88-
prob["member0.bulkhead_grid"] = np.array([0.0, 0.25, 0.5, 1.0])
89-
prob["member0.ring_stiffener_web_height"] = 0.10
90-
prob["member0.ring_stiffener_web_thickness"] = 0.04
91-
prob["member0.ring_stiffener_flange_width"] = 0.10
92-
prob["member0.ring_stiffener_flange_thickness"] = 0.02
93-
prob["member0.ring_stiffener_spacing"] = 0.044791667 # non-dimensional ring stiffener spacing
77+
prob["member0_spar.outfitting_factor_in"] = 1.05 # Fraction of additional outfitting mass for each column
78+
prob["member0_spar.grid_axial_joints"] = []
79+
prob["member0_spar.ballast_grid"] = np.array([[0, 0.25], [0, 0.5]])
80+
prob["member0_spar.ballast_volume"] = [np.pi * 7**2 * 5, 0.0]
81+
prob["member0_spar.s_in"] = np.cumsum(np.r_[0, h]) / h.sum()
82+
prob["member0_spar.outer_diameter_in"] = 14 * np.ones(npts)
83+
prob["member0_spar.layer_thickness"] = 0.05 * np.ones((1, npts))
84+
prob["member0_spar.layer_materials"] = ["steel"]
85+
prob["member0_spar.ballast_materials"] = ["slurry", "seawater"]
86+
prob["member0_spar:joint1"] = np.array([0.0, 0.0, 8.0 - h.sum()])
87+
prob["member0_spar:joint2"] = np.array([0.0, 0.0, 8.0]) # Freeboard=10
88+
prob["member0_spar.bulkhead_thickness"] = 0.05 * np.ones(4) # Locations of internal bulkheads
89+
prob["member0_spar.bulkhead_grid"] = np.array([0.0, 0.25, 0.5, 1.0])
90+
prob["member0_spar.ring_stiffener_web_height"] = 0.10
91+
prob["member0_spar.ring_stiffener_web_thickness"] = 0.04
92+
prob["member0_spar.ring_stiffener_flange_width"] = 0.10
93+
prob["member0_spar.ring_stiffener_flange_thickness"] = 0.02
94+
prob["member0_spar.ring_stiffener_spacing"] = 0.044791667 # non-dimensional ring stiffener spacing
9495

9596
# Now do the legs
9697
angs = np.linspace(0, 2 * np.pi, 1 + opt["mooring"]["n_attach"])
9798
for k in range(1, 4):
98-
prob["member" + str(k) + ".outfitting_factor_in"] = 1.05 # Fraction of additional outfitting mass for each column
99-
prob["member" + str(k) + ".grid_axial_joints"] = []
100-
prob["member" + str(k) + ".s_in"] = np.array([0.0, 0.5, 1.0])
101-
prob["member" + str(k) + ".outer_diameter_in"] = 5 * np.ones(3)
102-
prob["member" + str(k) + ".ca_usr_grid"] = 2.0*np.ones(3) # Added mass coefficient
103-
prob["member" + str(k) + ".cd_usr_grid"] = -1.0*np.ones(3) # drag coefficient
104-
prob["member" + str(k) + ".layer_thickness"] = 0.05 * np.ones((1, 3))
105-
prob["member" + str(k) + ".layer_materials"] = ["steel"]
106-
prob["member" + str(k) + ".ballast_materials"] = []
107-
prob["member" + str(k) + ":joint1"] = np.array([30.0 * np.cos(angs[k - 1]), 30.0 * np.sin(angs[k - 1]), -40.0])
108-
prob["member" + str(k) + ":joint2"] = np.array([0.0, 0.0, -40.0]) # Freeboard=10
109-
prob["member" + str(k) + ".bulkhead_thickness"] = 0.05 * np.ones(2) # Locations of internal bulkheads
110-
prob["member" + str(k) + ".bulkhead_grid"] = np.array([0.0, 1.0])
111-
prob["member" + str(k) + ".ring_stiffener_web_height"] = 0.10
112-
prob["member" + str(k) + ".ring_stiffener_web_thickness"] = 0.04
113-
prob["member" + str(k) + ".ring_stiffener_flange_width"] = 0.10
114-
prob["member" + str(k) + ".ring_stiffener_flange_thickness"] = 0.02
115-
prob["member" + str(k) + ".ring_stiffener_spacing"] = 0.06666667 # non-dimensional ring stiffener spacing
99+
kname = opt["floating"]["members"]["name"][k]
100+
prob["member" + str(k) + f"_{kname}" + ".outfitting_factor_in"] = 1.05 # Fraction of additional outfitting mass for each column
101+
prob["member" + str(k) + f"_{kname}" + ".grid_axial_joints"] = []
102+
prob["member" + str(k) + f"_{kname}" + ".s_in"] = np.array([0.0, 0.5, 1.0])
103+
prob["member" + str(k) + f"_{kname}" + ".outer_diameter_in"] = 5 * np.ones(3)
104+
prob["member" + str(k) + f"_{kname}" + ".ca_usr_grid"] = 2.0*np.ones(3) # Added mass coefficient
105+
prob["member" + str(k) + f"_{kname}" + ".cd_usr_grid"] = -1.0*np.ones(3) # drag coefficient
106+
prob["member" + str(k) + f"_{kname}" + ".layer_thickness"] = 0.05 * np.ones((1, 3))
107+
prob["member" + str(k) + f"_{kname}" + ".layer_materials"] = ["steel"]
108+
prob["member" + str(k) + f"_{kname}" + ".ballast_materials"] = []
109+
prob["member" + str(k) + f"_{kname}" + ":joint1"] = np.array([30.0 * np.cos(angs[k - 1]), 30.0 * np.sin(angs[k - 1]), -40.0])
110+
prob["member" + str(k) + f"_{kname}" + ":joint2"] = np.array([0.0, 0.0, -40.0]) # Freeboard=10
111+
prob["member" + str(k) + f"_{kname}" + ".bulkhead_thickness"] = 0.05 * np.ones(2) # Locations of internal bulkheads
112+
prob["member" + str(k) + f"_{kname}" + ".bulkhead_grid"] = np.array([0.0, 1.0])
113+
prob["member" + str(k) + f"_{kname}" + ".ring_stiffener_web_height"] = 0.10
114+
prob["member" + str(k) + f"_{kname}" + ".ring_stiffener_web_thickness"] = 0.04
115+
prob["member" + str(k) + f"_{kname}" + ".ring_stiffener_flange_width"] = 0.10
116+
prob["member" + str(k) + f"_{kname}" + ".ring_stiffener_flange_thickness"] = 0.02
117+
prob["member" + str(k) + f"_{kname}" + ".ring_stiffener_spacing"] = 0.06666667 # non-dimensional ring stiffener spacing
116118

117119
# Mooring parameters: Nylon
118120
prob["line_diameter"] = 0.5 # Diameter of mooring line/chain [m]
@@ -145,7 +147,7 @@
145147
prob["env.Uref"] = 11.0
146148
prob["wind_reference_height"] = 119.0
147149

148-
prob["transition_node"] = prob["member0:joint2"]
150+
prob["transition_node"] = prob["member0_spar:joint2"]
149151

150152
# Properties of rotor-nacelle-assembly (RNA)
151153
prob["turbine_mass"] = 350e3

0 commit comments

Comments
 (0)