Class ValveMechanicalDesign

java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.valve.ValveMechanicalDesign
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
SafetyValveMechanicalDesign

public class ValveMechanicalDesign extends MechanicalDesign

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 Details

    • serialVersionUID

      private static final long serialVersionUID
      Serialization version UID.
      See Also:
    • DESIGN_PRESSURE_MARGIN

      private static final double DESIGN_PRESSURE_MARGIN
      Design pressure margin factor.
      See Also:
    • ANSI_150_MAX_PRESSURE

      private static final double ANSI_150_MAX_PRESSURE
      ANSI Class 150 maximum pressure at ambient [bara].
      See Also:
    • ANSI_300_MAX_PRESSURE

      private static final double ANSI_300_MAX_PRESSURE
      ANSI Class 300 maximum pressure at ambient [bara].
      See Also:
    • ANSI_600_MAX_PRESSURE

      private static final double ANSI_600_MAX_PRESSURE
      ANSI Class 600 maximum pressure at ambient [bara].
      See Also:
    • ANSI_900_MAX_PRESSURE

      private static final double ANSI_900_MAX_PRESSURE
      ANSI Class 900 maximum pressure at ambient [bara].
      See Also:
    • ANSI_1500_MAX_PRESSURE

      private static final double ANSI_1500_MAX_PRESSURE
      ANSI Class 1500 maximum pressure at ambient [bara].
      See Also:
    • ANSI_2500_MAX_PRESSURE

      private static final double ANSI_2500_MAX_PRESSURE
      ANSI 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 ansiPressureClass
      ANSI pressure class (150, 300, 600, 900, 1500, 2500).
    • nominalSizeInches

      private double nominalSizeInches
      Valve body nominal size in inches.
    • faceToFace

      private double faceToFace
      Face-to-face dimension [mm].
    • bodyWallThickness

      private double bodyWallThickness
      Valve body wall thickness [mm].
    • bodyWeight

      private double bodyWeight
      Valve body weight [kg].
    • actuatorWeight

      private double actuatorWeight
      Actuator weight [kg].
    • requiredActuatorThrust

      private double requiredActuatorThrust
      Required actuator thrust [N].
    • stemDiameter

      private double stemDiameter
      Valve stem diameter [mm].
    • designPressure

      private double designPressure
      Design pressure [bara].
    • designTemperature

      private double designTemperature
      Design temperature [C].
    • valveType

      private String valveType
      Valve type description.
    • flangeType

      private String flangeType
      Flange connection type.
    • valveSizingMethod

      ControlValveSizingInterface valveSizingMethod
  • Constructor Details

  • Method Details

    • getValveCharacterization

      public String getValveCharacterization()

      Getter for the field valveCharacterization.

      Returns:
      a String object
    • getValveCharacterizationMethod

      public ValveCharacteristic getValveCharacterizationMethod()

      Getter for the field valveCharacterizationMethod.

      Returns:
      a ValveCharacteristic object
    • setValveCharacterizationMethod

      public void setValveCharacterizationMethod(ValveCharacteristic valveCharacterizationMethod)

      Setter for the field valveCharacterizationMethod.

      Parameters:
      valveCharacterizationMethod - a ValveCharacteristic object
    • getValveSizingStandard

      public String getValveSizingStandard()

      Getter for the field valveSizingStandard.

      Returns:
      a String object
    • setValveSizingStandard

      public void setValveSizingStandard(String valveSizingStandard)

      Setter for the field valveSizingStandard.

      Parameters:
      valveSizingStandard - a String object
    • setValveCharacterization

      public void setValveCharacterization(String valveCharacterization)
      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

      public ControlValveSizingInterface getValveSizingMethod()

      getValveSizingMethod.

      Returns:
      a ControlValveSizingInterface object
    • calcValveSize

      public Map<String,Object> calcValveSize()
      Calculates the valve size based on the fluid properties and operating conditions.
      Returns:
      a map containing the calculated valve size and related parameters. If fullOutput is false, the map will be null.
    • readDesignSpecifications

      public void readDesignSpecifications()

      readDesignSpecifications.

      Overrides:
      readDesignSpecifications in class MechanicalDesign
    • calcDesign

      public void calcDesign()

      calcDesign.

      Overrides:
      calcDesign in class MechanicalDesign
    • 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

      public String 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

      public String getFlangeType()
      Get the flange type.
      Returns:
      flange type (RF, RTJ, FF)
    • 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

      public void displayResults()

      displayResults.

      Overrides:
      displayResults in class MechanicalDesign
    • getResponse

      public ValveMechanicalDesignResponse getResponse()
      Get the mechanical design response object.

      This method returns a MechanicalDesignResponse object 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:
      getResponse in class MechanicalDesign
      Returns:
      MechanicalDesignResponse object
    • toJson

      public String toJson()
      Export mechanical design data to JSON format.

      This method creates a MechanicalDesignResponse object 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:
      toJson in class MechanicalDesign
      Returns:
      JSON string representation of the mechanical design