Class LNGVoyageProfile

java.lang.Object
neqsim.process.equipment.lng.LNGVoyageProfile
All Implemented Interfaces:
Serializable

public class LNGVoyageProfile extends Object implements Serializable
Defines the environmental and operational profile for an LNG voyage.

A voyage is divided into segments, each with its own ambient temperature, sea state, wind speed, and solar radiation. This allows the simulation to vary heat ingress and sloshing effects along the route (e.g., cold departure from Arctic terminal, warm transit through equatorial waters).

Usage example:

LNGVoyageProfile profile = new LNGVoyageProfile("Qatar to Japan");
profile.addSegment(new LNGVoyageProfile.Segment(0, 48, 308.15, 1.0, 5.0, 200.0));
profile.addSegment(new LNGVoyageProfile.Segment(48, 240, 303.15, 1.5, 8.0, 250.0));
profile.addSegment(new LNGVoyageProfile.Segment(240, 480, 288.15, 2.0, 12.0, 150.0));
Version:
1.0
Author:
NeqSim
See Also:
  • Field Details

    • serialVersionUID

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

      private String voyageName
      Voyage description or route name.
    • totalDurationHours

      private double totalDurationHours
      Total voyage duration (hours).
    • segments

      private List<LNGVoyageProfile.Segment> segments
      List of voyage segments in chronological order.
    • defaultAmbientTemperature

      private double defaultAmbientTemperature
      Default ambient temperature if no segments defined (K).
  • Constructor Details

    • LNGVoyageProfile

      public LNGVoyageProfile(String voyageName)
      Constructor for LNGVoyageProfile.
      Parameters:
      voyageName - descriptive name of the voyage route
  • Method Details

    • addSegment

      public void addSegment(LNGVoyageProfile.Segment segment)
      Add a voyage segment.
      Parameters:
      segment - voyage segment to add
    • getConditionsAt

      public LNGVoyageProfile.EnvironmentConditions getConditionsAt(double timeHours)
      Get the voyage environment conditions at a given time.

      Linearly interpolates between segment boundaries. If time is before the first segment or after the last, the nearest segment's conditions are used.

      Parameters:
      timeHours - elapsed time since voyage start (hours)
      Returns:
      environment conditions at the given time
    • getAmbientTemperatureAt

      public double getAmbientTemperatureAt(double timeHours)
      Get the ambient temperature at a given time.
      Parameters:
      timeHours - elapsed time (hours)
      Returns:
      ambient temperature (K)
    • getWaveHeightAt

      public double getWaveHeightAt(double timeHours)
      Get the significant wave height at a given time.
      Parameters:
      timeHours - elapsed time (hours)
      Returns:
      significant wave height (m)
    • getVoyageName

      public String getVoyageName()
      Get voyage name.
      Returns:
      voyage name
    • setVoyageName

      public void setVoyageName(String voyageName)
      Set voyage name.
      Parameters:
      voyageName - voyage name
    • getTotalDurationHours

      public double getTotalDurationHours()
      Get total voyage duration.
      Returns:
      total duration (hours)
    • setTotalDurationHours

      public void setTotalDurationHours(double totalDurationHours)
      Set total voyage duration manually (overrides segment-based calculation).
      Parameters:
      totalDurationHours - total duration (hours)
    • getSegments

      public List<LNGVoyageProfile.Segment> getSegments()
      Get all voyage segments.
      Returns:
      unmodifiable list of segments
    • getDefaultAmbientTemperature

      public double getDefaultAmbientTemperature()
      Get the default ambient temperature.
      Returns:
      default ambient temperature (K)
    • setDefaultAmbientTemperature

      public void setDefaultAmbientTemperature(double temperature)
      Set the default ambient temperature used when no segments are defined.
      Parameters:
      temperature - default ambient temperature (K)
    • createUniform

      public static LNGVoyageProfile createUniform(String name, double durationHours, double ambientTemperatureK)
      Create a uniform voyage with constant conditions.
      Parameters:
      name - voyage name
      durationHours - total voyage duration (hours)
      ambientTemperatureK - constant ambient temperature (K)
      Returns:
      configured voyage profile
    • recalculateTotalDuration

      private void recalculateTotalDuration()
      Recalculate total duration from segments.