Class CostEstimationCalculator

java.lang.Object
neqsim.process.costestimation.CostEstimationCalculator
All Implemented Interfaces:
Serializable

public class CostEstimationCalculator extends Object implements 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 Details

    • serialVersionUID

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

      public static final double CEPCI_2019
      CEPCI for 2019 (base year for correlations).
      See Also:
    • CEPCI_2020

      public static final double CEPCI_2020
      CEPCI for 2020.
      See Also:
    • CEPCI_2021

      public static final double CEPCI_2021
      CEPCI for 2021.
      See Also:
    • CEPCI_2022

      public static final double CEPCI_2022
      CEPCI for 2022.
      See Also:
    • CEPCI_2023

      public static final double CEPCI_2023
      CEPCI for 2023.
      See Also:
    • CEPCI_2024

      public static final double CEPCI_2024
      CEPCI for 2024 (estimated).
      See Also:
    • CEPCI_2025

      public static final double CEPCI_2025
      CEPCI for 2025 (estimated).
      See Also:
    • FM_CARBON_STEEL

      public static final double FM_CARBON_STEEL
      Material factor for carbon steel.
      See Also:
    • FM_SS304

      public static final double FM_SS304
      Material factor for stainless steel 304.
      See Also:
    • FM_SS316

      public static final double FM_SS316
      Material factor for stainless steel 316.
      See Also:
    • FM_SS316L

      public static final double FM_SS316L
      Material factor for stainless steel 316L.
      See Also:
    • FM_MONEL

      public static final double FM_MONEL
      Material factor for Monel.
      See Also:
    • FM_HASTELLOY_C

      public static final double FM_HASTELLOY_C
      Material factor for Hastelloy C.
      See Also:
    • FM_INCONEL

      public static final double FM_INCONEL
      Material factor for Inconel.
      See Also:
    • FM_TITANIUM

      public static final double FM_TITANIUM
      Material factor for titanium.
      See Also:
    • FM_NICKEL

      public static final double FM_NICKEL
      Material factor for nickel.
      See Also:
    • CURRENCY_USD

      public static final String CURRENCY_USD
      Currency code for US Dollar.
      See Also:
    • CURRENCY_EUR

      public static final String CURRENCY_EUR
      Currency code for Euro.
      See Also:
    • CURRENCY_NOK

      public static final String CURRENCY_NOK
      Currency code for Norwegian Krone.
      See Also:
    • CURRENCY_GBP

      public static final String CURRENCY_GBP
      Currency code for British Pound.
      See Also:
    • CURRENCY_CNY

      public static final String CURRENCY_CNY
      Currency code for Chinese Yuan.
      See Also:
    • CURRENCY_JPY

      public static final String CURRENCY_JPY
      Currency code for Japanese Yen.
      See Also:
    • LOC_US_GULF_COAST

      public static final double LOC_US_GULF_COAST
      Location factor for US Gulf Coast (base).
      See Also:
    • LOC_US_MIDWEST

      public static final double LOC_US_MIDWEST
      Location factor for US Midwest.
      See Also:
    • LOC_US_WEST_COAST

      public static final double LOC_US_WEST_COAST
      Location factor for US West Coast.
      See Also:
    • LOC_WESTERN_EUROPE

      public static final double LOC_WESTERN_EUROPE
      Location factor for Western Europe.
      See Also:
    • LOC_NORTH_SEA

      public static final double LOC_NORTH_SEA
      Location factor for North Sea / Norway.
      See Also:
    • LOC_MIDDLE_EAST

      public static final double LOC_MIDDLE_EAST
      Location factor for Middle East.
      See Also:
    • LOC_SOUTHEAST_ASIA

      public static final double LOC_SOUTHEAST_ASIA
      Location factor for Southeast Asia.
      See Also:
    • LOC_CHINA

      public static final double LOC_CHINA
      Location factor for China.
      See Also:
    • LOC_AUSTRALIA

      public static final double LOC_AUSTRALIA
      Location factor for Australia.
      See Also:
    • LOC_BRAZIL

      public static final double LOC_BRAZIL
      Location factor for Brazil.
      See Also:
    • LOC_WEST_AFRICA

      public static final double LOC_WEST_AFRICA
      Location factor for West Africa.
      See Also:
    • currentCepci

      private double currentCepci
      Current CEPCI for cost escalation.
    • referenceCepci

      private double referenceCepci
      Reference CEPCI for correlations (2019).
    • currencyCode

      private String currencyCode
      Currency code (default USD).
    • exchangeRate

      private double exchangeRate
      Exchange rate from USD.
    • locationFactor

      private double locationFactor
      Location factor for different regions.
    • materialOfConstruction

      private String materialOfConstruction
      Material of construction.
    • materialFactor

      private double materialFactor
      Material factor.
    • installationFactor

      private double installationFactor
      Installation factor (Lang factor).
    • contingencyFactor

      private double contingencyFactor
      Contingency factor.
    • engineeringFactor

      private double engineeringFactor
      Engineering factor.
    • purchasedEquipmentCost

      private double purchasedEquipmentCost
      Purchased equipment cost (PEC) in USD.
    • bareModuleCost

      private double bareModuleCost
      Bare module cost (BMC) in USD.
    • totalModuleCost

      private double totalModuleCost
      Total module cost (TMC) in USD.
    • grassRootsCost

      private double grassRootsCost
      Total 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 meters
      numberOfTrays - 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 meters
      numberOfTrays - 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 meters
      numberOfTrays - number of trays
      Returns:
      purchased equipment cost in USD (current CEPCI basis)
    • calcPackingCost

      public double calcPackingCost(double volume, String packingType)
      Calculate purchased equipment cost for structured packing.
      Parameters:
      volume - packing volume in m3
      packingType - 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 meters
      length - pipe length in meters
      schedule - 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 cost
      fpFactor - pressure factor
      fmFactor - 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 cost
      designPressure - 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

      public double calcInstallationManHours(double equipmentWeight, String equipmentType)
      Calculate installation labor man-hours for equipment.
      Parameters:
      equipmentWeight - equipment weight in kg
      equipmentType - 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 kg
      headsWeight - heads weight in kg
      nozzleCount - number of nozzles
      internalsWeight - 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 cost
      designPressure - design pressure in barg
      weightKg - equipment weight in kg
      equipmentType - equipment type
    • toMap

      public Map<String,Object> toMap()
      Convert cost results to map for JSON export.
      Returns:
      map of cost data
    • toJson

      public String toJson()
      Export cost data to JSON.
      Returns:
      JSON string
    • 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

      public void setMaterialOfConstruction(String material)
      Sets material of construction and updates factor.
      Parameters:
      material - material name
    • getMaterialOfConstruction

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

      public String getCurrencyCode()
      Gets the currency code.
      Returns:
      currency code
    • setCurrency

      public void setCurrency(String code, double rate)
      Sets the currency code and exchange rate.
      Parameters:
      code - currency code
      rate - exchange rate from USD
    • getExchangeRate

      public double getExchangeRate()
      Gets the exchange rate from USD.
      Returns:
      exchange rate
    • setCurrencyCode

      public void setCurrencyCode(String code)
      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

      public void setLocationByRegion(String region)
      Set location factor by region name.
      Parameters:
      region - region name ("US Gulf Coast", "North Sea", "Middle East", etc.)
    • getAvailableLocationFactors

      public static Map<String,Double> getAvailableLocationFactors()
      Get all available location factors.
      Returns:
      map of region names to location factors
    • getDefaultExchangeRates

      public static Map<String,Double> getDefaultExchangeRates()
      Get default exchange rates for available currencies.
      Returns:
      map of currency codes to exchange rates (from USD)
    • formatCost

      public String formatCost(double cost)
      Format cost value with currency symbol.
      Parameters:
      cost - cost value in current currency
      Returns:
      formatted string with currency symbol