Class BAHXMechanicalDesign
java.lang.Object
neqsim.process.mechanicaldesign.MechanicalDesign
neqsim.process.mechanicaldesign.heatexchanger.HeatExchangerMechanicalDesign
neqsim.process.mechanicaldesign.heatexchanger.BAHXMechanicalDesign
- All Implemented Interfaces:
Serializable
Mechanical design for brazed aluminium plate-fin heat exchangers (BAHX).
Provides BAHX-specific mechanical design calculations including:
- Wall thickness per ASME VIII Div.1 for aluminium vessels
- Brazed joint efficiency (0.80 per ASME VIII)
- Minimum design metal temperature (MDMT) for cryogenic service
- Thermal fatigue assessment from cyclic thermal gradients
- Core weight and nozzle sizing
- Material specifications for aluminium 3003-H14 and 5083
Standards implemented: ASME VIII Div.1, ALPEMA (Aluminium Plate-Fin Heat Exchanger Manufacturers' Association), API 662 Part II.
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested classes/interfaces inherited from class HeatExchangerMechanicalDesign
HeatExchangerMechanicalDesign.HeatExchangerValidationResult, HeatExchangerMechanicalDesign.SelectionCriterion -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final doubleAllowable stress for Al 3003-H14 at room temperature in MPa.private static final doubleAllowable stress for Al 5083 header/nozzle at room temperature in MPa.private static final doubleAluminium coefficient of thermal expansion in 1/K.private static final doubleAluminium 3003 density in kg/m3.private static final doubleAluminium thermal conductivity in W/(m K).private static final doubleYoung's modulus for aluminium 3003 in MPa.private static final doubleAllowable thermal gradient per API 662 Part II in deg C per metre.private doubleMaximum allowable thermal gradient in deg C/m.private static final doubleBrazed joint efficiency per ASME VIII.private doubleCore height in m.private doubleCore length in m.private StringCore material grade for fins and parting sheets.private doubleCore weight in kg.private doubleCore width in m.private static final intDefault fatigue design cycles for LNG service.private static final doubleDefault MDMT for aluminium BAHX in deg C.private intNumber of thermal cycles for fatigue assessment.private intDesign life in years.private booleanWhether thermal fatigue check passes.private doubleFatigue utilisation factor (0 to 1).private StringHeader material grade.private doubleHeader weight in kg.private doubleBAHX heat transfer area in m2.private doubleMaximum thermal gradient found in analysis in deg C/m.private static final doubleBAHX metal fraction of core volume (typical 0.25-0.35).private StringNozzle material grade.private doubleNozzle outer diameter in mm.private doubleNozzle weight in kg.private intNumber of nozzles (inlet + outlet per stream).private doubleMinimum required header plate thickness in mm.private doubleMinimum required nozzle wall thickness in mm.private doubleMinimum required parting sheet thickness in mm.private static final longSerialization version UID.Fields inherited from class MechanicalDesign
costEstimate, designStandard, innerDiameter, maxDesignCv, maxDesignDuty, maxDesignGassVolumeFlow, maxDesignOilVolumeFlow, maxDesignPower, maxDesignPressureDrop, maxDesignVelocity, maxDesignVolumeFlow, maxDesignWaterVolumeFlow, minDesignDuty, minDesignGassVolumeFLow, minDesignOilFLow, minDesignPower, minDesignVolumeFLow, minDesignWaterVolumeFLow, moduleHeight, moduleLength, moduleWidth, outerDiameter, tantanLength, wallThickness, weightElectroInstrument, weightNozzle, weightPiping, weightStructualSteel, weightVessel, weigthInternals, weigthVesselShell -
Constructor Summary
ConstructorsConstructorDescriptionBAHXMechanicalDesign(ProcessEquipmentInterface equipment) Constructor for BAHXMechanicalDesign. -
Method Summary
Modifier and TypeMethodDescriptionvoidcalcDesign.private voidCalculate thermal fatigue assessment per API 662 Part II.doubleGet the core height.doubleGet the core length.Get core material grade.doubleGet the core weight.doubleGet the core width.intGet design cycles for fatigue.intGet design life in years.doubleGet the fatigue utilisation factor.Get header material grade.doubleGet the heat transfer area.doubleGet the maximum thermal gradient.doubleGet the module height.doubleGet the module length (core + headers + nozzles).doubleGet the module width.doubleGet the nozzle outer diameter.doubleGet required header thickness.doubleGet required nozzle wall thickness.doubleGet required parting sheet thickness.booleanCheck if thermal fatigue assessment passed.private doubleround(double value, int decimals) Round a double value to the specified number of decimal places.voidsetCoreMaterialGrade(String grade) Set core material grade.voidsetDesignCycles(int cycles) Set design cycles for fatigue.voidsetDesignLifeYears(int years) Set design life in years.voidsetHeaderMaterialGrade(String grade) Set header material grade.voidsetNozzleODMm(double od) Set the nozzle outer diameter.toJson()Get the complete mechanical design report as JSON.Methods inherited from class HeatExchangerMechanicalDesign
calculateCleanU, calculateFouledU, calculateTotalFoulingResistance, getApproachTemperature, getAreaMarginFactor, getBaffleCutPercent, getBaffleSpacingRatio, getCalculatedUA, getCandidateTypes, getDesignPressureMargin, getDesignTemperatureMarginC, getDutyMargin, getFoulingResistanceShellHC, getFoulingResistanceShellWater, getFoulingResistanceTubeHC, getFoulingResistanceTubeWater, getH2sPartialPressure, getLogMeanTemperatureDifference, getManualSelection, getMaxShellVelocity, getMaxTubeLengthM, getMaxTubeVelocity, getMinApproachTemperatureC, getMinTubeVelocity, getSelectedSizingResult, getSelectedType, getSelectionCriterion, getShellAndTubeCalculator, getShellJointEfficiency, getShellMaterialGrade, getShellPasses, getSizingResults, getSizingSummary, getTemaClass, getTemaDesignation, getTemaFrontHeadType, getTemaRearHeadType, getTemaShellType, getTubeLayoutPattern, getTubeMaterialGrade, getTubeOuterDiameterMm, getTubePasses, getTubePitchRatio, getTubeWallThicknessMm, getUsedOverallHeatTransferCoefficient, isSourServiceAssessment, loadProcessDesignParameters, setAreaMarginFactor, setBaffleCutPercent, setBaffleSpacingRatio, setCandidateTypes, setCandidateTypes, setDesignPressureMargin, setDesignTemperatureMarginC, setDutyMargin, setFoulingResistanceShellHC, setFoulingResistanceShellWater, setFoulingResistanceTubeHC, setFoulingResistanceTubeWater, setH2sPartialPressure, setManualSelection, setMaxShellVelocity, setMaxTubeLengthM, setMaxTubeVelocity, setMinApproachTemperatureC, setMinTubeVelocity, setSelectionCriterion, setShellJointEfficiency, setShellMaterialGrade, setShellPasses, setSourServiceAssessment, setTemaClass, setTemaFrontHeadType, setTemaRearHeadType, setTemaShellType, setTubeLayoutPattern, setTubeMaterialGrade, setTubeOuterDiameterMm, setTubePasses, setTubePitchRatio, setTubeWallThicknessMm, validateApproachTemperature, validateDesign, validateShellVelocity, validateTubeLength, validateTubeVelocityMethods inherited from class MechanicalDesign
addDesignDataSource, calculateCostEstimate, costEstimateToJson, displayResults, equals, generateBillOfMaterials, getApplicableStandards, getBareModuleCost, getCompanySpecificDesignStandards, getConstrutionMaterial, getCorrosionAllowance, getCostEstimate, getDefaultLiquidDensity, getDefaultLiquidViscosity, getDesignCorrosionAllowance, getDesignDataSources, getDesignJointEfficiency, getDesignLimitData, getDesignMaxPressureLimit, getDesignMaxTemperatureLimit, getDesignMinPressureLimit, getDesignMinTemperatureLimit, getDesignStandard, getDuty, getGrassRootsCost, getHeatTransferArea, getInnerDiameter, getInstallationManHours, getJointEfficiency, getLastMarginResult, getMaterialDesignStandard, getMaterialPipeDesignStandard, getMaxAllowableStress, getMaxDesignCv, getMaxDesignGassVolumeFlow, getMaxDesignOilVolumeFlow, getMaxDesignPressure, getMaxDesignPressureDrop, getMaxDesignVelocity, getMaxDesignVolumeFlow, getMaxDesignWaterVolumeFlow, getMaxOperationPressure, getMaxOperationTemperature, getMinDesignGassVolumeFLow, getMinDesignOilFLow, getMinDesignPressure, getMinDesignVolumeFLow, getMinDesignWaterVolumeFLow, getMinOperationPressure, getMinOperationTemperature, getOuterDiameter, getPower, getPressureMarginFactor, getProcessEquipment, getPurchasedEquipmentCost, getRecommendedStandards, getResponse, getTantanLength, getTensileStrength, getTotalModuleCost, getVolumeTotal, getWallThickness, getWeightElectroInstrument, getWeightNozzle, getWeightPiping, getWeightStructualSteel, getWeightTotal, getWeightVessel, getWeigthInternals, getWeigthVesselShell, hasDesignStandard, hashCode, initMechanicalDesign, isHasSetCompanySpecificDesignStandards, readDesignSpecifications, setCompanySpecificDesignStandards, setConstrutionMaterial, setCorrosionAllowance, setCostEstimateCepci, setCostEstimateLocationFactor, setCostEstimateMaterial, setDefaultLiquidDensity, setDefaultLiquidViscosity, setDesign, setDesignDataSource, setDesignDataSources, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandard, setDesignStandards, setHasSetCompanySpecificDesignStandards, setInnerDiameter, setJointEfficiency, setMaterialDesignStandard, setMaterialPipeDesignStandard, setMaxDesignCv, setMaxDesignDuty, setMaxDesignGassVolumeFlow, setMaxDesignOilVolumeFlow, setMaxDesignPower, setMaxDesignPressureDrop, setMaxDesignVelocity, setMaxDesignVolumeFlow, setMaxDesignWaterVolumeFlow, setMaxOperationPressure, setMaxOperationTemperature, setMinDesignDuty, setMinDesignGassVolumeFLow, setMinDesignOilFLow, setMinDesignPower, setMinDesignVolumeFLow, setMinDesignWaterVolumeFLow, setMinOperationPressure, setMinOperationTemperature, setModuleHeight, setModuleLength, setModuleWidth, setOuterDiameter, setPressureMarginFactor, setProcessEquipment, setTantanLength, setTensileStrength, setWallThickness, setWeightElectroInstrument, setWeightNozzle, setWeightPiping, setWeightStructualSteel, setWeightTotal, setWeightVessel, setWeigthInternals, setWeigthVesselShell, toCompactJson, validateOperatingEnvelope, validateOperatingEnvelope
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
AL_3003_ALLOWABLE_STRESS_MPA
private static final double AL_3003_ALLOWABLE_STRESS_MPAAllowable stress for Al 3003-H14 at room temperature in MPa.- See Also:
-
AL_5083_ALLOWABLE_STRESS_MPA
private static final double AL_5083_ALLOWABLE_STRESS_MPAAllowable stress for Al 5083 header/nozzle at room temperature in MPa.- See Also:
-
AL_DENSITY
private static final double AL_DENSITYAluminium 3003 density in kg/m3.- See Also:
-
AL_THERMAL_CONDUCTIVITY
private static final double AL_THERMAL_CONDUCTIVITYAluminium thermal conductivity in W/(m K).- See Also:
-
AL_CTE
private static final double AL_CTEAluminium coefficient of thermal expansion in 1/K.- See Also:
-
AL_YOUNGS_MODULUS_MPA
private static final double AL_YOUNGS_MODULUS_MPAYoung's modulus for aluminium 3003 in MPa.- See Also:
-
BRAZED_JOINT_EFFICIENCY
private static final double BRAZED_JOINT_EFFICIENCYBrazed joint efficiency per ASME VIII.- See Also:
-
METAL_FRACTION
private static final double METAL_FRACTIONBAHX metal fraction of core volume (typical 0.25-0.35).- See Also:
-
DEFAULT_MDMT_C
private static final double DEFAULT_MDMT_CDefault MDMT for aluminium BAHX in deg C.- See Also:
-
ALLOWABLE_THERMAL_GRADIENT
private static final double ALLOWABLE_THERMAL_GRADIENTAllowable thermal gradient per API 662 Part II in deg C per metre.- See Also:
-
DEFAULT_DESIGN_CYCLES
private static final int DEFAULT_DESIGN_CYCLESDefault fatigue design cycles for LNG service.- See Also:
-
coreMaterialGrade
Core material grade for fins and parting sheets. -
headerMaterialGrade
Header material grade. -
nozzleMaterialGrade
Nozzle material grade. -
designLifeYears
private int designLifeYearsDesign life in years. -
designCycles
private int designCyclesNumber of thermal cycles for fatigue assessment. -
allowableThermalGradient
private double allowableThermalGradientMaximum allowable thermal gradient in deg C/m. -
numberOfNozzles
private int numberOfNozzlesNumber of nozzles (inlet + outlet per stream). -
nozzleODMm
private double nozzleODMmNozzle outer diameter in mm. -
requiredPartingSheetThicknessMm
private double requiredPartingSheetThicknessMmMinimum required parting sheet thickness in mm. -
requiredHeaderThicknessMm
private double requiredHeaderThicknessMmMinimum required header plate thickness in mm. -
requiredNozzleThicknessMm
private double requiredNozzleThicknessMmMinimum required nozzle wall thickness in mm. -
coreWeightKg
private double coreWeightKgCore weight in kg. -
headerWeightKg
private double headerWeightKgHeader weight in kg. -
nozzleWeightKg
private double nozzleWeightKgNozzle weight in kg. -
maxThermalGradient
private double maxThermalGradientMaximum thermal gradient found in analysis in deg C/m. -
fatigueUtilisation
private double fatigueUtilisationFatigue utilisation factor (0 to 1). -
fatiguePassed
private boolean fatiguePassedWhether thermal fatigue check passes. -
heatTransferAreaM2
private double heatTransferAreaM2BAHX heat transfer area in m2. -
coreLengthM
private double coreLengthMCore length in m. -
coreWidthM
private double coreWidthMCore width in m. -
coreHeightM
private double coreHeightMCore height in m.
-
-
Constructor Details
-
BAHXMechanicalDesign
Constructor for BAHXMechanicalDesign.- Parameters:
equipment- the LNG heat exchanger equipment
-
-
Method Details
-
calcDesign
-
calcThermalFatigue
private void calcThermalFatigue()Calculate thermal fatigue assessment per API 662 Part II.Evaluates thermal stress from cyclic temperature gradients across the core. The allowable number of cycles is estimated from the alternating stress amplitude using aluminium S-N data.
-
toJson
Get the complete mechanical design report as JSON.- Overrides:
toJsonin classMechanicalDesign- Returns:
- JSON string with all BAHX design data
-
getCoreMaterialGrade
-
setCoreMaterialGrade
Set core material grade.- Parameters:
grade- material grade (e.g. "3003-H14")
-
getHeaderMaterialGrade
Get header material grade.- Returns:
- header material grade string
-
setHeaderMaterialGrade
Set header material grade.- Parameters:
grade- material grade (e.g. "5083")
-
getDesignLifeYears
public int getDesignLifeYears()Get design life in years.- Returns:
- design life years
-
setDesignLifeYears
public void setDesignLifeYears(int years) Set design life in years.- Parameters:
years- design life
-
getDesignCycles
public int getDesignCycles()Get design cycles for fatigue.- Returns:
- number of design cycles
-
setDesignCycles
public void setDesignCycles(int cycles) Set design cycles for fatigue.- Parameters:
cycles- number of design cycles
-
getNozzleODMm
public double getNozzleODMm()Get the nozzle outer diameter.- Returns:
- nozzle OD in mm
-
setNozzleODMm
public void setNozzleODMm(double od) Set the nozzle outer diameter.- Parameters:
od- nozzle OD in mm
-
getRequiredPartingSheetThicknessMm
public double getRequiredPartingSheetThicknessMm()Get required parting sheet thickness.- Returns:
- thickness in mm
-
getRequiredHeaderThicknessMm
public double getRequiredHeaderThicknessMm()Get required header thickness.- Returns:
- thickness in mm
-
getRequiredNozzleThicknessMm
public double getRequiredNozzleThicknessMm()Get required nozzle wall thickness.- Returns:
- thickness in mm
-
getCoreWeightKg
public double getCoreWeightKg()Get the core weight.- Returns:
- core weight in kg
-
getHeatTransferAreaM2
public double getHeatTransferAreaM2()Get the heat transfer area.- Returns:
- area in m2
-
getCoreLengthM
public double getCoreLengthM()Get the core length.- Returns:
- length in m
-
getCoreWidthM
public double getCoreWidthM()Get the core width.- Returns:
- width in m
-
getCoreHeightM
public double getCoreHeightM()Get the core height.- Returns:
- height in m
-
getMaxThermalGradient
public double getMaxThermalGradient()Get the maximum thermal gradient.- Returns:
- gradient in deg C/m
-
getFatigueUtilisation
public double getFatigueUtilisation()Get the fatigue utilisation factor.- Returns:
- utilisation (0 to 1, greater than 1 means failure)
-
isFatiguePassed
public boolean isFatiguePassed()Check if thermal fatigue assessment passed.- Returns:
- true if passed
-
getModuleLength
public double getModuleLength()Get the module length (core + headers + nozzles).- Overrides:
getModuleLengthin classMechanicalDesign- Returns:
- module length in m
-
getModuleWidth
public double getModuleWidth()Get the module width.- Overrides:
getModuleWidthin classMechanicalDesign- Returns:
- module width in m
-
getModuleHeight
public double getModuleHeight()Get the module height.- Overrides:
getModuleHeightin classMechanicalDesign- Returns:
- module height in m
-
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
-