Class CompressorMechanicalDesign

java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.compressor.CompressorMechanicalDesign
All Implemented Interfaces:
Serializable

public class CompressorMechanicalDesign extends MechanicalDesign
Mechanical design calculations for centrifugal compressors.

This class provides sizing and design calculations for centrifugal compressors based on API 617 and industry practice. Calculations include:

  • Number of stages based on pressure ratio and head per stage limits
  • Impeller diameter sizing based on flow coefficient
  • Driver power sizing with mechanical losses margin
  • Casing design pressure and temperature
  • Shaft diameter estimation
  • Module footprint and weight estimation

References:

  • API 617 - Axial and Centrifugal Compressors and Expander-compressors
  • API 672 - Packaged, Integrally Geared Centrifugal Air Compressors
Version:
2.0
Author:
NeqSim Development Team
See Also:
  • Field Details

    • serialVersionUID

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

      private static final double MAX_HEAD_PER_STAGE
      Maximum polytropic head per stage [kJ/kg] - typical for process gas.
      See Also:
    • MAX_TIP_SPEED

      private static final double MAX_TIP_SPEED
      Maximum impeller tip speed [m/s] - material limit for steel impellers.
      See Also:
    • FLOW_COEFFICIENT_MIN

      private static final double FLOW_COEFFICIENT_MIN
      Typical flow coefficient range for centrifugal impellers.
      See Also:
    • FLOW_COEFFICIENT_MAX

      private static final double FLOW_COEFFICIENT_MAX
      See Also:
    • FLOW_COEFFICIENT_DESIGN

      private static final double FLOW_COEFFICIENT_DESIGN
      See Also:
    • DRIVER_MARGIN_SMALL

      private static final double DRIVER_MARGIN_SMALL
      Driver sizing margin per API 617.
      See Also:
    • DRIVER_MARGIN_MEDIUM

      private static final double DRIVER_MARGIN_MEDIUM
      See Also:
    • DRIVER_MARGIN_LARGE

      private static final double DRIVER_MARGIN_LARGE
      See Also:
    • DESIGN_PRESSURE_MARGIN

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

      private static final double DESIGN_TEMPERATURE_MARGIN
      Design temperature margin [C].
      See Also:
    • compressorFactor

      private double compressorFactor
      Compressor design factor from design standard.
    • numberOfStages

      private int numberOfStages
      Number of compression stages.
    • impellerDiameter

      private double impellerDiameter
      Impeller outer diameter [mm].
    • shaftDiameter

      private double shaftDiameter
      Shaft diameter at impeller [mm].
    • tipSpeed

      private double tipSpeed
      Impeller tip speed [m/s].
    • driverPower

      private double driverPower
      Required driver power [kW].
    • driverMargin

      private double driverMargin
      Driver power margin factor.
    • designPressure

      private double designPressure
      Design pressure [bara].
    • designTemperature

      private double designTemperature
      Design temperature [C].
    • maxContinuousSpeed

      private double maxContinuousSpeed
      Maximum continuous speed [rpm].
    • tripSpeed

      private double tripSpeed
      Trip speed (typically 105% of max continuous) [rpm].
    • firstCriticalSpeed

      private double firstCriticalSpeed
      First lateral critical speed [rpm].
    • headPerStage

      private double headPerStage
      Polytropic head per stage [kJ/kg].
    • casingType

      Casing type.
    • casingWeight

      private double casingWeight
      Casing weight [kg].
    • rotorWeight

      private double rotorWeight
      Rotor weight [kg].
    • bearingSpan

      private double bearingSpan
      Bearing span [mm].
    • bundleWeight

      private double bundleWeight
      Bundle (rotor + internals) weight [kg].
    • mechanicalLosses

      private CompressorMechanicalLosses mechanicalLosses
      Mechanical losses model reference.
  • Constructor Details

    • CompressorMechanicalDesign

      public CompressorMechanicalDesign(ProcessEquipmentInterface equipment)
      Constructor for CompressorMechanicalDesign.
      Parameters:
      equipment - the compressor equipment
  • Method Details

    • readDesignSpecifications

      public void readDesignSpecifications()

      readDesignSpecifications.

      Overrides:
      readDesignSpecifications in class MechanicalDesign
    • calcDesign

      public void calcDesign()

      calcDesign.

      Overrides:
      calcDesign in class MechanicalDesign
    • selectCasingType

      private void selectCasingType(double pressure)
      Select casing type based on design pressure per API 617 guidelines.
      Parameters:
      pressure - design pressure in bara
    • calculateNumberOfStages

      private void calculateNumberOfStages(double totalPolytropicHead)
      Calculate number of compression stages based on total head and max head per stage.
      Parameters:
      totalPolytropicHead - total polytropic head in kJ/kg
    • calculateImpellerSizing

      private void calculateImpellerSizing(double volumeFlowM3hr, double polytropicHead, double speedRPM)
      Calculate impeller diameter and tip speed.
      Parameters:
      volumeFlowM3hr - inlet volume flow rate in m3/hr
      polytropicHead - total polytropic head in kJ/kg
      speedRPM - shaft speed in rpm
    • calculateShaftDiameter

      private void calculateShaftDiameter(double powerKW, double speedRPM)
      Calculate shaft diameter based on torque requirements.
      Parameters:
      powerKW - shaft power in kW
      speedRPM - shaft speed in rpm
    • calculateDriverSizing

      private void calculateDriverSizing(double shaftPowerKW)
      Calculate driver power requirement with API 617 margins.
      Parameters:
      shaftPowerKW - required shaft power in kW
    • calculateRotorDynamics

      private void calculateRotorDynamics(double operatingSpeedRPM)
      Calculate rotor dynamics parameters.
      Parameters:
      operatingSpeedRPM - operating speed in rpm
    • calculateWeights

      private void calculateWeights(double massFlowKghr, double designPressureBara)
      Calculate compressor weights.
      Parameters:
      massFlowKghr - mass flow rate in kg/hr
      designPressureBara - design pressure in bara
    • calculateModuleDimensions

      private void calculateModuleDimensions()
      Calculate module dimensions for plot plan.
    • setDesign

      public void setDesign()

      setDesign.

      Overrides:
      setDesign in class MechanicalDesign
    • displayResults

      public void displayResults()

      displayResults.

      Overrides:
      displayResults in class MechanicalDesign
    • getNumberOfStages

      public int getNumberOfStages()
      Get the calculated number of stages.
      Returns:
      number of compression stages
    • setNumberOfStages

      public void setNumberOfStages(int numberOfStages)
      Set the number of stages (override calculated value).
      Parameters:
      numberOfStages - number of stages
    • getImpellerDiameter

      public double getImpellerDiameter()
      Get impeller diameter.
      Returns:
      impeller outer diameter in mm
    • setImpellerDiameter

      public void setImpellerDiameter(double impellerDiameter)
      Set impeller diameter (override calculated value).
      Parameters:
      impellerDiameter - diameter in mm
    • getShaftDiameter

      public double getShaftDiameter()
      Get shaft diameter.
      Returns:
      shaft diameter in mm
    • setShaftDiameter

      public void setShaftDiameter(double shaftDiameter)
      Set shaft diameter (override calculated value).
      Parameters:
      shaftDiameter - diameter in mm
    • getTipSpeed

      public double getTipSpeed()
      Get impeller tip speed.
      Returns:
      tip speed in m/s
    • getDriverPower

      public double getDriverPower()
      Get required driver power with margin.
      Returns:
      driver power in kW
    • getDesignPressure

      public double getDesignPressure()
      Get design pressure.
      Returns:
      design pressure in bara
    • getDesignTemperature

      public double getDesignTemperature()
      Get design temperature.
      Returns:
      design temperature in C
    • getDriverMargin

      public double getDriverMargin()
      Get driver margin factor.
      Returns:
      driver margin factor
    • getMaxContinuousSpeed

      public double getMaxContinuousSpeed()
      Get maximum continuous speed.
      Returns:
      max continuous speed in rpm
    • getTripSpeed

      public double getTripSpeed()
      Get trip speed.
      Returns:
      trip speed in rpm
    • getFirstCriticalSpeed

      public double getFirstCriticalSpeed()
      Get first lateral critical speed.
      Returns:
      first critical speed in rpm
    • getCasingType

      public CompressorMechanicalDesign.CasingType getCasingType()
      Get casing type.
      Returns:
      casing type
    • setCasingType

      public void setCasingType(CompressorMechanicalDesign.CasingType casingType)
      Set casing type.
      Parameters:
      casingType - casing type
    • getHeadPerStage

      public double getHeadPerStage()
      Get head per stage.
      Returns:
      polytropic head per stage in kJ/kg
    • getBearingSpan

      public double getBearingSpan()
      Get bearing span.
      Returns:
      bearing span in mm
    • getCasingWeight

      public double getCasingWeight()
      Get casing weight.
      Returns:
      casing weight in kg
    • getBundleWeight

      public double getBundleWeight()
      Get bundle (rotor + internals) weight.
      Returns:
      bundle weight in kg
    • getRotorWeight

      public double getRotorWeight()
      Get rotor weight.
      Returns:
      rotor weight in kg
    • getOuterDiameter

      public double getOuterDiameter()

      Getter for the field outerDiameter.

      Overrides:
      getOuterDiameter in class MechanicalDesign
      Returns:
      a double
    • getWallThickness

      public double getWallThickness()

      Getter for the field wallThickness.

      Overrides:
      getWallThickness in class MechanicalDesign
      Returns:
      the wallThickness
    • setWallThickness

      public void setWallThickness(double wallThickness)

      Setter for the field wallThickness.

      Overrides:
      setWallThickness in class MechanicalDesign
      Parameters:
      wallThickness - the wallThickness to set
    • setOuterDiameter

      public void setOuterDiameter(double outerDiameter)

      Setter for the field outerDiameter.

      Overrides:
      setOuterDiameter in class MechanicalDesign
      Parameters:
      outerDiameter - the outerDiameter to set
    • getResponse

      public CompressorMechanicalDesignResponse 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 compressor-specific response with additional fields for staging, driver sizing, and rotordynamic data.

      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 compressor-specific fields.

      Overrides:
      toJson in class MechanicalDesign
      Returns:
      JSON string representation of the mechanical design