Class HeatExchanger

All Implemented Interfaces:
Serializable, Runnable, HeaterInterface, HeatExchangerInterface, ProcessEquipmentInterface, TwoPortInterface, StateVectorProvider, SimulationInterface, NamedInterface

public class HeatExchanger extends Heater implements HeatExchangerInterface, StateVectorProvider

HeatExchanger class.

Version:
$Id: $Id
Author:
Even Solbraa
See Also:
  • Field Details

    • serialVersionUID

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

      boolean setTemperature
    • outStream

      StreamInterface[] outStream
    • inStream

      StreamInterface[] inStream
    • system

    • NTU

      double NTU
    • temperatureOut

      protected double temperatureOut
    • dT

      protected double dT
    • dH

      double dH
    • UAvalue

      private double UAvalue
    • duty

      double duty
    • hotColdDutyBalance

      private double hotColdDutyBalance
    • firstTime

      boolean firstTime
    • guessOutTemperature

      public double guessOutTemperature
    • guessOutTemperatureUnit

      public String guessOutTemperatureUnit
    • outStreamSpecificationNumber

      int outStreamSpecificationNumber
    • thermalEffectiveness

      public double thermalEffectiveness
    • flowArrangement

      private String flowArrangement
    • useDeltaT

      private boolean useDeltaT
    • deltaT

      private double deltaT
  • Constructor Details

    • HeatExchanger

      public HeatExchanger(String name)
      Constructor for HeatExchanger.
      Parameters:
      name - name of heat exchanger
    • HeatExchanger

      public HeatExchanger(String name, StreamInterface inStream1)
      Constructor for HeatExchanger.
      Parameters:
      name - name of heat exchanger
      inStream1 - input stream
    • HeatExchanger

      public HeatExchanger(String name, StreamInterface inStream1, StreamInterface inStream2)
      Constructor for HeatExchanger.
      Parameters:
      name - name of heat exchanger
      inStream1 - input stream 1
      inStream2 - input stream 2
  • Method Details

    • addInStream

      public void addInStream(StreamInterface inStream)

      Add inlet stream.

      Parameters:
      inStream - a StreamInterface object
    • setFeedStream

      public void setFeedStream(int number, StreamInterface inStream)

      setFeedStream. Will also set name of outstreams.

      Parameters:
      number - a int
      inStream - a StreamInterface object
    • getMechanicalDesign

      public HeatExchangerMechanicalDesign getMechanicalDesign()

      Get a mechanicalDesign for the equipment.

      Specified by:
      getMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      getMechanicalDesign in class Heater
      Returns:
      a MechanicalDesign object
    • initMechanicalDesign

      public void initMechanicalDesign()

      Initialize a initMechanicalDesign for the equipment.

      Specified by:
      initMechanicalDesign in interface ProcessEquipmentInterface
      Overrides:
      initMechanicalDesign in class Heater
    • setName

      public void setName(String name)

      Setter for the field name.

      Specified by:
      setName in interface NamedInterface
      Overrides:
      setName in class NamedBaseClass
      Parameters:
      name - a String object
    • setdT

      public void setdT(double dT)

      setdT.

      Specified by:
      setdT in interface HeaterInterface
      Overrides:
      setdT in class Heater
      Parameters:
      dT - a double
    • getOutStream

      public StreamInterface getOutStream(int i)

      getOutStream.

      Specified by:
      getOutStream in interface HeatExchangerInterface
      Parameters:
      i - a int
      Returns:
      a StreamInterface object
    • getInStream

      public StreamInterface getInStream(int i)

      Getter for the field inStream.

      Parameters:
      i - a int
      Returns:
      a StreamInterface object
    • setOutTemperature

      public void setOutTemperature(double temperature)

      Set the outlet temperature of the heater.

      Overrides:
      setOutTemperature in class Heater
      Parameters:
      temperature - Temperature in Kelvin
    • getOutTemperature

      public double getOutTemperature(int i)

      Get temperature of outstream i.

      Parameters:
      i - a int
      Returns:
      a double
    • getInTemperature

      public double getInTemperature(int i)

      Get temperature of instream i.

      Parameters:
      i - a int
      Returns:
      a double
    • setOutStream

      public void setOutStream(int streamNumber, StreamInterface outStream)

      Setter for the field outStream.

      Parameters:
      streamNumber - a int
      outStream - the outStream to set
    • runSpecifiedStream

      public void runSpecifiedStream(UUID id)

      runSpecifiedStream.

      Parameters:
      id - UUID of run
    • runDeltaT

      public void runDeltaT(UUID id)

      runDeltaT.

      Parameters:
      id - UUID of run
    • run

      public void run(UUID id)

      In this method all thermodynamic and unit operations will be calculated in a steady state calculation.

      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class Heater
      Parameters:
      id - UUID
    • getDuty

      public double getDuty()

      getDuty.

      Overrides:
      getDuty in class Heater
      Returns:
      a double
    • displayResult

      public void displayResult()

      displayResult.

      Specified by:
      displayResult in interface ProcessEquipmentInterface
      Overrides:
      displayResult in class Heater
    • getUAvalue

      public double getUAvalue()

      getUAvalue.

      Returns:
      the UAvalue
    • setUAvalue

      public void setUAvalue(double UAvalue)

      setUAvalue.

      Parameters:
      UAvalue - the UAvalue to set
    • getGuessOutTemperature

      public double getGuessOutTemperature()

      Getter for the field guessOutTemperature.

      Returns:
      a double
    • setGuessOutTemperature

      public void setGuessOutTemperature(double guessOutTemperature)

      Setter for the field guessOutTemperature.

      Parameters:
      guessOutTemperature - a double
    • setGuessOutTemperature

      public void setGuessOutTemperature(double guessOutTemperature, String unit)

      Setter for the field guessOutTemperature.

      Parameters:
      guessOutTemperature - a double
      unit - a String
    • getEntropyProduction

      public double getEntropyProduction(String unit)

      getEntropyProduction.

      Specified by:
      getEntropyProduction in interface ProcessEquipmentInterface
      Overrides:
      getEntropyProduction in class Heater
      Parameters:
      unit - a String object
      Returns:
      a double
    • getMassBalance

      public double getMassBalance(String unit)

      getMassBalance.

      Specified by:
      getMassBalance in interface ProcessEquipmentInterface
      Overrides:
      getMassBalance in class TwoPortEquipment
      Parameters:
      unit - a String object
      Returns:
      a double
    • runConditionAnalysis

      public void runConditionAnalysis(ProcessEquipmentInterface refExchanger)

      runConditionAnalysis.

      Specified by:
      runConditionAnalysis in interface ProcessEquipmentInterface
      Overrides:
      runConditionAnalysis in class ProcessEquipmentBaseClass
      Parameters:
      refExchanger - a ProcessEquipmentInterface object
    • runConditionAnalysis

      public void runConditionAnalysis()

      runConditionAnalysis.

    • getThermalEffectiveness

      public double getThermalEffectiveness()

      Getter for the field thermalEffectiveness.

      Returns:
      a double
    • setThermalEffectiveness

      public void setThermalEffectiveness(double thermalEffectiveness)

      Setter for the field thermalEffectiveness.

      Parameters:
      thermalEffectiveness - a double
    • getFlowArrangement

      public String getFlowArrangement()

      Getter for the field flowArrangement.

      Returns:
      String
    • setFlowArrangement

      public void setFlowArrangement(String flowArrangement)

      Setter for the field flowArrangement.

      Parameters:
      flowArrangement - name of flow arrangement
    • calcThermalEffectivenes

      public double calcThermalEffectivenes(double NTU, double Cr)

      calcThermalEffectivenes.

      Parameters:
      NTU - a double
      Cr - a double
      Returns:
      a double
    • getHotColdDutyBalance

      public double getHotColdDutyBalance()

      Getter for the field hotColdDutyBalance.

      Returns:
      a double
    • setHotColdDutyBalance

      public void setHotColdDutyBalance(double hotColdDutyBalance)

      Setter for the field hotColdDutyBalance.

      Parameters:
      hotColdDutyBalance - a double
    • toJson

      public String toJson()

      Serializes the Process Equipment along with its state to a JSON string.

      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class Heater
      Returns:
      json string.
    • toJson

      public String toJson(ReportConfig cfg)
      Serializes the Process Equipment with configurable level of detail.
      Specified by:
      toJson in interface ProcessEquipmentInterface
      Overrides:
      toJson in class Heater
      Parameters:
      cfg - report configuration
      Returns:
      json string
    • setUseDeltaT

      public void setUseDeltaT(boolean useDeltaT)

      Setter for the field useDeltaT.

      Parameters:
      useDeltaT - a boolean
    • getDeltaT

      public double getDeltaT()

      Getter for the field deltaT.

      Returns:
      a double
    • setDeltaT

      public void setDeltaT(double deltaT)

      Setter for the field deltaT.

      Parameters:
      deltaT - a double
    • getStateVector

      public StateVector getStateVector()
      Get the current state as a standardized vector.

      The state vector should include all observable variables relevant for control and monitoring. Values should be in physical units with appropriate bounds.

      Returns state vector containing:

      • hot_inlet_temp - Hot side inlet temperature [K]
      • hot_outlet_temp - Hot side outlet temperature [K]
      • cold_inlet_temp - Cold side inlet temperature [K]
      • cold_outlet_temp - Cold side outlet temperature [K]
      • duty - Heat duty [kW]
      • ua_value - UA value [W/K]
      • effectiveness - Thermal effectiveness [fraction]
      • lmtd - Log mean temperature difference [K]
      • hot_flow - Hot side mass flow [kg/s]
      • cold_flow - Cold side mass flow [kg/s]
      Specified by:
      getStateVector in interface StateVectorProvider
      Returns:
      current state vector
    • builder

      public static HeatExchanger.Builder builder(String name)
      Creates a new Builder for constructing a HeatExchanger with a fluent API.

      Example usage:

      HeatExchanger hx = HeatExchanger.builder("E-100").hotStream(hotFeed).coldStream(coldFeed)
          .UAvalue(5000.0).flowArrangement("counterflow").build();
      
      Parameters:
      name - the name of the heat exchanger
      Returns:
      a new Builder instance