Class ProcessInterconnectionDesign
java.lang.Object
neqsim.process.mechanicaldesign.ProcessInterconnectionDesign
- All Implemented Interfaces:
Serializable
Estimates interconnecting piping weight and material for a process system.
This class analyzes the stream connections in a ProcessSystem and estimates:
- Pipe sizes based on stream flow rates and velocity limits
- Pipe wall thicknesses based on design pressure per ASME B31.3
- Pipe length estimates between equipment
- Total piping weight by size/schedule
- Valve and fitting counts using typical ratios
References:
- ASME B31.3 - Process Piping
- API RP 14E - Recommended Practice for Design and Installation of Offshore Production Piping
- Version:
- 1.0
- Author:
- NeqSim Development Team
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepresents a pipe segment between two equipment items. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleAllowable stress for carbon steel [MPa].private static final doubleCorrosion allowance [mm].private doubleEstimated fitting weight [kg].private doubleEstimated flange weight [kg].private static final doubleWeld joint efficiency.Length by pipe size.private static final doubleMaximum gas velocity [m/s] - erosional limit.private static final doubleMaximum liquid velocity [m/s].private static final doubleMaximum two-phase velocity [m/s].private static final double[]Pipe outside diameters in mm corresponding to NPS.List of pipe segments.private ProcessSystemprivate static final longSerialization version UID.private static final double[]Standard pipe sizes in inches (NPS).private static final doubleSteel density [kg/m³].private intTotal number of elbows.private intTotal number of flanges.private doubleTotal piping length [m].private doubleTotal piping weight [kg].private intTotal number of tees.private intTotal number of valves.private doubleEstimated valve weight [kg].Weight by pipe size. -
Constructor Summary
ConstructorsConstructorDescriptionProcessInterconnectionDesign(ProcessSystem processSystem) Constructor for ProcessInterconnectionDesign. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidAccumulate segment data.private voidAnalyze connections from an equipment item.private voidCalculate fitting estimates based on typical ratios.voidCalculate piping estimates for all streams in the process.private doublecalculateWallThickness(double outsideDiameterMm, double designPressureBara) Calculate wall thickness per ASME B31.3.createPipeSegment(String fromEquip, String toEquip, StreamInterface stream) Create a pipe segment from stream properties.Generate a piping summary report.doubleGet fitting weight.doubleGet flange weight.Get length breakdown by pipe size.Get list of pipe segments.intGet total elbow count.intGet total flange count.doubleGet total piping length.doubleGet total piping weight.intGet total tee count.intGet total valve count.doubleGet valve weight.Get weight breakdown by pipe size.private static StringRepeat a string n times (Java 8 compatible).private StringselectSchedule(double designPressureBara) Select pipe schedule based on pressure.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
STEEL_DENSITY
private static final double STEEL_DENSITYSteel density [kg/m³].- See Also:
-
MAX_GAS_VELOCITY
private static final double MAX_GAS_VELOCITYMaximum gas velocity [m/s] - erosional limit.- See Also:
-
MAX_LIQUID_VELOCITY
private static final double MAX_LIQUID_VELOCITYMaximum liquid velocity [m/s].- See Also:
-
MAX_TWOPHASE_VELOCITY
private static final double MAX_TWOPHASE_VELOCITYMaximum two-phase velocity [m/s].- See Also:
-
ALLOWABLE_STRESS
private static final double ALLOWABLE_STRESSAllowable stress for carbon steel [MPa].- See Also:
-
JOINT_EFFICIENCY
private static final double JOINT_EFFICIENCYWeld joint efficiency.- See Also:
-
CORROSION_ALLOWANCE
private static final double CORROSION_ALLOWANCECorrosion allowance [mm].- See Also:
-
STANDARD_PIPE_SIZES
private static final double[] STANDARD_PIPE_SIZESStandard pipe sizes in inches (NPS). -
PIPE_OD_MM
private static final double[] PIPE_OD_MMPipe outside diameters in mm corresponding to NPS. -
processSystem
-
pipeSegments
List of pipe segments. -
totalPipingWeight
private double totalPipingWeightTotal piping weight [kg]. -
totalPipingLength
private double totalPipingLengthTotal piping length [m]. -
weightBySize
-
lengthBySize
-
totalValveCount
private int totalValveCountTotal number of valves. -
totalFlangeCount
private int totalFlangeCountTotal number of flanges. -
totalElbowCount
private int totalElbowCountTotal number of elbows. -
totalTeeCount
private int totalTeeCountTotal number of tees. -
valveWeight
private double valveWeightEstimated valve weight [kg]. -
flangeWeight
private double flangeWeightEstimated flange weight [kg]. -
fittingWeight
private double fittingWeightEstimated fitting weight [kg].
-
-
Constructor Details
-
ProcessInterconnectionDesign
Constructor for ProcessInterconnectionDesign.- Parameters:
processSystem- the process system to analyze
-
-
Method Details
-
calculatePipingEstimates
public void calculatePipingEstimates()Calculate piping estimates for all streams in the process. -
analyzeEquipmentConnections
Analyze connections from an equipment item.- Parameters:
equipment- the equipment to analyze
-
createPipeSegment
private ProcessInterconnectionDesign.PipeSegment createPipeSegment(String fromEquip, String toEquip, StreamInterface stream) Create a pipe segment from stream properties.- Parameters:
fromEquip- from equipment nametoEquip- to equipment namestream- the stream- Returns:
- pipe segment or null if unable to create
-
calculateWallThickness
private double calculateWallThickness(double outsideDiameterMm, double designPressureBara) Calculate wall thickness per ASME B31.3.- Parameters:
outsideDiameterMm- outside diameter in mmdesignPressureBara- design pressure in bara- Returns:
- wall thickness in mm
-
selectSchedule
Select pipe schedule based on pressure.- Parameters:
designPressureBara- design pressure in bara- Returns:
- schedule designation
-
accumulateSegment
Accumulate segment data.- Parameters:
segment- the segment to accumulate
-
calculateFittingEstimates
private void calculateFittingEstimates()Calculate fitting estimates based on typical ratios. -
getPipeSegments
Get list of pipe segments.- Returns:
- list of pipe segments
-
getTotalPipingWeight
public double getTotalPipingWeight()Get total piping weight.- Returns:
- total weight in kg
-
getTotalPipingLength
public double getTotalPipingLength()Get total piping length.- Returns:
- total length in meters
-
getWeightBySize
-
getLengthBySize
-
getTotalValveCount
public int getTotalValveCount()Get total valve count.- Returns:
- number of valves
-
getTotalFlangeCount
public int getTotalFlangeCount()Get total flange count.- Returns:
- number of flanges
-
getTotalElbowCount
public int getTotalElbowCount()Get total elbow count.- Returns:
- number of elbows
-
getTotalTeeCount
public int getTotalTeeCount()Get total tee count.- Returns:
- number of tees
-
getValveWeight
public double getValveWeight()Get valve weight.- Returns:
- valve weight in kg
-
getFlangeWeight
public double getFlangeWeight()Get flange weight.- Returns:
- flange weight in kg
-
getFittingWeight
public double getFittingWeight()Get fitting weight.- Returns:
- fitting weight in kg
-
generatePipingReport
Generate a piping summary report.- Returns:
- formatted report string
-
repeat
-