Class RadialThermalLayer

java.lang.Object
neqsim.process.equipment.pipeline.RadialThermalLayer
All Implemented Interfaces:
Serializable

public class RadialThermalLayer extends Object implements Serializable
Represents a radial thermal layer for multi-layer heat transfer calculations in pipelines.

This class supports OLGA-style multi-layer thermal modeling with typical layers including:

  • Steel pipe wall - high conductivity, high thermal mass
  • Corrosion coating - thin, low conductivity
  • Insulation layers (PU foam, aerogel, etc.) - thick, very low conductivity
  • Concrete weight coating - high conductivity, high thermal mass
  • Burial/soil layer - variable conductivity depending on conditions

References:

  • Bai, Y. & Bai, Q. "Subsea Pipelines and Risers" - thermal design chapter
  • DNV-OS-F101 - Submarine Pipeline Systems
  • OLGA User Manual - Heat Transfer Models
Version:
1.0
Author:
ASMF
See Also:
  • Field Details

    • serialVersionUID

      private static final long serialVersionUID
      See Also:
    • name

      private String name
      Layer name/identifier.
    • materialType

      private RadialThermalLayer.MaterialType materialType
      Layer material type.
    • innerRadius

      private double innerRadius
      Inner radius of this layer [m].
    • outerRadius

      private double outerRadius
      Outer radius of this layer [m].
    • thermalConductivity

      private double thermalConductivity
      Thermal conductivity [W/(m·K)].
    • density

      private double density
      Density [kg/m³].
    • specificHeat

      private double specificHeat
      Specific heat capacity [J/(kg·K)].
    • temperature

      private double temperature
      Current temperature of layer [K] - for transient calculations.
    • previousTemperature

      private double previousTemperature
      Temperature at previous time step [K].
  • Constructor Details

    • RadialThermalLayer

      public RadialThermalLayer()
      Default constructor creating a custom layer.
    • RadialThermalLayer

      public RadialThermalLayer(String name, double innerRadius, double thickness, RadialThermalLayer.MaterialType material)
      Construct a thermal layer with specified dimensions and material type.
      Parameters:
      name - Layer identifier
      innerRadius - Inner radius [m]
      thickness - Layer thickness [m]
      material - Material type preset
    • RadialThermalLayer

      public RadialThermalLayer(String name, double innerRadius, double thickness, double k, double rho, double cp)
      Construct a custom thermal layer with user-specified properties.
      Parameters:
      name - Layer identifier
      innerRadius - Inner radius [m]
      thickness - Layer thickness [m]
      k - Thermal conductivity [W/(m·K)]
      rho - Density [kg/m³]
      cp - Specific heat [J/(kg·K)]
  • Method Details

    • getThickness

      public double getThickness()
      Get the layer thickness.
      Returns:
      Thickness in meters
    • getThermalResistance

      public double getThermalResistance()
      Calculate thermal resistance of this cylindrical layer per unit length.

      For a cylindrical shell: R = ln(r_o/r_i) / (2 * π * k)

      Returns:
      Thermal resistance in (m·K)/W per unit length
    • getThermalMassPerLength

      public double getThermalMassPerLength()
      Calculate thermal mass per unit length.

      Thermal mass = ρ * Cp * A = ρ * Cp * π * (r_o² - r_i²)

      Returns:
      Thermal mass in J/(K·m)
    • getCrossSectionalArea

      public double getCrossSectionalArea()
      Calculate cross-sectional area of the layer.
      Returns:
      Area in m²
    • getMassPerLength

      public double getMassPerLength()
      Calculate mass per unit length.
      Returns:
      Mass in kg/m
    • getMeanRadius

      public double getMeanRadius()
      Get mean radius of the layer.
      Returns:
      Mean radius in meters
    • getName

      public String getName()
      Get layer name.
      Returns:
      Layer identifier
    • setName

      public void setName(String name)
      Set layer name.
      Parameters:
      name - Layer identifier
    • getMaterialType

      public RadialThermalLayer.MaterialType getMaterialType()
      Get material type.
      Returns:
      Material type enum
    • setMaterialType

      public void setMaterialType(RadialThermalLayer.MaterialType materialType)
      Set material type and update properties from preset.
      Parameters:
      materialType - Material type preset
    • getInnerRadius

      public double getInnerRadius()
      Get inner radius.
      Returns:
      Inner radius in meters
    • setInnerRadius

      public void setInnerRadius(double innerRadius)
      Set inner radius.
      Parameters:
      innerRadius - Inner radius in meters
    • getOuterRadius

      public double getOuterRadius()
      Get outer radius.
      Returns:
      Outer radius in meters
    • setOuterRadius

      public void setOuterRadius(double outerRadius)
      Set outer radius.
      Parameters:
      outerRadius - Outer radius in meters
    • getThermalConductivity

      public double getThermalConductivity()
      Get thermal conductivity.
      Returns:
      Thermal conductivity in W/(m·K)
    • setThermalConductivity

      public void setThermalConductivity(double thermalConductivity)
      Set thermal conductivity (overrides material preset).
      Parameters:
      thermalConductivity - Thermal conductivity in W/(m·K)
    • getDensity

      public double getDensity()
      Get density.
      Returns:
      Density in kg/m³
    • setDensity

      public void setDensity(double density)
      Set density (overrides material preset).
      Parameters:
      density - Density in kg/m³
    • getSpecificHeat

      public double getSpecificHeat()
      Get specific heat capacity.
      Returns:
      Specific heat in J/(kg·K)
    • setSpecificHeat

      public void setSpecificHeat(double specificHeat)
      Set specific heat (overrides material preset).
      Parameters:
      specificHeat - Specific heat in J/(kg·K)
    • getTemperature

      public double getTemperature()
      Get current temperature.
      Returns:
      Temperature in Kelvin
    • setTemperature

      public void setTemperature(double temperature)
      Set current temperature.
      Parameters:
      temperature - Temperature in Kelvin
    • getPreviousTemperature

      public double getPreviousTemperature()
      Get previous time step temperature.
      Returns:
      Previous temperature in Kelvin
    • initializeTemperature

      public void initializeTemperature(double initialTemperature)
      Initialize temperatures for start of transient.
      Parameters:
      initialTemperature - Initial temperature in Kelvin
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • copy

      public RadialThermalLayer copy()
      Create a copy of this layer.
      Returns:
      Deep copy of the layer