Class PLEM
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.subsea.PLEM
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, SimulationInterface, NamedInterface
Pipeline End Manifold (PLEM) equipment class.
A PLEM is a subsea structure that provides multiple pipeline terminations and connections, typically used to:
- Connect multiple flowlines to a single export line
- Provide manifolding for multiple wells
- Enable pipeline crossings with valved connections
- Allow routing changes between pipelines
Design Standards
- API RP 17G - Subsea Production System Design
- API RP 17N - Subsea Production System Reliability
- DNV-ST-F101 - Submarine Pipeline Systems
- NORSOK U-001 - Subsea Production Systems
Usage Example
// Create PLEM for 4-slot manifold
PLEM plem = new PLEM("PLEM-A", 4);
plem.setWaterDepth(450.0);
plem.setDesignPressure(200.0);
plem.addInletStream(well1Stream);
plem.addInletStream(well2Stream);
plem.run();
Stream comingledStream = plem.getOutletStream();
- Version:
- 1.0
- Author:
- ESOL
- See Also:
-
Nested Class Summary
Nested Classes -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate booleanWhether each branch has isolation valve.private doubleBranch pipe size in inches.private List<ThrottlingValve> Internal branch isolation valves.private PLEM.ConfigurationTypeConfiguration type.private doubleDesign pressure in bara.private doubleDesign temperature in Celsius.private doubleDry weight in tonnes.private StringFoundation type (gravity, piled, suction).private booleanWhether header has isolation valves.private doubleHeader pipe size in inches.private List<StreamInterface> Inlet streams.private MixerInternal mixer for commingling.private SplitterInternal splitter for distribution.private PLEMMechanicalDesignMechanical design instance.private intNumber of connection slots.private StreamInterfaceOutlet 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 doubleWater depth in meters.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 TypeMethodDescriptionvoidaddInletStream(StreamInterface stream) Add inlet stream to PLEM.private doubleCalculate pressure drop through header.voidcloseBranch(int branchIndex) Close a branch valve.doubleGet branch size.Get branch valves.Get configuration type.doubleGet design pressure.doubleGet design temperature.doubleGet dry weight.Get foundation type.doubleGet header size.Get inlet streams.Get mechanical design.intGet number of slots.Get outlet stream.doubleGet structure height.doubleGet structure length.doubleGet structure width.doubleGet submerged weight.doubleGet water depth.booleanCheck if branches have isolation valves.booleanCheck if header has isolation valves.private voidInitialize internal mixing/splitting equipment.voidInitialize mechanical design.voidopenBranch(int branchIndex) Open a branch valve.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetBranchIsolationValves(boolean branchIsolationValves) Set whether branches have isolation valves.voidsetBranchSizeInches(double branchSizeInches) Set branch size.voidsetBranchValveOpening(int branchIndex, double percentOpen) Set branch valve opening.voidsetConfigurationType(PLEM.ConfigurationType configurationType) Set configuration type.voidsetDesignPressure(double designPressure) Set design pressure.voidsetDesignTemperature(double designTemperature) Set design temperature.voidsetDryWeight(double dryWeight) Set dry weight.voidsetFoundationType(String foundationType) Set foundation type.voidsetHeaderIsolationValves(boolean headerIsolationValves) Set whether header has isolation valves.voidsetHeaderSizeInches(double headerSizeInches) Set header size.voidsetNumberOfSlots(int numberOfSlots) Set number of slots.voidsetStructureHeight(double structureHeight) Set structure height.voidsetStructureLength(double structureLength) Set structure length.voidsetStructureWidth(double structureWidth) Set structure width.voidsetSubmergedWeight(double submergedWeight) Set submerged weight.voidsetWaterDepth(double waterDepth) Set water depth.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 connection slots. -
configurationType
Configuration type. -
headerSizeInches
private double headerSizeInchesHeader pipe size in inches. -
branchSizeInches
private double branchSizeInchesBranch pipe size in inches. -
branchIsolationValves
private boolean branchIsolationValvesWhether each branch has isolation valve. -
branchValves
Internal branch isolation valves. -
headerIsolationValves
private boolean headerIsolationValvesWhether header has isolation valves. -
inletStreams
Inlet streams. -
outletStream
Outlet stream. -
internalMixer
Internal mixer for commingling. -
internalSplitter
Internal splitter for distribution. -
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 (gravity, piled, suction). -
mechanicalDesign
Mechanical design instance.
-
-
Constructor Details
-
PLEM
public PLEM()Default constructor. -
PLEM
-
PLEM
Constructor with name and number of slots.- Parameters:
name- equipment namenumberOfSlots- number of connection slots
-
-
Method Details
-
initializeInternalEquipment
private void initializeInternalEquipment()Initialize internal mixing/splitting equipment. -
addInletStream
Add inlet stream to PLEM.- Parameters:
stream- inlet stream to add
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
calculateHeaderPressureDrop
private double calculateHeaderPressureDrop()Calculate pressure drop through header.- Returns:
- pressure drop in bar
-
setBranchValveOpening
public void setBranchValveOpening(int branchIndex, double percentOpen) Set branch valve opening.- Parameters:
branchIndex- branch index (0-based)percentOpen- valve opening percentage (0-100)
-
closeBranch
public void closeBranch(int branchIndex) Close a branch valve.- Parameters:
branchIndex- branch index (0-based)
-
openBranch
public void openBranch(int branchIndex) Open a branch valve.- Parameters:
branchIndex- branch index (0-based)
-
getOutletStream
-
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 connection slots
-
setNumberOfSlots
public void setNumberOfSlots(int numberOfSlots) Set number of slots.- Parameters:
numberOfSlots- number of connection slots
-
getConfigurationType
Get configuration type.- Returns:
- configuration type
-
setConfigurationType
Set configuration type.- Parameters:
configurationType- configuration type
-
getHeaderSizeInches
public double getHeaderSizeInches()Get header size.- Returns:
- header size in inches
-
setHeaderSizeInches
public void setHeaderSizeInches(double headerSizeInches) Set header size.- Parameters:
headerSizeInches- 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
-
hasBranchIsolationValves
public boolean hasBranchIsolationValves()Check if branches have isolation valves.- Returns:
- true if branches have isolation valves
-
setBranchIsolationValves
public void setBranchIsolationValves(boolean branchIsolationValves) Set whether branches have isolation valves.- Parameters:
branchIsolationValves- true to include branch isolation valves
-
hasHeaderIsolationValves
public boolean hasHeaderIsolationValves()Check if header has isolation valves.- Returns:
- true if header has isolation valves
-
setHeaderIsolationValves
public void setHeaderIsolationValves(boolean headerIsolationValves) Set whether header has isolation valves.- Parameters:
headerIsolationValves- true to include header isolation valves
-
getInletStreams
-
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)
-
getBranchValves
Get branch valves.- Returns:
- list of branch isolation valves
-