Class ProcessCostEstimate
java.lang.Object
neqsim.process.costestimation.ProcessCostEstimate
- All Implemented Interfaces:
Serializable
System-level cost estimation for an entire process.
This class aggregates cost estimates from all equipment in a ProcessSystem, providing:
- Total purchased equipment cost (PEC)
- Total bare module cost (BMC)
- Total module cost (TMC)
- Total grass roots cost (including infrastructure)
- Cost breakdown by equipment type
- Cost breakdown by discipline
- Installation man-hours estimation
- Consolidated bill of materials
The workflow for process cost estimation:
- ProcessSystem.run() - run the process simulation
- ProcessSystem.initAllMechanicalDesigns() - initialize mechanical designs
- ProcessSystem.runAllMechanicalDesigns() - calculate mechanical designs
- ProcessSystem.getCostEstimate() - get this ProcessCostEstimate
- ProcessCostEstimate.calculateAllCosts() - aggregate all cost estimates
- ProcessCostEstimate.toJson() - export comprehensive cost report
Example usage:
ProcessSystem process = new ProcessSystem();
// ... add equipment ...
process.run();
// Get cost estimate through ProcessSystem
ProcessCostEstimate costEstimate = process.getCostEstimate();
costEstimate.calculateAllCosts();
// Get totals
System.out.println("Total PEC: $" + costEstimate.getTotalPurchasedEquipmentCost());
System.out.println("Total TMC: $" + costEstimate.getTotalModuleCost());
System.out.println("Grass Roots: $" + costEstimate.getTotalGrassRootsCost());
// Export to JSON
String json = costEstimate.toJson();
- Version:
- 1.0
- Author:
- esol
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classSummary of cost data for a single equipment item. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleProcess complexity factor (1.0 = standard).Cost breakdown by discipline.Cost breakdown by equipment type.private CostEstimationCalculatorCentral cost calculator for process-level factors.Individual equipment costs.private doubleLocation factor (1.0 = US Gulf Coast).Operating cost breakdown by category.private doubleProcess contingency factor (fraction).private ProcessSystemThe process system being estimated.private doubleProject contingency factor (fraction).private static final longSerialization version UID.private SystemMechanicalDesignThe system mechanical design (optional, for integrated calculations).private doubleTotal annual operating cost in USD.private doubleTotal bare module cost (BMC) in USD.private doubleTotal grass roots cost in USD.private doubleTotal installation man-hours.private doubleTotal module cost (TMC) in USD.private doubleTotal purchased equipment cost (PEC) in USD.private doubleWorking capital factor (fraction of fixed capital). -
Constructor Summary
ConstructorsConstructorDescriptionDefault constructor.ProcessCostEstimate(ProcessSystem processSystem) Constructor with process system.ProcessCostEstimate(ProcessSystem processSystem, SystemMechanicalDesign systemMechanicalDesign) Constructor with process system and mechanical design. -
Method Summary
Modifier and TypeMethodDescriptionprivate voidaccumulateCostByType(String type, double cost) Accumulate cost by equipment type.voidCalculate cost estimates for all equipment in the process.private voidCalculate discipline cost breakdown (rough estimates based on typical percentages).doublecalculateNPV(double annualRevenue, double discountRate, int projectLifeYears) Calculate net present value (NPV).doublecalculateOperatingCost(int operatingHoursPerYear) Calculate operating cost with default utility prices.doublecalculateOperatingCost(int operatingHoursPerYear, double electricityCostPerKWh, double steamCostPerTonne, double coolingWaterCostPerM3, double laborCostPerHour) Calculate annual operating cost for the process.doublecalculatePaybackPeriod(double annualRevenue) Calculate simple payback period.doublecalculateROI(double annualRevenue) Calculate return on investment (ROI).private StringclassifyEquipment(ProcessEquipmentInterface equipment) Classify equipment into a type category.Generate detailed equipment list report.Generate a summary report as text.doubleGet the complexity factor.Get cost breakdown by discipline.Get cost breakdown by equipment type.Get costs in current currency.Get currency code.Get list of individual equipment costs.doubleGet the location factor.Get operating cost breakdown by category.doubleGet annual operating cost.doubleGet total bare module cost.doubleGet total grass roots cost.doubleGet total installation man-hours.doubleGet total module cost.doubleGet total purchased equipment cost.private voidReset all cost totals to zero.voidsetCepci(double cepci) Set the CEPCI for cost escalation.voidsetComplexityFactor(double complexityFactor) Set the complexity factor.voidsetCurrency(String currencyCode) Set currency for cost reporting.voidsetLocationByRegion(String region) Set location by region name (convenience method).voidsetLocationFactor(double locationFactor) Set the location factor.voidsetMaterial(String material) Set material of construction for all equipment.voidsetProcessSystem(ProcessSystem processSystem) Set the process system.Export cost estimate to compact JSON format.toJson()Export cost estimate to JSON format.private StringTruncate string to max length.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
processSystem
The process system being estimated. -
systemMechanicalDesign
The system mechanical design (optional, for integrated calculations). -
costCalculator
Central cost calculator for process-level factors. -
totalPurchasedEquipmentCost
private double totalPurchasedEquipmentCostTotal purchased equipment cost (PEC) in USD. -
totalBareModuleCost
private double totalBareModuleCostTotal bare module cost (BMC) in USD. -
totalModuleCost
private double totalModuleCostTotal module cost (TMC) in USD. -
totalGrassRootsCost
private double totalGrassRootsCostTotal grass roots cost in USD. -
totalInstallationManHours
private double totalInstallationManHoursTotal installation man-hours. -
totalAnnualOperatingCost
private double totalAnnualOperatingCostTotal annual operating cost in USD. -
costByEquipmentType
-
costByDiscipline
-
equipmentCosts
Individual equipment costs. -
operatingCostBreakdown
-
processContingencyFactor
private double processContingencyFactorProcess contingency factor (fraction). -
projectContingencyFactor
private double projectContingencyFactorProject contingency factor (fraction). -
workingCapitalFactor
private double workingCapitalFactorWorking capital factor (fraction of fixed capital). -
locationFactor
private double locationFactorLocation factor (1.0 = US Gulf Coast). -
complexityFactor
private double complexityFactorProcess complexity factor (1.0 = standard).
-
-
Constructor Details
-
ProcessCostEstimate
public ProcessCostEstimate()Default constructor. -
ProcessCostEstimate
Constructor with process system.- Parameters:
processSystem- the process system to estimate costs for
-
ProcessCostEstimate
public ProcessCostEstimate(ProcessSystem processSystem, SystemMechanicalDesign systemMechanicalDesign) Constructor with process system and mechanical design.- Parameters:
processSystem- the process systemsystemMechanicalDesign- the system mechanical design
-
-
Method Details
-
calculateAllCosts
public void calculateAllCosts()Calculate cost estimates for all equipment in the process.This method iterates through all equipment, initializes mechanical designs if needed, calculates cost estimates, and aggregates the totals.
-
resetTotals
private void resetTotals()Reset all cost totals to zero. -
classifyEquipment
Classify equipment into a type category.- Parameters:
equipment- the equipment to classify- Returns:
- the equipment type name
-
accumulateCostByType
Accumulate cost by equipment type.- Parameters:
type- equipment typecost- cost to add
-
calculateDisciplineCosts
private void calculateDisciplineCosts()Calculate discipline cost breakdown (rough estimates based on typical percentages). -
getTotalPurchasedEquipmentCost
public double getTotalPurchasedEquipmentCost()Get total purchased equipment cost.- Returns:
- total PEC in USD
-
getTotalBareModuleCost
public double getTotalBareModuleCost()Get total bare module cost.- Returns:
- total BMC in USD
-
getTotalModuleCost
public double getTotalModuleCost()Get total module cost.- Returns:
- total TMC in USD
-
getTotalGrassRootsCost
public double getTotalGrassRootsCost()Get total grass roots cost.- Returns:
- total grass roots cost in USD
-
getTotalInstallationManHours
public double getTotalInstallationManHours()Get total installation man-hours.- Returns:
- total man-hours
-
getCostByEquipmentType
-
getCostByDiscipline
-
getEquipmentCosts
Get list of individual equipment costs.- Returns:
- list of equipment cost summaries
-
setProcessSystem
Set the process system.- Parameters:
processSystem- the process system
-
setLocationFactor
public void setLocationFactor(double locationFactor) Set the location factor.- Parameters:
locationFactor- location factor (1.0 = US Gulf Coast)
-
getLocationFactor
public double getLocationFactor()Get the location factor.- Returns:
- location factor
-
setComplexityFactor
public void setComplexityFactor(double complexityFactor) Set the complexity factor.- Parameters:
complexityFactor- complexity factor (1.0 = standard)
-
getComplexityFactor
public double getComplexityFactor()Get the complexity factor.- Returns:
- complexity factor
-
setCepci
public void setCepci(double cepci) Set the CEPCI for cost escalation.- Parameters:
cepci- the Chemical Engineering Plant Cost Index
-
setMaterial
Set material of construction for all equipment.- Parameters:
material- material name (e.g., "Carbon Steel", "SS316")
-
generateSummaryReport
Generate a summary report as text.- Returns:
- formatted summary report
-
generateEquipmentListReport
Generate detailed equipment list report.- Returns:
- formatted equipment list
-
truncate
-
toJson
-
toCompactJson
Export cost estimate to compact JSON format.- Returns:
- compact JSON string
-
calculateOperatingCost
public double calculateOperatingCost(int operatingHoursPerYear, double electricityCostPerKWh, double steamCostPerTonne, double coolingWaterCostPerM3, double laborCostPerHour) Calculate annual operating cost for the process.Operating costs include:
- Utilities (electricity, steam, cooling water, fuel)
- Maintenance (typically 3-5% of fixed capital)
- Operating labor
- Supervision and overhead
- Supplies and materials
- Parameters:
operatingHoursPerYear- annual operating hours (typically 8000-8760)electricityCostPerKWh- electricity cost in $/kWhsteamCostPerTonne- steam cost in $/tonnecoolingWaterCostPerM3- cooling water cost in $/m3laborCostPerHour- labor cost in $/hr- Returns:
- total annual operating cost in USD
-
calculateOperatingCost
public double calculateOperatingCost(int operatingHoursPerYear) Calculate operating cost with default utility prices.Default prices (US Gulf Coast 2025):
- Electricity: $0.08/kWh
- Steam (150 psig): $15/tonne
- Cooling water: $0.05/m3
- Labor: $50/hr
- Parameters:
operatingHoursPerYear- annual operating hours- Returns:
- total annual operating cost in USD
-
getTotalAnnualOperatingCost
public double getTotalAnnualOperatingCost()Get annual operating cost.- Returns:
- annual operating cost in USD
-
getOperatingCostBreakdown
-
calculatePaybackPeriod
public double calculatePaybackPeriod(double annualRevenue) Calculate simple payback period.- Parameters:
annualRevenue- annual revenue in USD- Returns:
- payback period in years
-
calculateROI
public double calculateROI(double annualRevenue) Calculate return on investment (ROI).- Parameters:
annualRevenue- annual revenue in USD- Returns:
- ROI as percentage
-
calculateNPV
public double calculateNPV(double annualRevenue, double discountRate, int projectLifeYears) Calculate net present value (NPV).- Parameters:
annualRevenue- annual revenue in USDdiscountRate- annual discount rate (e.g., 0.10 for 10%)projectLifeYears- project life in years- Returns:
- NPV in USD
-
setLocationByRegion
Set location by region name (convenience method).- Parameters:
region- region name
-
setCurrency
Set currency for cost reporting.- Parameters:
currencyCode- currency code (USD, EUR, NOK, GBP, etc.)
-
getCostsInCurrency
-
getCurrencyCode
-