Concept-stage sizing tool for offshore wind monopile foundations: an Arany-et-al.-style ("10-step") iteration of ULS/SLS/natural-frequency (soft-stiff)/FLS/local-shell-buckling checks that converges on a diameter, wall thickness, and embedded length.
Concept-level screening only -- not certification or FEED design.
monopile-concept-design.streamlit.app -- no install, no command line, just open the link.
size_monopile(inputs) runs an iterative loop:
- Look up/interpolate turbine properties (rotor diameter, hub height, mass,
thrust, rotor speed range) from
TURBINE_LIBRARYby rated power. - Guess an initial diameter/wall-thickness/embedded-length from rules of thumb anchored to real reference-monopile dimensions.
- Evaluate the candidate geometry against five active sizing checks, each producing a
utilization ratio (pass if <= 1.0):
- ULS -- mudline yield check (von Mises bending + shear vs. steel yield).
- SLS -- mudline rotation vs. an allowable limit (default 0.5 deg).
- NFA -- first natural frequency vs. the "soft-stiff" target band between the 1P (rotor) and 3P (blade-passing) excitation frequencies; if those operating ranges overlap, only 1P clearance is checked and the result is qualified rather than claimed as two-sided NFA convergence.
- FLS -- simplified Palmgren-Miner fatigue damage over the design life.
- Local shell buckling -- DNV-RP-C202 unstiffened-cylinder check using the full exposed shaft as the conservative unsupported panel length.
- If all five active checks pass and a valid NFA band exists, stop (converged). Otherwise adjust diameter or wall thickness -- whichever is more effective for the worst-failing check -- and re-evaluate.
- Once converged, step wall thickness back down while every active check still passes, so the result reflects the true minimum-material thickness rather than just the first passing geometry found.
- Stop at convergence, a runaway guard, or a maximum iteration count -- whichever comes first.
Loads are routed by limit state: ULS and local buckling envelope maximum-
operational and parked-50-year wind cases with Morison drag plus inertia;
SLS uses the unfactored operational case; FLS retains its original calibrated
rated-thrust/drag-only reference. Soil-pile stiffness uses a closed-form
Hetenyi beam-on-elastic-foundation model. See
docs/METHODOLOGY_REPORT.md for every equation, constant, symbol
definition, and reference used -- this section is a summary, that document
is the source of truth.
This is a concept-stage screening tool, not a certified design method. The most consequential simplifications:
- Soil-structure interaction is a closed-form, idealized single homogeneous layer (sand or clay) -- not a full nonlinear multi-layer p-y or PISA solve.
- Extreme loading uses two concept-stage proxies rather than turbine- specific DLC simulations: 1.25 times steady rated thrust for operation and NREL-Borssele-derived power scaling for the parked 50-year case.
- Wave loading uses finite-depth Morison drag plus inertia over a regular- wave phase search -- not an irregular multi-DLC time-domain simulation or a diffraction solution.
- Natural frequency uses a simplified 2-spring (lateral + rocking) closed-form model, omitting the foundation cross-coupling term Arany's full 3-spring method includes. This check is not yet considered fully verified.
- Fatigue is a single equivalent-stress-range Palmgren-Miner check with an empirically-calibrated (not first-principles) load factor -- not a rainflow-counted multi-bin DLC fatigue simulation.
- Local shell buckling is an active conservative sizing driver. Because ring-stiffener spacing is not modeled, it treats the full exposed shaft as one unstiffened panel. If it governs, the result warns that practical panel lengths must be verified and ring stiffeners may be preferable to added uniform wall thickness. Global (Euler) column buckling is not evaluated.
- Embedded length has no independent design driver -- it's a fixed L/D ratio at the initial guess, not solved against ultimate soil capacity.
- D/t manufacturability bounds are advisory, not a hard limit -- a converged geometry outside the configured range is flagged with a warning rather than blocked.
- Turbine data for 5/15/22 MW is sourced from published reference-turbine reports; 10 MW is sourced separately; 25 MW is an unverified extrapolation.
The full, current list (27 items) is in docs/METHODOLOGY_REPORT.md section
11. For the dated history of how each assumption was chosen or changed
(sensitivity sweeps, bugs found and fixed), see docs/method_update_log.md.
pip install -r requirements.txt
py -m streamlit run app.pyengine.py's TURBINE_LIBRARY spans 5-25 MW. The 5/15/22 MW entries are
sourced from published reference-turbine reports (OC3/NREL 5MW, IEA 15MW,
IEA 22MW); 10 MW is from the DTU 10MW report; 25 MW is an extrapolation, not
an independently verified turbine.
BC90 additively extends this tool with a taut, pre-tensioned 3-line mooring system for a bottom-founded monopile in 60-90 m "transitional deepwater" -- where a conventional monopile becomes uneconomic and floating wind remains costly/unproven at scale. It reuses every baseline check unchanged (turbine lookup, loads, soil stiffness, ULS/SLS/NFA/FLS/buckling) and adds the mooring reaction, a new fairlead-section check, mooring-line ULS, and a slack/minimum-tension check.
bc90/mooring.py-- single-line and 3-line mooring stiffness, flexibility kernel, redundant-force solve, natural-frequency stiffness correction.bc90/engine_bc90.py--evaluate_bc90, the BC90 analog ofengine.py'sevaluate_monopile; imports the baseline turbine/load/soil/ULS/SLS/FLS/ buckling functions unchanged.docs/BC90_METHODOLOGY_REPORT.md-- full BC90 methodology (equations, symbols, references), mirroringdocs/METHODOLOGY_REPORT.md's structure.
engine.py and app.py (the baseline MP tool) are not modified by BC90.
Neretek BC90 -- Concept Design Tool: Engineering Report -- independent concept-screening analysis of Neretek's public BC90 concept: tool verification against 3 real reference monopile designs (diameter within 1% in all cases) and against the MP baseline in the zero-mooring limit, plus quantified cost/weight benefit vs. water depth.