Class UnitCostEstimateBaseClass

java.lang.Object
neqsim.process.costestimation.UnitCostEstimateBaseClass
All Implemented Interfaces:
Serializable
Direct Known Subclasses:
AbsorberCostEstimate, ColumnCostEstimate, CompressorCostEstimate, EjectorCostEstimate, ExpanderCostEstimate, HeatExchangerCostEstimate, MixerCostEstimate, PipeCostEstimate, PumpCostEstimate, SeparatorCostEstimate, SplitterCostEstimate, TankCostEstimate, ValveCostEstimate

public class UnitCostEstimateBaseClass extends Object implements Serializable
Base class for equipment cost estimation.

This class provides comprehensive cost estimation methods for process equipment based on chemical engineering cost correlations. It supports multiple cost estimation methodologies and provides JSON export capabilities for integration with project cost systems.

Cost estimation features include:

  • Purchased Equipment Cost (PEC) - base cost from correlations
  • Bare Module Cost (BMC) - includes installation, piping, instrumentation
  • Total Module Cost (TMC) - includes contingency and engineering
  • Grass Roots Cost - for new facility construction
  • Operating cost estimation
  • Labor man-hours estimation
  • Bill of Materials generation
Version:
2.0
Author:
esol
See Also:
  • Field Details

    • serialVersionUID

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

      private double costPerWeightUnit
      Cost per weight unit ($/kg) - simple estimation.
    • mechanicalEquipment

      public MechanicalDesign mechanicalEquipment
      Associated mechanical design.
    • costCalculator

      protected transient CostEstimationCalculator costCalculator
      Cost estimation calculator.
    • purchasedEquipmentCost

      protected double purchasedEquipmentCost
      Purchased equipment cost in USD.
    • bareModuleCost

      protected double bareModuleCost
      Bare module cost in USD.
    • totalModuleCost

      protected double totalModuleCost
      Total module cost in USD.
    • grassRootsCost

      protected double grassRootsCost
      Grass roots cost in USD.
    • installationManHours

      protected double installationManHours
      Installation labor man-hours.
    • annualOperatingCost

      protected double annualOperatingCost
      Annual operating cost in USD.
    • equipmentType

      protected String equipmentType
      Equipment type identifier.
  • Constructor Details

    • UnitCostEstimateBaseClass

      public UnitCostEstimateBaseClass()
      Default constructor.
    • UnitCostEstimateBaseClass

      public UnitCostEstimateBaseClass(MechanicalDesign mechanicalEquipment)
      Constructor with mechanical equipment.
      Parameters:
      mechanicalEquipment - a MechanicalDesign object
  • Method Details

    • calculateCostEstimate

      public void calculateCostEstimate()
      Calculate all cost estimates for the equipment.

      This method calculates purchased equipment cost, bare module cost, total module cost, and grass roots cost based on the equipment weight and design pressure.

    • calcPurchasedEquipmentCost

      protected double calcPurchasedEquipmentCost()
      Calculate purchased equipment cost.

      Override this method in subclasses to provide equipment-specific cost correlations.

      Returns:
      purchased equipment cost in USD
    • getTotalCost

      public double getTotalCost()
      Get total cost using simple weight-based method.
      Returns:
      the total cost in USD
    • getPurchasedEquipmentCost

      public double getPurchasedEquipmentCost()
      Get purchased equipment cost.
      Returns:
      purchased equipment cost in USD
    • getBareModuleCost

      public double getBareModuleCost()
      Get bare module cost.
      Returns:
      bare module cost in USD
    • getTotalModuleCost

      public double getTotalModuleCost()
      Get total module cost.
      Returns:
      total module cost in USD
    • getGrassRootsCost

      public double getGrassRootsCost()
      Get grass roots cost.
      Returns:
      grass roots cost in USD
    • getInstallationManHours

      public double getInstallationManHours()
      Get installation labor man-hours.
      Returns:
      installation man-hours
    • calcAnnualOperatingCost

      public double calcAnnualOperatingCost(double electricityCostPerKWh, double steamCostPerTonne, double coolingWaterCostPerM3, int operatingHoursPerYear)
      Calculate annual operating cost.
      Parameters:
      electricityCostPerKWh - electricity cost in $/kWh
      steamCostPerTonne - steam cost in $/tonne
      coolingWaterCostPerM3 - cooling water cost in $/m3
      operatingHoursPerYear - annual operating hours
      Returns:
      annual operating cost in USD
    • generateBillOfMaterials

      public List<Map<String,Object>> generateBillOfMaterials()
      Generate bill of materials for the equipment.
      Returns:
      list of BOM items as maps
    • toMap

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

      public String toJson()
      Export cost estimate to JSON format.
      Returns:
      JSON string
    • toCompactJson

      public String toCompactJson()
      Export cost estimate to compact JSON format.
      Returns:
      compact JSON string
    • getCostCalculator

      public CostEstimationCalculator getCostCalculator()
      Get the cost estimation calculator.
      Returns:
      cost calculator instance
    • setCostCalculator

      public void setCostCalculator(CostEstimationCalculator calculator)
      Set the cost estimation calculator.
      Parameters:
      calculator - cost calculator instance
    • getCostPerWeightUnit

      public double getCostPerWeightUnit()
      Get cost per weight unit.
      Returns:
      cost per kg in USD
    • setCostPerWeightUnit

      public void setCostPerWeightUnit(double cost)
      Set cost per weight unit.
      Parameters:
      cost - cost per kg in USD
    • getEquipmentType

      public String getEquipmentType()
      Get equipment type.
      Returns:
      equipment type string
    • setEquipmentType

      public void setEquipmentType(String type)
      Set equipment type.
      Parameters:
      type - equipment type string
    • setMaterialOfConstruction

      public void setMaterialOfConstruction(String material)
      Set material of construction for cost estimation.
      Parameters:
      material - material name (e.g., "Carbon Steel", "SS316", "Monel")
    • setLocationFactor

      public void setLocationFactor(double factor)
      Set location factor for regional cost adjustment.
      Parameters:
      factor - location factor (1.0 = US Gulf Coast)
    • setCurrentCepci

      public void setCurrentCepci(double cepci)
      Set current CEPCI for cost escalation.
      Parameters:
      cepci - Chemical Engineering Plant Cost Index
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • getMaterialFactor

      public double getMaterialFactor()
      Get material factor for cost adjustment.
      Returns:
      material factor
    • getMaterialGrade

      public String getMaterialGrade()
      Get material grade name.
      Returns:
      material grade
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object