Class ValveMechanicalDesign
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
SafetyValveMechanicalDesign
ValveMechanicalDesign class provides mechanical design calculations for control valves.
This class calculates valve sizing, weight, dimensions, and actuator requirements based on industry standards including ANSI/ISA-75, IEC 60534, and API 6D.
Design calculations include:
- Valve body sizing and pressure rating selection
- Body wall thickness estimation
- Valve weight calculation based on size and rating
- Face-to-face dimensions per ANSI/ISA standards
- Actuator sizing for control valves
- Module dimensions for installation planning
- Version:
- $Id: $Id
- Author:
- esol
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleActuator weight [kg].(package private) boolean(package private) booleanprivate static final doubleANSI Class 150 maximum pressure at ambient [bara].private static final doubleANSI Class 1500 maximum pressure at ambient [bara].private static final doubleANSI Class 2500 maximum pressure at ambient [bara].private static final doubleANSI Class 300 maximum pressure at ambient [bara].private static final doubleANSI Class 600 maximum pressure at ambient [bara].private static final doubleANSI Class 900 maximum pressure at ambient [bara].private intANSI pressure class (150, 300, 600, 900, 1500, 2500).private doubleValve body wall thickness [mm].private doubleValve body weight [kg].private static final doubleDesign pressure margin factor.private doubleDesign pressure [bara].private doubleDesign temperature [C].(package private) double(package private) double(package private) double(package private) doubleprivate doubleFace-to-face dimension [mm].(package private) double(package private) doubleprivate StringFlange connection type.(package private) boolean(package private) doubleprivate doubleValve body nominal size in inches.(package private) doubleprivate doubleRequired actuator thrust [N].private static final longSerialization version UID.private doubleValve stem diameter [mm].(package private) String(package private) ValveCharacteristic(package private) double(package private) ControlValveSizingInterface(package private) Stringprivate StringValve type description.(package private) double(package private) doubleFields 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
ConstructorsConstructorDescriptionValveMechanicalDesign(ProcessEquipmentInterface equipment) Constructor for ValveMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcDesign.private voidCalculate actuator sizing requirements.private voidCalculate body wall thickness based on pressure rating.private voidCalculate face-to-face dimension per ANSI/ISA-75.08.private voidCalculate module dimensions for installation.private voidcalculateNominalSize(double cv) Calculate nominal valve size from Cv using ISA correlation.private voidCalculate valve weights.Calculates the valve size based on the fluid properties and operating conditions.voiddisplayResults.doubleGet the actuator weight.intGet the ANSI pressure class.doubleGet the body wall thickness.doubleGet the body weight.doubleGet the design pressure.doubleGet the design temperature.doublegetDp()Get the pressure drop across the valve.doubleGet the face-to-face dimension.doublegetFL()Get the pressure recovery factor (FL).Get the flange type.doubleGet the inlet pressure.doubleGet the nominal valve size in inches.doubleGet the outlet pressure.doubleGet the required actuator thrust.Get the mechanical design response object.doubleGet the stem diameter.Getter for the fieldvalveCharacterization.Getter for the fieldvalveCharacterizationMethod.doubleGet the maximum valve Cv.getValveSizingMethod.Getter for the fieldvalveSizingStandard.Get the valve type description.doublegetxT()Get the pressure ratio factor (xT).voidreadDesignSpecifications.private voidselectPressureClass(double pressure) Select ANSI pressure class based on design pressure.voidsetValveCharacterization(String valveCharacterization) Sets the valve characterization type.voidsetValveCharacterizationMethod(ValveCharacteristic valveCharacterizationMethod) Setter for the fieldvalveCharacterizationMethod.voidsetValveSizingStandard(String valveSizingStandard) Setter for the fieldvalveSizingStandard.toJson()Export mechanical design data to JSON format.Methods 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 serialVersionUIDSerialization version UID.- See Also:
-
DESIGN_PRESSURE_MARGIN
private static final double DESIGN_PRESSURE_MARGINDesign pressure margin factor.- See Also:
-
ANSI_150_MAX_PRESSURE
private static final double ANSI_150_MAX_PRESSUREANSI Class 150 maximum pressure at ambient [bara].- See Also:
-
ANSI_300_MAX_PRESSURE
private static final double ANSI_300_MAX_PRESSUREANSI Class 300 maximum pressure at ambient [bara].- See Also:
-
ANSI_600_MAX_PRESSURE
private static final double ANSI_600_MAX_PRESSUREANSI Class 600 maximum pressure at ambient [bara].- See Also:
-
ANSI_900_MAX_PRESSURE
private static final double ANSI_900_MAX_PRESSUREANSI Class 900 maximum pressure at ambient [bara].- See Also:
-
ANSI_1500_MAX_PRESSURE
private static final double ANSI_1500_MAX_PRESSUREANSI Class 1500 maximum pressure at ambient [bara].- See Also:
-
ANSI_2500_MAX_PRESSURE
private static final double ANSI_2500_MAX_PRESSUREANSI Class 2500 maximum pressure at ambient [bara].- See Also:
-
valveCvMax
double valveCvMax -
valveWeight
double valveWeight -
inletPressure
double inletPressure -
outletPressure
double outletPressure -
dP
double dP -
diameter
double diameter -
diameterInlet
double diameterInlet -
diameterOutlet
double diameterOutlet -
xT
double xT -
FL
double FL -
FD
double FD -
allowChoked
boolean allowChoked -
allowLaminar
boolean allowLaminar -
fullOutput
boolean fullOutput -
valveSizingStandard
String valveSizingStandard -
valveCharacterization
String valveCharacterization -
valveCharacterizationMethod
ValveCharacteristic valveCharacterizationMethod -
ansiPressureClass
private int ansiPressureClassANSI pressure class (150, 300, 600, 900, 1500, 2500). -
nominalSizeInches
private double nominalSizeInchesValve body nominal size in inches. -
faceToFace
private double faceToFaceFace-to-face dimension [mm]. -
bodyWallThickness
private double bodyWallThicknessValve body wall thickness [mm]. -
bodyWeight
private double bodyWeightValve body weight [kg]. -
actuatorWeight
private double actuatorWeightActuator weight [kg]. -
requiredActuatorThrust
private double requiredActuatorThrustRequired actuator thrust [N]. -
stemDiameter
private double stemDiameterValve stem diameter [mm]. -
designPressure
private double designPressureDesign pressure [bara]. -
designTemperature
private double designTemperatureDesign temperature [C]. -
valveType
Valve type description. -
flangeType
Flange connection type. -
valveSizingMethod
ControlValveSizingInterface valveSizingMethod
-
-
Constructor Details
-
ValveMechanicalDesign
Constructor for ValveMechanicalDesign.
- Parameters:
equipment- aProcessEquipmentInterfaceobject
-
-
Method Details
-
getValveCharacterization
-
getValveCharacterizationMethod
Getter for the field
valveCharacterizationMethod.- Returns:
- a
ValveCharacteristicobject
-
setValveCharacterizationMethod
Setter for the field
valveCharacterizationMethod.- Parameters:
valveCharacterizationMethod- aValveCharacteristicobject
-
getValveSizingStandard
-
setValveSizingStandard
-
setValveCharacterization
Sets the valve characterization type.Available valve characteristics:
- linear - Flow is directly proportional to valve opening. Best when pressure drop is constant.
- equal percentage - Equal increments produce equal percentage changes in flow. Most common for process control.
- quick opening - Large flow change at small openings. Used for on/off and safety applications.
- modified parabolic - Compromise between linear and equal percentage.
- Parameters:
valveCharacterization- the characterization type: "linear", "equal percentage", "quick opening", or "modified parabolic"
-
getValveSizingMethod
getValveSizingMethod.
- Returns:
- a
ControlValveSizingInterfaceobject
-
calcValveSize
-
readDesignSpecifications
public void readDesignSpecifications()readDesignSpecifications.
- Overrides:
readDesignSpecificationsin classMechanicalDesign
-
calcDesign
-
selectPressureClass
private void selectPressureClass(double pressure) Select ANSI pressure class based on design pressure.- Parameters:
pressure- design pressure in bara
-
calculateNominalSize
private void calculateNominalSize(double cv) Calculate nominal valve size from Cv using ISA correlation.For globe valves: Cv ≈ 10 × d² (approximate for full-ported valves).
- Parameters:
cv- valve Cv coefficient
-
calculateFaceToFace
private void calculateFaceToFace()Calculate face-to-face dimension per ANSI/ISA-75.08. -
calculateBodyWallThickness
private void calculateBodyWallThickness()Calculate body wall thickness based on pressure rating. -
calculateActuatorSizing
private void calculateActuatorSizing()Calculate actuator sizing requirements. -
calculateWeights
private void calculateWeights()Calculate valve weights. -
calculateModuleDimensions
private void calculateModuleDimensions()Calculate module dimensions for installation. -
getAnsiPressureClass
public int getAnsiPressureClass()Get the ANSI pressure class.- Returns:
- ANSI class (150, 300, 600, 900, 1500, or 2500)
-
getNominalSizeInches
public double getNominalSizeInches()Get the nominal valve size in inches.- Returns:
- nominal size in inches
-
getFaceToFace
public double getFaceToFace()Get the face-to-face dimension.- Returns:
- face-to-face in mm
-
getBodyWallThickness
public double getBodyWallThickness()Get the body wall thickness.- Returns:
- wall thickness in mm
-
getRequiredActuatorThrust
public double getRequiredActuatorThrust()Get the required actuator thrust.- Returns:
- thrust in Newtons
-
getActuatorWeight
public double getActuatorWeight()Get the actuator weight.- Returns:
- weight in kg
-
getDesignPressure
public double getDesignPressure()Get the design pressure.- Returns:
- design pressure in bara
-
getDesignTemperature
public double getDesignTemperature()Get the design temperature.- Returns:
- design temperature in Celsius
-
getValveType
Get the valve type description.- Returns:
- valve type (Globe, Ball, Butterfly, etc.)
-
getValveCvMax
public double getValveCvMax()Get the maximum valve Cv.- Returns:
- maximum Cv at full open
-
getBodyWeight
public double getBodyWeight()Get the body weight.- Returns:
- body weight in kg
-
getStemDiameter
public double getStemDiameter()Get the stem diameter.- Returns:
- stem diameter in mm
-
getFlangeType
-
getInletPressure
public double getInletPressure()Get the inlet pressure.- Returns:
- inlet pressure in bara
-
getOutletPressure
public double getOutletPressure()Get the outlet pressure.- Returns:
- outlet pressure in bara
-
getDp
public double getDp()Get the pressure drop across the valve.- Returns:
- pressure drop in bar
-
getFL
public double getFL()Get the pressure recovery factor (FL).- Returns:
- FL factor
-
getxT
public double getxT()Get the pressure ratio factor (xT).- Returns:
- xT factor
-
displayResults
-
getResponse
Get the mechanical design response object.This method returns a
MechanicalDesignResponseobject that can be further customized or combined with other data before serialization.Returns a valve-specific response with additional fields for sizing data, actuator requirements, and flow characteristics.
- Overrides:
getResponsein classMechanicalDesign- Returns:
- MechanicalDesignResponse object
-
toJson
Export mechanical design data to JSON format.This method creates a
MechanicalDesignResponseobject and serializes it to JSON using Gson. The JSON includes equipment identification, weight breakdown, design conditions, dimensions, and materials information.Usage example:
MechanicalDesign mecDesign = separator.getMechanicalDesign(); mecDesign.calcDesign(); String json = mecDesign.toJson();Returns JSON with valve-specific fields.
- Overrides:
toJsonin classMechanicalDesign- Returns:
- JSON string representation of the mechanical design
-