Skip to content
Open
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
4 changes: 4 additions & 0 deletions dat/Daring/righting_moment.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"Heel": [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0],
"GZ": [0.000, 0.120, 0.230, 0.310, 0.350, 0.330, 0.260]
}
5 changes: 5 additions & 0 deletions dat/orc/asym_cl_kite.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# asymmetric spinnaker centerline tack lift and drag coefficients (ORC VPP). first row is awa
0.02639,,,,,,,,,,,
0.0000,28.000,41.000,50.000,60.000,67.000,75.000,100.000,115.000,130.000,150.000,180.000
0.0000,0.19100,0.28000,0.36600,0.52300,0.44800,0.55600,0.75700,0.79000,0.77600,0.62000,0.40000
0.0000,0.02600,1.01800,1.27700,1.47100,1.51300,1.44400,1.13700,0.82900,0.56000,0.25000,-0.12000
5 changes: 5 additions & 0 deletions dat/orc/asym_pole_kite.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# asymmetric spinnaker pole tack lift and drag coefficients (ORC VPP). first row is awa
0.02639,,,,,,,,,,,
0.0000,28.000,41.000,50.000,60.000,67.000,75.000,100.000,115.000,130.000,150.000,180.000
0.0000,0.17000,0.23800,0.30600,0.45900,0.39200,0.49300,0.79100,0.89400,0.93600,0.93600,0.93600
0.0000,0.08500,1.11400,1.36000,1.51300,1.54800,1.47900,1.20700,0.95600,0.70600,0.42500,0.00000
5 changes: 5 additions & 0 deletions dat/orc/jib.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# jib lift drag and lift coefficient (high). first row is awa
0.016,,,,,,,,,
0.00000,7.0000,15.0000,20.0000,27.0000,50.0000,60.0000,100.0000,150.0000,180.0000
0.003,0.05000,0.03200,0.03100,0.03700,0.25000,0.35000,0.73000,0.95000,0.90000
0.00000,0.00000,1.10000,1.47500,1.50000,1.45000,1.25000,0.40000,0.00000,-0.10000
5 changes: 5 additions & 0 deletions dat/orc/jib_low.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# jib lift drag and lift coefficient (low performance rig). first row is awa
0.016,,,,,,,,,
0.00000,7.0000,15.0000,20.0000,27.0000,50.0000,60.0000,100.0000,150.0000,180.0000
0.003,0.05000,0.03200,0.03100,0.03700,0.25000,0.35000,0.73000,0.95000,0.90000
0.00000,0.00000,1.00000,1.37500,1.45000,1.43000,1.25000,0.40000,0.00000,-0.10000
5 changes: 5 additions & 0 deletions dat/orc/kite.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# kite lift drag and lift coefficient (high). first row is awa
0.02639,,,,,,,,,,,,
0.0000,28.000,41.000,50.000,60.000,67.000,75.000,100.000,115.000,130.000,150.000,170.000,180.000
0.0000,0.19152,0.28152,0.35496,0.43920,0.48960,0.53280,0.61920,0.65880,0.67320,0.67320,0.67320,0.67320
0.0000,-0.02484,0.69437,0.90677,1.04400,1.08000,1.08000,0.95760,0.81360,0.61200,0.32400,0.10800,0.00000
5 changes: 5 additions & 0 deletions dat/orc/main.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# mainsail lift drag and lift coefficient (high). first row is awa
0.01379,,,,,,,,,
0.00000,7.0000,9.0000,12.0000,28.0000,60.0000,90.0000,120.0000,150.0000,180.000
0.03448,0.01724,0.01466,0.01466,0.02586,0.11302,0.38250,0.96888,1.31578,1.34483
0.00000,0.94828,1.13793,1.25000,1.42681,1.38319,1.26724,0.93103,0.38793,-0.11207
5 changes: 5 additions & 0 deletions dat/orc/main_low.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# mainsail lift drag and lift coefficient (low performance rig). first row is awa
0.01379,,,,,,,,,
0.00000,7.0000,9.0000,12.0000,28.0000,60.0000,90.0000,120.0000,150.0000,180.000
0.04300,0.02600,0.02300,0.02300,0.03300,0.11302,0.38250,0.96888,1.31578,1.34483
0.00000,0.86200,1.05200,1.16400,1.34700,1.23900,1.12500,0.83800,0.29600,-0.11207
5 changes: 5 additions & 0 deletions dat/orc/sym_kite.dat
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# symmetric spinnaker lift and drag coefficients (ORC VPP). first row is awa
0.02639,,,,,,,,,,,
0.0000,28.000,41.000,50.000,60.000,67.000,75.000,100.000,115.000,130.000,150.000,180.000
0.0000,0.21300,0.32100,0.42500,0.58700,0.59800,0.61900,0.85000,0.91100,0.93500,0.93500,0.93500
0.0000,0.00000,0.97800,1.24100,1.45400,1.45600,1.43700,1.19000,0.95100,0.70600,0.42500,0.00000
1 change: 1 addition & 0 deletions dat/polars_Daring_5.5m.json

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions dat/polars_YD41.json

