Class SubseaManifold
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.subsea.SubseaManifold
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
Subsea Production Manifold equipment class.
A subsea manifold gathers production from multiple wells and routes it to flowlines for transport to the host facility. Key features include:
- Production headers for well gathering
- Test headers for individual well testing
- Service/utility headers for chemicals and hydraulics
- Valve skids with production and isolation valves
- Flowline connections to export pipelines
Design Standards
- API RP 17G - Recommended Practice for Completion/Workover Risers
- API RP 17N - Subsea Production System Reliability
- DNV-ST-F101 - Submarine Pipeline Systems
- NORSOK U-001 - Subsea Production Systems
Usage Example
// Create 6-slot subsea manifold
SubseaManifold manifold = new SubseaManifold("Manifold-A", 6);
manifold.setWaterDepth(380.0);
manifold.setDesignPressure(350.0);
manifold.setHasTestHeader(true);
// Add well streams
manifold.addWellStream(well1Stream);
manifold.addWellStream(well2Stream);
manifold.addWellStream(well3Stream);
// Run manifold
manifold.run();
// Get production and test streams
StreamInterface productionStream = manifold.getProductionStream();
StreamInterface testStream = manifold.getTestStream();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumManifold type configuration.static classValve skid configuration for each slot. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleBranch/jumper connection size in inches.private doubleDesign pressure in bara.private doubleDesign temperature in Celsius.private doubleDry weight in tonnes.private StringFoundation type.private booleanWhether has injection header.private booleanWhether has service/utility header.private booleanWhether has test header.private SubseaManifold.ManifoldTypeManifold type.private SubseaManifoldMechanicalDesignMechanical design instance.private intNumber of well slots.private doubleProduction header size in inches.private MixerProduction header mixer.private StreamInterfaceProduction outlet stream.private static final longSerialization version UID.private doubleStructure height in meters.private doubleStructure length in meters.private doubleStructure width in meters.private doubleSubmerged weight in tonnes.private doubleTest header size in inches.private MixerTest header mixer.private StreamInterfaceTest outlet stream.private List<SubseaManifold.ValveSkid> Valve skids for each slot.private doubleWater depth in meters.Map of well names to slot numbers.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
ConstructorsConstructorDescriptionDefault constructor.SubseaManifold(String name) Constructor with name.SubseaManifold(String name, int numberOfSlots) Constructor with name and number of slots. -
Method Summary
Modifier and TypeMethodDescriptionintaddWellStream(StreamInterface wellStream) Add well stream to next available slot.intaddWellStream(StreamInterface wellStream, String wellName) Add well stream with well name.private voidapplyPressureDrop(StreamInterface stream, double pressureDrop) Apply pressure drop to stream.private doublecalculateHeaderPressureDrop(double headerSizeInches) Calculate header pressure drop.intGet number of active wells.doubleGet branch size.doubleGet design pressure.doubleGet design temperature.doubleGet dry weight.Get foundation type.Get manifold type.Get mechanical design.intGet number of slots.doubleGet production header size.Get production stream.doubleGet structure height.doubleGet structure length.doubleGet structure width.doubleGet submerged weight.doubleGet test header size.Get test stream.Get valve skids.doubleGet water depth.booleanCheck if has injection header.booleanCheck if has service header.booleanCheck if has test header.private voidInitialize manifold components.voidInitialize mechanical design.voidrouteToProduction(String wellName) Route well to production header.voidrouteToTest(String wellName) Route well to test header.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetBranchSizeInches(double branchSizeInches) Set branch size.voidsetDesignPressure(double designPressure) Set design pressure.voidsetDesignTemperature(double designTemperature) Set design temperature.voidsetDryWeight(double dryWeight) Set dry weight.voidsetFoundationType(String foundationType) Set foundation type.voidsetHasInjectionHeader(boolean hasInjectionHeader) Set whether has injection header.voidsetHasServiceHeader(boolean hasServiceHeader) Set whether has service header.voidsetHasTestHeader(boolean hasTestHeader) Set whether has test header.voidsetManifoldType(SubseaManifold.ManifoldType manifoldType) Set manifold type.voidsetNumberOfSlots(int numberOfSlots) Set number of slots.voidsetProductionHeaderSizeInches(double productionHeaderSizeInches) Set production header size.voidsetStructureHeight(double structureHeight) Set structure height.voidsetStructureLength(double structureLength) Set structure length.voidsetStructureWidth(double structureWidth) Set structure width.voidsetSubmergedWeight(double submergedWeight) Set submerged weight.voidsetTestHeaderSizeInches(double testHeaderSizeInches) Set test header size.voidsetWaterDepth(double waterDepth) Set water depth.voidshutInWell(String wellName) Shut in a well.Methods inherited from class ProcessEquipmentBaseClass
copy, displayResult, equals, getConditionAnalysisMessage, getController, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMassBalance, getMinimumFlow, getPressure, getPressure, getProperty, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, hashCode, isActive, isActive, isCapacityAnalysisEnabled, isFailed, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, 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, getTagName, setName, setTagNameMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, setName, setTagNameMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getExergyChange, getFluid, getOperatingEnvelopeViolation, 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 in meters. -
designPressure
private double designPressureDesign pressure in bara. -
designTemperature
private double designTemperatureDesign temperature in Celsius. -
numberOfSlots
private int numberOfSlotsNumber of well slots. -
manifoldType
Manifold type. -
productionHeaderSizeInches
private double productionHeaderSizeInchesProduction header size in inches. -
testHeaderSizeInches
private double testHeaderSizeInchesTest header size in inches. -
branchSizeInches
private double branchSizeInchesBranch/jumper connection size in inches. -
hasTestHeader
private boolean hasTestHeaderWhether has test header. -
hasServiceHeader
private boolean hasServiceHeaderWhether has service/utility header. -
hasInjectionHeader
private boolean hasInjectionHeaderWhether has injection header. -
valveSkids
Valve skids for each slot. -
wellSlotMap
-
productionMixer
Production header mixer. -
testMixer
Test header mixer. -
productionStream
Production outlet stream. -
testStream
Test outlet stream. -
structureLength
private double structureLengthStructure length in meters. -
structureWidth
private double structureWidthStructure width in meters. -
structureHeight
private double structureHeightStructure height in meters. -
dryWeight
private double dryWeightDry weight in tonnes. -
submergedWeight
private double submergedWeightSubmerged weight in tonnes. -
foundationType
Foundation type. -
mechanicalDesign
Mechanical design instance.
-
-
Constructor Details
-
SubseaManifold
public SubseaManifold()Default constructor. -
SubseaManifold
-
SubseaManifold
Constructor with name and number of slots.- Parameters:
name- equipment namenumberOfSlots- number of well slots
-
-
Method Details
-
initializeManifold
private void initializeManifold()Initialize manifold components. -
addWellStream
Add well stream to next available slot.- Parameters:
wellStream- well inlet stream- Returns:
- slot number assigned
-
addWellStream
Add well stream with well name.- Parameters:
wellStream- well inlet streamwellName- well name- Returns:
- slot number assigned
-
routeToProduction
Route well to production header.- Parameters:
wellName- well name
-
routeToTest
Route well to test header.- Parameters:
wellName- well name
-
shutInWell
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
calculateHeaderPressureDrop
private double calculateHeaderPressureDrop(double headerSizeInches) Calculate header pressure drop.- Parameters:
headerSizeInches- header size in inches- Returns:
- pressure drop in bar
-
applyPressureDrop
Apply pressure drop to stream.- Parameters:
stream- stream to modifypressureDrop- pressure drop in bar
-
getProductionStream
Get production stream.- Returns:
- production outlet stream
-
getTestStream
-
getActiveWellCount
public int getActiveWellCount()Get number of active wells.- Returns:
- count of active wells
-
getMechanicalDesign
Get mechanical design.- Specified by:
getMechanicalDesignin interfaceProcessEquipmentInterface- Overrides:
getMechanicalDesignin classProcessEquipmentBaseClass- Returns:
- mechanical design instance
-
initMechanicalDesign
public void initMechanicalDesign()Initialize mechanical design.- Specified by:
initMechanicalDesignin interfaceProcessEquipmentInterface- Overrides:
initMechanicalDesignin classProcessEquipmentBaseClass
-
getWaterDepth
public double getWaterDepth()Get water depth.- Returns:
- water depth in meters
-
setWaterDepth
public void setWaterDepth(double waterDepth) Set water depth.- Parameters:
waterDepth- water depth in meters
-
getDesignPressure
public double getDesignPressure()Get design pressure.- Returns:
- design pressure in bara
-
setDesignPressure
public void setDesignPressure(double designPressure) Set design pressure.- Parameters:
designPressure- design pressure in bara
-
getDesignTemperature
public double getDesignTemperature()Get design temperature.- Returns:
- design temperature in Celsius
-
setDesignTemperature
public void setDesignTemperature(double designTemperature) Set design temperature.- Parameters:
designTemperature- design temperature in Celsius
-
getNumberOfSlots
public int getNumberOfSlots()Get number of slots.- Returns:
- number of well slots
-
setNumberOfSlots
public void setNumberOfSlots(int numberOfSlots) Set number of slots.- Parameters:
numberOfSlots- number of well slots
-
getManifoldType
-
setManifoldType
Set manifold type.- Parameters:
manifoldType- manifold type
-
getProductionHeaderSizeInches
public double getProductionHeaderSizeInches()Get production header size.- Returns:
- production header size in inches
-
setProductionHeaderSizeInches
public void setProductionHeaderSizeInches(double productionHeaderSizeInches) Set production header size.- Parameters:
productionHeaderSizeInches- production header size in inches
-
getTestHeaderSizeInches
public double getTestHeaderSizeInches()Get test header size.- Returns:
- test header size in inches
-
setTestHeaderSizeInches
public void setTestHeaderSizeInches(double testHeaderSizeInches) Set test header size.- Parameters:
testHeaderSizeInches- test header size in inches
-
getBranchSizeInches
public double getBranchSizeInches()Get branch size.- Returns:
- branch size in inches
-
setBranchSizeInches
public void setBranchSizeInches(double branchSizeInches) Set branch size.- Parameters:
branchSizeInches- branch size in inches
-
hasTestHeader
public boolean hasTestHeader()Check if has test header.- Returns:
- true if has test header
-
setHasTestHeader
public void setHasTestHeader(boolean hasTestHeader) Set whether has test header.- Parameters:
hasTestHeader- true to include test header
-
hasServiceHeader
public boolean hasServiceHeader()Check if has service header.- Returns:
- true if has service header
-
setHasServiceHeader
public void setHasServiceHeader(boolean hasServiceHeader) Set whether has service header.- Parameters:
hasServiceHeader- true to include service header
-
hasInjectionHeader
public boolean hasInjectionHeader()Check if has injection header.- Returns:
- true if has injection header
-
setHasInjectionHeader
public void setHasInjectionHeader(boolean hasInjectionHeader) Set whether has injection header.- Parameters:
hasInjectionHeader- true to include injection header
-
getValveSkids
-
getStructureLength
public double getStructureLength()Get structure length.- Returns:
- structure length in meters
-
setStructureLength
public void setStructureLength(double structureLength) Set structure length.- Parameters:
structureLength- structure length in meters
-
getStructureWidth
public double getStructureWidth()Get structure width.- Returns:
- structure width in meters
-
setStructureWidth
public void setStructureWidth(double structureWidth) Set structure width.- Parameters:
structureWidth- structure width in meters
-
getStructureHeight
public double getStructureHeight()Get structure height.- Returns:
- structure height in meters
-
setStructureHeight
public void setStructureHeight(double structureHeight) Set structure height.- Parameters:
structureHeight- structure height in meters
-
getDryWeight
public double getDryWeight()Get dry weight.- Returns:
- dry weight in tonnes
-
setDryWeight
public void setDryWeight(double dryWeight) Set dry weight.- Parameters:
dryWeight- dry weight in tonnes
-
getSubmergedWeight
public double getSubmergedWeight()Get submerged weight.- Returns:
- submerged weight in tonnes
-
setSubmergedWeight
public void setSubmergedWeight(double submergedWeight) Set submerged weight.- Parameters:
submergedWeight- submerged weight in tonnes
-
getFoundationType
-
setFoundationType
Set foundation type.- Parameters:
foundationType- foundation type (Gravity Base, Piled, Suction Anchor)
-