Class FloatingSubstructure

All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class FloatingSubstructure extends ProcessEquipmentBaseClass
Floating substructure model for offshore wind turbines and oil/gas platforms.

Calculates hydrostatic stability, displacement, draft, and key design parameters for floating structures. Supports common floating concepts:

  • Semi-submersible: Multiple columns connected by braces, good motion characteristics
  • Spar: Deep-draft cylindrical structure, deep water, ballast-stabilized
  • Barge: Shallow-draft flat-bottomed, simple construction
  • TLP (Tension Leg Platform): Buoyancy-excess anchored by tendons

Key Calculations

  • Hydrostatic equilibrium (draft, displacement, buoyancy)
  • Metacentric height (GM) for intact and damaged stability
  • Waterplane area moment of inertia
  • Natural periods (heave, pitch, roll)
  • Steel weight estimation
  • Concept screening and comparison

Design Standards

  • DNV-ST-0119 — Floating wind turbine structures
  • DNV-OS-C301 — Stability and watertight integrity
  • DNV-OS-E301 — Position mooring
  • ABS Guide for Building and Classing Floating Offshore Wind Turbines

Usage Example

FloatingSubstructure fs = new FloatingSubstructure("Spar Foundation");
fs.setConceptType(FloatingSubstructure.ConceptType.SPAR);
fs.setTurbineMass(1200.0);   // tonnes
fs.setTowerMass(800.0);      // tonnes
fs.setWaterDepth(265.0);     // m
fs.setSignificantWaveHeight(14.0); // m (100-year)
fs.setSeawaterDensity(1025.0);     // kg/m3

// Spar geometry
fs.setColumnDiameter(15.0);   // m
fs.setColumnHeight(80.0);     // m

