Agent skill
orcaflex-static-debug-1-line-catenary-diverged
Sub-skill of orcaflex-static-debug: 1. Line Catenary Diverged (+4).
Install this agent skill to your Project
npx add-skill https://github.com/vamseeachanta/workspace-hub/tree/main/.claude/skills/_archive/engineering/marine-offshore/orcaflex-static-debug/1-line-catenary-diverged
SKILL.md
1. Line Catenary Diverged (+4)
1. Line Catenary Diverged
Symptoms:
- Error mentions "catenary" or "line diverged"
- Specific line name in error message
Causes:
- Line too short for connection points
- Incorrect end positions
- Incompatible line type properties
Solutions:
# Check line geometry
line = model["Failing_Line"]
# Get end positions
end_a_x, end_a_y, end_a_z = line.EndAX, line.EndAY, line.EndAZ
end_b_x, end_b_y, end_b_z = line.EndBX, line.EndBY, line.EndBZ
# Calculate required length (straight line minimum)
import math
min_length = math.sqrt(
(end_b_x - end_a_x)**2 +
(end_b_y - end_a_y)**2 +
(end_b_z - end_a_z)**2
)
total_length = sum(line.Length)
print(f"Minimum length required: {min_length:.1f}m")
print(f"Total line length: {total_length:.1f}m")
if total_length < min_length * 1.1:
print("Line is too short! Increase length by at least 10%")
2. Vessel Not in Equilibrium
Symptoms:
- "Vessel not in equilibrium"
- Large forces/moments on vessel
Causes:
- Mooring forces don't balance
- Incorrect initial position
- Missing or misconfigured lines
Solutions:
# Option 1: Let OrcaFlex find equilibrium position
vessel:
IncludedInStatics: "Included"
CalculatedPosition: "Yes" # Let OrcaFlex calculate position
# Option 2: Fix vessel position
vessel:
IncludedInStatics: "Included"
InitialX: 0.0
InitialY: 0.0
InitialZ: 0.0 # At draft
3. Anchor Not at Seabed
Symptoms:
- "End not at seabed"
- Anchor position mismatch
Solutions:
# Ensure anchor is at seabed
water_depth = model.environment.WaterDepth
for line in lines:
if line.EndAConnection == "Anchored":
# Set anchor at seabed
line.EndAZ = -water_depth
if line.EndBConnection == "Anchored":
line.EndBZ = -water_depth
4. Buoy/Structure Instability
Symptoms:
- 6D Buoy convergence failure
- Unrealistic rotations
Solutions:
# Add constraints during statics
6DBuoy:
Name: "CALM_Buoy"
# Fix orientation during statics
Constraint1: "Fixed" # Fix X rotation
Constraint2: "Fixed" # Fix Y rotation
Constraint3: "Free" # Allow Z rotation (yaw)
5. Zero-Tension Lines
Symptoms:
- Singular stiffness matrix
- Lines with zero or negative tension
Solutions:
# Check initial tensions
for line in lines:
try:
# Estimate initial tension from catenary
weight_in_water = line.MassPerUnitLength * 9.81 * (1 - 1025/7850)
length = sum(line.Length)
# Very rough tension estimate
estimated_tension = weight_in_water * length / 2
if estimated_tension < 100: # Very low tension
print(f"Warning: {line.name} may have low tension")
print("Consider:")
print(" - Increasing line length")
print(" - Adjusting end positions")
print(" - Adding buoyancy")
except:
pass
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
gsd-complete-milestone
Archive completed milestone and prepare for next version
gsd-reapply-patches
Reapply local modifications after a GSD update
gsd-verify-work
Validate built features through conversational UAT
gsd-thread
Manage persistent context threads for cross-session work
clinical-trial-protocol
Generate clinical trial protocols for medical devices or drugs through a modular, waypoint-based architecture with research-only and full protocol modes.
single-cell-rna-qc
Performs quality control on single-cell RNA-seq data (.h5ad or .h5 files) using scverse best practices with MAD-based filtering and comprehensive visualizations.
Didn't find tool you were looking for?