Class BAHXMechanicalDesign

All Implemented Interfaces:
Serializable

public class BAHXMechanicalDesign extends HeatExchangerMechanicalDesign
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:
  • Field Details

    • serialVersionUID

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

      private static final double AL_3003_ALLOWABLE_STRESS_MPA
      Allowable 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_MPA
      Allowable stress for Al 5083 header/nozzle at room temperature in MPa.
      See Also:
    • AL_DENSITY

      private static final double AL_DENSITY
      Aluminium 3003 density in kg/m3.
      See Also:
    • AL_THERMAL_CONDUCTIVITY

      private static final double AL_THERMAL_CONDUCTIVITY
      Aluminium thermal conductivity in W/(m K).
      See Also:
    • AL_CTE

      private static final double AL_CTE
      Aluminium coefficient of thermal expansion in 1/K.
      See Also:
    • AL_YOUNGS_MODULUS_MPA

      private static final double AL_YOUNGS_MODULUS_MPA
      Young's modulus for aluminium 3003 in MPa.
      See Also:
    • BRAZED_JOINT_EFFICIENCY

      private static final double BRAZED_JOINT_EFFICIENCY
      Brazed joint efficiency per ASME VIII.
      See Also:
    • METAL_FRACTION

      private static final double METAL_FRACTION
      BAHX metal fraction of core volume (typical 0.25-0.35).
      See Also:
    • DEFAULT_MDMT_C

      private static final double DEFAULT_MDMT_C
      Default MDMT for aluminium BAHX in deg C.
      See Also:
    • ALLOWABLE_THERMAL_GRADIENT

      private static final double ALLOWABLE_THERMAL_GRADIENT
      Allowable thermal gradient per API 662 Part II in deg C per metre.
      See Also:
    • DEFAULT_DESIGN_CYCLES

      private static final int DEFAULT_DESIGN_CYCLES
      Default fatigue design cycles for LNG service.
      See Also:
    • coreMaterialGrade

      private String coreMaterialGrade
      Core material grade for fins and parting sheets.
    • headerMaterialGrade

      private String headerMaterialGrade
      Header material grade.
    • nozzleMaterialGrade

      private String nozzleMaterialGrade
      Nozzle material grade.
    • designLifeYears

      private int designLifeYears
      Design life in years.
    • designCycles

      private int designCycles
      Number of thermal cycles for fatigue assessment.
    • allowableThermalGradient

      private double allowableThermalGradient
      Maximum allowable thermal gradient in deg C/m.
    • numberOfNozzles

      private int numberOfNozzles
      Number of nozzles (inlet + outlet per stream).
    • nozzleODMm

      private double nozzleODMm
      Nozzle outer diameter in mm.
    • requiredPartingSheetThicknessMm

      private double requiredPartingSheetThicknessMm
      Minimum required parting sheet thickness in mm.
    • requiredHeaderThicknessMm

      private double requiredHeaderThicknessMm
      Minimum required header plate thickness in mm.
    • requiredNozzleThicknessMm

      private double requiredNozzleThicknessMm
      Minimum required nozzle wall thickness in mm.
    • coreWeightKg

      private double coreWeightKg
      Core weight in kg.
    • headerWeightKg

      private double headerWeightKg
      Header weight in kg.
    • nozzleWeightKg

      private double nozzleWeightKg
      Nozzle weight in kg.
    • maxThermalGradient

      private double maxThermalGradient
      Maximum thermal gradient found in analysis in deg C/m.
    • fatigueUtilisation

      private double fatigueUtilisation
      Fatigue utilisation factor (0 to 1).
    • fatiguePassed

      private boolean fatiguePassed
      Whether thermal fatigue check passes.
    • heatTransferAreaM2

      private double heatTransferAreaM2
      BAHX heat transfer area in m2.
    • coreLengthM

      private double coreLengthM
      Core length in m.
    • coreWidthM

      private double coreWidthM
      Core width in m.
    • coreHeightM

      private double coreHeightM
      Core height in m.
  • Constructor Details

    • BAHXMechanicalDesign

      public BAHXMechanicalDesign(ProcessEquipmentInterface equipment)
      Constructor for BAHXMechanicalDesign.
      Parameters:
      equipment - the LNG heat exchanger equipment
  • Method Details

    • calcDesign

      public void calcDesign()

      calcDesign.

      Overrides:
      calcDesign in class HeatExchangerMechanicalDesign
    • 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

      public String toJson()
      Get the complete mechanical design report as JSON.
      Overrides:
      toJson in class MechanicalDesign
      Returns:
      JSON string with all BAHX design data
    • getCoreMaterialGrade

      public String getCoreMaterialGrade()
      Get core material grade.
      Returns:
      core material grade string
    • setCoreMaterialGrade

      public void setCoreMaterialGrade(String grade)
      Set core material grade.
      Parameters:
      grade - material grade (e.g. "3003-H14")
    • getHeaderMaterialGrade

      public String getHeaderMaterialGrade()
      Get header material grade.
      Returns:
      header material grade string
    • setHeaderMaterialGrade

      public void setHeaderMaterialGrade(String grade)
      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:
      getModuleLength in class MechanicalDesign
      Returns:
      module length in m
    • getModuleWidth

      public double getModuleWidth()
      Get the module width.
      Overrides:
      getModuleWidth in class MechanicalDesign
      Returns:
      module width in m
    • getModuleHeight

      public double getModuleHeight()
      Get the module height.
      Overrides:
      getModuleHeight in class MechanicalDesign
      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 round
      decimals - number of decimal places
      Returns:
      rounded value