Class MooringSystem
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.subsea.MooringSystem
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Mooring system design for floating offshore structures.
Calculates catenary mooring line geometry, tensions, anchor loads, and provides concept-level mooring design per applicable standards. Supports single-line and multi-line configurations with chain, wire rope, and polyester rope segments.
Key Calculations
- Catenary geometry (line profile, touchdown point)
- Line tensions (fairlead, anchor, maximum)
- Anchor holding capacity requirements
- Line weight and length estimation
- Offset and restoring force characteristics
- Breaking strength and safety factor checks
Line Types
- Chain: R3, R4, R5 studless chain per DNV-OS-E302
- Wire rope: Six-strand or spiral strand
- Polyester rope: Lightweight synthetic for deep water
- Chain-wire-chain: Combined catenary for deep water
Design Standards
- DNV-OS-E301 — Position mooring
- DNV-OS-E302 — Offshore mooring chain
- API RP 2SK — Design and analysis of stationkeeping systems
- ABS Guide for Position Mooring Systems
Usage Example
MooringSystem ms = new MooringSystem("Mooring Alpha");
ms.setWaterDepth(265.0); // m
ms.setNumberOfLines(3);
ms.setLineType(MooringSystem.LineType.CHAIN_POLYESTER_CHAIN);
ms.setChainDiameter(0.127); // m (127 mm)
ms.setDesignHorizontalForce(2500.0); // kN (per line)
ms.setDesignVerticalForce(500.0); // kN
ms.setAnchorRadius(800.0); // m
ms.run();
double tension = ms.getFairleadTension(); // kN
double safetyFactor = ms.getBreakingStrengthSafetyFactor();
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumAnchor types.static enumMooring line material types. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAnchor radius (horizontal distance fairlead to anchor) [m].private doubleAnchor tension (horizontal at seabed) per line [kN].private MooringSystem.AnchorTypeAnchor type.private doubleChain segment length (at seabed end) [m].private doubleChain nominal diameter [m].private intChain grade (R3=3, R4=4, R5=5).private doubleDesign horizontal force per line at fairlead [kN].private doubleDesign vertical force per line at fairlead [kN].private doubleEstimated mooring system cost [MNOK].private doubleCatenary angle at fairlead [deg].private doubleFairlead depth below waterline [m].private doubleFairlead tension (resultant) per line [kN].private doubleTotal line length per line [m].private MooringSystem.LineTypeLine type.private doubleLine weight in water per unit length [kN/m].private doubleMaximum line tension [kN].private doubleMaximum vessel offset [m] (at design load).private doublePolyester / wire segment length [m].private doubleMinimum breaking load of critical section [kN].private intNumber of mooring lines.private doublePolyester rope diameter [m] (for hybrid lines).private doubleAnchor holding capacity required [kN].private doubleRequired safety factor per DNV-OS-E301 (ULS).private doubleRestoring force coefficient (horizontal stiffness) [kN/m].private doubleSafety factor (MBL / max tension).private doubleSeawater density [kg/m3].private static final longSerialization version UID.private StringSeabed soil type for anchor design.private doubleTop chain segment length [m].private doubleTotal mooring system steel weight [tonnes].private doubleTouchdown length (line lying on seabed) [m].private doubleWater depth [m].private doubleWire rope diameter [m].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 anchor holding capacity requirements.private voidCalculate minimum breaking load and safety factor.private voidCalculate catenary geometry and tensions.private voidCalculate line weight and segment lengths based on line type.private voidCalculate restoring force and maximum offset.private voidEstimate mooring system cost.doubleGet anchor tension per line [kN].doubleGet breaking strength safety factor.List<double[]> getCatenaryProfile(int nPoints) Get catenary profile as list of (x, z) coordinate pairs. x is horizontal distance from fairlead [m], z is depth below waterline [m].private doublegetChainWeightPerMeter(double diameterMm) Calculate chain weight in water per meter [kN/m].Get all design results as a map for JSON reporting.doubleGet estimated mooring system cost [MNOK].doubleGet fairlead angle [deg].doubleGet fairlead tension per line [kN].doubleGet total line length per line [m].doubleGet line weight in water per unit length [kN/m].doubleGet maximum line tension [kN].doubleGet maximum vessel offset at design load [m].doubleGet minimum breaking load [kN].doubleGet required anchor holding capacity [kN].doubleGet horizontal restoring stiffness [kN/m].doubleGet total mooring system weight [tonnes].doubleGet touchdown length [m] (line lying on seabed).booleanCheck if the safety factor meets the required minimum per DNV-OS-E301.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetAnchorRadius(double radius) Set anchor radius [m].voidSet anchor type.voidsetChainDiameter(double diameter) Set chain nominal diameter [m].voidsetChainGrade(int grade) Set chain grade (3=R3, 4=R4, 5=R5).voidsetDesignHorizontalForce(double force) Set design horizontal force per line at fairlead [kN].voidsetDesignVerticalForce(double force) Set design vertical force per line at fairlead [kN].voidsetFairleadDepth(double depth) Set fairlead depth below waterline [m].voidSet mooring line type.voidsetNumberOfLines(int n) Set number of mooring lines.voidsetPolyesterDiameter(double diameter) Set polyester rope diameter [m].voidsetRequiredSafetyFactor(double sf) Set required safety factor.voidsetSeawaterDensity(double density) Set seawater density [kg/m3].voidsetSoilType(String type) Set seabed soil type.voidsetWaterDepth(double depth) Set water depth [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:
-
waterDepth
private double waterDepthWater depth [m]. -
numberOfLines
private int numberOfLinesNumber of mooring lines. -
lineType
Line type. -
anchorType
Anchor type. -
chainDiameter
private double chainDiameterChain nominal diameter [m]. -
chainGrade
private int chainGradeChain grade (R3=3, R4=4, R5=5). -
polyesterDiameter
private double polyesterDiameterPolyester rope diameter [m] (for hybrid lines). -
wireRopeDiameter
private double wireRopeDiameterWire rope diameter [m]. -
designHorizontalForce
private double designHorizontalForceDesign horizontal force per line at fairlead [kN]. -
designVerticalForce
private double designVerticalForceDesign vertical force per line at fairlead [kN]. -
anchorRadius
private double anchorRadiusAnchor radius (horizontal distance fairlead to anchor) [m]. -
fairleadDepth
private double fairleadDepthFairlead depth below waterline [m]. -
soilType
Seabed soil type for anchor design. -
requiredSafetyFactor
private double requiredSafetyFactorRequired safety factor per DNV-OS-E301 (ULS). -
seawaterDensity
private double seawaterDensitySeawater density [kg/m3]. -
lineLength
private double lineLengthTotal line length per line [m]. -
bottomChainLength
private double bottomChainLengthChain segment length (at seabed end) [m]. -
middleSegmentLength
private double middleSegmentLengthPolyester / wire segment length [m]. -
topChainLength
private double topChainLengthTop chain segment length [m]. -
fairleadTension
private double fairleadTensionFairlead tension (resultant) per line [kN]. -
anchorTension
private double anchorTensionAnchor tension (horizontal at seabed) per line [kN]. -
maxLineTension
private double maxLineTensionMaximum line tension [kN]. -
lineWeightPerMeter
private double lineWeightPerMeterLine weight in water per unit length [kN/m]. -
minimumBreakingLoad
private double minimumBreakingLoadMinimum breaking load of critical section [kN]. -
safetyFactor
private double safetyFactorSafety factor (MBL / max tension). -
touchdownLength
private double touchdownLengthTouchdown length (line lying on seabed) [m]. -
fairleadAngle
private double fairleadAngleCatenary angle at fairlead [deg]. -
totalWeight
private double totalWeightTotal mooring system steel weight [tonnes]. -
estimatedCost
private double estimatedCostEstimated mooring system cost [MNOK]. -
requiredAnchorCapacity
private double requiredAnchorCapacityAnchor holding capacity required [kN]. -
restoringStiffness
private double restoringStiffnessRestoring force coefficient (horizontal stiffness) [kN/m]. -
maxOffset
private double maxOffsetMaximum vessel offset [m] (at design load).
-
-
Constructor Details
-
MooringSystem
public MooringSystem()Default constructor. -
MooringSystem
-
-
Method Details
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
calculateLineProperties
private void calculateLineProperties()Calculate line weight and segment lengths based on line type. -
getChainWeightPerMeter
private double getChainWeightPerMeter(double diameterMm) Calculate chain weight in water per meter [kN/m].- Parameters:
diameterMm- chain diameter in mm- Returns:
- submerged weight per meter in kN/m
-
calculateCatenary
private void calculateCatenary()Calculate catenary geometry and tensions. -
calculateBreakingStrength
private void calculateBreakingStrength()Calculate minimum breaking load and safety factor. -
calculateAnchorRequirements
private void calculateAnchorRequirements()Calculate anchor holding capacity requirements. -
calculateRestoringForce
private void calculateRestoringForce()Calculate restoring force and maximum offset. -
estimateCost
private void estimateCost()Estimate mooring system cost. -
getLineLength
public double getLineLength()Get total line length per line [m].- Returns:
- line length in metres
-
getFairleadTension
public double getFairleadTension()Get fairlead tension per line [kN].- Returns:
- fairlead tension in kN
-
getAnchorTension
public double getAnchorTension()Get anchor tension per line [kN].- Returns:
- anchor tension in kN
-
getMaxLineTension
public double getMaxLineTension()Get maximum line tension [kN].- Returns:
- max tension in kN
-
getMinimumBreakingLoad
public double getMinimumBreakingLoad()Get minimum breaking load [kN].- Returns:
- MBL in kN
-
getBreakingStrengthSafetyFactor
public double getBreakingStrengthSafetyFactor()Get breaking strength safety factor.- Returns:
- safety factor (MBL / max tension)
-
isSafetyFactorAdequate
public boolean isSafetyFactorAdequate()Check if the safety factor meets the required minimum per DNV-OS-E301.- Returns:
- true if safety factor meets requirement
-
getTouchdownLength
public double getTouchdownLength()Get touchdown length [m] (line lying on seabed).- Returns:
- touchdown length in metres
-
getFairleadAngle
public double getFairleadAngle()Get fairlead angle [deg].- Returns:
- fairlead angle in degrees
-
getTotalWeight
public double getTotalWeight()Get total mooring system weight [tonnes].- Returns:
- total weight in tonnes
-
getEstimatedCost
public double getEstimatedCost()Get estimated mooring system cost [MNOK].- Returns:
- cost in MNOK
-
getRequiredAnchorCapacity
public double getRequiredAnchorCapacity()Get required anchor holding capacity [kN].- Returns:
- required anchor capacity in kN
-
getRestoringStiffness
public double getRestoringStiffness()Get horizontal restoring stiffness [kN/m].- Returns:
- restoring stiffness in kN/m
-
getMaxOffset
public double getMaxOffset()Get maximum vessel offset at design load [m].- Returns:
- maximum offset in metres
-
getLineWeightPerMeter
public double getLineWeightPerMeter()Get line weight in water per unit length [kN/m].- Returns:
- line weight per meter in kN/m
-
getDesignResults
-
getCatenaryProfile
Get catenary profile as list of (x, z) coordinate pairs. x is horizontal distance from fairlead [m], z is depth below waterline [m].- Parameters:
nPoints- number of points along the line- Returns:
- list of double arrays [x, z]
-
setWaterDepth
public void setWaterDepth(double depth) Set water depth [m].- Parameters:
depth- water depth in metres
-
setNumberOfLines
public void setNumberOfLines(int n) Set number of mooring lines.- Parameters:
n- number of lines
-
setLineType
Set mooring line type.- Parameters:
type- line type
-
setAnchorType
Set anchor type.- Parameters:
type- anchor type
-
setChainDiameter
public void setChainDiameter(double diameter) Set chain nominal diameter [m].- Parameters:
diameter- chain diameter in metres
-
setChainGrade
public void setChainGrade(int grade) Set chain grade (3=R3, 4=R4, 5=R5).- Parameters:
grade- chain grade
-
setPolyesterDiameter
public void setPolyesterDiameter(double diameter) Set polyester rope diameter [m].- Parameters:
diameter- polyester diameter in metres
-
setDesignHorizontalForce
public void setDesignHorizontalForce(double force) Set design horizontal force per line at fairlead [kN].- Parameters:
force- horizontal force in kN
-
setDesignVerticalForce
public void setDesignVerticalForce(double force) Set design vertical force per line at fairlead [kN].- Parameters:
force- vertical force in kN
-
setAnchorRadius
public void setAnchorRadius(double radius) Set anchor radius [m].- Parameters:
radius- anchor radius in metres
-
setFairleadDepth
public void setFairleadDepth(double depth) Set fairlead depth below waterline [m].- Parameters:
depth- fairlead depth in metres
-
setSoilType
-
setRequiredSafetyFactor
public void setRequiredSafetyFactor(double sf) Set required safety factor.- Parameters:
sf- required safety factor
-
setSeawaterDensity
public void setSeawaterDensity(double density) Set seawater density [kg/m3].- Parameters:
density- seawater density in kg/m3
-