Class SafetyValveMechanicalDesign
java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.valve.ValveMechanicalDesign
neqsim.process.mechanicaldesign.valve.SafetyValveMechanicalDesign
- All Implemented Interfaces:
Serializable
Mechanical design for safety valves based on API 520 gas sizing.
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate classprivate classprivate classprivate classstatic final classLightweight reporting view for consumption by analysis tools.static final classDetailed sizing outcome for a single scenario.private static interface(package private) static final classContainer holding data shared with the sizing strategies. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate Stringprivate doubleprivate static final longFields inherited from class ValveMechanicalDesign
allowChoked, allowLaminar, diameter, diameterInlet, diameterOutlet, dP, FD, FL, fullOutput, inletPressure, outletPressure, valveCharacterization, valveCharacterizationMethod, valveCvMax, valveSizingMethod, valveSizingStandard, valveWeight, xTFields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, outerDiameter, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
ConstructorsConstructorDescriptionConstructor for SafetyValveMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionbuildContext(SafetyValve valve, SafetyValve.RelievingScenario scenario) voidcalcDesign.doublecalcGasOrificeAreaAPI520(double massFlow, double relievingPressure, double relievingTemperature, double z, double molecularWeight, double k, double kd, double kb, double kw) Calculates the required orifice area for gas/vapor service according to API 520.private doublecalcGasOrificeAreaISO4126(double massFlow, double relievingPressure, double relievingTemperature, double z, double molecularWeight, double k, double kd, double kb, double kw) private doublecalcHemMultiphaseOrificeArea(double massFlow, double relievingPressure, double backPressure, double density, double kd, double kb, double kw) private doublecalcLiquidOrificeArea(double massFlow, double relievingPressure, double backPressure, double density, double kd, double kb, double kw) private doubledoubledoubleReturns the calculated orifice area.Convenience accessor returning a structured report suitable for higher-level analyzers.Immutable view of scenario sizing results keyed by scenario name.Methods inherited from class ValveMechanicalDesign
calcValveSize, displayResults, getActuatorWeight, getAnsiPressureClass, getBodyWallThickness, getBodyWeight, getDesignPressure, getDesignTemperature, getDp, getFaceToFace, getFL, getFlangeType, getInletPressure, getNominalSizeInches, getOutletPressure, getRequiredActuatorThrust, getResponse, getStemDiameter, getValveCharacterization, getValveCharacterizationMethod, getValveCvMax, getValveSizingMethod, getValveSizingStandard, getValveType, getxT, readDesignSpecifications, setValveCharacterization, setValveCharacterizationMethod, setValveSizingStandard, toJsonMethods inherited from class MechanicalDesign
addDesignDataSource, equals, getApplicableStandards, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getInnerDiameter, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getOuterDiameter, getPressureMarginFactor, getProcessEquipment, getRecommendedStandards, getTantanLength, getTensileStrength, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesign, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setOuterDiameter, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUID- See Also:
-
orificeArea
private double orificeArea -
controllingOrificeArea
private double controllingOrificeArea -
controllingScenarioName
-
strategies
private final Map<SafetyValve.FluidService, SafetyValveMechanicalDesign.SafetyValveSizingStrategy> strategies -
scenarioResults
-
-
Constructor Details
-
SafetyValveMechanicalDesign
Constructor for SafetyValveMechanicalDesign.
- Parameters:
equipment- aProcessEquipmentInterfaceobject
-
-
Method Details
-
calcGasOrificeAreaAPI520
public double calcGasOrificeAreaAPI520(double massFlow, double relievingPressure, double relievingTemperature, double z, double molecularWeight, double k, double kd, double kb, double kw) Calculates the required orifice area for gas/vapor service according to API 520.- Parameters:
massFlow- mass flow rate at relieving conditions [kg/s]relievingPressure- absolute relieving pressure [Pa]relievingTemperature- relieving temperature [K]z- gas compressibility factor [-]molecularWeight- molecular weight [kg/mol]k- heat capacity ratio (Cp/Cv) [-]kd- discharge coefficient [-]kb- back pressure correction factor [-]kw- installation correction factor [-]- Returns:
- required flow area [m^2]
-
calcGasOrificeAreaISO4126
private double calcGasOrificeAreaISO4126(double massFlow, double relievingPressure, double relievingTemperature, double z, double molecularWeight, double k, double kd, double kb, double kw) -
calcLiquidOrificeArea
private double calcLiquidOrificeArea(double massFlow, double relievingPressure, double backPressure, double density, double kd, double kb, double kw) -
calcHemMultiphaseOrificeArea
private double calcHemMultiphaseOrificeArea(double massFlow, double relievingPressure, double backPressure, double density, double kd, double kb, double kw) -
calcDesign
-
getOrificeArea
public double getOrificeArea()Returns the calculated orifice area.- Returns:
- area [m^2]
-
getControllingOrificeArea
public double getControllingOrificeArea()- Returns:
- the largest required orifice area across all configured scenarios
-
getControllingScenarioName
- Returns:
- the name of the scenario requiring the maximum area, or
nullif none
-
getScenarioResults
Immutable view of scenario sizing results keyed by scenario name.- Returns:
- map of results
-
getScenarioReports
Convenience accessor returning a structured report suitable for higher-level analyzers.- Returns:
- list of report entries preserving scenario insertion order
-
buildContext
private SafetyValveMechanicalDesign.SizingContext buildContext(SafetyValve valve, SafetyValve.RelievingScenario scenario) -
defaultDischargeCoefficient
-