Class LNGAgeingScenario
java.lang.Object
neqsim.util.NamedBaseClass
neqsim.process.SimulationBaseClass
neqsim.process.equipment.ProcessEquipmentBaseClass
neqsim.process.equipment.lng.LNGAgeingScenario
- All Implemented Interfaces:
Serializable, Runnable, ProcessEquipmentInterface, ProcessElementInterface, SimulationInterface, NamedInterface
Top-level orchestrator for LNG ageing simulations.
Coordinates all sub-models (layered tank, vapor space, BOG handling, rollover detection, heel management, voyage profile) to produce a time-resolved simulation of LNG composition and quality changes during transport.
Usage pattern:
SystemInterface lng = new SystemSrkEos(111.0, 1.013);
lng.addComponent("methane", 0.92);
lng.addComponent("ethane", 0.05);
lng.addComponent("propane", 0.02);
lng.addComponent("nitrogen", 0.01);
lng.setMixingRule("classic");
Stream feed = new Stream("LNG feed", lng);
feed.setFlowRate(140000.0, "m3/hr");
feed.run();
LNGAgeingScenario scenario = new LNGAgeingScenario("Laden Voyage", feed);
scenario.setTankVolume(140000.0);
scenario.setInitialFillingRatio(0.98);
scenario.setSimulationTime(480.0);
scenario.setTimeStepHours(1.0);
scenario.setOverallHeatTransferCoeff(0.045);
scenario.setAmbientTemperature(308.15);
scenario.run();
List<LNGAgeingResult> results = scenario.getResults();
- Version:
- 1.0
- Author:
- NeqSim
- See Also:
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classRepresents an operational event during an LNG voyage or storage period. -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate doubleAmbient temperature (K).private LNGBOGHandlingNetworkBOG handling network.private StreamInterfaceBOG outlet stream.private LNGHeelManagerHeel manager.private doubleInitial filling ratio (0-1).private StreamInterfaceInlet stream (LNG cargo).private StreamInterfaceAged LNG outlet stream.private static final org.apache.logging.log4j.LoggerLogger object.private MethaneNumberCalculatorMethane number calculator (optional).private intNumber of initial layers.private List<LNGAgeingScenario.OperationalEvent> Operational events (loading, unloading, cooldown, etc.).private doubleOverall heat transfer coefficient (W/m2/K).private List<LNGAgeingResult> Time-series results.private LNGRolloverDetectorRollover detector.private static final longSerialization version UID.private doubleTotal simulation time (hours).private TankGeometryTank geometry model (optional).private LNGTankLayeredModelLayered tank model.private doubleInitial tank pressure (bara).private doubleTank surface area (m2).private doubleTank volume (m3).private doubleTime step (hours).private booleanWhether to use GERG-2008 for density calculations.private LNGVaporSpaceModelVapor space model.private LNGVoyageProfileVoyage profile (optional).Fields inherited from class ProcessEquipmentBaseClass
conditionAnalysisMessage, energyStream, hasController, isSolved, properties, reportFields inherited from class SimulationBaseClass
calcIdentifier, calculateSteadyState, timeFields inherited from class NamedBaseClass
name -
Constructor Summary
ConstructorsConstructorDescriptionLNGAgeingScenario(String name) Constructor with name.LNGAgeingScenario(String name, StreamInterface inletStream) Constructor with name and inlet stream. -
Method Summary
Modifier and TypeMethodDescriptionvoidAdd an operational event (loading, unloading, cooldown, etc.).private voidcreateOutletStreams(SystemInterface baseFluid) Create outlet streams from final simulation state.private doubleestimateSurfaceArea(double volume) Estimate tank surface area from volume assuming cylindrical shape.doubleGet ambient temperature.private doublegetAmbientTemperatureAt(double timeHours) Get ambient temperature at a given time, using voyage profile if available.Get the BOG handling network.Get the BOG outlet stream.Get the heel manager.doubleGet initial filling ratio.Returns all inlet streams connected to this equipment.Get the aged LNG outlet stream.Get methane number calculator.intGet number of initial layers.Get all operational events.Returns all outlet streams produced by this equipment.doubleGet overall heat transfer coefficient.Get the time-series results.Get a summary of the final results.Get the rollover detector.doubleGet total simulation time.Get tank geometry model.Get the layered tank model for advanced configuration.doubleGet tank pressure.doubleGet tank surface area.doubleGet tank volume.doubleGet time step.Get the vapor space model.Get the voyage profile.booleanCheck if GERG-2008 is enabled.voidIn this method all thermodynamic and unit operations will be calculated in a steady state calculation.voidsetAmbientTemperature(double temperature) Set ambient temperature.voidsetInitialFillingRatio(double ratio) Set initial filling ratio.voidsetMethaneNumberCalculator(MethaneNumberCalculator calculator) Set methane number calculator.voidsetNumberOfLayers(int layers) Set number of initial layers.voidsetOverallHeatTransferCoeff(double u) Set overall heat transfer coefficient.voidsetSimulationTime(double hours) Set total simulation time.voidsetTankGeometry(TankGeometry geometry) Set tank geometry model.voidsetTankPressure(double pressure) Set initial tank pressure.voidsetTankSurfaceArea(double area) Set tank surface area.voidsetTankVolume(double volume) Set tank volume.voidsetTimeStepHours(double hours) Set time step.voidsetUseGERG2008(boolean use) Enable GERG-2008 for density calculations.voidsetVoyageProfile(LNGVoyageProfile profile) Set the voyage profile.Methods inherited from class ProcessEquipmentBaseClass
addCapacityConstraint, addController, copy, displayResult, equals, getAvailableMargin, getAvailableMarginPercent, getBottleneckConstraint, getCapacityConstraints, getConditionAnalysisMessage, getConstraintEvaluationReport, getController, getController, getControllers, getEffectiveCapacityFactor, getEnergyStream, getEntropyProduction, getExergyChange, getFailureMode, getMassBalance, getMassBalance, getMaxUtilization, getMaxUtilizationPercent, getMechanicalDesign, getMinimumFlow, getPressure, getPressure, getProperty, getReferenceDesignation, getReport_json, getResultTable, getSpecification, getTemperature, getTemperature, getThermoSystem, getUtilizationSummary, hashCode, initElectricalDesign, initializeDefaultConstraints, initInstrumentDesign, initMechanicalDesign, isActive, isActive, isCapacityAnalysisEnabled, isCapacityExceeded, isFailed, isHardLimitExceeded, isNearCapacityLimit, isSetEnergyStream, reportResults, restoreFromFailure, run_step, runConditionAnalysis, setCapacityAnalysisEnabled, setController, setEnergyStream, setEnergyStream, setFailureMode, setFlowValveController, setMinimumFlow, setPressure, setReferenceDesignation, setRegulatorOutSignal, setSpecification, setTemperature, simulateDegradedOperation, simulateTrip, solved, toJson, toJsonMethods inherited from class SimulationBaseClass
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTimeMethods inherited from class NamedBaseClass
getName, getTagNumber, setName, setTagNumberMethods inherited from class Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface NamedInterface
getName, getTagName, getTagNumber, setName, setTagName, setTagNumberMethods inherited from interface ProcessEquipmentInterface
getCapacityDuty, getCapacityMax, getElectricalDesign, getEquipmentState, getExergyChange, getExergyDestruction, getExergyDestruction, getFluid, getInstrumentDesign, getOperatingEnvelopeViolation, getOutletFlowRate, getOutletPressure, getOutletTemperature, getReferenceDesignationString, getRestCapacity, getSimulationValidationErrors, isSimulationValid, isWithinOperatingEnvelope, needRecalculation, validateSetupMethods inherited from interface SimulationInterface
getCalculateSteadyState, getCalculationIdentifier, getTime, increaseTime, isRunInSteps, run, run_step, runTransient, runTransient, setCalculateSteadyState, setCalculationIdentifier, setRunInSteps, setTime
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDSerialization version UID.- See Also:
-
logger
private static final org.apache.logging.log4j.Logger loggerLogger object. -
tankVolume
private double tankVolumeTank volume (m3). -
initialFillingRatio
private double initialFillingRatioInitial filling ratio (0-1). -
simulationTime
private double simulationTimeTotal simulation time (hours). -
timeStepHours
private double timeStepHoursTime step (hours). -
overallHeatTransferCoeff
private double overallHeatTransferCoeffOverall heat transfer coefficient (W/m2/K). -
ambientTemperature
private double ambientTemperatureAmbient temperature (K). -
tankSurfaceArea
private double tankSurfaceAreaTank surface area (m2). Estimated from volume if not set. -
tankPressure
private double tankPressureInitial tank pressure (bara). -
numberOfLayers
private int numberOfLayersNumber of initial layers. -
tankModel
Layered tank model. -
vaporSpaceModel
Vapor space model. -
rolloverDetector
Rollover detector. -
bogNetwork
BOG handling network. -
heelManager
Heel manager. -
voyageProfile
Voyage profile (optional). -
operationalEvents
Operational events (loading, unloading, cooldown, etc.). -
tankGeometry
Tank geometry model (optional). -
methaneNumberCalculator
Methane number calculator (optional). -
useGERG2008
private boolean useGERG2008Whether to use GERG-2008 for density calculations. -
results
Time-series results. -
inletStream
Inlet stream (LNG cargo). -
bogOutletStream
BOG outlet stream. -
lngOutletStream
Aged LNG outlet stream.
-
-
Constructor Details
-
LNGAgeingScenario
-
LNGAgeingScenario
Constructor with name and inlet stream.- Parameters:
name- equipment nameinletStream- LNG cargo stream
-
-
Method Details
-
run
In this method all thermodynamic and unit operations will be calculated in a steady state calculation.
- Parameters:
id- UUID
-
createOutletStreams
Create outlet streams from final simulation state.- Parameters:
baseFluid- the base fluid to clone for stream creation
-
getAmbientTemperatureAt
private double getAmbientTemperatureAt(double timeHours) Get ambient temperature at a given time, using voyage profile if available.- Parameters:
timeHours- simulation time (hours)- Returns:
- ambient temperature (K)
-
estimateSurfaceArea
private double estimateSurfaceArea(double volume) Estimate tank surface area from volume assuming cylindrical shape.- Parameters:
volume- tank volume (m3)- Returns:
- estimated surface area (m2)
-
getResults
Get the time-series results.- Returns:
- list of ageing results at each time step
-
getTankModel
Get the layered tank model for advanced configuration.- Returns:
- layered tank model
-
getVaporSpaceModel
Get the vapor space model.- Returns:
- vapor space model
-
getRolloverDetector
Get the rollover detector.- Returns:
- rollover detector
-
getBogNetwork
-
getHeelManager
-
setVoyageProfile
Set the voyage profile.- Parameters:
profile- voyage profile
-
getVoyageProfile
-
setTankGeometry
Set tank geometry model.- Parameters:
geometry- tank geometry
-
getTankGeometry
-
setMethaneNumberCalculator
Set methane number calculator.- Parameters:
calculator- methane number calculator
-
getMethaneNumberCalculator
Get methane number calculator.- Returns:
- calculator or null
-
setUseGERG2008
public void setUseGERG2008(boolean use) Enable GERG-2008 for density calculations.- Parameters:
use- true to use GERG-2008
-
isUseGERG2008
public boolean isUseGERG2008()Check if GERG-2008 is enabled.- Returns:
- true if using GERG-2008
-
addOperationalEvent
Add an operational event (loading, unloading, cooldown, etc.).- Parameters:
event- operational event
-
getOperationalEvents
Get all operational events.- Returns:
- list of events
-
setTankVolume
public void setTankVolume(double volume) Set tank volume.- Parameters:
volume- tank volume (m3)
-
getTankVolume
public double getTankVolume()Get tank volume.- Returns:
- tank volume (m3)
-
setInitialFillingRatio
public void setInitialFillingRatio(double ratio) Set initial filling ratio.- Parameters:
ratio- filling ratio (0-1)
-
getInitialFillingRatio
public double getInitialFillingRatio()Get initial filling ratio.- Returns:
- filling ratio (0-1)
-
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)
-
setOverallHeatTransferCoeff
public void setOverallHeatTransferCoeff(double u) Set overall heat transfer coefficient.- Parameters:
u- heat transfer coefficient (W/m2/K)
-
getOverallHeatTransferCoeff
public double getOverallHeatTransferCoeff()Get overall heat transfer coefficient.- Returns:
- heat transfer coefficient (W/m2/K)
-
setAmbientTemperature
public void setAmbientTemperature(double temperature) Set ambient temperature.- Parameters:
temperature- ambient temperature (K)
-
getAmbientTemperature
public double getAmbientTemperature()Get ambient temperature.- Returns:
- ambient temperature (K)
-
setTankSurfaceArea
public void setTankSurfaceArea(double area) Set tank surface area.- Parameters:
area- surface area (m2)
-
getTankSurfaceArea
public double getTankSurfaceArea()Get tank surface area.- Returns:
- surface area (m2), or -1 if auto-estimated
-
setTankPressure
public void setTankPressure(double pressure) Set initial tank pressure.- Parameters:
pressure- pressure (bara)
-
getTankPressure
public double getTankPressure()Get tank pressure.- Returns:
- pressure (bara)
-
setNumberOfLayers
public void setNumberOfLayers(int layers) Set number of initial layers.- Parameters:
layers- number of layers
-
getNumberOfLayers
public int getNumberOfLayers()Get number of initial layers.- Returns:
- number of layers
-
getBogOutletStream
Get the BOG outlet stream.- Returns:
- BOG stream or null if not yet run
-
getLngOutletStream
Get the aged LNG outlet stream.- Returns:
- aged LNG stream or null if not yet run
-
getInletStreams
Returns all inlet streams connected to this equipment. Subclasses override to report their specific inlets. Used by graph builders, DEXPI export, and auto-instrumentation to discover topology withoutinstanceofchecks.- Returns:
- unmodifiable list of inlet streams (empty by default)
-
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 withoutinstanceofchecks.- Returns:
- unmodifiable list of outlet streams (empty by default)
-
getResultsSummary
Get a summary of the final results.- Returns:
- formatted summary string
-