Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ channels:

dependencies:
- matplotlib
- moorpy
- moorpy>=1.2.1
- numpy
- openmdao > 3.30
- pyhams
Expand Down
72 changes: 36 additions & 36 deletions raft/IntersectionMesh.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,46 +34,46 @@ def meshMember(geom, headings, rA, rB, radius, member_id=0,

uniform = isinstance(diameters, (int, float)) or (isinstance(diameters, list) and len(diameters) == 1)

for idx in range(len(headings)):
if np.all(diameters==diameters[0]):
start = rA_ext
end = rB_ext
# for idx in range(len(headings)): # YL 10-15-25: I don't think it's used but might need to double check
if np.all(diameters==diameters[0]):
start = rA_ext
end = rB_ext
axis_segment = [end[i] - start[i] for i in range(3)]
cone = geom.add_cylinder(start, axis_segment, diameters[0]/2)
label = f"Cylinder_{member_id}"
print(f"Meshing {label} | Start: {start} | End: {end} | Radius: {diameters[0]/2}->{diameters[0]/2}")

geom.add_physical(cone, label=label)
cylinders.append(cone)
else:
for s in range(len(stations) - 1):
t0 = (stations[s] - stations[0]) / (stations[-1] - stations[0])
t1 = (stations[s + 1] - stations[0]) / (stations[-1] - stations[0])

if abs(t1 - t0) < 1e-6:
continue

# ⏱ Interpolate segment along extended axis
start = [rA_ext[i] + t0 * axis_full[i] for i in range(3)]
end = [rA_ext[i] + t1 * axis_full[i] for i in range(3)]
axis_segment = [end[i] - start[i] for i in range(3)]
cone = geom.add_cylinder(start, axis_segment, diameters[0]/2)
label = f"Cylinder_{member_id}_{idx}"
print(f"Meshing {label} | Start: {start} | End: {end} | Radius: {diameters[0]/2}->{diameters[0]/2}")

if uniform or diameters is None:
radius_start = radius_end = radius
else:
radius_start = diameters[s] / 2
radius_end = diameters[s + 1] / 2

label = f"Cylinder_{member_id}_seg{s}"
print(f"Meshing {label} | Start: {start} | End: {end} | Radius: {radius_start}->{radius_end}")

if abs(radius_start - radius_end) < 1e-6:
cone = geom.add_cylinder(start, axis_segment, radius_start)
else:
cone = geom.add_cone(start, axis_segment, radius_start, radius_end)

geom.add_physical(cone, label=label)
cylinders.append(cone)
else:
for s in range(len(stations) - 1):
t0 = (stations[s] - stations[0]) / (stations[-1] - stations[0])
t1 = (stations[s + 1] - stations[0]) / (stations[-1] - stations[0])

if abs(t1 - t0) < 1e-6:
continue

# ⏱ Interpolate segment along extended axis
start = [rA_ext[i] + t0 * axis_full[i] for i in range(3)]
end = [rA_ext[i] + t1 * axis_full[i] for i in range(3)]
axis_segment = [end[i] - start[i] for i in range(3)]

if uniform or diameters is None:
radius_start = radius_end = radius
else:
radius_start = diameters[s] / 2
radius_end = diameters[s + 1] / 2

label = f"Cylinder_{member_id}_{idx}_seg{s}"
print(f"Meshing {label} | Start: {start} | End: {end} | Radius: {radius_start}->{radius_end}")

if abs(radius_start - radius_end) < 1e-6:
cone = geom.add_cylinder(start, axis_segment, radius_start)
else:
cone = geom.add_cone(start, axis_segment, radius_start, radius_end)

geom.add_physical(cone, label=label)
cylinders.append(cone)

return cylinders

Expand Down
6 changes: 3 additions & 3 deletions raft/raft_fowt.py
Original file line number Diff line number Diff line change
Expand Up @@ -1360,7 +1360,7 @@ def calcBEM(self, dw=0, wMax=0, wInf=10.0, dz=0, da=0, dh=0, headings=[0], meshD
stations = mem.stations
rA = mem.rA_original if hasattr(mem, "rA_original") else mem.rA
rB = mem.rB_original if hasattr(mem, "rB_original") else mem.rB
headings = mem.heading if hasattr(mem, "heading") else [0]
heading = mem.heading if hasattr(mem, "heading") else [0]
#print("name from raft:", mem.name)
#print("rA from raft: ",mem.rA)
#print("rB from raft: ", mem.rB)
Expand All @@ -1374,7 +1374,7 @@ def calcBEM(self, dw=0, wMax=0, wInf=10.0, dz=0, da=0, dh=0, headings=[0], meshD
"rA": rA,
"rB": rB,
"radius": radius,
"heading": headings,
"heading": heading,
"stations": stations,
"diameters": diameters,
"extensionA": extensionA,
Expand All @@ -1392,7 +1392,7 @@ def calcBEM(self, dw=0, wMax=0, wInf=10.0, dz=0, da=0, dh=0, headings=[0], meshD
"rB": rB,
"widths": widths,
"heights": heights,
"heading": headings,
"heading": heading,
"stations": stations,
"extensionA": extensionA,
"extensionB": extensionB
Expand Down
Loading