fs.run();
double gm = fs.getMetacentricHeight();  // m
double draft = fs.getDraft();            // m
Version:
1.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • conceptType

      private FloatingSubstructure.ConceptType conceptType
      Concept type.
    • turbineMass

      private double turbineMass
      Turbine nacelle + rotor mass [tonnes].
    • towerMass

      private double towerMass
      Tower mass [tonnes].
    • hubHeight

      private double hubHeight
      Hub height above sea level [m].
    • towerCogAboveKeel

      private double towerCogAboveKeel
      Tower center of gravity above keel [m] (set during calc if not specified).
    • waterDepth

      private double waterDepth
      Water depth at site [m].
    • seawaterDensity

      private double seawaterDensity
      Seawater density [kg/m3].
    • steelDensity

      private double steelDensity
      Steel density [kg/m3].
    • significantWaveHeight

      private double significantWaveHeight
      Significant wave height, 100-year [m].
    • peakSpectralPeriod

      private double peakSpectralPeriod
      Peak spectral period [s].
    • designWindThrust

      private double designWindThrust
      Design wind thrust [kN] (at rated wind speed).
    • numberOfColumns

      private int numberOfColumns
      Number of columns (semi-sub).
    • columnDiameter

      private double columnDiameter
      Column diameter [m] (semi-sub/spar).
    • columnHeight

      private double columnHeight
      Column height [m].
    • columnSpacing

      private double columnSpacing
      Column spacing (center-to-center) [m] (semi-sub).
    • pontoonWidth

      private double pontoonWidth
      Pontoon width [m] (semi-sub).
    • pontoonHeight

      private double pontoonHeight
      Pontoon height [m] (semi-sub).
    • heavePlateDiameter

      private double heavePlateDiameter
      Heave plate diameter [m] (semi-sub/spar, 0 = none).
    • sparHeight

      private double sparHeight
      Spar total height [m] (spar concept only).
    • sparUpperDiameter

      private double sparUpperDiameter
      Spar upper diameter [m] (tapered spar).
    • bargeLength

      private double bargeLength
      Barge length [m].
    • bargeWidth

      private double bargeWidth
      Barge width [m].
    • bargeDepth

      private double bargeDepth
      Barge height [m].
    • ballastMass

      private double ballastMass
      Ballast mass [tonnes] — calculated or set.
    • ballastCogAboveKeel

      private double ballastCogAboveKeel
      Ballast center of gravity above keel [m].
    • ballastDensity

      private double ballastDensity
      Ballast density (seawater or solid) [kg/m3].
    • steelWeight

      private double steelWeight
      Steel weight of substructure [tonnes].
    • displacement

      private double displacement
      Total displacement [tonnes].
    • draft

      private double draft
      Operating draft [m].
    • waterplaneArea

      private double waterplaneArea
      Waterplane area [m2].
    • waterplaneSecondMoment

      private double waterplaneSecondMoment
      Second moment of waterplane area [m4].
    • centerOfBuoyancy

      private double centerOfBuoyancy
      Center of buoyancy above keel (KB) [m].
    • centerOfGravity

      private double centerOfGravity
      Center of gravity above keel (KG) [m].
    • metacentricRadius

      private double metacentricRadius
      Metacentric radius (BM) [m].
    • metacentricHeight

      private double metacentricHeight
      Metacentric height (GM) [m].
    • heaveNaturalPeriod

      private double heaveNaturalPeriod
      Natural period in heave [s].
    • pitchNaturalPeriod

      private double pitchNaturalPeriod
      Natural period in pitch [s].
    • freeboard

      private double freeboard
      Freeboard [m].
    • totalMass

      private double totalMass
      Total mass (structural + equipment + ballast) [tonnes].
    • displacedVolume

      private double displacedVolume
      Displaced volume [m3].
    • staticTiltAngle

      private double staticTiltAngle
      Platform tilt under wind thrust [deg].
    • excessBuoyancy

      private double excessBuoyancy
      Excess buoyancy for TLP [kN].
    • estimatedCost

      private double estimatedCost
      Estimated substructure cost [MNOK].
  • Constructor Details

    • FloatingSubstructure

      public FloatingSubstructure()
      Default constructor.
    • FloatingSubstructure

      public FloatingSubstructure(String name)
      Construct with name.
      Parameters:
      name - equipment name
  • Method Details

    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Parameters:
      id - UUID
    • calculateSemiSubmersible

      private void calculateSemiSubmersible()
      Calculate semi-submersible hydrostatics.
    • calculateSpar

      private void calculateSpar()
      Calculate spar hydrostatics.
    • calculateBarge

      private void calculateBarge()
      Calculate barge hydrostatics.
    • calculateTLP

      private void calculateTLP()
      Calculate TLP hydrostatics.
    • calculateNaturalPeriods

      private void calculateNaturalPeriods()
      Calculate natural periods of motion.
    • calculateStaticTilt

      private void calculateStaticTilt()
      Calculate static tilt angle under design wind thrust.
    • estimateCost

      private void estimateCost()
      Estimate substructure cost based on steel weight and concept.
    • getConceptType

      public FloatingSubstructure.ConceptType getConceptType()
      Get the concept type.
      Returns:
      concept type
    • getSteelWeight

      public double getSteelWeight()
      Get steel weight [tonnes].
      Returns:
      steel weight in tonnes
    • getDisplacement

      public double getDisplacement()
      Get total displacement [tonnes].
      Returns:
      displacement in tonnes
    • getDraft

      public double getDraft()
      Get operating draft [m].
      Returns:
      draft in metres
    • getWaterplaneArea

      public double getWaterplaneArea()
      Get waterplane area [m2].
      Returns:
      waterplane area in m2
    • getMetacentricHeight

      public double getMetacentricHeight()
      Get metacentric height GM [m].
      Returns:
      GM in metres
    • getMetacentricRadius

      public double getMetacentricRadius()
      Get metacentric radius BM [m].
      Returns:
      BM in metres
    • getCenterOfBuoyancy

      public double getCenterOfBuoyancy()
      Get center of buoyancy above keel KB [m].
      Returns:
      KB in metres
    • getCenterOfGravity

      public double getCenterOfGravity()
      Get center of gravity above keel KG [m].
      Returns:
      KG in metres
    • getHeaveNaturalPeriod

      public double getHeaveNaturalPeriod()
      Get heave natural period [s].
      Returns:
      heave period in seconds
    • getPitchNaturalPeriod

      public double getPitchNaturalPeriod()
      Get pitch natural period [s].
      Returns:
      pitch period in seconds
    • getFreeboard

      public double getFreeboard()
      Get freeboard [m].
      Returns:
      freeboard in metres
    • getTotalMass

      public double getTotalMass()
      Get total mass (structural + topsides + ballast) [tonnes].
      Returns:
      total mass in tonnes
    • getDisplacedVolume

      public double getDisplacedVolume()
      Get displaced volume [m3].
      Returns:
      displaced volume in m3
    • getBallastMass

      public double getBallastMass()
      Get ballast mass [tonnes].
      Returns:
      ballast mass in tonnes
    • getStaticTiltAngle

      public double getStaticTiltAngle()
      Get static tilt angle under design wind [deg].
      Returns:
      tilt angle in degrees
    • getExcessBuoyancy

      public double getExcessBuoyancy()
      Get excess buoyancy for TLP [kN].
      Returns:
      excess buoyancy in kN
    • getEstimatedCost

      public double getEstimatedCost()
      Get estimated substructure cost [MNOK].
      Returns:
      cost in MNOK
    • getWaterplaneSecondMoment

      public double getWaterplaneSecondMoment()
      Get waterplane second moment of area [m4].
      Returns:
      second moment of area in m4
    • getDesignResults

      public Map<String,Object> getDesignResults()
      Get all design results as a map for JSON reporting.
      Returns:
      map of design results
    • isStabilityAdequate

      public boolean isStabilityAdequate()
      Check if stability is adequate per DNV-ST-0119 requirements.
      Returns:
      true if GM is positive and meets minimum requirements
    • setConceptType

      public void setConceptType(FloatingSubstructure.ConceptType type)
      Set concept type.
      Parameters:
      type - floating concept type
    • setTurbineMass

      public void setTurbineMass(double mass)
      Set turbine nacelle + rotor mass [tonnes].
      Parameters:
      mass - turbine mass in tonnes
    • setTowerMass

      public void setTowerMass(double mass)
      Set tower mass [tonnes].
      Parameters:
      mass - tower mass in tonnes
    • setHubHeight

      public void setHubHeight(double height)
      Set hub height above sea level [m].
      Parameters:
      height - hub height in metres
    • setWaterDepth

      public void setWaterDepth(double depth)
      Set water depth at site [m].
      Parameters:
      depth - water depth in metres
    • setSeawaterDensity

      public void setSeawaterDensity(double density)
      Set seawater density [kg/m3].
      Parameters:
      density - seawater density in kg/m3
    • setSignificantWaveHeight

      public void setSignificantWaveHeight(double hs)
      Set significant wave height, 100-year [m].
      Parameters:
      hs - significant wave height in metres
    • setPeakSpectralPeriod

      public void setPeakSpectralPeriod(double tp)
      Set peak spectral period [s].
      Parameters:
      tp - peak period in seconds
    • setDesignWindThrust

      public void setDesignWindThrust(double thrust)
      Set design wind thrust force [kN].
      Parameters:
      thrust - thrust force in kN
    • setNumberOfColumns

      public void setNumberOfColumns(int n)
      Set number of columns (semi-sub).
      Parameters:
      n - number of columns
    • setColumnDiameter

      public void setColumnDiameter(double diameter)
      Set column diameter [m].
      Parameters:
      diameter - column diameter in metres
    • setColumnHeight

      public void setColumnHeight(double height)
      Set column height [m].
      Parameters:
      height - column height in metres
    • setColumnSpacing

      public void setColumnSpacing(double spacing)
      Set column spacing, center-to-center [m] (semi-sub).
      Parameters:
      spacing - column spacing in metres
    • setPontoonWidth

      public void setPontoonWidth(double width)
      Set pontoon width [m].
      Parameters:
      width - pontoon width in metres
    • setPontoonHeight

      public void setPontoonHeight(double height)
      Set pontoon height [m].
      Parameters:
      height - pontoon height in metres
    • setSparHeight

      public void setSparHeight(double height)
      Set spar total height [m].
      Parameters:
      height - spar height in metres
    • setBargeLength

      public void setBargeLength(double length)
      Set barge length [m].
      Parameters:
      length - barge length in metres
    • setBargeWidth

      public void setBargeWidth(double width)
      Set barge width [m].
      Parameters:
      width - barge width in metres
    • setBargeDepth

      public void setBargeDepth(double depth)
      Set barge depth [m].
      Parameters:
      depth - barge depth in metres
    • setBallastMass

      public void setBallastMass(double mass)
      Set ballast mass [tonnes]. Set to 0 for automatic calculation.
      Parameters:
      mass - ballast mass in tonnes
    • setBallastCogAboveKeel

      public void setBallastCogAboveKeel(double cog)
      Set ballast center of gravity above keel [m].
      Parameters:
      cog - ballast COG in metres above keel