Large diffs are not rendered by default.

70 changes: 70 additions & 0 deletions runDaring.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
#!/usr/bin/env python3
"""
Velocity Prediction Program for the Daring sailing yacht.

The Daring is a one-design keelboat designed by Arthur Robb, based on
his 5.5 Metre class yacht "Vision" (1956 Olympic silver medal).

Published specifications (classicsailboats.org):
LOA: 9.90m | LWL: 7.01m | Beam: 1.98m | Draft: 1.35m
Displacement: 2000 kg | Upwind sail area: 29.73 m²

Estimated parameters are documented in docs/plans/2026-02-27-daring-vpp.md.
All estimates are marked and can be refined with actual measurements.
"""
import logging

import numpy as np

from src.SailMod import Jib, Kite, Main
from src.VPPMod import VPP
from src.YachtMod import Rudder, ShortKeel, Yacht

logging.basicConfig(level=logging.INFO)

# --- Estimated GZ curve for classic 5.5m ---
# GM ~0.70m, ~50% ballast ratio, narrow beam (1.98m)
# See docs/plans/2026-02-27-daring-vpp.md for derivation
DARING_GZ = {
"Heel": [0.0, 10.0, 20.0, 30.0, 40.0, 50.0, 60.0],
"GZ": [0.000, 0.120, 0.230, 0.310, 0.350, 0.330, 0.260],
}

Daring = Yacht(
Name="Daring",
Lwl=7.01, # (published) waterline length
Vol=1.95, # (estimated) 2000kg / 1025 kg/m³
Bwl=1.70, # (estimated) ~86% of Boa
Tc=0.45, # (estimated) canoe body draft
WSA=11.5, # (estimated) Delf series for narrow hull
Tmax=1.35, # (published) max draft incl. keel
Amax=0.38, # (estimated) Bwl × Tc × Cm(0.50)
Mass=2000, # (published) total displacement
Loa=9.90, # (published) length overall
Boa=1.98, # (published) beam overall
Ff=0.75, # (estimated) freeboard fore
Fa=0.55, # (estimated) freeboard aft
App=[
ShortKeel(Length=1.2, Depth=0.90, Tc_ratio=0.15), # hull-integrated keel
Rudder(Cu=0.32, Cl=0.18, Span=0.75), # (estimated) separated rudder
],
Sails=[
Main("MN1", P=10.80, E=3.30, Roach=0.1, BAD=0.80), # (est.) ~19.6 m²
Jib("J1", I=8.50, J=2.70, LPG=2.70, HBI=0.50), # (est.) ~11.5 m²
Kite("S1", area=50.0, vce=4.50), # (est.) symmetric kite
],
GZ=DARING_GZ,
crew_weight=240.0, # 3 crew × 80 kg
)

vpp = VPP(Yacht=Daring)

vpp.set_analysis(
tws_range=np.arange(4.0, 22.0, 2.0),
twa_range=np.linspace(30.0, 180.0, 31),
)

vpp.run(verbose=False)
vpp.write("results_daring")
vpp.polar(3, True)
vpp.SailChart(True)
Loading