Cost Estimation API Reference
This document provides detailed API reference for all cost estimation classes in NeqSim.
Table of Contents
- Core Classes
- Equipment Cost Estimators
- Enumerations and Constants
- Data Structures
Core Classes
CostEstimationCalculator
Central utility class for cost calculations.
Package: neqsim.process.costestimation
Constants
// Currency codes
public static final String CURRENCY_USD = "USD";
public static final String CURRENCY_EUR = "EUR";
public static final String CURRENCY_NOK = "NOK";
public static final String CURRENCY_GBP = "GBP";
public static final String CURRENCY_CNY = "CNY";
public static final String CURRENCY_JPY = "JPY";
// Location factor codes
public static final String LOC_US_GULF = "US Gulf Coast";
public static final String LOC_NORTH_SEA = "North Sea / Norway";
public static final String LOC_WESTERN_EUROPE = "Western Europe";
public static final String LOC_EASTERN_EUROPE = "Eastern Europe";
public static final String LOC_MIDDLE_EAST = "Middle East";
public static final String LOC_ASIA_PACIFIC = "Asia Pacific";
public static final String LOC_CHINA = "China";
public static final String LOC_INDIA = "India";
public static final String LOC_SOUTH_AMERICA = "South America";
public static final String LOC_AFRICA = "Africa";
public static final String LOC_AUSTRALIA = "Australia";
Methods
| Method |
Return Type |
Description |
setCepci(double value) |
void |
Set Chemical Engineering Plant Cost Index |
getCurrentCepci() |
double |
Get current CEPCI value |
setCurrencyCode(String code) |
void |
Set output currency |
getCurrencyCode() |
String |
Get current currency code |
setExchangeRate(double rate) |
void |
Override exchange rate |
getExchangeRate() |
double |
Get current exchange rate |
convertFromUSD(double usdAmount) |
double |
Convert USD to current currency |
convertToUSD(double localAmount) |
double |
Convert current currency to USD |
setLocationByRegion(String region) |
void |
Set location factor by region name |
setLocationFactor(double factor) |
void |
Set location factor directly |
getLocationFactor() |
double |
Get current location factor |
formatCost(double cost) |
String |
Format cost with currency symbol |
getAvailableLocationFactors() |
Map<String, Double> |
Get all available location factors |
getDefaultExchangeRates() |
Map<String, Double> |
Get default exchange rates |
Static Calculation Methods
| Method |
Return Type |
Description |
calcBareModuleCost(double pec, double pressure) |
double |
Calculate bare module cost |
calcTotalModuleCost(double bmc) |
double |
Calculate total module cost |
calcGrassRootsCost(double tmc) |
double |
Calculate grass roots cost |
calcVerticalVesselCost(double volume) |
double |
Vessel cost correlation |
calcHorizontalVesselCost(double volume) |
double |
Horizontal vessel cost |
calcShellTubeHxCost(double area) |
double |
Shell & tube HX cost |
calcPlateFinnedHxCost(double area) |
double |
Plate-fin HX cost |
calcAirCoolerCost(double area) |
double |
Air cooler cost |
calcCentrifugalCompressorCost(double power) |
double |
Centrifugal compressor cost |
calcReciprocatingCompressorCost(double power) |
double |
Reciprocating compressor cost |
calcCentrifugalPumpCost(double power) |
double |
Centrifugal pump cost |
calcControlValveCost(double cv) |
double |
Control valve cost |
calcPipingCost(double diameter, double length, int schedule) |
double |
Piping cost |
UnitCostEstimateBaseClass
Abstract base class for all equipment cost estimators.
Package: neqsim.process.costestimation
Constructor
public UnitCostEstimateBaseClass(MechanicalDesign mechanicalEquipment)
Core Methods
| Method |
Return Type |
Description |
calculateCostEstimate() |
void |
Calculate all cost metrics |
getPurchasedEquipmentCost() |
double |
Get purchased equipment cost |
getBareModuleCost() |
double |
Get bare module cost |
getTotalModuleCost() |
double |
Get total module cost |
getGrassRootsCost() |
double |
Get grass roots cost |
getInstallationManHours() |
double |
Get installation hours |
Configuration Methods
| Method |
Return Type |
Description |
setEquipmentType(String type) |
void |
Set equipment type identifier |
getEquipmentType() |
String |
Get equipment type |
setMaterial(String material) |
void |
Set construction material |
getMaterial() |
String |
Get material |
setMaterialFactor(double factor) |
void |
Override material factor |
getMaterialFactor() |
double |
Get material factor |
setDesignPressure(double pressure) |
void |
Set design pressure (barg) |
getDesignPressure() |
double |
Get design pressure |
Output Methods
| Method |
Return Type |
Description |
getCostBreakdown() |
Map<String, Object> |
Get detailed cost breakdown |
toMap() |
Map<String, Object> |
Get all data as map |
toJson() |
String |
Get JSON representation |
getCostCalculator() |
CostEstimationCalculator |
Get calculator instance |
Protected Methods (for subclasses)
| Method |
Return Type |
Description |
calcPurchasedEquipmentCost() |
double |
Abstract - implement cost correlation |
calcInstallationManHours() |
double |
Calculate installation hours |
ProcessCostEstimate
System-level cost aggregation for complete process systems.
Package: neqsim.process.costestimation
Constructors
public ProcessCostEstimate()
public ProcessCostEstimate(ProcessSystem process)
Configuration Methods
| Method |
Return Type |
Description |
setProcessSystem(ProcessSystem process) |
void |
Set process system |
setLocationFactor(double factor) |
void |
Set location factor |
getLocationFactor() |
double |
Get location factor |
setLocationByRegion(String region) |
void |
Set location by region name |
setComplexityFactor(double factor) |
void |
Set complexity factor |
getComplexityFactor() |
double |
Get complexity factor |
setCurrency(String code) |
void |
Set output currency |
getCurrencyCode() |
String |
Get currency code |
Calculation Methods
| Method |
Return Type |
Description |
calculateAllCosts() |
void |
Calculate all equipment costs |
getPurchasedEquipmentCost() |
double |
Get total PEC |
getBareModuleCost() |
double |
Get total BMC |
getTotalModuleCost() |
double |
Get total TMC |
getGrassRootsCost() |
double |
Get total GRC |
getTotalInstallationManHours() |
double |
Get total installation hours |
Cost Breakdown Methods
| Method |
Return Type |
Description |
getCostByEquipmentType() |
Map<String, Double> |
Cost by equipment type |
getCostByDiscipline() |
Map<String, Double> |
Cost by discipline |
getEquipmentCostList() |
List<Map<String, Object» |
Detailed equipment list |
getCostsInCurrency() |
Map<String, Double> |
All costs in selected currency |
OPEX Methods
| Method |
Return Type |
Description |
calculateOperatingCost(int hours) |
double |
Calculate annual OPEX |
getTotalAnnualOperatingCost() |
double |
Get calculated OPEX |
getOperatingCostBreakdown() |
Map<String, Double> |
Get OPEX breakdown |
setElectricityPrice(double price) |
void |
Set $/kWh |
setSteamPrice(double price) |
void |
Set $/ton |
setCoolingWaterPrice(double price) |
void |
Set $/m³ |
Financial Methods
| Method |
Return Type |
Description |
calculatePaybackPeriod(double annualRevenue) |
double |
Calculate payback years |
calculateROI(double annualRevenue) |
double |
Calculate ROI percentage |
calculateNPV(double revenue, double rate, int years) |
double |
Calculate NPV |
Output Methods
| Method |
Return Type |
Description |
printCostSummary() |
void |
Print formatted report |
toMap() |
Map<String, Object> |
Get all data as map |
toJson() |
String |
Get JSON representation |
Equipment Cost Estimators
TankCostEstimate
Storage tank cost estimation per API 650/620.
Package: neqsim.process.costestimation.tank
Constructor
public TankCostEstimate(TankMechanicalDesign mechanicalEquipment)
Tank Configuration
| Method |
Parameters |
Description |
setTankType(String type) |
“fixed-cone-roof”, “fixed-dome-roof”, “floating-roof”, “spherical”, “horizontal” |
Set tank type |
setTankVolume(double volume) |
m³ |
Set tank volume |
setTankDiameter(double diameter) |
m |
Set tank diameter |
setTankHeight(double height) |
m |
Set tank height |
setDesignPressure(double pressure) |
barg |
Set design pressure |
setFloatingRoof(boolean floating) |
true/false |
Enable floating roof |
Optional Components
| Method |
Parameters |
Description |
setIncludeFoundation(boolean include) |
true/false |
Include foundation cost |
setIncludeHeatingCoils(boolean include) |
true/false |
Include heating coils |
setIncludeInsulation(boolean include) |
true/false |
Include insulation |
setInsulationThickness(double thickness) |
mm |
Set insulation thickness |
ExpanderCostEstimate
Turboexpander cost estimation.
Package: neqsim.process.costestimation.expander
Constructor
public ExpanderCostEstimate(ExpanderMechanicalDesign mechanicalEquipment)
Expander Configuration
| Method |
Parameters |
Description |
setExpanderType(String type) |
“radial-inflow”, “axial”, “mixed-flow” |
Set expander type |
setShaftPower(double power) |
kW |
Set shaft power (standalone mode) |
setCryogenicService(boolean cryo) |
true/false |
Enable cryogenic factors |
setInletTemperature(double temp) |
K |
Set inlet temperature |
Load Configuration
| Method |
Parameters |
Description |
setLoadType(String type) |
“generator”, “compressor”, “brake” |
Set load type |
setIncludeLoad(boolean include) |
true/false |
Include load cost |
setIncludeGearbox(boolean include) |
true/false |
Include gearbox |
setIncludeLubeOilSystem(boolean include) |
true/false |
Include lube oil system |
setIncludeControlSystem(boolean include) |
true/false |
Include control system |
MixerCostEstimate
Static mixer and inline mixer cost estimation.
Package: neqsim.process.costestimation.mixer
Constructor
public MixerCostEstimate(MechanicalDesign mechanicalEquipment)
Configuration
| Method |
Parameters |
Description |
setMixerType(String type) |
“static”, “inline”, “tee”, “vessel” |
Set mixer type |
setPipeDiameter(double diameter) |
inches |
Set pipe diameter |
setNumberOfElements(int count) |
integer |
Set mixing elements (static) |
setPressureClass(int class) |
150, 300, 600, 900, 1500, 2500 |
Set ASME class |
setFlangedConnections(boolean flanged) |
true/false |
Use flanged connections |
SplitterCostEstimate
Flow splitter and manifold cost estimation.
Package: neqsim.process.costestimation.splitter
Constructor
public SplitterCostEstimate(MechanicalDesign mechanicalEquipment)
Configuration
| Method |
Parameters |
Description |
setSplitterType(String type) |
“manifold”, “header”, “tee”, “vessel” |
Set splitter type |
setNumberOfOutlets(int count) |
integer |
Set number of outlets |
setInletDiameter(double diameter) |
inches |
Set inlet diameter |
setOutletDiameter(double diameter) |
inches |
Set outlet diameter |
setPressureClass(int class) |
ASME class |
Set pressure class |
setIncludeControlValves(boolean include) |
true/false |
Include control valves |
setIncludeFlowMeters(boolean include) |
true/false |
Include flow meters |
EjectorCostEstimate
Ejector and vacuum system cost estimation.
Package: neqsim.process.costestimation.ejector
Constructor
public EjectorCostEstimate(EjectorMechanicalDesign mechanicalEquipment)
Configuration
| Method |
Parameters |
Description |
setEjectorType(String type) |
“steam”, “gas”, “liquid”, “hybrid” |
Set ejector type |
setNumberOfStages(int stages) |
integer |
Set number of stages |
setSuctionPressure(double pressure) |
mbar abs |
Set suction pressure |
setDischargePressure(double pressure) |
bara |
Set discharge pressure |
setSuctionCapacity(double capacity) |
kg/hr |
Set suction capacity |
setMotivePressure(double pressure) |
bara |
Set motive fluid pressure |
setIncludeIntercondensers(boolean include) |
true/false |
Include intercondensers |
setIncludeAftercondenser(boolean include) |
true/false |
Include aftercondenser |
AbsorberCostEstimate
Gas absorption tower cost estimation.
Package: neqsim.process.costestimation.absorber
Constructor
public AbsorberCostEstimate(AbsorberMechanicalDesign mechanicalEquipment)
Column Configuration
| Method |
Parameters |
Description |
setAbsorberType(String type) |
“packed”, “trayed”, “spray” |
Set absorber type |
setColumnDiameter(double diameter) |
m |
Set column diameter |
setColumnHeight(double height) |
m |
Set column height |
setDesignPressure(double pressure) |
barg |
Set design pressure |
setNumberOfStages(int stages) |
integer |
Set theoretical stages |
Packing Configuration (packed columns)
| Method |
Parameters |
Description |
setPackingType(String type) |
“structured”, “random” |
Set packing type |
setPackingHeight(double height) |
m |
Set packing height |
Tray Configuration (trayed columns)
| Method |
Parameters |
Description |
setTrayType(String type) |
“sieve”, “valve”, “bubble-cap” |
Set tray type |
Internals
| Method |
Parameters |
Description |
setIncludeLiquidDistributor(boolean include) |
true/false |
Include distributor |
setIncludeMistEliminator(boolean include) |
true/false |
Include mist eliminator |
setIncludeReboiler(boolean include) |
true/false |
Include reboiler |
setIncludeRefluxSystem(boolean include) |
true/false |
Include reflux system |
setReboilerDuty(double duty) |
kW |
Set reboiler duty |
Enumerations and Constants
Material Factors
| Material |
Factor |
Notes |
| Carbon Steel |
1.0 |
Base reference |
| Stainless Steel 304 |
1.3 |
|
| Stainless Steel 316 |
1.5 |
|
| Duplex SS |
2.0 |
|
| Super Duplex |
2.5 |
|
| Inconel |
3.0 |
|
| Titanium |
4.0 |
|
| Monel |
3.5 |
|
| Hastelloy |
3.8 |
|
Pressure Factors
| Pressure (barg) |
Factor |
| < 10 |
1.0 |
| 10-50 |
1.15 |
| 50-100 |
1.25 |
| 100-200 |
1.40 |
| > 200 |
1.60 |
Installation Hours (typical)
| Equipment Type |
Hours/Unit |
| Separator/Vessel |
15-25 |
| Compressor |
30-50 |
| Heat Exchanger |
5-15 |
| Pump |
8-12 |
| Valve |
1-2 |
| Tank |
20-40 |
| Column |
40-80 |
Data Structures
Cost Breakdown Map
Returned by getCostBreakdown():
Map<String, Object> breakdown = {
"equipmentType": "separator",
"material": "carbon-steel",
"materialFactor": 1.0,
"designPressure_barg": 50.0,
"pressureFactor": 1.15,
"purchasedEquipmentCost_USD": 250000.0,
"bareModuleCost_USD": 875000.0,
"totalModuleCost_USD": 1093750.0,
"grassRootsCost_USD": 1257812.5,
"installationManHours": 20.0,
// Equipment-specific fields...
}
Process Cost Summary Map
Returned by ProcessCostEstimate.toMap():
Map<String, Object> summary = {
"processName": "Gas Processing Plant",
"timestamp": "2026-01-28T12:00:00Z",
"costSummary": {
"purchasedEquipmentCost_USD": 5000000.0,
"bareModuleCost_USD": 17500000.0,
"totalModuleCost_USD": 21875000.0,
"grassRootsCost_USD": 25156250.0,
"totalInstallationManHours": 450.0
},
"locationFactor": 1.35,
"complexityFactor": 1.0,
"currency": "NOK",
"exchangeRate": 11.0,
"costByEquipmentType": {...},
"costByDiscipline": {...},
"operatingCost": {
"annualTotal_USD": 2500000.0,
"breakdown": {...}
},
"equipmentList": [...]
}
API Reference last updated: January 2026