Class LNGTank

All Implemented Interfaces:
Serializable, Runnable, AutoSizeable, CapacityConstrainedEquipment, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface

public class LNGTank extends Tank
LNG storage tank model with boil-off gas (BOG) generation.

Models an LNG storage tank (membrane or Moss sphere type) with heat ingress through insulation, generating a boil-off gas (BOG) stream. The BOG rate depends on tank geometry, insulation properties, ambient temperature, and LNG composition.

The model calculates the steady-state boil-off rate as:

  Q_ingress = U * A * (T_ambient - T_LNG)
  BOG_rate  = Q_ingress / latent_heat_of_vaporisation

Typical boil-off rates are 0.05 - 0.15 %/day of total LNG volume for modern insulated tanks.

Version:
1.0
Author:
NeqSim
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • logger

      private static final org.apache.logging.log4j.Logger logger
    • insulationType

      private LNGTank.InsulationType insulationType
      Tank insulation type.
    • overallHeatTransferCoeff

      private double overallHeatTransferCoeff
      Overall heat transfer coefficient through insulation (W/m2/K).
    • tankSurfaceArea

      private double tankSurfaceArea
      Tank outer surface area (m2).
    • ambientTemperature

      private double ambientTemperature
      Ambient temperature (K).
    • lngTemperature

      private double lngTemperature
      LNG storage temperature (K). Default -162 C.
    • storagePressure

      private double storagePressure
      LNG storage pressure (bara).
    • heatIngress

      private double heatIngress
      Calculated heat ingress (W).
    • boilOffRatePctPerDay

      private double boilOffRatePctPerDay
      Calculated boil-off rate (%/day of LNG mass).
    • bogMassFlowRate

      private double bogMassFlowRate
      Calculated BOG mass flow rate (kg/hr).
    • lngInventory

      private double lngInventory
      Total LNG inventory (kg).
    • bogStream

      private StreamInterface bogStream
      BOG outlet stream.
    • lngProductStream

      private StreamInterface lngProductStream
      LNG liquid outlet stream.
    • latentHeat

      private double latentHeat
      Latent heat of vaporisation of LNG (J/kg).
  • Constructor Details

    • LNGTank

      public LNGTank(String name)
      Constructor for LNGTank.
      Parameters:
      name - name of the LNG tank
    • LNGTank

      public LNGTank(String name, StreamInterface inletStream)
      Constructor for LNGTank with an inlet LNG stream.
      Parameters:
      name - name of the LNG tank
      inletStream - inlet LNG stream
  • Method Details

    • setInsulationType

      public void setInsulationType(LNGTank.InsulationType type)
      Set the insulation type.
      Parameters:
      type - insulation type (MEMBRANE, MOSS, or PRISMATIC)
    • getInsulationType

      public LNGTank.InsulationType getInsulationType()
      Get the insulation type.
      Returns:
      insulation type
    • setOverallHeatTransferCoefficient

      public void setOverallHeatTransferCoefficient(double u)
      Set the overall heat transfer coefficient through insulation.
      Parameters:
      u - heat transfer coefficient (W/m2/K)
    • getOverallHeatTransferCoefficient

      public double getOverallHeatTransferCoefficient()
      Get the overall heat transfer coefficient.
      Returns:
      heat transfer coefficient (W/m2/K)
    • setAmbientTemperature

      public void setAmbientTemperature(double temperature, String unit)
      Set the ambient temperature surrounding the tank.
      Parameters:
      temperature - ambient temperature value
      unit - temperature unit ("K", "C")
    • getAmbientTemperature

      public double getAmbientTemperature()
      Get the ambient temperature.
      Returns:
      ambient temperature (K)
    • setTankSurfaceArea

      public void setTankSurfaceArea(double area)
      Set the tank outer surface area.
      Parameters:
      area - surface area (m2)
    • getTankSurfaceArea

      public double getTankSurfaceArea()
      Get the tank outer surface area.
      Returns:
      surface area (m2)
    • setLNGInventory

      public void setLNGInventory(double inventory)
      Set the total LNG inventory in the tank.
      Parameters:
      inventory - LNG mass (kg)
    • getLNGInventory

      public double getLNGInventory()
      Get the total LNG inventory.
      Returns:
      LNG mass (kg)
    • setStoragePressure

      public void setStoragePressure(double pressure)
      Set the LNG storage pressure.
      Parameters:
      pressure - storage pressure (bara)
    • getStoragePressure

      public double getStoragePressure()
      Get the LNG storage pressure.
      Returns:
      storage pressure (bara)
    • getHeatIngress

      public double getHeatIngress()
      Get the heat ingress into the tank.
      Returns:
      heat ingress (W)
    • getBoilOffRatePctPerDay

      public double getBoilOffRatePctPerDay()
      Get the boil-off rate as a percentage of LNG mass per day.
      Returns:
      boil-off rate (%/day)
    • getBOGMassFlowRate

      public double getBOGMassFlowRate()
      Get the BOG mass flow rate.
      Returns:
      BOG mass flow rate (kg/hr)
    • getBOGStream

      public StreamInterface getBOGStream()
      Get the BOG outlet stream.
      Returns:
      BOG stream
    • getLNGProductStream

      public StreamInterface getLNGProductStream()
      Get the LNG product (liquid) outlet stream.
      Returns:
      LNG product stream
    • getOutletStreams

      public List<StreamInterface> getOutletStreams()
      Returns all outlet streams produced by this equipment. Subclasses override to report their specific outlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology without instanceof checks.
      Returns:
      unmodifiable list of outlet streams (empty by default)
    • run

      public void run(UUID id)

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

      Calculates the following properties:

      • steelWallTemperature
      • gasOutStream
      • liquidOutStream
      • thermoSystem including properties
      • liquidLevel
      • liquidVolume
      • gasVolume
      Specified by:
      run in interface SimulationInterface
      Overrides:
      run in class Tank
      Parameters:
      id - UUID