Class CostEstimationCalculator
java.lang.Object
neqsim.process.costestimation.CostEstimationCalculator
- All Implemented Interfaces:
Serializable
Cost estimation calculator for process equipment.
This class provides standardized cost estimation methods based on chemical engineering cost correlations from standard references including:
- Peters, Timmerhaus & West - Plant Design and Economics for Chemical Engineers
- Turton, Bailie, Whiting & Shaeiwitz - Analysis, Synthesis and Design of Chemical Processes
- Ulrich & Vasudevan - Chemical Engineering Process Design and Economics
- Seider, Seader & Lewin - Product and Process Design Principles
Cost indices supported:
- CEPCI (Chemical Engineering Plant Cost Index) - default reference year 2019
- Marshall & Swift Equipment Cost Index
- Nelson-Farrar Refinery Construction Index
- Version:
- 1.0
- Author:
- AGAS
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleBare module cost (BMC) in USD.static final doubleCEPCI for 2019 (base year for correlations).static final doubleCEPCI for 2020.static final doubleCEPCI for 2021.static final doubleCEPCI for 2022.static final doubleCEPCI for 2023.static final doubleCEPCI for 2024 (estimated).static final doubleCEPCI for 2025 (estimated).private doubleContingency factor.static final StringCurrency code for Chinese Yuan.static final StringCurrency code for Euro.static final StringCurrency code for British Pound.static final StringCurrency code for Japanese Yen.static final StringCurrency code for Norwegian Krone.static final StringCurrency code for US Dollar.private StringCurrency code (default USD).private doubleCurrent CEPCI for cost escalation.private doubleEngineering factor.private doubleExchange rate from USD.static final doubleMaterial factor for carbon steel.static final doubleMaterial factor for Hastelloy C.static final doubleMaterial factor for Inconel.static final doubleMaterial factor for Monel.static final doubleMaterial factor for nickel.static final doubleMaterial factor for stainless steel 304.static final doubleMaterial factor for stainless steel 316.static final doubleMaterial factor for stainless steel 316L.static final doubleMaterial factor for titanium.private doubleTotal grass roots cost in USD.private doubleInstallation factor (Lang factor).static final doubleLocation factor for Australia.static final doubleLocation factor for Brazil.static final doubleLocation factor for China.static final doubleLocation factor for Middle East.static final doubleLocation factor for North Sea / Norway.static final doubleLocation factor for Southeast Asia.static final doubleLocation factor for US Gulf Coast (base).static final doubleLocation factor for US Midwest.static final doubleLocation factor for US West Coast.static final doubleLocation factor for West Africa.static final doubleLocation factor for Western Europe.private doubleLocation factor for different regions.private doubleMaterial factor.private StringMaterial of construction.private doublePurchased equipment cost (PEC) in USD.private doubleReference CEPCI for correlations (2019).private static final longSerialization version UID.private doubleTotal module cost (TMC) in USD. -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor with 2025 CEPCI.CostEstimationCalculator(double cepci) Constructor with specified CEPCI. -
Method Summary
Modifier and TypeMethodDescriptiondoublecalcAirCoolerCost(double area) Calculate purchased equipment cost for air cooler.doublecalcBareModuleCost(double purchasedCost, double designPressure) Calculate bare module cost with default factors.doublecalcBareModuleCost(double purchasedCost, double fpFactor, double fmFactor) Calculate bare module cost from purchased equipment cost.doublecalcBubbleCapTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for bubble cap trays.doublecalcCentrifugalCompressorCost(double power) Calculate purchased equipment cost for centrifugal compressor.doublecalcCentrifugalPumpCost(double power) Calculate purchased equipment cost for centrifugal pump.doublecalcColumnShellCost(double weight) Calculate purchased equipment cost for distillation column shell.doublecalcControlValveCost(double cv) Calculate cost for control valve.doublecalcGrassRootsCost(double totalModuleCost) Calculate grass roots cost for new facility.doublecalcHorizontalVesselCost(double shellWeight) Calculate purchased equipment cost for horizontal pressure vessel.doublecalcInstallationManHours(double equipmentWeight, String equipmentType) Calculate installation labor man-hours for equipment.doublecalcPackingCost(double volume, String packingType) Calculate purchased equipment cost for structured packing.doublecalcPipingCost(double diameter, double length, int schedule) Calculate cost for piping.doublecalcPipingInstallationManHours(double pipingWeight) Calculate piping installation man-hours.doublecalcPlateHeatExchangerCost(double area) Calculate purchased equipment cost for plate heat exchanger.doublecalcReciprocatingCompressorCost(double power) Calculate purchased equipment cost for reciprocating compressor.doublecalcShellTubeHeatExchangerCost(double area) Calculate purchased equipment cost for shell and tube heat exchanger.doublecalcSieveTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for sieve trays.doublecalcTotalModuleCost(double bareModuleCost) Calculate total module cost including contingency and engineering.voidcalculateCostEstimate(double purchasedCost, double designPressure, double weightKg, String equipmentType) Calculate complete cost estimate for equipment.doublecalcValveTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for valve trays.doublecalcVerticalVesselCost(double shellWeight) Calculate purchased equipment cost for vertical pressure vessel.doubleconvertFromUSD(double usdCost) Convert USD cost to current currency.doubleconvertToUSD(double localCost) Convert current currency cost to USD.formatCost(double cost) Format cost value with currency symbol.generateVesselBOM(double shellWeight, double headsWeight, int nozzleCount, double internalsWeight) Generate bill of materials for vessel.Get all available location factors.doubleGets the bare module cost.doubleGets the contingency factor.Gets the currency code.doubleGets the current CEPCI.Get default exchange rates for available currencies.doubleGets the engineering factor.doubleGets the exchange rate from USD.doubleGets the grass roots cost.doubleGets the installation factor.doubleGets the location factor.doubleGets the material factor.Gets the material of construction.static doublegetPressureFactor(double designPressure) Get pressure factor for vessels based on design pressure.doubleGets the purchased equipment cost.doubleGets the total module cost.voidsetContingencyFactor(double factor) Sets the contingency factor.voidsetCurrency(String code, double rate) Sets the currency code and exchange rate.voidsetCurrencyCode(String code) Set currency using predefined currency code with default exchange rates.voidsetCurrentCepci(double cepci) Sets the current CEPCI.voidsetEngineeringFactor(double factor) Sets the engineering factor.voidsetInstallationFactor(double factor) Sets the installation factor.voidsetLocationByRegion(String region) Set location factor by region name.voidsetLocationFactor(double factor) Sets the location factor.voidsetMaterialFactor(double factor) Sets the material factor.voidsetMaterialOfConstruction(String material) Sets material of construction and updates factor.toJson()Export cost data to JSON.toMap()Convert cost results to map for JSON export.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
CEPCI_2019
public static final double CEPCI_2019CEPCI for 2019 (base year for correlations).- See Also:
-
CEPCI_2020
public static final double CEPCI_2020CEPCI for 2020.- See Also:
-
CEPCI_2021
public static final double CEPCI_2021CEPCI for 2021.- See Also:
-
CEPCI_2022
public static final double CEPCI_2022CEPCI for 2022.- See Also:
-
CEPCI_2023
public static final double CEPCI_2023CEPCI for 2023.- See Also:
-
CEPCI_2024
public static final double CEPCI_2024CEPCI for 2024 (estimated).- See Also:
-
CEPCI_2025
public static final double CEPCI_2025CEPCI for 2025 (estimated).- See Also:
-
FM_CARBON_STEEL
public static final double FM_CARBON_STEELMaterial factor for carbon steel.- See Also:
-
FM_SS304
public static final double FM_SS304Material factor for stainless steel 304.- See Also:
-
FM_SS316
public static final double FM_SS316Material factor for stainless steel 316.- See Also:
-
FM_SS316L
public static final double FM_SS316LMaterial factor for stainless steel 316L.- See Also:
-
FM_MONEL
public static final double FM_MONELMaterial factor for Monel.- See Also:
-
FM_HASTELLOY_C
public static final double FM_HASTELLOY_CMaterial factor for Hastelloy C.- See Also:
-
FM_INCONEL
public static final double FM_INCONELMaterial factor for Inconel.- See Also:
-
FM_TITANIUM
public static final double FM_TITANIUMMaterial factor for titanium.- See Also:
-
FM_NICKEL
public static final double FM_NICKELMaterial factor for nickel.- See Also:
-
CURRENCY_USD
-
CURRENCY_EUR
-
CURRENCY_NOK
-
CURRENCY_GBP
-
CURRENCY_CNY
-
CURRENCY_JPY
-
LOC_US_GULF_COAST
public static final double LOC_US_GULF_COASTLocation factor for US Gulf Coast (base).- See Also:
-
LOC_US_MIDWEST
public static final double LOC_US_MIDWESTLocation factor for US Midwest.- See Also:
-
LOC_US_WEST_COAST
public static final double LOC_US_WEST_COASTLocation factor for US West Coast.- See Also:
-
LOC_WESTERN_EUROPE
public static final double LOC_WESTERN_EUROPELocation factor for Western Europe.- See Also:
-
LOC_NORTH_SEA
public static final double LOC_NORTH_SEALocation factor for North Sea / Norway.- See Also:
-
LOC_MIDDLE_EAST
public static final double LOC_MIDDLE_EASTLocation factor for Middle East.- See Also:
-
LOC_SOUTHEAST_ASIA
public static final double LOC_SOUTHEAST_ASIALocation factor for Southeast Asia.- See Also:
-
LOC_CHINA
public static final double LOC_CHINALocation factor for China.- See Also:
-
LOC_AUSTRALIA
public static final double LOC_AUSTRALIALocation factor for Australia.- See Also:
-
LOC_BRAZIL
public static final double LOC_BRAZILLocation factor for Brazil.- See Also:
-
LOC_WEST_AFRICA
public static final double LOC_WEST_AFRICALocation factor for West Africa.- See Also:
-
currentCepci
private double currentCepciCurrent CEPCI for cost escalation. -
referenceCepci
private double referenceCepciReference CEPCI for correlations (2019). -
currencyCode
Currency code (default USD). -
exchangeRate
private double exchangeRateExchange rate from USD. -
locationFactor
private double locationFactorLocation factor for different regions. -
materialOfConstruction
Material of construction. -
materialFactor
private double materialFactorMaterial factor. -
installationFactor
private double installationFactorInstallation factor (Lang factor). -
contingencyFactor
private double contingencyFactorContingency factor. -
engineeringFactor
private double engineeringFactorEngineering factor. -
purchasedEquipmentCost
private double purchasedEquipmentCostPurchased equipment cost (PEC) in USD. -
bareModuleCost
private double bareModuleCostBare module cost (BMC) in USD. -
totalModuleCost
private double totalModuleCostTotal module cost (TMC) in USD. -
grassRootsCost
private double grassRootsCostTotal grass roots cost in USD.
-
-
Constructor Details
-
CostEstimationCalculator
public CostEstimationCalculator()Default constructor with 2025 CEPCI. -
CostEstimationCalculator
public CostEstimationCalculator(double cepci) Constructor with specified CEPCI.- Parameters:
cepci- current Chemical Engineering Plant Cost Index
-
-
Method Details
-
getPressureFactor
public static double getPressureFactor(double designPressure) Get pressure factor for vessels based on design pressure.- Parameters:
designPressure- design pressure in barg- Returns:
- pressure factor Fp
-
calcVerticalVesselCost
public double calcVerticalVesselCost(double shellWeight) Calculate purchased equipment cost for vertical pressure vessel.Based on Turton et al. correlation (2018): log10(Cp) = K1 + K2*log10(W) + K3*(log10(W))^2 where W is shell weight in kg. For vertical vessels: K1 = 3.4974, K2 = 0.4485, K3 = 0.1074
- Parameters:
shellWeight- vessel shell weight in kg- Returns:
- purchased equipment cost in USD (2019 basis)
-
calcHorizontalVesselCost
public double calcHorizontalVesselCost(double shellWeight) Calculate purchased equipment cost for horizontal pressure vessel.- Parameters:
shellWeight- vessel shell weight in kg- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcShellTubeHeatExchangerCost
public double calcShellTubeHeatExchangerCost(double area) Calculate purchased equipment cost for shell and tube heat exchanger.- Parameters:
area- heat transfer area in m2- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcPlateHeatExchangerCost
public double calcPlateHeatExchangerCost(double area) Calculate purchased equipment cost for plate heat exchanger.- Parameters:
area- heat transfer area in m2- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcAirCoolerCost
public double calcAirCoolerCost(double area) Calculate purchased equipment cost for air cooler.- Parameters:
area- heat transfer area in m2- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcColumnShellCost
public double calcColumnShellCost(double weight) Calculate purchased equipment cost for distillation column shell.- Parameters:
weight- column shell weight in kg- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcSieveTraysCost
public double calcSieveTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for sieve trays.- Parameters:
diameter- column diameter in metersnumberOfTrays- number of trays- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcValveTraysCost
public double calcValveTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for valve trays.- Parameters:
diameter- column diameter in metersnumberOfTrays- number of trays- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcBubbleCapTraysCost
public double calcBubbleCapTraysCost(double diameter, int numberOfTrays) Calculate purchased equipment cost for bubble cap trays.- Parameters:
diameter- column diameter in metersnumberOfTrays- number of trays- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcPackingCost
Calculate purchased equipment cost for structured packing.- Parameters:
volume- packing volume in m3packingType- type of packing ("metal", "plastic", "ceramic")- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcCentrifugalPumpCost
public double calcCentrifugalPumpCost(double power) Calculate purchased equipment cost for centrifugal pump.- Parameters:
power- pump power in kW- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcCentrifugalCompressorCost
public double calcCentrifugalCompressorCost(double power) Calculate purchased equipment cost for centrifugal compressor.- Parameters:
power- compressor power in kW- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcReciprocatingCompressorCost
public double calcReciprocatingCompressorCost(double power) Calculate purchased equipment cost for reciprocating compressor.- Parameters:
power- compressor power in kW- Returns:
- purchased equipment cost in USD (current CEPCI basis)
-
calcPipingCost
public double calcPipingCost(double diameter, double length, int schedule) Calculate cost for piping.- Parameters:
diameter- pipe diameter in meterslength- pipe length in metersschedule- pipe schedule (40, 80, 160)- Returns:
- cost in USD (current CEPCI basis)
-
calcControlValveCost
public double calcControlValveCost(double cv) Calculate cost for control valve.- Parameters:
cv- valve Cv- Returns:
- cost in USD (current CEPCI basis)
-
calcBareModuleCost
public double calcBareModuleCost(double purchasedCost, double fpFactor, double fmFactor) Calculate bare module cost from purchased equipment cost.- Parameters:
purchasedCost- purchased equipment costfpFactor- pressure factorfmFactor- material factor- Returns:
- bare module cost
-
calcBareModuleCost
public double calcBareModuleCost(double purchasedCost, double designPressure) Calculate bare module cost with default factors.- Parameters:
purchasedCost- purchased equipment costdesignPressure- design pressure in barg- Returns:
- bare module cost
-
calcTotalModuleCost
public double calcTotalModuleCost(double bareModuleCost) Calculate total module cost including contingency and engineering.- Parameters:
bareModuleCost- bare module cost- Returns:
- total module cost
-
calcGrassRootsCost
public double calcGrassRootsCost(double totalModuleCost) Calculate grass roots cost for new facility.- Parameters:
totalModuleCost- total module cost- Returns:
- grass roots cost
-
calcInstallationManHours
Calculate installation labor man-hours for equipment.- Parameters:
equipmentWeight- equipment weight in kgequipmentType- equipment type ("vessel", "exchanger", "pump", "compressor")- Returns:
- labor man-hours
-
calcPipingInstallationManHours
public double calcPipingInstallationManHours(double pipingWeight) Calculate piping installation man-hours.- Parameters:
pipingWeight- piping weight in kg- Returns:
- labor man-hours
-
generateVesselBOM
public List<Map<String,Object>> generateVesselBOM(double shellWeight, double headsWeight, int nozzleCount, double internalsWeight) Generate bill of materials for vessel.- Parameters:
shellWeight- shell weight in kgheadsWeight- heads weight in kgnozzleCount- number of nozzlesinternalsWeight- internals weight in kg- Returns:
- list of BOM items as maps
-
calculateCostEstimate
public void calculateCostEstimate(double purchasedCost, double designPressure, double weightKg, String equipmentType) Calculate complete cost estimate for equipment.- Parameters:
purchasedCost- purchased equipment costdesignPressure- design pressure in bargweightKg- equipment weight in kgequipmentType- equipment type
-
toMap
-
toJson
-
getCurrentCepci
public double getCurrentCepci()Gets the current CEPCI.- Returns:
- current CEPCI
-
setCurrentCepci
public void setCurrentCepci(double cepci) Sets the current CEPCI.- Parameters:
cepci- current CEPCI
-
getMaterialFactor
public double getMaterialFactor()Gets the material factor.- Returns:
- material factor
-
setMaterialFactor
public void setMaterialFactor(double factor) Sets the material factor.- Parameters:
factor- material factor
-
setMaterialOfConstruction
Sets material of construction and updates factor.- Parameters:
material- material name
-
getMaterialOfConstruction
Gets the material of construction.- Returns:
- material of construction
-
getLocationFactor
public double getLocationFactor()Gets the location factor.- Returns:
- location factor
-
setLocationFactor
public void setLocationFactor(double factor) Sets the location factor.- Parameters:
factor- location factor
-
getPurchasedEquipmentCost
public double getPurchasedEquipmentCost()Gets the purchased equipment cost.- Returns:
- purchased equipment cost in USD
-
getBareModuleCost
public double getBareModuleCost()Gets the bare module cost.- Returns:
- bare module cost in USD
-
getTotalModuleCost
public double getTotalModuleCost()Gets the total module cost.- Returns:
- total module cost in USD
-
getGrassRootsCost
public double getGrassRootsCost()Gets the grass roots cost.- Returns:
- grass roots cost in USD
-
getInstallationFactor
public double getInstallationFactor()Gets the installation factor.- Returns:
- installation factor
-
setInstallationFactor
public void setInstallationFactor(double factor) Sets the installation factor.- Parameters:
factor- installation factor
-
getContingencyFactor
public double getContingencyFactor()Gets the contingency factor.- Returns:
- contingency factor
-
setContingencyFactor
public void setContingencyFactor(double factor) Sets the contingency factor.- Parameters:
factor- contingency factor
-
getEngineeringFactor
public double getEngineeringFactor()Gets the engineering factor.- Returns:
- engineering factor
-
setEngineeringFactor
public void setEngineeringFactor(double factor) Sets the engineering factor.- Parameters:
factor- engineering factor
-
getCurrencyCode
-
setCurrency
Sets the currency code and exchange rate.- Parameters:
code- currency coderate- exchange rate from USD
-
getExchangeRate
public double getExchangeRate()Gets the exchange rate from USD.- Returns:
- exchange rate
-
setCurrencyCode
Set currency using predefined currency code with default exchange rates.Default exchange rates (approximate January 2026):
- EUR: 0.92
- NOK: 11.0
- GBP: 0.79
- CNY: 7.25
- JPY: 155.0
- Parameters:
code- currency code (USD, EUR, NOK, GBP, CNY, JPY)
-
convertFromUSD
public double convertFromUSD(double usdCost) Convert USD cost to current currency.- Parameters:
usdCost- cost in USD- Returns:
- cost in current currency
-
convertToUSD
public double convertToUSD(double localCost) Convert current currency cost to USD.- Parameters:
localCost- cost in local currency- Returns:
- cost in USD
-
setLocationByRegion
Set location factor by region name.- Parameters:
region- region name ("US Gulf Coast", "North Sea", "Middle East", etc.)
-
getAvailableLocationFactors
-
getDefaultExchangeRates
-
formatCost
Format cost value with currency symbol.- Parameters:
cost- cost value in current currency- Returns:
- formatted string with currency symbol
-