Class LNGShipModel
java.lang.Object
neqsim.process.equipment.lng.LNGShipModel
- All Implemented Interfaces:
Serializable
Multi-tank LNG ship model that orchestrates parallel ageing of all cargo tanks.
A typical LNG carrier has 4-5 cargo tanks sharing a common BOG header. Each tank may contain different cargo (spot-market LNG from different sources, or loaded at different times). The ship model coordinates:
- Parallel simulation of all tanks with their own compositions and temperatures
- Aggregation of total BOG production from all tanks
- Distribution of fuel demand across the common BOG header
- Per-tank and aggregate quality tracking (WI, GCV, MN)
- Overall cargo quantity and value tracking
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classAggregate ship-level result for a single time step. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate LNGBOGHandlingNetworkCommon BOG handling network for the ship.private static final org.apache.logging.log4j.LoggerLogger object.private static final longSerialization version UID.private StringShip name or voyage identifier.private List<LNGShipModel.ShipResult> Aggregate ship-level results.private doubleTotal simulation time (hours).private Map<String, List<LNGAgeingResult>> Per-tank results keyed by tank name.private List<LNGAgeingScenario> List of tank scenarios (one per cargo tank).private doubleTime step for simulation (hours).private LNGVoyageProfileVoyage profile shared across all tanks. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddTank(LNGAgeingScenario scenario) Add a tank scenario to the ship.private voidBuild aggregate ship-level results from per-tank data.Get shared BOG network.Get ship name.Get aggregate ship results.Get a summary string of ship-level results.doubleGet total simulation time.Get per-tank results.Get tank scenarios.doubleGet time step.doubleGet total cargo loss as percentage of initial mass across all tanks.Get voyage profile.voidrun()Run all tanks in parallel (stepped in lockstep).voidsetBogNetwork(LNGBOGHandlingNetwork bogNetwork) Set shared BOG network.voidsetShipName(String shipName) Set ship name.voidsetSimulationTime(double hours) Set total simulation time.voidsetTimeStepHours(double hours) Set time step.voidsetVoyageProfile(LNGVoyageProfile voyageProfile) Set voyage profile (shared across all tanks).
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger object. -
shipName
Ship name or voyage identifier. -
tankScenarios
List of tank scenarios (one per cargo tank). -
bogNetwork
Common BOG handling network for the ship. -
voyageProfile
Voyage profile shared across all tanks. -
simulationTime
private double simulationTimeTotal simulation time (hours). -
timeStepHours
private double timeStepHoursTime step for simulation (hours). -
tankResults
Per-tank results keyed by tank name. -
shipResults
Aggregate ship-level results.
-
-
Constructor Details
-
LNGShipModel
Constructor with ship name.- Parameters:
shipName- ship name or voyage identifier
-
-
Method Details
-
addTank
Add a tank scenario to the ship.- Parameters:
scenario- pre-configured tank ageing scenario
-
run
public void run()Run all tanks in parallel (stepped in lockstep).Each time step: (1) step all tanks, (2) aggregate BOG, (3) distribute fuel demand, (4) record ship-level results.
-
buildShipResults
private void buildShipResults()Build aggregate ship-level results from per-tank data. -
getTankResults
Get per-tank results.- Returns:
- map of tank name to result list
-
getShipResults
Get aggregate ship results.- Returns:
- list of ship-level results
-
getTotalCargoLossPct
public double getTotalCargoLossPct()Get total cargo loss as percentage of initial mass across all tanks.- Returns:
- cargo loss percentage
-
getShipSummary
Get a summary string of ship-level results.- Returns:
- formatted summary
-
getShipName
-
setShipName
-
getTankScenarios
Get tank scenarios.- Returns:
- list of tank scenarios
-
getBogNetwork
-
setBogNetwork
Set shared BOG network.- Parameters:
bogNetwork- BOG handling network
-
getVoyageProfile
-
setVoyageProfile
Set voyage profile (shared across all tanks).- Parameters:
voyageProfile- voyage profile
-
setSimulationTime
public void setSimulationTime(double hours) Set total simulation time.- Parameters:
hours- simulation time (hours)
-
getSimulationTime
public double getSimulationTime()Get total simulation time.- Returns:
- simulation time (hours)
-
setTimeStepHours
public void setTimeStepHours(double hours) Set time step.- Parameters:
hours- time step (hours)
-
getTimeStepHours
public double getTimeStepHours()Get time step.- Returns:
- time step (hours)
-