Class CompressorMechanicalDesign
- All Implemented Interfaces:
Serializable
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:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic enumCasing type enumeration per API 617. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleBearing span [mm].private doubleBundle (rotor + internals) weight [kg].Casing type.private doubleCasing weight [kg].private doubleCompressor design factor from design standard.private static final doubleDesign pressure margin.private static final doubleDesign temperature margin [C].private doubleDesign pressure [bara].private doubleDesign temperature [C].private static final doubleprivate static final doubleprivate static final doubleDriver sizing margin per API 617.private doubleDriver power margin factor.private doubleRequired driver power [kW].private doubleFirst lateral critical speed [rpm].private static final doubleprivate static final doubleprivate static final doubleTypical flow coefficient range for centrifugal impellers.private doublePolytropic head per stage [kJ/kg].private doubleImpeller outer diameter [mm].private static final doubleMaximum polytropic head per stage [kJ/kg] - typical for process gas.private static final doubleMaximum impeller tip speed [m/s] - material limit for steel impellers.private doubleMaximum continuous speed [rpm].private CompressorMechanicalLossesMechanical losses model reference.private intNumber of compression stages.private doubleRotor weight [kg].private static final longSerialization version UID.private doubleShaft diameter at impeller [mm].private doubleImpeller tip speed [m/s].private doubleTrip speed (typically 105% of max continuous) [rpm].Fields 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 CompressorMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcDesign.private voidcalculateDriverSizing(double shaftPowerKW) Calculate driver power requirement with API 617 margins.private voidcalculateImpellerSizing(double volumeFlowM3hr, double polytropicHead, double speedRPM) Calculate impeller diameter and tip speed.private voidCalculate module dimensions for plot plan.private voidcalculateNumberOfStages(double totalPolytropicHead) Calculate number of compression stages based on total head and max head per stage.private voidcalculateRotorDynamics(double operatingSpeedRPM) Calculate rotor dynamics parameters.private voidcalculateShaftDiameter(double powerKW, double speedRPM) Calculate shaft diameter based on torque requirements.private voidcalculateWeights(double massFlowKghr, double designPressureBara) Calculate compressor weights.voiddisplayResults.doubleGet bearing span.doubleGet bundle (rotor + internals) weight.Get casing type.doubleGet casing weight.doubleGet design pressure.doubleGet design temperature.doubleGet driver margin factor.doubleGet required driver power with margin.doubleGet first lateral critical speed.doubleGet head per stage.doubleGet impeller diameter.doubleGet maximum continuous speed.intGet the calculated number of stages.doubleGetter for the fieldouterDiameter.Get the mechanical design response object.doubleGet rotor weight.doubleGet shaft diameter.doubleGet impeller tip speed.doubleGet trip speed.doubleGetter for the fieldwallThickness.voidreadDesignSpecifications.private voidselectCasingType(double pressure) Select casing type based on design pressure per API 617 guidelines.voidsetCasingType(CompressorMechanicalDesign.CasingType casingType) Set casing type.voidsetDesign.voidsetImpellerDiameter(double impellerDiameter) Set impeller diameter (override calculated value).voidsetNumberOfStages(int numberOfStages) Set the number of stages (override calculated value).voidsetOuterDiameter(double outerDiameter) Setter for the fieldouterDiameter.voidsetShaftDiameter(double shaftDiameter) Set shaft diameter (override calculated value).voidsetWallThickness(double wallThickness) Setter for the fieldwallThickness.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, getPressureMarginFactor, getProcessEquipment, getRecommendedStandards, getTantanLength, getTensileStrength, getVolumeTotal, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setDefaultLiquidDensity, setDefaultLiquidViscosity, 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, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
MAX_HEAD_PER_STAGE
private static final double MAX_HEAD_PER_STAGEMaximum polytropic head per stage [kJ/kg] - typical for process gas.- See Also:
-
MAX_TIP_SPEED
private static final double MAX_TIP_SPEEDMaximum impeller tip speed [m/s] - material limit for steel impellers.- See Also:
-
FLOW_COEFFICIENT_MIN
private static final double FLOW_COEFFICIENT_MINTypical 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_SMALLDriver 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_MARGINDesign pressure margin.- See Also:
-
DESIGN_TEMPERATURE_MARGIN
private static final double DESIGN_TEMPERATURE_MARGINDesign temperature margin [C].- See Also:
-
compressorFactor
private double compressorFactorCompressor design factor from design standard. -
numberOfStages
private int numberOfStagesNumber of compression stages. -
impellerDiameter
private double impellerDiameterImpeller outer diameter [mm]. -
shaftDiameter
private double shaftDiameterShaft diameter at impeller [mm]. -
tipSpeed
private double tipSpeedImpeller tip speed [m/s]. -
driverPower
private double driverPowerRequired driver power [kW]. -
driverMargin
private double driverMarginDriver power margin factor. -
designPressure
private double designPressureDesign pressure [bara]. -
designTemperature
private double designTemperatureDesign temperature [C]. -
maxContinuousSpeed
private double maxContinuousSpeedMaximum continuous speed [rpm]. -
tripSpeed
private double tripSpeedTrip speed (typically 105% of max continuous) [rpm]. -
firstCriticalSpeed
private double firstCriticalSpeedFirst lateral critical speed [rpm]. -
headPerStage
private double headPerStagePolytropic head per stage [kJ/kg]. -
casingType
Casing type. -
casingWeight
private double casingWeightCasing weight [kg]. -
rotorWeight
private double rotorWeightRotor weight [kg]. -
bearingSpan
private double bearingSpanBearing span [mm]. -
bundleWeight
private double bundleWeightBundle (rotor + internals) weight [kg]. -
mechanicalLosses
Mechanical losses model reference.
-
-
Constructor Details
-
CompressorMechanicalDesign
Constructor for CompressorMechanicalDesign.- Parameters:
equipment- the compressor equipment
-
-
Method Details
-
readDesignSpecifications
public void readDesignSpecifications()readDesignSpecifications.
- Overrides:
readDesignSpecificationsin classMechanicalDesign
-
calcDesign
-
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/hrpolytropicHead- total polytropic head in kJ/kgspeedRPM- shaft speed in rpm
-
calculateShaftDiameter
private void calculateShaftDiameter(double powerKW, double speedRPM) Calculate shaft diameter based on torque requirements.- Parameters:
powerKW- shaft power in kWspeedRPM- 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/hrdesignPressureBara- design pressure in bara
-
calculateModuleDimensions
private void calculateModuleDimensions()Calculate module dimensions for plot plan. -
setDesign
-
displayResults
-
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
-
setCasingType
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:
getOuterDiameterin classMechanicalDesign- Returns:
- a double
-
getWallThickness
public double getWallThickness()Getter for the field
wallThickness.- Overrides:
getWallThicknessin classMechanicalDesign- Returns:
- the wallThickness
-
setWallThickness
public void setWallThickness(double wallThickness) Setter for the field
wallThickness.- Overrides:
setWallThicknessin classMechanicalDesign- Parameters:
wallThickness- the wallThickness to set
-
setOuterDiameter
public void setOuterDiameter(double outerDiameter) Setter for the field
outerDiameter.- Overrides:
setOuterDiameterin classMechanicalDesign- Parameters:
outerDiameter- the outerDiameter to set
-
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 compressor-specific response with additional fields for staging, driver sizing, and rotordynamic data.
- 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 compressor-specific fields.
- Overrides:
toJsonin classMechanicalDesign- Returns:
- JSON string representation of the mechanical design
-