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.static classInner class to hold validation results. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAnti-surge control response time requirement [seconds].private doubleBearing span [mm].private StringBearing type.private doubleBundle (rotor + internals) weight [kg].Casing type.private doubleCasing weight [kg].private doubleCompressor design factor from design standard.private doubleSeparation margin from first critical speed [%].private static final doubleDesign pressure margin.private static final doubleDesign temperature margin [C].private doubleDesign flow margin factor.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 doubleDesign flow margin factor.private doublePolytropic head per stage [kJ/kg].private doubleImpeller outer diameter [mm].private StringMaterial class.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 doubleVibration limit at bearing [mm/s RMS].private doubleMaximum continuous speed [rpm].private doubleMaximum discharge temperature [C].private doubleMaximum pressure ratio per stage.private doubleSpeed range requirement - maximum [% of rated].private intMaximum number of stages per casing.private doubleMaximum allowable suction strainer pressure drop [bar].private doubleMaximum allowable vibration [mm/s RMS].private CompressorMechanicalLossesMechanical losses model reference.private doubleMinimum polytropic efficiency [%].private doubleMinimum seal gas differential pressure [bar].private doubleSpeed range requirement - minimum [% of rated].private doubleMinimum turndown requirement [%].private booleanNACE MR0175 compliance required.private intNumber of compression stages.private doubleRecycle valve capacity margin [%].private doubleRotor weight [kg].private doubleSeal gas consumption allowance [% of design flow].private StringSeal type.private static final longSerialization version UID.private doubleShaft diameter at impeller [mm].private doubleCalculated stonewall flow rate [m3/hr].private doubleStonewall margin minimum requirement [%].private doubleDesign suction pressure margin [bara].private doubleCalculated surge flow rate [m3/hr].private doubleSurge margin minimum requirement [%].private doubleTarget polytropic efficiency [%].private doubleImpeller tip speed [m/s].private doubleTrip speed (typically 105% of max continuous) [rpm].private doubleCalculated turndown flow rate [m3/hr].Fields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignCv, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignPressureDrop, maxDesignVelocity, 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.doublecalculateStonewallFlow(double designFlowM3hr) Calculates the stonewall flow rate based on design flow and stonewall margin.doublecalculateSurgeFlow(double designFlowM3hr) Calculates the surge flow rate based on design flow and surge margin.doublecalculateTurndownFlow(double designFlowM3hr) Calculates the minimum turndown flow rate.private voidcalculateWeights(double massFlowKghr, double designPressureBara) Calculate compressor weights.voiddisplayResults.doubleGet bearing span.Gets the bearing type.doubleGet bundle (rotor + internals) weight.Get casing type.doubleGet casing weight.doubleGets the design flow margin.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.Gets the material class.doubleGet maximum continuous speed.doubleGets the maximum discharge temperature.doubleGets the maximum pressure ratio per stage.intGets the maximum stages per casing.doubleGets the maximum allowable vibration.doubleGets the minimum polytropic efficiency.doubleGets the minimum seal gas differential pressure.intGet the calculated number of stages.doubleGetter for the fieldouterDiameter.Get the mechanical design response object.doubleGet rotor weight.Gets the seal type.doubleGet shaft diameter.doubleGets the stonewall margin requirement.doubleGets the surge margin requirement.doubleGets the target polytropic efficiency.doubleGet impeller tip speed.doubleGet trip speed.doubleGets the turndown requirement.doubleGetter for the fieldwallThickness.booleanChecks if NACE MR0175 compliance is required.voidLoads compressor design parameters from the database based on company standards.voidreadDesignSpecifications.private voidselectCasingType(double pressure) Select casing type based on design pressure per API 617 guidelines.voidsetBearingType(String bearingType) Sets the bearing type.voidsetCasingType(CompressorMechanicalDesign.CasingType casingType) Set casing type.voidsetDesign.voidsetDesignFlowMargin(double margin) Sets the design flow margin.voidsetImpellerDiameter(double impellerDiameter) Set impeller diameter (override calculated value).voidsetMaterialClass(String materialClass) Sets the material class.voidsetMaxDischargeTemperatureC(double tempC) Sets the maximum discharge temperature.voidsetMaxPressureRatioPerStage(double ratio) Sets the maximum pressure ratio per stage.voidsetMaxStagesPerCasing(int stages) Sets the maximum stages per casing.voidsetMaxVibrationMmPerSec(double vibration) Sets the maximum allowable vibration.voidsetMinPolytropicEfficiency(double efficiency) Sets the minimum polytropic efficiency.voidsetMinSealGasDifferentialPressureBar(double pressure) Sets the minimum seal gas differential pressure.voidsetNaceCompliance(boolean naceCompliance) Sets NACE MR0175 compliance requirement.voidsetNumberOfStages(int numberOfStages) Set the number of stages (override calculated value).voidsetOuterDiameter(double outerDiameter) Setter for the fieldouterDiameter.voidsetSealType(String sealType) Sets the seal type.voidsetShaftDiameter(double shaftDiameter) Set shaft diameter (override calculated value).voidsetStonewallMarginPercent(double margin) Sets the stonewall margin requirement.voidsetSurgeMarginPercent(double margin) Sets the surge margin requirement.voidsetTargetPolytropicEfficiency(double efficiency) Sets the target polytropic efficiency.voidsetTurndownPercent(double turndown) Sets the turndown requirement.voidsetWallThickness(double wallThickness) Setter for the fieldwallThickness.toJson()Export mechanical design data to JSON format.Performs comprehensive validation of compressor design.booleanvalidateDischargeTemperature(double actualTemperatureC) Validates that the discharge temperature is within acceptable limits.booleanvalidateEfficiency(double actualEfficiency) Validates that the actual polytropic efficiency meets minimum requirements.booleanvalidateOperatingPoint(double actualFlowM3hr, double surgeFlowM3hr, double stonewallFlowM3hr) Validates that design operating point is within acceptable margins.booleanvalidatePressureRatioPerStage(double actualPressureRatio) Validates that the pressure ratio per stage is within acceptable limits.booleanvalidateVibration(double actualVibrationMmS) Validates that vibration levels are within acceptable limits.Methods inherited from class MechanicalDesign
addDesignDataSource, calculateCostEstimate, costEstimateToJson, equals, generateBillOfMaterials, getApplicableStandards, getBareModuleCost, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getDuty, getGrassRootsCost, getHeatTransferArea, getInnerDiameter, getInstallationManHours, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignCv, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignPressureDrop, getMaxDesignVelocity, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getModuleHeight, getModuleLength, getModuleWidth, getPower, getPressureMarginFactor, getProcessEquipment, getPurchasedEquipmentCost, getRecommendedStandards, getTantanLength, getTensileStrength, getTotalModuleCost, getVolumeTotal, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setCostEstimateCepci, setCostEstimateLocationFactor, setCostEstimateMaterial, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignCv, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignPressureDrop, setMaxDesignVelocity, 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. -
surgeMarginPercent
private double surgeMarginPercentSurge margin minimum requirement [%]. -
stonewallMarginPercent
private double stonewallMarginPercentStonewall margin minimum requirement [%]. -
minTurndownPercent
private double minTurndownPercentMinimum turndown requirement [%]. -
targetPolytropicEfficiency
private double targetPolytropicEfficiencyTarget polytropic efficiency [%]. -
minPolytropicEfficiency
private double minPolytropicEfficiencyMinimum polytropic efficiency [%]. -
flowMarginFactor
private double flowMarginFactorDesign flow margin factor. -
recycleValveMarginPercent
private double recycleValveMarginPercentRecycle valve capacity margin [%]. -
suctionPressureMargin
private double suctionPressureMarginDesign suction pressure margin [bara]. -
maxDischargeTemperatureC
private double maxDischargeTemperatureCMaximum discharge temperature [C]. -
minSpeedPercent
private double minSpeedPercentSpeed range requirement - minimum [% of rated]. -
maxSpeedPercent
private double maxSpeedPercentSpeed range requirement - maximum [% of rated]. -
criticalSpeedMarginPercent
private double criticalSpeedMarginPercentSeparation margin from first critical speed [%]. -
antiSurgeResponseTimeSec
private double antiSurgeResponseTimeSecAnti-surge control response time requirement [seconds]. -
maxSuctionStrainerDPBar
private double maxSuctionStrainerDPBarMaximum allowable suction strainer pressure drop [bar]. -
sealGasConsumptionPercent
private double sealGasConsumptionPercentSeal gas consumption allowance [% of design flow]. -
maxBearingVibrationMmS
private double maxBearingVibrationMmSVibration limit at bearing [mm/s RMS]. -
surgeFlowM3hr
private double surgeFlowM3hrCalculated surge flow rate [m3/hr]. -
stonewallFlowM3hr
private double stonewallFlowM3hrCalculated stonewall flow rate [m3/hr]. -
turndownFlowM3hr
private double turndownFlowM3hrCalculated turndown flow rate [m3/hr]. -
maxPressureRatioPerStage
private double maxPressureRatioPerStageMaximum pressure ratio per stage. -
designFlowMargin
private double designFlowMarginDesign flow margin factor. -
maxVibrationMmPerSec
private double maxVibrationMmPerSecMaximum allowable vibration [mm/s RMS]. -
minSealGasDifferentialPressureBar
private double minSealGasDifferentialPressureBarMinimum seal gas differential pressure [bar]. -
maxStagesPerCasing
private int maxStagesPerCasingMaximum number of stages per casing. -
sealType
Seal type. -
bearingType
Bearing type. -
materialClass
Material class. -
naceCompliance
private boolean naceComplianceNACE MR0175 compliance required.
-
-
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
-
getSurgeMarginPercent
public double getSurgeMarginPercent()Gets the surge margin requirement.- Returns:
- surge margin as percentage
-
setSurgeMarginPercent
public void setSurgeMarginPercent(double margin) Sets the surge margin requirement.- Parameters:
margin- surge margin as percentage (typically 10-25%)
-
getStonewallMarginPercent
public double getStonewallMarginPercent()Gets the stonewall margin requirement.- Returns:
- stonewall margin as percentage
-
setStonewallMarginPercent
public void setStonewallMarginPercent(double margin) Sets the stonewall margin requirement.- Parameters:
margin- stonewall margin as percentage
-
getTurndownPercent
public double getTurndownPercent()Gets the turndown requirement.- Returns:
- turndown as percentage of design flow
-
setTurndownPercent
public void setTurndownPercent(double turndown) Sets the turndown requirement.- Parameters:
turndown- turndown as percentage of design flow (typically 70-100%)
-
getTargetPolytropicEfficiency
public double getTargetPolytropicEfficiency()Gets the target polytropic efficiency.- Returns:
- polytropic efficiency as fraction (0-1)
-
setTargetPolytropicEfficiency
public void setTargetPolytropicEfficiency(double efficiency) Sets the target polytropic efficiency.- Parameters:
efficiency- polytropic efficiency as fraction (typically 0.75-0.85)
-
getMinPolytropicEfficiency
public double getMinPolytropicEfficiency()Gets the minimum polytropic efficiency.- Returns:
- minimum polytropic efficiency as fraction
-
setMinPolytropicEfficiency
public void setMinPolytropicEfficiency(double efficiency) Sets the minimum polytropic efficiency.- Parameters:
efficiency- minimum polytropic efficiency as fraction
-
getMaxPressureRatioPerStage
public double getMaxPressureRatioPerStage()Gets the maximum pressure ratio per stage.- Returns:
- max pressure ratio per stage
-
setMaxPressureRatioPerStage
public void setMaxPressureRatioPerStage(double ratio) Sets the maximum pressure ratio per stage.- Parameters:
ratio- max pressure ratio per stage (typically 2.5-4.0)
-
getDesignFlowMargin
public double getDesignFlowMargin()Gets the design flow margin.- Returns:
- design flow margin factor
-
setDesignFlowMargin
public void setDesignFlowMargin(double margin) Sets the design flow margin.- Parameters:
margin- design flow margin factor (typically 1.05-1.15)
-
getMaxVibrationMmPerSec
public double getMaxVibrationMmPerSec()Gets the maximum allowable vibration.- Returns:
- max vibration in mm/s RMS
-
setMaxVibrationMmPerSec
public void setMaxVibrationMmPerSec(double vibration) Sets the maximum allowable vibration.- Parameters:
vibration- max vibration in mm/s RMS
-
getMaxDischargeTemperatureC
public double getMaxDischargeTemperatureC()Gets the maximum discharge temperature.- Returns:
- max discharge temperature in Celsius
-
setMaxDischargeTemperatureC
public void setMaxDischargeTemperatureC(double tempC) Sets the maximum discharge temperature.- Parameters:
tempC- max discharge temperature in Celsius
-
getMinSealGasDifferentialPressureBar
public double getMinSealGasDifferentialPressureBar()Gets the minimum seal gas differential pressure.- Returns:
- min seal gas differential in bar
-
setMinSealGasDifferentialPressureBar
public void setMinSealGasDifferentialPressureBar(double pressure) Sets the minimum seal gas differential pressure.- Parameters:
pressure- min seal gas differential in bar
-
getMaxStagesPerCasing
public int getMaxStagesPerCasing()Gets the maximum stages per casing.- Returns:
- max stages per casing
-
setMaxStagesPerCasing
public void setMaxStagesPerCasing(int stages) Sets the maximum stages per casing.- Parameters:
stages- max stages per casing
-
getSealType
-
setSealType
Sets the seal type.- Parameters:
sealType- seal type ("dry_gas", "labyrinth", "oil_film")
-
getBearingType
-
setBearingType
Sets the bearing type.- Parameters:
bearingType- bearing type ("tilting_pad", "magnetic", "ball")
-
getMaterialClass
-
setMaterialClass
Sets the material class.- Parameters:
materialClass- material class for casing and internals
-
isNaceCompliance
public boolean isNaceCompliance()Checks if NACE MR0175 compliance is required.- Returns:
- true if NACE compliance required
-
setNaceCompliance
public void setNaceCompliance(boolean naceCompliance) Sets NACE MR0175 compliance requirement.- Parameters:
naceCompliance- true if NACE compliance required
-
calculateSurgeFlow
public double calculateSurgeFlow(double designFlowM3hr) Calculates the surge flow rate based on design flow and surge margin.- Parameters:
designFlowM3hr- design volumetric flow rate in m3/hr- Returns:
- surge flow rate in m3/hr
-
calculateStonewallFlow
public double calculateStonewallFlow(double designFlowM3hr) Calculates the stonewall flow rate based on design flow and stonewall margin.- Parameters:
designFlowM3hr- design volumetric flow rate in m3/hr- Returns:
- stonewall flow rate in m3/hr
-
calculateTurndownFlow
public double calculateTurndownFlow(double designFlowM3hr) Calculates the minimum turndown flow rate.- Parameters:
designFlowM3hr- design volumetric flow rate in m3/hr- Returns:
- minimum turndown flow rate in m3/hr
-
validateOperatingPoint
public boolean validateOperatingPoint(double actualFlowM3hr, double surgeFlowM3hr, double stonewallFlowM3hr) Validates that design operating point is within acceptable margins.- Parameters:
actualFlowM3hr- actual operating flow in m3/hrsurgeFlowM3hr- calculated surge flow in m3/hrstonewallFlowM3hr- calculated stonewall flow in m3/hr- Returns:
- true if operating point is acceptable
-
loadProcessDesignParameters
public void loadProcessDesignParameters()Loads compressor design parameters from the database based on company standards. -
validateEfficiency
public boolean validateEfficiency(double actualEfficiency) Validates that the actual polytropic efficiency meets minimum requirements.- Parameters:
actualEfficiency- actual polytropic efficiency (0-1)- Returns:
- true if efficiency is acceptable
-
validateDischargeTemperature
public boolean validateDischargeTemperature(double actualTemperatureC) Validates that the discharge temperature is within acceptable limits.- Parameters:
actualTemperatureC- actual discharge temperature in Celsius- Returns:
- true if temperature is acceptable
-
validatePressureRatioPerStage
public boolean validatePressureRatioPerStage(double actualPressureRatio) Validates that the pressure ratio per stage is within acceptable limits.- Parameters:
actualPressureRatio- actual pressure ratio per stage- Returns:
- true if pressure ratio is acceptable
-
validateVibration
public boolean validateVibration(double actualVibrationMmS) Validates that vibration levels are within acceptable limits.- Parameters:
actualVibrationMmS- actual vibration in mm/s RMS- Returns:
- true if vibration is acceptable
-
validateDesign
Performs comprehensive validation of compressor design.- Returns:
- CompressorValidationResult with status and any issues found
-