Class FloatingSubstructure
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.subsea.FloatingSubstructure
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumFloating concept types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleBallast center of gravity above keel [m].private doubleBallast density (seawater or solid) [kg/m3].private doubleBallast mass [tonnes] — calculated or set.private doubleBarge height [m].private doubleBarge length [m].private doubleBarge width [m].private doubleCenter of buoyancy above keel (KB) [m].private doubleCenter of gravity above keel (KG) [m].private doubleColumn diameter [m] (semi-sub/spar).private doubleColumn height [m].private doubleColumn spacing (center-to-center) [m] (semi-sub).private FloatingSubstructure.ConceptTypeConcept type.private doubleDesign wind thrust [kN] (at rated wind speed).private doubleDisplaced volume [m3].private doubleTotal displacement [tonnes].private doubleOperating draft [m].private doubleEstimated substructure cost [MNOK].private doubleExcess buoyancy for TLP [kN].private doubleFreeboard [m].private doubleNatural period in heave [s].private doubleHeave plate diameter [m] (semi-sub/spar, 0 = none).private doubleHub height above sea level [m].private doubleMetacentric height (GM) [m].private doubleMetacentric radius (BM) [m].private intNumber of columns (semi-sub).private doublePeak spectral period [s].private doubleNatural period in pitch [s].private doublePontoon height [m] (semi-sub).private doublePontoon width [m] (semi-sub).private doubleSeawater density [kg/m3].private static final longSerialization version UID.private doubleSignificant wave height, 100-year [m].private doubleSpar total height [m] (spar concept only).private doubleSpar upper diameter [m] (tapered spar).private doublePlatform tilt under wind thrust [deg].private doubleSteel density [kg/m3].private doubleSteel weight of substructure [tonnes].private doubleTotal mass (structural + equipment + ballast) [tonnes].private doubleTower center of gravity above keel [m] (set during calc if not specified).private doubleTower mass [tonnes].private doubleTurbine nacelle + rotor mass [tonnes].private doubleWater depth at site [m].private doubleWaterplane area [m2].private doubleSecond moment of waterplane area [m4].Fields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCalculate barge hydrostatics.private voidCalculate natural periods of motion.private voidCalculate semi-submersible hydrostatics.private voidCalculate spar hydrostatics.private voidCalculate static tilt angle under design wind thrust.private voidCalculate TLP hydrostatics.private voidEstimate substructure cost based on steel weight and concept.doubleGet ballast mass [tonnes].doubleGet center of buoyancy above keel KB [m].doubleGet center of gravity above keel KG [m].Get the concept type.Get all design results as a map for JSON reporting.doubleGet displaced volume [m3].doubleGet total displacement [tonnes].doublegetDraft()Get operating draft [m].doubleGet estimated substructure cost [MNOK].doubleGet excess buoyancy for TLP [kN].doubleGet freeboard [m].doubleGet heave natural period [s].doubleGet metacentric height GM [m].doubleGet metacentric radius BM [m].doubleGet pitch natural period [s].doubleGet static tilt angle under design wind [deg].doubleGet steel weight [tonnes].doubleGet total mass (structural + topsides + ballast) [tonnes].doubleGet waterplane area [m2].doubleGet waterplane second moment of area [m4].booleanCheck if stability is adequate per DNV-ST-0119 requirements.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetBallastCogAboveKeel(double cog) Set ballast center of gravity above keel [m].voidsetBallastMass(double mass) Set ballast mass [tonnes].voidsetBargeDepth(double depth) Set barge depth [m].voidsetBargeLength(double length) Set barge length [m].voidsetBargeWidth(double width) Set barge width [m].voidsetColumnDiameter(double diameter) Set column diameter [m].voidsetColumnHeight(double height) Set column height [m].voidsetColumnSpacing(double spacing) Set column spacing, center-to-center [m] (semi-sub).voidSet concept type.voidsetDesignWindThrust(double thrust) Set design wind thrust force [kN].voidsetHubHeight(double height) Set hub height above sea level [m].voidsetNumberOfColumns(int n) Set number of columns (semi-sub).voidsetPeakSpectralPeriod(double tp) Set peak spectral period [s].voidsetPontoonHeight(double height) Set pontoon height [m].voidsetPontoonWidth(double width) Set pontoon width [m].voidsetSeawaterDensity(double density) Set seawater density [kg/m3].voidsetSignificantWaveHeight(double hs) Set significant wave height, 100-year [m].voidsetSparHeight(double height) Set spar total height [m].voidsetTowerMass(double mass) Set tower mass [tonnes].voidsetTurbineMass(double mass) Set turbine nacelle + rotor mass [tonnes].voidsetWaterDepth(double depth) Set water depth at site [m].Methods inherited from class ProcessEquipmentBaseClass
addCapacityConstraint, addController, copy, displayResult, equals, getAvailableMargin, getAvailableMarginPercent, getBottleneckConstraint, getCapacityConstraints, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMassBalance, getMaxUtilization, getMaxUtilizationPercent, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReferenceDesignation, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, getUtilizationSummary, hashCode, initElectricalDesign, initializeDefaultConstraints, initInstrumentDesign, initMechanicalDesign, isActive, isActive, isCapacityAnalysisEnabled, isCapacityExceeded, isFailed, isHardLimitExceeded, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solved, toJson, toJsonMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagNumber, setName, setTagNumberMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getElectricalDesign, getEquipmentState, getExergyChange, getExergyDestruction, getExergyDestruction, getFluid, getInletStreams, getInstrumentDesign, getOperatingEnvelopeViolation, getOutletFlowRate, getOutletPressure, getOutletStreams, getOutletTemperature, getReferenceDesignationString, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculation, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
conceptType
Concept type. -
turbineMass
private double turbineMassTurbine nacelle + rotor mass [tonnes]. -
towerMass
private double towerMassTower mass [tonnes]. -
hubHeight
private double hubHeightHub height above sea level [m]. -
towerCogAboveKeel
private double towerCogAboveKeelTower center of gravity above keel [m] (set during calc if not specified). -
waterDepth
private double waterDepthWater depth at site [m]. -
seawaterDensity
private double seawaterDensitySeawater density [kg/m3]. -
steelDensity
private double steelDensitySteel density [kg/m3]. -
significantWaveHeight
private double significantWaveHeightSignificant wave height, 100-year [m]. -
peakSpectralPeriod
private double peakSpectralPeriodPeak spectral period [s]. -
designWindThrust
private double designWindThrustDesign wind thrust [kN] (at rated wind speed). -
numberOfColumns
private int numberOfColumnsNumber of columns (semi-sub). -
columnDiameter
private double columnDiameterColumn diameter [m] (semi-sub/spar). -
columnHeight
private double columnHeightColumn height [m]. -
columnSpacing
private double columnSpacingColumn spacing (center-to-center) [m] (semi-sub). -
pontoonWidth
private double pontoonWidthPontoon width [m] (semi-sub). -
pontoonHeight
private double pontoonHeightPontoon height [m] (semi-sub). -
heavePlateDiameter
private double heavePlateDiameterHeave plate diameter [m] (semi-sub/spar, 0 = none). -
sparHeight
private double sparHeightSpar total height [m] (spar concept only). -
sparUpperDiameter
private double sparUpperDiameterSpar upper diameter [m] (tapered spar). -
bargeLength
private double bargeLengthBarge length [m]. -
bargeWidth
private double bargeWidthBarge width [m]. -
bargeDepth
private double bargeDepthBarge height [m]. -
ballastMass
private double ballastMassBallast mass [tonnes] — calculated or set. -
ballastCogAboveKeel
private double ballastCogAboveKeelBallast center of gravity above keel [m]. -
ballastDensity
private double ballastDensityBallast density (seawater or solid) [kg/m3]. -
steelWeight
private double steelWeightSteel weight of substructure [tonnes]. -
displacement
private double displacementTotal displacement [tonnes]. -
draft
private double draftOperating draft [m]. -
waterplaneArea
private double waterplaneAreaWaterplane area [m2]. -
waterplaneSecondMoment
private double waterplaneSecondMomentSecond moment of waterplane area [m4]. -
centerOfBuoyancy
private double centerOfBuoyancyCenter of buoyancy above keel (KB) [m]. -
centerOfGravity
private double centerOfGravityCenter of gravity above keel (KG) [m]. -
metacentricRadius
private double metacentricRadiusMetacentric radius (BM) [m]. -
metacentricHeight
private double metacentricHeightMetacentric height (GM) [m]. -
heaveNaturalPeriod
private double heaveNaturalPeriodNatural period in heave [s]. -
pitchNaturalPeriod
private double pitchNaturalPeriodNatural period in pitch [s]. -
freeboard
private double freeboardFreeboard [m]. -
totalMass
private double totalMassTotal mass (structural + equipment + ballast) [tonnes]. -
displacedVolume
private double displacedVolumeDisplaced volume [m3]. -
staticTiltAngle
private double staticTiltAnglePlatform tilt under wind thrust [deg]. -
excessBuoyancy
private double excessBuoyancyExcess buoyancy for TLP [kN]. -
estimatedCost
private double estimatedCostEstimated substructure cost [MNOK].
-
-
Constructor Details
-
FloatingSubstructure
public FloatingSubstructure()Default constructor. -
FloatingSubstructure
-
-
Method Details
-
run
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
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
-
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
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
-