Class HeatExchangerDesignFeasibilityReport
java.lang.Object
neqsim.process.mechanicaldesign.heatexchanger.HeatExchangerDesignFeasibilityReport
Design feasibility report for heat exchangers.
Generates a comprehensive feasibility assessment including:
- Mechanical design calculations (ASME, TEMA, ALPEMA)
- Cost estimation (CAPEX, OPEX, lifecycle)
- Supplier matching from the HeatExchangerSuppliers database
- Feasibility checks with BLOCKER/WARNING/INFO severity
- Overall verdict: FEASIBLE / FEASIBLE_WITH_WARNINGS / NOT_FEASIBLE
Supports both standard heat exchangers (shell-and-tube, plate, air-cooler, double-pipe) and LNG
cryogenic BAHX (plate-fin). When used with LNGHeatExchanger, additional BAHX-specific
checks are performed: mercury risk, freeze-out risk, thermal stress, flow maldistribution, and
MITA margin.
- Version:
- 1.0
- Author:
- NeqSim
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classA single feasibility issue or observation.static enumSeverity levels for feasibility issues.static classData class for a heat exchanger supplier match. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleprivate intAnnual operating hours for OPEX.private doubleprivate doubleprivate StringDesign standard code.private doubleprivate StringExchanger type for supplier matching and cost.private booleanprivate final ObjectThe heat exchanger equipment.private doubleprivate doubleprivate doubleprivate doubleprivate final booleanWhether the equipment is an LNGHeatExchanger.private doubleprivate MechanicalDesignprivate doubleprivate doubleprivate boolean -
Constructor Summary
ConstructorsConstructorDescriptionHeatExchangerDesignFeasibilityReport(HeatExchanger heatExchanger) Construct a feasibility report for a standard HeatExchanger.HeatExchangerDesignFeasibilityReport(LNGHeatExchanger lngHeatExchanger) Construct a feasibility report for an LNGHeatExchanger (BAHX). -
Method Summary
Modifier and TypeMethodDescriptionprivate voidCapture the current operating point from the heat exchanger.private voidCheck heat transfer area range.private voidRun BAHX-specific feasibility checks.private voidCheck cost reasonableness.private voidCheck pressure range feasibility.private voidCheck if any suppliers were matched.private voidCheck temperature range feasibility.voidGenerate the complete feasibility report.doubleGet the total installed cost in USD.Get the list of feasibility issues.Get the list of matching suppliers.Get the mechanical design.intGet the number of matching suppliers.doubleGet the purchased equipment cost (ex-works) in USD.Get the overall feasibility verdict.booleanCheck if the design is feasible (no blockers).private booleanCheck if a supplier matches the current operating requirements.Load supplier data from HeatExchangerSuppliers.csv.private voidMatch suppliers from the HeatExchangerSuppliers.csv database.parseCsvLine(String line) Parse a quoted CSV line.private doubleparseDouble(String value, double defaultValue) Safely parse a double value.parseSupplierLine(String line) Parse a CSV line into a SupplierMatch.private doubleround(double value, int decimals) Round a double value to the specified number of decimal places.private voidRun cost estimation.private voidRun all feasibility checks.private voidRun mechanical design calculations.setAnnualOperatingHours(int hours) Set annual operating hours for OPEX estimation.setDesignStandard(String standard) Set the design standard code.setExchangerType(String type) Set the exchanger type for supplier matching.toJson()Get the complete feasibility report as JSON.private booleantypeMatches(String supplierType, String requestedType) Check if the supplier type matches the requested type.
-
Field Details
-
heatExchanger
The heat exchanger equipment. -
isBAHX
private final boolean isBAHXWhether the equipment is an LNGHeatExchanger. -
exchangerType
Exchanger type for supplier matching and cost. -
designStandard
Design standard code. -
annualOperatingHours
private int annualOperatingHoursAnnual operating hours for OPEX. -
mechanicalDesign
-
purchasedEquipmentCostUSD
private double purchasedEquipmentCostUSD -
installedCostUSD
private double installedCostUSD -
annualMaintenanceCostUSD
private double annualMaintenanceCostUSD -
costBreakdown
-
feasible
private boolean feasible -
reportGenerated
private boolean reportGenerated -
issues
-
matchingSuppliers
-
dutyKW
private double dutyKW -
hotInletTempC
private double hotInletTempC -
hotOutletTempC
private double hotOutletTempC -
coldInletTempC
private double coldInletTempC -
coldOutletTempC
private double coldOutletTempC -
maxPressureBara
private double maxPressureBara -
minTempC
private double minTempC -
heatTransferAreaM2
private double heatTransferAreaM2
-
-
Constructor Details
-
HeatExchangerDesignFeasibilityReport
Construct a feasibility report for a standard HeatExchanger.- Parameters:
heatExchanger- the heat exchanger to assess
-
HeatExchangerDesignFeasibilityReport
Construct a feasibility report for an LNGHeatExchanger (BAHX).- Parameters:
lngHeatExchanger- the LNG BAHX to assess
-
-
Method Details
-
setExchangerType
Set the exchanger type for supplier matching.- Parameters:
type- exchanger type ("shell-tube", "plate", "plate-fin", "air-cooler", "double-pipe")- Returns:
- this report for method chaining
-
setDesignStandard
Set the design standard code.- Parameters:
standard- design standard (e.g. "TEMA-R", "ASME-VIII-Div1", "ALPEMA")- Returns:
- this report for method chaining
-
setAnnualOperatingHours
Set annual operating hours for OPEX estimation.- Parameters:
hours- annual operating hours- Returns:
- this report for method chaining
-
generateReport
public void generateReport()Generate the complete feasibility report.Runs all assessment steps in sequence: capture operating point, run mechanical design, run cost estimation, match suppliers, check feasibility, determine verdict.
-
captureOperatingPoint
private void captureOperatingPoint()Capture the current operating point from the heat exchanger. -
runMechanicalDesign
private void runMechanicalDesign()Run mechanical design calculations. -
runCostEstimation
private void runCostEstimation()Run cost estimation. -
matchSuppliers
private void matchSuppliers()Match suppliers from the HeatExchangerSuppliers.csv database. -
isSupplierMatch
Check if a supplier matches the current operating requirements.- Parameters:
supplier- the supplier data- Returns:
- true if the supplier can potentially provide this exchanger
-
typeMatches
-
runFeasibilityChecks
private void runFeasibilityChecks()Run all feasibility checks. -
checkTemperatureRange
private void checkTemperatureRange()Check temperature range feasibility. -
checkPressureRange
private void checkPressureRange()Check pressure range feasibility. -
checkAreaRange
private void checkAreaRange()Check heat transfer area range. -
checkCostReasonableness
private void checkCostReasonableness()Check cost reasonableness. -
checkSupplierAvailability
private void checkSupplierAvailability()Check if any suppliers were matched. -
checkBAHXSpecific
private void checkBAHXSpecific()Run BAHX-specific feasibility checks. -
loadSupplierDatabase
Load supplier data from HeatExchangerSuppliers.csv.- Returns:
- list of all suppliers
-
parseSupplierLine
Parse a CSV line into a SupplierMatch.- Parameters:
line- CSV line- Returns:
- supplier data or null
-
parseCsvLine
-
parseDouble
Safely parse a double value.- Parameters:
value- string valuedefaultValue- default if parsing fails- Returns:
- parsed value
-
getVerdict
Get the overall feasibility verdict.- Returns:
- "FEASIBLE", "FEASIBLE_WITH_WARNINGS", or "NOT_FEASIBLE"
-
isFeasible
public boolean isFeasible()Check if the design is feasible (no blockers).- Returns:
- true if feasible
-
getIssues
Get the list of feasibility issues.- Returns:
- list of issues
-
getMatchingSuppliers
Get the list of matching suppliers.- Returns:
- list of supplier matches
-
getNumberOfMatchingSuppliers
public int getNumberOfMatchingSuppliers()Get the number of matching suppliers.- Returns:
- number of matching suppliers
-
getMechanicalDesign
Get the mechanical design.- Returns:
- mechanical design object
-
getPurchasedEquipmentCostUSD
public double getPurchasedEquipmentCostUSD()Get the purchased equipment cost (ex-works) in USD.- Returns:
- equipment cost
-
getInstalledCostUSD
public double getInstalledCostUSD()Get the total installed cost in USD.- Returns:
- installed cost
-
toJson
Get the complete feasibility report as JSON.- Returns:
- JSON string with all report data
-
round
private double round(double value, int decimals) Round a double value to the specified number of decimal places.- Parameters:
value- the value to rounddecimals- number of decimal places- Returns:
- rounded value
-